Как я говорил ранее, расширение AnimateDiff делает революцию в анимации Stable Diffusion благодаря своему алгоритму который буквально с первого прохода показывает поразительную плавность переходов между кадрами.
Каюсь, сперва я решил что оно не может на выходе дать больше чем просто GIF, однако при более тесном знакомстве оно меня приятно удивило. Что приятно его форки есть и для ComfyUI и для Automatic1111. Даже в ComfyUI его работа понравилась больше, там весь процесс генерации происходит нагляднее. Разумеется есть некоторе особенности, но в сети так много туториалов на эту тему что буду повторяться.
Допустим вы написали простой описательный промпт и решили дать на откуп Stable Diffusion создание самого движения по кадрам анимации. Тогда модель самого AnimateDiff вы можете выбирать любую из трех возможных: mm-Stabilized_high.pth, mm_sd_v15_v2.ckpt, temporaldiff-v1-animatediff.safetensors. Анимация получится неторопливой. Ну а если вам нужен заметный движ в кадре тогда надо соблюсти ряд условий:
- модель AnimateDiff только mm_sd_v15_v2.ckpt
- motion_scale больше 1.
Если вам нужен контролируемый движ в кадре, тогда лучше нацепить парочку motion_lora из того же AnimateDiff. Что важно во всех случаях - движение объектов будет заметно только при генерации кадров от 32 штук и более и это справедливо и для ComfyUI и для Automatic1111.
Приятно что и ComfyUI и Automatic1111 позволяют сделать в AnimateDiff closed loop. Т.е. закончить анимацию на том же кадре на котором начали. Но помните что чем больше кадров тем легче AnimateDiff это выполнить для вас.
Как еще устроить движ? В Automatic1111 можно добавить скрипт Prompt Travel, тогда основной промпт можно будет расписывать по шагам:
AnimateDiff позволяет брать в качестве исходника и видео-файл. Надо будет обязательно попробовать эту фишку.
В качестве отличий - в Automatic1111 AnimateDiff позволяет также указать готовое изображение на котором вы хотите закончить свою анимацию. Скажу честно, если оно будет сильно отличаться от промпта или исходного изображения результат вас озадачит. Но при генерации в 64 кадра и больше все возможно.)
На сегодня все. Удачи.
AnimateDiff это специально обученные темпоральные слои к моделям типа StableDiffusion и он скорее больше похож на особый вид LoRA. По изначальной задумке подразумевалось, что AnimateDiff сам не умеет ничего рисовать, эта модель знает только как делать динамику, а за то как это выглядит должен отвечать базовый SD. Так что, по задумке авторов, AnimateDiff должен давать видео по стилю близкие к выбранной SD модели. Но он работает далеко не со всеми моделями, и по моим ощущениям чем сильнее они по промптам отличаются от базовой тем хуже результат.
ReplyDeleteCogVideo напротив умеет все рисовать сам, а не является «особой приправой» к какой-то существующей модели поэтому у него нет проблем с тем, что разные его части обучались на разных датасетах. Но зато у него могут быть проблемы с анимированием тех вещей которых в его датасете не представлено.
Вообще хотелось бы чтобы модульные системы вроде AnimateDiff хорошо работали, но скорее всего на монолитных моделях вроде CogVideo получится быстрее достичь приемлемого качества.