~9 хв

Відео й анімація в ComfyUI: як оживити картинку

Картинка навчилася стояти. Тепер вчимо її рухатися - і платимо за це часом

Як зробити відео в ComfyUI простими словами: що таке кадри, звідки рух, навіщо AnimateDiff і відеомоделі та яке залізо реально потрібне для анімації.

Що таке відео в ComfyUI простими словами

Памʼятаєш блокнотик з дитинства? Малюєш чоловічка в кутку сторінки, трохи зміщуєш руку й ногу, гортаєш швидко - і чоловічок біжить. Ось це й є відео. Жодної магії: відео - це пачка картинок, які показують дуже швидко, одну за одною.

Отже, щоб ComfyUI видав тобі відео, йому потрібно намалювати не одну картинку, а багато. Цілу пачку кадрів. І тут вилазить головна засада. Попроси ШІ намалювати «кота» десять разів - отримаєш десять різних котів. Прогорнеш - і замість плавного руху матимеш смикучий калейдоскоп із чужих тварин.

Тож уся задача відео в ComfyUI зводиться до одного: зробити сусідні кадри майже однаковими, щоб мінялося лише те, що має рухатися. Кіт той самий. Ворушиться тільки хвіст.

Стос майже однакових малюнків кота, на кожному хвіст трохи в іншому положенні, поряд стрілка відтворення
Відео - це фліпбук. Кіт той самий, змінюється лише хвіст.

Навіщо вайбкодеру розбиратися в анімації

Ти вайбкодер, а не аніматор. Але захочеш рухомий логотип, короткий ролик для сторіс або просто оживити свою картинку - і одразу впрешся у відео. Ось що врятує тебе від розчарування:

  • ти зрозумієш, чому відео робиться довго, і не думатимеш, що в тебе щось зламалося;
  • ти не купиш слабкий компʼютер у надії ганяти на ньому відео й не викинеш гроші марно;
  • ти будеш просити розумного - пару секунд, а не голлівудський блокбастер з першого тику;
  • ти не потонеш у назвах моделей, які застарівають швидше, ніж ти дочитаєш урок.

Як ComfyUI робить відео з кадрів

Кадри: малюємо не одну картинку, а пачку

Звичайний воркфлоу в ComfyUI видає одну картинку. Відео-воркфлоу видає багато кадрів за один запуск - зазвичай короткий відрізок, грубо кажучи пару секунд. Ти не робиш одразу хвилину. Ти робиш маленький шматочок, а потім, якщо треба, подовжуєш.

Чому так? Що більше кадрів - то більше памʼяті й часу. Машина тримає в голові одразу всю пачку, щоб кадри дружили між собою. Що довша пачка, то важче їй це дається.

Рух: хто вчить кадри триматися одне за одного

Модель, яка малює картинки, про час нічого не знає. Їй байдуже, що було на попередньому кадрі - вона щоразу починає з чистого аркуша. Тому у воркфлоу додають окремий «прошарок руху».

Першим популярним способом історично став AnimateDiff . Ідея проста: до звичайної моделі картинок пристібають окремий «модуль руху». Він дивиться одразу на всю пачку кадрів і каже: «гей, це все одна сцена - тримайте композицію, міняйте лише те, що має рухатися».

Сьогодні, крім AnimateDiff, є й сучасні відеомоделі - їх одразу навчали на відео, а не на окремих картинках. Рух вони розуміють «з коробки» й дають результат помітно плавніший і стабільніший. Назви та версії змінюються буквально щомісяця, тому запамʼятовуй не імена, а принцип:

Text-to-video чи image-to-video: з чого почати

Відео зазвичай роблять двома шляхами, і тобі корисно знати різницю:

  • З тексту (text-to-video): пишеш промпт - отримуєш ролик з нуля. Зручно, але контролю над тим, як саме все виглядатиме, менше.
  • З картинки (image-to-video): даєш готову картинку - і модель її оживляє, додаючи рух. Часто простіше й передбачуваніше: ти вже знаєш, який вигляд має перший кадр.

Інтерполяція та подовження: фінальне доведення ролика

Сирий результат зазвичай короткий і трохи смикучий. Тут виручають два прийоми, які ти зустрічатимеш постійно:

  • Інтерполяція кадрів - машина домальовує кадри між готовими, і відео стає плавнішим, ніби частота кадрів зросла.
  • Подовження - беремо останній кадр готового відрізка й продовжуємо від нього новий, склеюючи в довший ролик.

Яке залізо потрібне для відео в ComfyUI

А ось тут чесна розмова, заради якої ти й читаєш урок. Відео - ненажерливе. Дуже.

Что хорошо
  • Картинку можна крутити майже на будь-якому ігровому компʼютері.
  • Короткий ролик «оживи мою картинку» - найдешевший і найшвидший вхід у відео.
  • Можна почати на хмарних сервісах, не купуючи потужне залізо.
  • Інтерполяція та подовження дозволяють із коротких шматочків зібрати нормальний ролик.
Что плохо
  • Відео хоче гарну відеокарту - помітно більше памʼяті, ніж для картинок.
  • Чекати доведеться хвилини за пару секунд ролика, а не секунди.
  • Що довше й чіткіше відео - то сильніше ростуть апетити щодо памʼяті й часу.
  • На слабкому залізі ти впрешся в «не вистачає памʼяті» куди раніше, ніж на картинках.
Терези: на одній шальці одна легка картинка, на іншій важкий стос кадрів відео, шалька з відео різко переважує
Та сама машина, той самий принцип - але відео важить у рази більше.

Приклад: як оживити картинку для сторіс

Ти зробив класну картинку - неоновий кіт на тлі міста - і хочеш, щоб у нього світилися очі й ворушився хвіст для сторіс. Хвилинний мультфільм тут не потрібен. Потрібне інше: взяти готову картинку, попросити легкий рух, отримати пару секунд, за бажання згладити й зациклити.

Ось як розумно поставити таку задачу. Це не код, а людська постановка - щоб ти не просив неможливого:

Як ставити задачу на коротке відео
  1. Візьми за основу готову картинку (image-to-video), а не генеруй ролик з нуля - так передбачуваніше.
  2. Проси короткий відрізок - пару секунд, а не хвилину. Довжину наростиш потім.
  3. Опиши лише те, що має рухатися: світяться очі й трохи похитується хвіст. Решта хай лишається нерухомою.
  4. Почни з невеликого розміру кадру. Стало гарно - тоді підвищуй чіткість.
  5. Готовий відрізок за бажання згладь інтерполяцією та зацикли для сторіс.
  6. Закладай хвилини на очікування - для відео це нормально.

Часті помилки під час генерації відео

  • Просити одразу довгий ролик. Памʼять скінчиться, а чекати будеш вічність. Роби короткі відрізки й склеюй.
  • Гнатися за максимальною чіткістю з першого разу. Спершу досягни нормального руху на маленькому розмірі, потім підвищуй якість.
  • Чекати секунд, як від картинки. Відео рахується хвилинами - це не зависання, це робота.
  • Описувати рух усього й одразу. Що більше всього ворушиться, то більше каші. Рухай один-два елементи.
  • Завчати назви конкретних моделей. За місяць вийде нова. Тримайся за принцип: кадри плюс звʼязок між ними.
  • Запускати відео на слабкому залізі й злитися. Памʼяті мало - бери хмару або починай із найлегших коротких роликів.

TL;DR - если коротко

  • Відео - це просто багато картинок поспіль. Уся хитрість - щоб сусідні кадри були схожі, інакше замість руху вийде миготіння.
  • AnimateDiff і відеомоделі додають у генерацію «відчуття руху» - вчать сусідні кадри триматися одне за одного.
  • Генеруєш короткий відрізок на пару секунд, а вже потім подовжуєш і згладжуєш.
  • Не малюй ролик з нуля - оживи готову картинку. Так передбачуваніше.
  • Відео жере ресурси в рази сильніше за картинки: карта потужніша, а чекати - хвилини, а не секунди.
  • Моделі змінюються щомісяця - тримайся за принципи, а не за назви.

Пошук по вікі

Натисніть Esc для закриття

Введіть запит для миттєвого пошуку по всіх сторінках курсів та уроків.