개요

짧은 애니메이션을 만들 수 있는 AnimateDiff의 ComfyUI 버전을 소개할거야.


ComfyUI용 AnimateDiff확장은 두 가지 종류가 있는데, 그 중에서 ComfyUI-AnimateDiff-Evolved를 소개할게.

https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved


목차

  1. 요구사항
  2. ComfyUI 설치
  3. 확장 설치
  4. 모델 설치
  5. 기본 동작 및 노드 설명


요구사항

다음을 추천해.

  • VRAM 12GB 이상 nVIDIA 그래픽 카드
  • 16GB 이상 RAM
  • 넉넉한 저장공간 (Comfy + 확장 + 각종 모델만 해도 10GB는 될 거 같아.)

VRAM 8GB에서 동작은 한다지만 controlnet을 사용하거나 vid2vid를 할 때는 그 이상이 사용되더라.


ComfyUI 설치

다만, 최근에 cuda 12.1 버전용 torch와 xformers가 올라와서 아래 링크로 설치하는 걸 추천해.

https://github.com/comfyanonymous/ComfyUI/releases/download/latest/ComfyUI_windows_portable_nvidia_cu121_or_cpu.7z


설치방법:

  1. 다운로드
  2. 원하는 경로에 압축 해제
  3. update\update_comfyui_and_python_dependencies.bat 실행해서 업데이트
  4. run_nvidia_gpu.bat 실행


WebUI 모델도 연동할 수 있는데, 예전에 소개한 글 참고해.

https://arca.live/b/aiart/82173924


리눅스나 다른 환경이라면 공홈 가이드를 참고하자.

https://github.com/comfyanonymous/ComfyUI#installing


확장 설치

AnimateDiff Evolved를 사용하기 위해서는 다음 확장을 설치해야 돼.


확장 설치는 아래 두가지 방법이 있어.

** 추가적으로, ffmpeg을 설치해야 할 수 있어. 리눅스(colab, sagemaker, runpod 등)에서 설치는 아래를 참고해.

https://arca.live/b/aiart/88958640


ComfyUI-Manager를 사용


ComyUI-Manager 설치는 아래 방법으로 해.

  1. cd custom_nodes
  2. git clone https://github.com/ltdrdata/ComfyUI-Manager.git
  3. 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초 걸렸어.



참고