Este repositório é a implementação oficial do AnimateDiff [ICLR2024 Spotlight]. É um módulo plug-and-play que transforma a maioria dos modelos comunitários de texto para imagem em geradores de animação, sem a necessidade de treinamento adicional.
AnimateDiff: anime seus modelos personalizados de difusão de texto para imagem sem ajuste específico
Yuwei Guo, Ceyuan Yang✝, Anyi Rao, Zhengyang Liang, Yaohui Wang, Yu Qiao, Maneesh Agrawala, Dahua Lin, Bo Dai (✝Autor correspondente)
Nota: O branch main
é para Stable Diffusion V1.5; para Stable Diffusion XL, consulte o ramo sdxl-beta
.
Mais resultados podem ser encontrados na Galeria. Alguns deles são contribuídos pela comunidade.
Modelo:ToonYou
Modelo: Visão Realista V2.0
Nota: AnimateDiff também é oficialmente suportado por Difusores. Visite o tutorial dos difusores do AnimateDiff para obter mais detalhes. As instruções a seguir são para trabalhar com este repositório .
Nota: Para todos os scripts, o download do ponto de verificação será tratado automaticamente , portanto, a execução do script poderá levar mais tempo quando for executada pela primeira vez.
git clone https://github.com/guoyww/AnimateDiff.git
cd AnimateDiff
pip install -r requirements.txt
As amostras geradas podem ser encontradas na pasta 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
Criamos uma demonstração do Gradio para tornar o AnimateDiff mais fácil de usar. Por padrão, a demonstração será executada em localhost:7860
.
python -u app.py
O AnimateDiff visa aprender anteriores de movimento transferíveis que podem ser aplicados a outras variantes da família Stable Diffusion. Para tanto, projetamos o seguinte pipeline de treinamento composto por três etapas.
No estágio 1. Aliviar efeitos negativos , treinamos o adaptador de domínio , por exemplo, v3_sd15_adapter.ckpt
, para ajustar artefatos visuais defeituosos (por exemplo, marcas d'água) no conjunto de dados de treinamento. Isso também pode beneficiar o aprendizado descomplicado do movimento e da aparência espacial. Por padrão, o adaptador pode ser removido na inferência. Também pode ser integrado ao modelo e seus efeitos podem ser ajustados por um escalador lora.
No estágio 2. Aprender Motion Priors , treinamos o módulo de movimento , por exemplo, v3_sd15_mm.ckpt
, para aprender os padrões de movimento do mundo real a partir de vídeos.
No estágio 3. (opcional) Adaptar-se a novos padrões , treinamos MotionLoRA , por exemplo, v2_lora_ZoomIn.ckpt
, para adaptar eficientemente o módulo de movimento para padrões de movimento específicos (zoom da câmera, rotação, etc.).
SparseCtrl visa adicionar mais controle aos modelos de texto para vídeo adotando algumas entradas esparsas (por exemplo, poucas imagens RGB ou entradas de esboço). Seus detalhes técnicos podem ser encontrados no seguinte artigo:
SparseCtrl: Adicionando controles esparsos a modelos de difusão de texto para vídeo
Yuwei Guo, Ceyuan Yang✝, Anyi Rao, Maneesh Agrawala, Dahua Lin, Bo Dai (✝Autor correspondente)
Nesta versão, utilizamos Domain Adapter LoRA para ajuste fino do modelo de imagem, o que proporciona mais flexibilidade na inferência. Também implementamos dois codificadores SparseCtrl (imagem/rabisco RGB), que podem usar um número aleatório de mapas de condições para controlar o conteúdo da animação.
Nome | Abraçando o rosto | Tipo | Armazenar | Descrição |
---|---|---|---|---|
v3_adapter_sd_v15.ckpt | Link | Adaptador de Domínio | 97,4MB | |
v3_sd15_mm.ckpt.ckpt | Link | Módulo de movimento | 1,56GB | |
v3_sd15_sparsectrl_scribble.ckpt | Link | Codificador SparseCtrl | 1,86GB | condição de rabisco |
v3_sd15_sparsectrl_rgb.ckpt | Link | Codificador SparseCtrl | 1,85 GB | Condição da imagem RGB |
Entrada (por RealisticVision) | Animação | Entrada | Animação |
Rabisco de entrada | Saída | Rabiscos de entrada | Saída |
Lançamento do Motion Module (versão beta) em SDXL, disponível em Google Drive/HuggingFace/CivitAI. Vídeos de alta resolução (ou seja, quadros de 1024x1024x16 com diversas proporções) poderiam ser produzidos com/sem modelos personalizados. A inferência geralmente requer cerca de 13 GB de VRAM e hiperparâmetros ajustados (por exemplo, etapas de amostragem), dependendo dos modelos personalizados escolhidos.
Confira a ramificação sdxl para obter mais detalhes da inferência.
Nome | Abraçando o rosto | Tipo | Espaço de armazenamento |
---|---|---|---|
mm_sdxl_v10_beta.ckpt | Link | Módulo de movimento | 950MB |
SDXL Original | Comunidade SDXL | Comunidade SDXL |
Nesta versão, o módulo de movimento mm_sd_v15_v2.ckpt
(Google Drive / HuggingFace / CivitAI) é treinado em resolução e tamanho de lote maiores. Descobrimos que o treinamento de ampliação ajuda significativamente a melhorar a qualidade e a diversidade do movimento.
Também oferecemos suporte ao MotionLoRA de oito movimentos básicos de câmera. Os pontos de verificação MotionLoRA ocupam apenas 77 MB de armazenamento por modelo e estão disponíveis em Google Drive/HuggingFace/CivitAI.
Nome | Abraçando o rosto | Tipo | Parâmetro | Armazenar |
---|---|---|---|---|
mm_sd_v15_v2.ckpt | Link | Módulo de movimento | 453 milhões | 1,7GB |
v2_lora_ZoomIn.ckpt | Link | MotionLoRA | 19 meses | 74MB |
v2_lora_ZoomOut.ckpt | Link | MotionLoRA | 19 meses | 74MB |
v2_lora_PanLeft.ckpt | Link | MotionLoRA | 19 meses | 74MB |
v2_lora_PanRight.ckpt | Link | MotionLoRA | 19 meses | 74MB |
v2_lora_TiltUp.ckpt | Link | MotionLoRA | 19 meses | 74MB |
v2_lora_TiltDown.ckpt | Link | MotionLoRA | 19 meses | 74MB |
v2_lora_RollingClockwise.ckpt | Link | MotionLoRA | 19 meses | 74MB |
v2_lora_RollingAnticlockwise.ckpt | Link | MotionLoRA | 19 meses | 74MB |
Ampliar | Diminuir zoom | Zoom panorâmico à esquerda | Zoom panorâmico para a direita | ||||
Inclinar para cima | Inclinar para baixo | Rolando no sentido anti-horário | Rolando no sentido horário | ||||
Aqui está uma comparação entre mm_sd_v15.ckpt
(esquerda) e mm_sd_v15_v2.ckpt
aprimorado (direita).
A primeira versão do AnimateDiff!
Nome | Abraçando o rosto | Parâmetro | Espaço de armazenamento |
---|---|---|---|
mm_sd_v14.ckpt | Link | 417 milhões | 1,6GB |
mm_sd_v15.ckpt | Link | 417 milhões | 1,6GB |
Por favor, verifique as etapas do treinamento para obter detalhes.
AnimateDiff para WebUI de difusão estável: sd-webui-animatediff (por @continue-revolution)
AnimateDiff para ComfyUI: ComfyUI-AnimateDiff-Evolved (por @Kosinkadink)
Google Colab: Colab (por @camenduru)
Este projeto está liberado para uso acadêmico. Nós nos isentamos de responsabilidade pelo conteúdo gerado pelo usuário. Além disso, esteja ciente de que nosso único site oficial é https://github.com/guoyww/AnimateDiff e https://animatediff.github.io, e todos os outros sites NÃO estão associados a nós no AnimateDiff.
Yuwei Guo: [email protected]
Ceyuan Yang: [email protected]
Bo Dai: [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}
}
Base de código baseada no Tune-a-Video.