Этот репозиторий является официальной реализацией AnimateDiff [ICLR2024 Spotlight]. Это модуль Plug-and-Play, превращающий большинство моделей преобразования текста в изображение, созданных сообществом, в генераторы анимации без необходимости дополнительного обучения.
AnimateDiff: анимируйте персонализированные модели распространения текста в изображение без специальной настройки
Ювэй Го, Цейюань Ян✝, Аньи Рао, Чжэнъян Лян, Яохуэй Ван, Юй Цяо, Маниш Агравала, Дахуа Линь, Бо Дай (✝Автор, ответственный за переписку)
Примечание. main
ветка предназначена для Stable Diffusion V1.5; информацию о Stable Diffusion XL можно найти в ветке sdxl-beta
.
Больше результатов можно найти в Галерее. Некоторые из них предоставлены сообществом.
Модель: ToonYou
Модель: реалистичное видение V2.0
Примечание. AnimateDiff также официально поддерживается Diffusers. Посетите учебное пособие по диффузорам AnimateDiff для получения более подробной информации. Следующие инструкции предназначены для работы с этим репозиторием .
Примечание. Для всех сценариев загрузка контрольной точки будет выполняться автоматически , поэтому запуск сценария при первом запуске может занять больше времени.
git clone https://github.com/guoyww/AnimateDiff.git
cd AnimateDiff
pip install -r requirements.txt
Сгенерированные образцы можно найти в папке samples/
.
python -m scripts.animate --config configs/prompts/1_animate/1_1_animate_RealisticVision.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_2_animate_FilmVelvia.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_3_animate_ToonYou.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_4_animate_MajicMix.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_5_animate_RcnzCartoon.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_6_animate_Lyriel.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_7_animate_Tusun.yaml
python -m scripts.animate --config configs/prompts/2_motionlora/2_motionlora_RealisticVision.yaml
python -m scripts.animate --config configs/prompts/3_sparsectrl/3_1_sparsectrl_i2v.yaml
python -m scripts.animate --config configs/prompts/3_sparsectrl/3_2_sparsectrl_rgb_RealisticVision.yaml
python -m scripts.animate --config configs/prompts/3_sparsectrl/3_3_sparsectrl_sketch_RealisticVision.yaml
Мы создали демо-версию Gradio, чтобы упростить использование AnimateDiff. По умолчанию демо-версия будет запущена по адресу localhost:7860
.
python -u app.py
AnimateDiff стремится изучить переносимые априорные данные движения, которые можно применять к другим вариантам семейства Stable Diffusion. С этой целью мы разработали следующую схему обучения, состоящую из трех этапов.
На этапе 1. Смягчение негативных эффектов мы обучаем адаптер домена , например, v3_sd15_adapter.ckpt
, чтобы он соответствовал дефектным визуальным атрибутам (например, водяным знакам) в наборе обучающих данных. Это также может принести пользу более четкому обучению движению и пространственному облику. По умолчанию адаптер можно удалить при выводе. Его также можно интегрировать в модель, а его эффекты можно настроить с помощью масштабатора Lora.
На этапе 2. Изучение приоритетов движения мы обучаем модуль движения , например, v3_sd15_mm.ckpt
, для изучения реальных моделей движения из видео.
На этапе 3. (необязательно) Адаптация к новым шаблонам мы обучаем MotionLoRA , например, v2_lora_ZoomIn.ckpt
, для эффективной адаптации модуля движения к конкретным шаблонам движения (масштабирование камеры, вращение и т. д.).
Целью SparseCtrl является добавление большего контроля к моделям преобразования текста в видео за счет использования некоторых разреженных входных данных (например, нескольких изображений RGB или входных эскизов). Его технические подробности можно найти в следующей статье:
SparseCtrl: добавление разреженных элементов управления в модели распространения текста в видео
Ювэй Го, Цейюань Ян✝, Аньи Рао, Маниш Агравала, Дахуа Линь, Бо Дай (✝Автор, ответственный за переписку)
В этой версии мы используем адаптер домена LoRA для точной настройки модели изображения, что обеспечивает большую гибкость при выводе. Мы также реализуем два кодировщика SparseCtrl (RGB-изображение/каракули), которые могут принимать произвольное количество карт условий для управления содержимым анимации.
Имя | ОбниматьЛицо | Тип | Хранилище | Описание |
---|---|---|---|---|
v3_adapter_sd_v15.ckpt | Связь | Адаптер домена | 97,4 МБ | |
v3_sd15_mm.ckpt.ckpt | Связь | Модуль движения | 1,56 ГБ | |
v3_sd15_sparsectrl_scribble.ckpt | Связь | Кодировщик SparseCtrl | 1,86 ГБ | состояние каракули |
v3_sd15_sparsectrl_rgb.ckpt | Связь | Кодировщик SparseCtrl | 1,85 ГБ | Состояние изображения RGB |
Ввод (от RealisticVision) | Анимация | Вход | Анимация |
Вводная каракуля | Выход | Ввод каракулей | Выход |
Выпустите модуль движения (бета-версию) на SDXL, доступном на Google Drive/HuggingFace/CivitAI. Видео высокого разрешения (т. е. 1024x1024x16 кадров с различными соотношениями сторон) можно создавать с персонализированными моделями или без них . Для вывода обычно требуется около 13 ГБ видеопамяти и настроенные гиперпараметры (например, шаги выборки), в зависимости от выбранных персонализированных моделей.
Для получения более подробной информации о выводе обратитесь в ветку sdxl.
Имя | ОбниматьЛицо | Тип | Место для хранения |
---|---|---|---|
mm_sdxl_v10_beta.ckpt | Связь | Модуль движения | 950 МБ |
Оригинальный SDXL | Сообщество SDXL | Сообщество SDXL |
В этой версии модуль движения mm_sd_v15_v2.ckpt
(Google Drive/HuggingFace/CivitAI) обучается на большем разрешении и размере пакета. Мы обнаружили, что масштабное обучение значительно помогает улучшить качество и разнообразие движений.
Мы также поддерживаем MotionLoRA восьми основных движений камеры. Контрольные точки MotionLoRA занимают всего 77 МБ памяти на каждую модель и доступны на Google Drive/HuggingFace/CivitAI.
Имя | ОбниматьЛицо | Тип | Параметр | Хранилище |
---|---|---|---|---|
mm_sd_v15_v2.ckpt | Связь | Модуль движения | 453 М | 1,7 ГБ |
v2_lora_ZoomIn.ckpt | Связь | ДвижениеLoRA | 19 М | 74 МБ |
v2_lora_ZoomOut.ckpt | Связь | ДвижениеLoRA | 19 М | 74 МБ |
v2_lora_PanLeft.ckpt | Связь | ДвижениеLoRA | 19 М | 74 МБ |
v2_lora_PanRight.ckpt | Связь | ДвижениеLoRA | 19 М | 74 МБ |
v2_lora_TiltUp.ckpt | Связь | ДвижениеLoRA | 19 М | 74 МБ |
v2_lora_TiltDown.ckpt | Связь | ДвижениеLoRA | 19 М | 74 МБ |
v2_lora_RollingClockwise.ckpt | Связь | ДвижениеLoRA | 19 М | 74 МБ |
v2_lora_RollingAnticlockwise.ckpt | Связь | ДвижениеLoRA | 19 М | 74 МБ |
Увеличить масштаб | Уменьшить масштаб | Масштабирование, панорамирование влево | Масштабировать, панорамировать вправо | ||||
Наклон вверх | Наклон вниз | Вращение против часовой стрелки | Вращение по часовой стрелке | ||||
Вот сравнение mm_sd_v15.ckpt
(слева) и улучшенного mm_sd_v15_v2.ckpt
(справа).
Первая версия AnimateDiff!
Имя | ОбниматьЛицо | Параметр | Место для хранения |
---|---|---|---|
mm_sd_v14.ckpt | Связь | 417 М | 1,6 ГБ |
mm_sd_v15.ckpt | Связь | 417 М | 1,6 ГБ |
Подробности см. в разделе «Шаги обучения».
AnimateDiff для веб-интерфейса Stable Diffusion: sd-webui-animatediff (от @continue-revolution)
AnimateDiff для ComfyUI: ComfyUI-AnimateDiff-Evolved (автор @Kosinkadink)
Google Colab: Colab (от @camenduru)
Этот проект выпущен для академического использования. Мы отказываемся от ответственности за пользовательский контент. Также обратите внимание, что нашими единственными официальными веб-сайтами являются https://github.com/guoyww/AnimateDiff и https://animatediff.github.io, а все остальные веб-сайты НЕ связаны с нами в AnimateDiff.
Ювэй Го: [email protected]
Цейюань Ян: [email protected]
Бо Дай: [email protected]
@article{guo2023animatediff,
title={AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning},
author={Guo, Yuwei and Yang, Ceyuan and Rao, Anyi and Liang, Zhengyang and Wang, Yaohui and Qiao, Yu and Agrawala, Maneesh and Lin, Dahua and Dai, Bo},
journal={International Conference on Learning Representations},
year={2024}
}
@article{guo2023sparsectrl,
title={SparseCtrl: Adding Sparse Controls to Text-to-Video Diffusion Models},
author={Guo, Yuwei and Yang, Ceyuan and Rao, Anyi and Agrawala, Maneesh and Lin, Dahua and Dai, Bo},
journal={arXiv preprint arXiv:2311.16933},
year={2023}
}
Кодовая база построена на Tune-a-Video.