Stable Video Diffusion: полное руководство по генерации видео с помощью нейросети

Узнайте, как работает Stable Video Diffusion, какие есть способы генерации видео, как использовать AnimateDiff и Motion LoRA, а также получите практические советы и ответы на частые вопросы.

Что такое Stable Video Diffusion и как она работает

Stable Video Diffusion — это семейство моделей и инструментов на основе Stable Diffusion, предназначенных для генерации видео. В отличие от классических моделей, которые создают статичные изображения, эти алгоритмы способны генерировать последовательности кадров, формируя плавное движение. Основная идея заключается в том, что модель обучается на больших наборах видеоданных, таких как WebVid-10M, и усваивает закономерности движения, освещения и структуры сцены.

Существует два основных подхода к генерации видео с помощью Stable Diffusion. Первый — использование специализированных сервисов, которые предоставляют доступ к моделям через веб-интерфейс. Второй — локальная установка и настройка инструментов, таких как AnimateDiff, в интерфейсе Automatic 1111. Оба подхода имеют свои преимущества и ограничения, которые мы рассмотрим далее.

Онлайн-сервисы для генерации видео: обзор возможностей

Для тех, кто не хочет разбираться в технических деталях, существуют онлайн-платформы, предлагающие генерацию видео по текстовому описанию или на основе загруженного изображения. Например, сервис Пиксель Тулс предоставляет доступ к Stable Video Diffusion с удобным интерфейсом. Пользователь может ввести промпт на русском языке, например «летающий дрон над заснеженными горами», и получить готовый ролик в формате MP4 за несколько минут.

Такие сервисы обычно не имеют встроенного видеоредактора, но позволяют генерировать несколько вариантов, чтобы выбрать лучший. Они экономят время и не требуют мощного оборудования, так как все вычисления происходят на стороне сервера. Однако у них есть и недостатки: ограниченная настройка параметров, возможные очереди и платная подписка. Например, в Пиксель Тулс первый месяц доступа стоит 99 рублей, а далее — по подписке.

Локальная генерация видео с AnimateDiff: пошаговая установка

Для тех, кто предпочитает полный контроль и не хочет зависеть от внешних сервисов, существует возможность локальной генерации видео с помощью расширения AnimateDiff для Stable Diffusion в интерфейсе Automatic 1111. Это решение позволяет использовать любые модели Stable Diffusion 1.5, созданные сообществом, и достигать высокого качества.

Установка включает несколько шагов:

  1. Убедитесь, что у вас установлена версия Automatic 1111 не ниже 1.6.
  2. Перейдите на вкладку Extensions, выберите Install from URL и вставьте ссылку на репозиторий AnimateDiff: https://github.com/continue-revolution/sd-webui-animatediff.
  3. После установки перезагрузите интерфейс.
  4. Скачайте модель движения mm_sd_v15_v2.ckpt и папку MotionLoRA. Разместите модель в папке extensions/sd-webui-animatediff/model, а лоры — в models/Lora.
  5. В настройках (Settings/Optimization) активируйте опцию Pad prompt/negative prompt to be same length.

После этого в интерфейсе появится аккордеон AnimateDiff, и вы сможете приступить к генерации.

Как работает AnimateDiff: технические детали

AnimateDiff — это порт исследовательского проекта, который встраивает специально обученную на видео модель в существующую модель Stable Diffusion 1.5 во время генерации. Это позволяет задавать направление движения в соответствии с данными, на которых обучалась модель. Принцип работы схож с ControlNet: модель движения влияет на процесс генерации, обеспечивая консистентность кадров.

Ключевая особенность технологии — все кадры генерируются на одном «листе» (едином латентном пространстве). Это обеспечивает согласованность видео, но накладывает ограничения на производительность. Для работы требуется видеокарта с объемом памяти не менее 6 ГБ, оптимально — 12 ГБ. Также важно понимать, что сид (seed) влияет на всё полотно целиком, поэтому подбор сида для анимации отличается от подбора для статичных изображений.

Основные настройки AnimateDiff: кадры, FPS, форматы

При работе с AnimateDiff важно правильно настроить параметры генерации. Рассмотрим основные:

  • Number of frames — количество кадров в видео. Оптимальное значение — 16, так как модель обучалась на видео именно такой длины. Большее количество кадров может привести к «рваным» движениям.
  • Context batch size — размер окна контекста, зависит от модели. Для mm_sd_v15_v2 оптимально 16.
  • FPS — количество кадров в секунду. Рекомендуется 8–16, при необходимости можно интерполировать в других программах.
  • Closed loop — режим зацикливания видео. Варианты: N (без зацикливания), R-P (вычитание кадров), R+P (добавление кадров), A (агрессивный режим). Агрессивный режим может дать хорошие результаты, но иногда приводит к артефактам.
  • Формат вывода: MP4 — лучший выбор для дальнейшего использования, но не отображается в браузере для предпросмотра. GIF удобен для предпросмотра, но имеет худшее качество. Рекомендуется генерировать оба формата.

Также обратите внимание, что информация о генерации (png info) не сохраняется в MP4 или GIF, поэтому для восстановления параметров лучше дополнительно сохранять PNG-файл.

Motion LoRA: управление движением камеры

Одной из самых мощных функций AnimateDiff являются Motion LoRA — специальные лоры, которые позволяют управлять движением камеры. Они совместимы только с моделью mm_sd_v15_v2.ckpt. Существует 8 типов лор:

  • Zoom In — приближение
  • Zoom Out — отдаление
  • Pan Left — смещение влево
  • Pan Right — смещение вправо
  • Pan Up — смещение вверх
  • Pan Down — смещение вниз
  • Rolling Anti-Clockwise — вращение против часовой стрелки
  • Rolling Clockwise — вращение по часовой стрелке

Подключение лор происходит так же, как и обычных: через вкладку Lora в интерфейсе. Рекомендуемый вес — 0.7, но можно экспериментировать. При использовании лор лучше отключить Closed loop (режим N), чтобы получить больше движения. Некоторые лоры могут искажать композицию, поэтому стоит подбирать вес индивидуально.

Практические советы для качественной генерации видео

Чтобы получить хорошие результаты при генерации видео с помощью Stable Diffusion, следуйте этим рекомендациям:

  • Используйте простые и художественные промпты. Модель обучалась на видео с описаниями вроде «Lonely beautiful woman sitting on the tent looking outside» или «Billiards, concentrated young woman playing in club». Конкретные указания движения (например, «машина едет вправо») скорее всего не сработают.
  • Не превышайте 16 кадров, чтобы избежать дерганости.
  • Не используйте несколько Motion LoRA одновременно — они добавляют шум и мешают работе модели.
  • ControlNet можно использовать, но каждый слой уменьшает интенсивность движения.
  • Если на видео появляется логотип Shutterstock, улучшите негативный промпт или смените негативный эмбединг.
  • Для улучшения качества можно использовать Topaz Video AI для интерполяции и апскейла.
  • Hires. fix допустим, но не увеличивайте масштаб более чем в 1.3–1.5 раза.
  • ADetailer использовать не рекомендуется — он вызывает нежелательную «шевеленку».

Сравнение онлайн-сервисов и локальной генерации

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

Локальная генерация с AnimateDiff дает полный контроль над процессом, позволяет использовать любые модели и лоры, а также не требует постоянной оплаты (кроме затрат на электроэнергию). Но она требует видеокарты с достаточным объемом памяти (от 6 ГБ, лучше 12 ГБ) и определенных технических навыков для установки и настройки. Если вы планируете регулярно создавать видео и готовы разобраться в деталях, локальный подход может быть более выгодным в долгосрочной перспективе.

Ограничения и возможные проблемы

Несмотря на впечатляющие возможности, генерация видео с помощью Stable Diffusion имеет ряд ограничений. Во-первых, длина видео ограничена: модель обучалась на 16 кадрах, поэтому более длинные ролики получаются нестабильными. Во-вторых, качество движения может страдать при использовании сложных сцен или быстрых перемещений. В-третьих, для локальной генерации требуется мощное оборудование, что может быть недоступно многим пользователям.

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

Вопросы и ответы

Можно ли использовать Stable Video Diffusion бесплатно?

Существуют бесплатные варианты, например, локальная установка AnimateDiff не требует оплаты, кроме затрат на электроэнергию. Однако онлайн-сервисы, такие как Пиксель Тулс, предлагают платную подписку, хотя первый месяц может стоить всего 99 рублей. Также есть бесплатные боты в Discord, например Pika Labs, но они имеют ограничения.

Какая видеокарта нужна для локальной генерации видео?

Для AnimateDiff рекомендуется видеокарта с объемом памяти не менее 6 ГБ, но оптимально 12 ГБ. При меньшем объеме памяти генерация может быть невозможна или крайне медленной. Также важно наличие достаточного объема оперативной памяти и быстрого процессора.

Как улучшить качество генерируемого видео?

Используйте простые и художественные промпты, не превышайте 16 кадров, избегайте одновременного использования нескольких Motion LoRA. Применяйте Hires. fix с увеличением не более 1.3–1.5, а для постобработки используйте Topaz Video AI для интерполяции и улучшения деталей. Также следите за негативным промптом, чтобы избежать артефактов.

Можно ли генерировать видео по изображению?

Да, многие онлайн-сервисы, включая Пиксель Тулс, позволяют загрузить изображение и на его основе создать видео. Алгоритм анализирует сцену, освещение и структуру кадра, а затем оживляет его, добавляя движение. Локально это также возможно с помощью img2img и AnimateDiff, но требует дополнительных настроек.

Какие форматы видео поддерживаются?

Онлайн-сервисы обычно предоставляют видео в формате MP4, который удобен для публикации в соцсетях и презентациях. При локальной генерации с AnimateDiff можно сохранять в MP4 и GIF. MP4 имеет лучшее качество, но не отображается в браузере для предпросмотра, поэтому часто генерируют оба формата.

Почему видео получается дерганым при использовании более 16 кадров?

Модель движения mm_sd_v15_v2 обучалась на видео длиной 16 кадров, поэтому она оптимально работает именно с этим количеством. При увеличении числа кадров модель начинает «забывать» контекст, что приводит к нестабильности и дерганости. Рекомендуется придерживаться 16 кадров или использовать интерполяцию для увеличения длины.

Можно ли использовать ControlNet с AnimateDiff?

Да, ControlNet можно использовать вместе с AnimateDiff, но следует учитывать, что каждый слой ControlNet уменьшает интенсивность движения. Это может быть полезно для сохранения композиции, но требует экспериментов с настройками. Рекомендуется использовать ControlNet с низким весом, чтобы не подавлять анимацию.