이 저장소는 AnimateDiff [ICLR2024 Spotlight]의 공식 구현입니다. 추가 교육 없이 대부분의 커뮤니티 텍스트-이미지 모델을 애니메이션 생성기로 전환하는 플러그 앤 플레이 모듈입니다.
AnimateDiff: 특정 조정 없이 개인화된 텍스트-이미지 확산 모델을 애니메이션화합니다.
Yuwei Guo, Ceyuan Yang✝, Anyi Rao, Zhengyang Liang, Yaohui Wang, Yu Qiao, Maneesh Agrawala, Dahua Lin, Bo Dai (✝교신저자)
참고: main
분기는 Stable Diffusion V1.5용입니다. Stable Diffusion XL에 대해서는 sdxl-beta
분기를 참조하세요.
더 많은 결과는 갤러리에서 확인하실 수 있습니다. 그 중 일부는 커뮤니티에서 기부한 것입니다.
모델 : 툰유
모델: 현실적인 비전 V2.0
참고: AnimateDiff는 디퓨저에서도 공식적으로 지원됩니다. 자세한 내용은 AnimateDiff Diffusers Tutorial을 참조하세요. 다음 지침은 이 저장소를 사용하기 위한 것입니다 .
참고: 모든 스크립트에 대해 체크포인트 다운로드가 자동으로 처리되므로 실행 중인 스크립트를 처음 실행할 때 시간이 더 오래 걸릴 수 있습니다.
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
AnimateDiff를 더 쉽게 사용할 수 있도록 Gradio 데모를 만들었습니다. 기본적으로 데모는 localhost:7860
에서 실행됩니다.
python -u app.py
AnimateDiff는 Stable Diffusion 제품군의 다른 변형에 적용할 수 있는 전송 가능한 모션 사전을 학습하는 것을 목표로 합니다. 이를 위해 우리는 세 단계로 구성된 다음과 같은 학습 파이프라인을 설계합니다.
1. 부정적인 영향 완화 단계에서는 학습 데이터 세트의 결함이 있는 시각적 요소(예: 워터마크)에 맞게 도메인 어댑터 (예: v3_sd15_adapter.ckpt
)를 학습합니다. 이는 또한 움직임과 공간적 외관에 대한 혼란스러운 학습에 도움이 될 수 있습니다. 기본적으로 추론 시 어댑터를 제거할 수 있습니다. 또한 모델에 통합할 수 있으며 그 효과는 lora 스케일러로 조정할 수 있습니다.
2. Learn Motion Priors 단계에서는 비디오에서 실제 모션 패턴을 학습하기 위해 모션 모듈 (예: v3_sd15_mm.ckpt
을 교육합니다.
3. (선택 사항) 새 패턴에 적응 단계에서는 특정 모션 패턴(카메라 확대/축소, 롤링 등)에 모션 모듈을 효율적으로 적용하기 위해 MotionLoRA (예: v2_lora_ZoomIn.ckpt
)를 교육합니다.
SparseCtrl은 일부 희소 입력(예: 소수의 RGB 이미지 또는 스케치 입력)을 채택하여 텍스트-비디오 모델에 더 많은 제어 기능을 추가하는 것을 목표로 합니다. 기술적인 세부 사항은 다음 문서에서 확인할 수 있습니다.
SparseCtrl: 텍스트-비디오 확산 모델에 스파스 컨트롤 추가
Yuwei Guo, Ceyuan Yang✝, Anyi Rao, Maneesh Agrawala, Dahua Lin, Bo Dai (✝교신저자)
이 버전에서는 추론 시 더 많은 유연성을 제공하는 이미지 모델 미세 조정을 위해 도메인 어댑터 LoRA를 사용합니다. 또한 애니메이션 콘텐츠를 제어하기 위해 임의 개수의 조건 맵을 사용할 수 있는 두 개의(RGB 이미지/스크리블) SparseCtrl 인코더를 구현합니다.
이름 | 포옹얼굴 | 유형 | 저장 | 설명 |
---|---|---|---|---|
v3_adapter_sd_v15.ckpt | 링크 | 도메인 어댑터 | 97.4MB | |
v3_sd15_mm.ckpt.ckpt | 링크 | 모션 모듈 | 1.56GB | |
v3_sd15_sparsectrl_scribble.ckpt | 링크 | SparseCtrl 인코더 | 1.86GB | 낙서 상태 |
v3_sd15_sparsectrl_rgb.ckpt | 링크 | SparseCtrl 인코더 | 1.85GB | RGB 이미지 조건 |
입력(RealisticVision 기준) | 생기 | 입력 | 생기 |
입력 낙서 | 산출 | 입력 낙서 | 산출 |
Google Drive / HuggingFace / CivitAI에서 사용할 수 있는 SDXL의 모션 모듈(베타 버전)을 출시하세요. 고해상도 비디오(예: 다양한 화면 비율의 1024x1024x16 프레임)는 개인화된 모델을 사용하거나 사용하지 않고 제작될 수 있습니다. 추론에는 선택한 개인화 모델에 따라 일반적으로 ~13GB VRAM과 조정된 하이퍼 매개변수(예: 샘플링 단계)가 필요합니다.
추론에 대한 자세한 내용은 sdxl 분기를 확인하세요.
이름 | 포옹얼굴 | 유형 | 저장 공간 |
---|---|---|---|
mm_sdxl_v10_beta.ckpt | 링크 | 모션 모듈 | 950MB |
원본 SDXL | 커뮤니티 SDXL | 커뮤니티 SDXL |
이 버전에서는 모션 모듈 mm_sd_v15_v2.ckpt
(Google Drive / HuggingFace / CivitAI)가 더 큰 해상도와 배치 크기에 대해 학습됩니다. 우리는 스케일업 훈련이 모션 품질과 다양성을 향상시키는 데 크게 도움이 된다는 것을 발견했습니다.
8가지 기본 카메라 동작의 MotionLoRA 도 지원합니다. MotionLoRA 체크포인트는 모델당 77MB의 저장 공간 만 차지하며 Google Drive / HuggingFace / CivitAI에서 사용할 수 있습니다.
이름 | 포옹얼굴 | 유형 | 매개변수 | 저장 |
---|---|---|---|---|
mm_sd_v15_v2.ckpt | 링크 | 모션 모듈 | 453M | 1.7GB |
v2_lora_ZoomIn.ckpt | 링크 | 모션로라 | 19M | 74MB |
v2_lora_ZoomOut.ckpt | 링크 | 모션로라 | 19M | 74MB |
v2_lora_PanLeft.ckpt | 링크 | 모션로라 | 19M | 74MB |
v2_lora_PanRight.ckpt | 링크 | 모션로라 | 19M | 74MB |
v2_lora_TiltUp.ckpt | 링크 | 모션로라 | 19M | 74MB |
v2_lora_TiltDown.ckpt | 링크 | 모션로라 | 19M | 74MB |
v2_lora_RollingClockwise.ckpt | 링크 | 모션로라 | 19M | 74MB |
v2_lora_RollingAnticlockwise.ckpt | 링크 | 모션로라 | 19M | 74MB |
확대 | 축소 | 줌 팬 왼쪽 | 오른쪽으로 확대/축소 | ||||
위로 기울이기 | 아래로 기울이기 | 시계 반대 방향으로 롤링 | 시계 방향으로 롤링 | ||||
다음은 mm_sd_v15.ckpt
(왼쪽)와 개선된 mm_sd_v15_v2.ckpt
(오른쪽)를 비교한 것입니다.
AnimateDiff의 첫 번째 버전!
이름 | 포옹얼굴 | 매개변수 | 저장 공간 |
---|---|---|---|
mm_sd_v14.ckpt | 링크 | 417M | 1.6GB |
mm_sd_v15.ckpt | 링크 | 417M | 1.6GB |
자세한 내용은 교육 단계를 확인하세요.
안정적인 확산 WebUI를 위한 AnimateDiff: sd-webui-animatediff(by @continue-revolution)
ComfyUI용 AnimateDiff: ComfyUI-AnimateDiff-Evolved(@Kosinkadink 작성)
Google Colab: Colab(작성: @camenduru)
이 프로젝트는 학술용으로 출시되었습니다. 우리는 사용자 생성 콘텐츠에 대한 책임을 부인합니다. 또한 당사의 유일한 공식 웹사이트는 https://github.com/guoyww/AnimateDiff 및 https://animatediff.github.io이며 다른 모든 웹사이트는 AnimateDiff에서 당사와 연결되어 있지 않습니다.
유웨이 궈: [email protected]
양 Ceyuan:[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를 기반으로 구축된 코드베이스.