~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 для закрытия

Введите запрос для мгновенного поиска по всем страницам курсов и уроков.