개요
짧은 애니메이션을 만들 수 있는 AnimateDiff의 ComfyUI 버전을 소개할거야.
ComfyUI용 AnimateDiff확장은 두 가지 종류가 있는데, 그 중에서 ComfyUI-AnimateDiff-Evolved를 소개할게.
https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved
목차
- 요구사항
- ComfyUI 설치
- 확장 설치
- 모델 설치
- 기본 동작 및 노드 설명
요구사항
다음을 추천해.
- VRAM 12GB 이상 nVIDIA 그래픽 카드
- 16GB 이상 RAM
- 넉넉한 저장공간 (Comfy + 확장 + 각종 모델만 해도 10GB는 될 거 같아.)
VRAM 8GB에서 동작은 한다지만 controlnet을 사용하거나 vid2vid를 할 때는 그 이상이 사용되더라.
ComfyUI 설치
다만, 최근에 cuda 12.1 버전용 torch와 xformers가 올라와서 아래 링크로 설치하는 걸 추천해.
설치방법:
- 다운로드
- 원하는 경로에 압축 해제
- update\update_comfyui_and_python_dependencies.bat 실행해서 업데이트
- run_nvidia_gpu.bat 실행
WebUI 모델도 연동할 수 있는데, 예전에 소개한 글 참고해.
https://arca.live/b/aiart/82173924
리눅스나 다른 환경이라면 공홈 가이드를 참고하자.
https://github.com/comfyanonymous/ComfyUI#installing
확장 설치
AnimateDiff Evolved를 사용하기 위해서는 다음 확장을 설치해야 돼.
- https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved.git
- https://github.com/FizzleDorf/ComfyUI_FizzNodes
- https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet
- https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite
- https://github.com/Fannovel16/comfyui_controlnet_aux
확장 설치는 아래 두가지 방법이 있어.
- ComfyUI-Manager를 사용 https://github.com/ltdrdata/ComfyUI-Manager
- 직접 설치
** 추가적으로, ffmpeg을 설치해야 할 수 있어. 리눅스(colab, sagemaker, runpod 등)에서 설치는 아래를 참고해.
https://arca.live/b/aiart/88958640
ComfyUI-Manager를 사용
ComyUI-Manager 설치는 아래 방법으로 해.
- cd custom_nodes
- git clone https://github.com/ltdrdata/ComfyUI-Manager.git
- Restart ComfyUI
위 명령을 사용해서 ComfyUI-Manager 설치 후 ComfyUI를 들어가서 아래처럼 확장을 찾아서 설치하면 돼.
직접 설치
comfyui 설치 폴더를 cmd 창으로 연 다음 명령어를 실행하자.
cd custom_nodes
git clone https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved.git
git clone https://github.com/FizzleDorf/ComfyUI_FizzNodes
git clone https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet
git clone https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite
git clone https://github.com/Fannovel16/comfyui_controlnet_aux
cd ..
..\python_embeded\python.exe -m pip install -r custom_nodes\ComfyUI_FizzNodes\requirements.txt
..\python_embeded\python.exe -m pip install -r custom_nodes\ComfyUI-Advanced-ControlNet\requirements.txt
..\python_embeded\python.exe -m pip install -r custom_nodes\ComfyUI-VideoHelperSuite\requirements.txt
..\python_embeded\python.exe -m pip install -r custom_nodes\comfyui_controlnet_aux\requirements.txt
리눅스 환경이라면 위 명령어를 참고로 자기 환경에 맞춰 설치하면 돼.
모델 다운로드
AnimateDiff를 돌릴 모델을 다운로드 해야 돼.
아래 허깅페이스에서 원하는 모델을 다운로드 하자.
https://huggingface.co/guoyww/animatediff/tree/main
https://huggingface.co/CiaraRowles/TemporalDiff/tree/main
브라우저에서 다운로드 후에 custom_nodes\ComfyUI-AnimateDiff-Evolved\models 에 복사하거나
아래 명령어를 실행해서 다운로드 하면 돼.
cd custom_nodes\ComfyUI-AnimateDiff-Evolved\models
curl -L -O https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v15_v2.ckpt
curl -L -O https://huggingface.co/CiaraRowles/TemporalDiff/resolve/main/temporaldiff-v1-animatediff.safetensors
기본 동작 및 노드 설명
우측 Load Default 버튼을 누른 다음 4개 노드를 추가했어.
AnimateDiff Loader / Uniform Context Options
두 노드는 한 몸이라고 보면 돼. context options 값은 다음 역할을 해.
- context_length
몇 프레임 만들지야. animatediff 가 동시에 처리하는 최대 길이래.
AnimateDiff model에 따라 최대 길이가 다른데, v15_v2는 32, temporaldiff는 24까지 지원해. 기본값 16을 추천해. - context_stride
값이 클수록 변화폭이 크다고 해. 보통 기본값으로 두는 듯 - context_overlap
주변 프레임과의 연속성이 높아진다고 해. 값이 높을수록 처리시간도 길어지고 메모리 사용량도 늘어
context_length 말고는 크게 건드릴 필요 없을 듯.
BatchPromptSchedule
FizzNodes 확장에 있는 노드로 각 프레임마다 프롬프트를 지정할 수 있어.
"프레임" :"프롬프트", ... "프레임" :"프롬프트" 형식으로 작성되는데 아래 사항을 주의하자.
- 0으로 시작해서 max_frames-1 로 끝난다.
- 마지막에는 콤마가 없어야 돼.
max_frames는 context_length랑 맞춰주면 돼.
Video Combine
Video Helper Suite 확장에 들어있는 결과를 영상으로 저장하는 노드야.
- frame_rate
1초에 몇 장을 보여줄지야. 8이라면 16장을 만들 경우 2초 분량 영상이 나와. - format
gif, webp 같은 움짤 형식도 지원하고, h264 같은 영상도 지원해. - pingpong
아래처럼 프레임을 역순으로 재생시켜 반복하는 느낌을 줘.
- save_image
워크플로가 저장된 이미지를 함께 저장해.
움짤이나 영상에는 workflow가 들어가지 않으니 활성화해두는 걸 추천해.
결과물 및 workflow
직접 추가해도 어려움이 없겠지만 workflow도 추가할께.
workflow (이미지 클릭 후 다운받아 comfyui에 드래그&드롭 하면 돼) | 결과 |
참고로, 4070에서 36초 정도 걸렸고 VRAM은 9GB 정도 사용했어.
4090에서는 12초 걸렸고, sagemaker studio lab (T4)에서 66초 걸렸어.
참고