이 워크플로는 스테이블 디퓨전을 사용해 댄스 비디오의 주체를 동물로 변경하는 워크플로입니다. 이 워크플로에 사용되는 기법은 아래와 같습니다.
- IP-adapter - 일관된 캐릭터 생성
- 다중 콘트롤넷 - 프레임간의 일관된 움직임
- AnimateDiff - 프레임간의 일광성
- LCM LoRA - 빠른 비디오 생성
목차는 아래와 같습니다.
소프트웨어
이 글에서는 스테이블 디퓨전용 GUI중에서도 빠르면서도 유연하여 사용자 저변을 급속히 확대하고 있는 ComfyUI를 사용합니다. ComfyUI가 처음이시라면,설치 및 기본 사용방법 및 초보가이드를 확인하시기 바랍니다.
워크플로 따라하기
1단계: ComfyUI 워크플로 불러오기
아래의 파일을 다운로드 받아 ComfyUI 화면에 Drag&Drop 합니다. 또는 메뉴에서 Workflow -> Open(Cotl + O)를 선택해도 됩니다.
이 워크플로는 대부분 그냥 그대로 사용할 수 있지만, 때때로 오류가 발생할 수 있습니다. 그러한 경우, 다음과 같은 작업이 필요할 수 있습니다.
- 처음 사용할 때 - ComfyUI Manager 를 설치해야 합니다.
- ComfyUI를 오랜만에 사용할 때 - ComfyUI를 최신버전으로 업데이트해야 합니다.
- 노드가 없다고 (빨간색) 경고가 뜰 때 - 빠진 커스톰 노드를 가져오기해야 합니다.
- 불러오기 혹은 수행중 에러 발생시 - 커스톰 노드를 업데이트해야 합니다.
2단계: 입력 비디오 불러오기
한 사람이 춤을 추는 비디오를 구하여 [Load Video (Upload) 노드에 업로드 합니다.
저는 아래의 비디오를 사용하였습니다. 이 비디오를 다운로드 받아 시험하셔도 됩니다.
비디오의 크기는 원본 비디오의 크기와 맞추어야 합니다.
3 단계: 모델 다운로드
체크포인트 모델
이 글에서는 anime 모델을 사용합니다. IMP v1.0 모델을 다운로드 받아 ComfyUI/models/checkpoints에 넣습니다. (A1111과 모델을 공유할 경우 여기를 보세요.) 그 다음 화면을 Refresh(F5)하고 [Load Checkpoint] 노드에서 모델을 설정합니다.
VAE
이 워크플로는 Stability AI 에서 제공하는 표준 VAE를 사용합니다. FT-MSE-840000 VAE 모델을 다운로드 받아 ComfyUI/mdoels/VAE에 넣습니다. 그 다음 화면을 Refresh(F5)하고 [Load VAE]노드에서 모델을 설정합니다.
IP-adapter
이 워크플로에서는 얼굴과 옷을 일관성있게 유지하기 위해 IP-adapter를 사용합니다. IP adapter 모델을 다운로드 받아, ComfyUI/models/ipadapter 폴더에 넣어줍니다. 그 다음 화면을 Refresh(F5)하고 [Load IPAdapter Model]노드에서 모델을 설정합니다.
SD 1.5 CLIP vision 모델을 다운로드 받고 ComfyUI/models/clip_vision 폴더에 넣어줍니다. 다운로드 받은 파일은 CLIP-ViT-H-14-laion2B-s32B-b79k.safetensors 로 이름을 변경해줍니다. 그 다음 화면을 Refresh(F5)하고 [Load CLIP vision Model]노드에서 모델을 설정합니다.
캐릭터 참조 이미지
[Load Image (IP-adapter)] 노드에 사용할 캐릭터를 위한 참조 이미지를 불러옵니다. 아래의 이미지를 사용하셔도 됩니다.
LoRA
add_detail LoRA를 다운로드 받아 ComfyUI/models/loras 에 넣어줍니다. 이 LoRA는 디테일을 살리는데 도움이 됩니다.
ControlNet
Animal OpenPose ControlNet 모델을 다운로드 받아, ComfyUI/models/controlnet에 넣어줍니다. Soft Edge ControlNet 모델을 다운로드받아 ComfyUI/models/controlnet에 넣어줍니다. 그 다음 화면을 Refresh(F5)하고 [Load Advanced ControlNet Model]노드에서 모델을 설정합니다.
AnimateDiff
Motion Model v0.1 모듈을 다운로드 받아, custom_nodes/ComfyUI-AnimateDiff-Evolved/models에 넣어줍니다.
LCM LoRA
이 워크플로는 LCM_LoRA를 사용하여 이미지 생성 속도를 올리고 있습니다. LCM LoRA 를 다운로드 받아 ComfyUI/models/loras에 넣어줍니다. 또 lcm_lora_sd15.safetensors 로 파일을 바꿔줍니다.
5단계: 비디오 생성
[Queue] 버튼을 누르면 비디오가 생성됩니다.
만약 out-of-memory, 즉 메모리가 부족하다는 에러가 발생할 경우, run_nvidia_gpu.bat 파일에 들어가 아래와 같이 --disable-smart-memory 를 추가해주시면 됩니다.
.python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build --disable-smart-memory
이렇게 했는데도 계속 에러가 발생하면 생성되는 비디오의 크기를 줄여주시면 해결됩니다.
아래는 제가 IP adapter용 이미지와 프롬프트를 바꿔서 생성해본 예입니다. 이 이미지를 생성하는데 사용한 프롬프트는 아래와 같습니다.
프롬프트: anthropomorphic female dog, mini skirt, standing
비디오를 생성할 때 사용한 프롬프트는 아래와 같습니다.
Anthropomorphic female dog, mini skirt, full body, dancing
비디오 변경 방법
씨드(Seed) 값
씨드 값을 변경하면 일관성이 깨지는 문제가 해결될 수도 있습니다.
프롬프트
다른 동물로 바꾸고 싶다면, 프롬프트와 IP-adapter 이미지를 변경하여야 합니다. 두가지가 잘 맞을 수록 좋은 결과를 얻을 수 있습니다.
배경은 그다지 변경되지 않을 것입니다. Soft Edge 콘트롤넷을 사용하고 있기 때문입니다. (참고로 비디오 업로드하는 곳에 있는 노트를 보시면 "비디오에서 배경을 지우려면 Runway에서 그린스크린을 생성하여 입력으로 사용하면 됩니다. https://runwayml.com/에서 무료 계정으로 작업할 수 있습니다."라는 부분이 있습니다. 아직 테스트를 해보지는 않았지만, 배경을 깨끗히 할 수도 있을 것 같네요.)
참고사항
일관된 캐릭터 유지
이 워크플로는 아래와 같이 세가지 요소를 사용하여 캐릭터의 일관성을 유지하고 있습니다.
- ControlNet Openpose
- ControlNet Soft Edge
- IP-adapter
openpose의 경우, 여기에서는 animal openpose를 사용해 자세를 복제하고 있습니다. 그런데 OpenPose만으로는 자세를 일관성있게 유지하기가 힘듧니다. 그래서 여기에서는 Soft Edge를 사용해 대략적인 경계선을 제공하는 방법을 사용합니다.
마지막으로 IP adapter는 얼굴의 모습을 교정하는 역할을 합니다. 이걸 빼게되면 캐릭터가 너무 많이 변하게 됩니다.
체크포인트 모델
체크포인트 모델을 바꾸면 애니메이션 품질에 많은 영향을 미칩니다. 일부 애니 모델의 경우, 깨끗한 이미지를 생성하지 못할 수 있습니다.
LoRA 모델
이 워크플로에서는 두가지 LoRA 모델을 사용합니다.
- Add_detail - 미세한 디테일을 추가합니다.
- LCM LoRA - 생성 속도를 빠르게합니다.
IP-adapter
IP-adapter는 캐릭터 일관성 유지에 매우 중요합니다. 하지만 가중치(weight)를 너무 크게할 경우, 비디오가 흐릿해질 수 있습니다.
ControlNet
이 워크플로에서는 HED Soft Edge 콘트롤넷을 사용합니다. 예전 버전에서는 line art 콘트롤넷을 사용했었는데, HED를 사용하면 경계선이 모호한 편이기 때문에 캐릭터 생성에 유리합니다.
또 [Apply ControlNet] 노드에서 strength와 "end percent"를 낮춤으로써 배경 수정이 많이 일어나지 않도록 하였습니다.
이상입니다.
- ComfyUI로 설치 및 사용법 기초
- ComfyUI 투토리얼
- ComfyUI를 위한 유용한 정보
- ComfyUI와 SDXL 사용법(1) - 기초
- ComfyUI에서 ControlNet 사용법
- 편리한 ComfyUI 워크플로 모음
- LCM-LoRA - 초고속 스테이블 디퓨전
- Stable Video Diffusion(비디오 스테이블 디퓨전)
- Stable Diffusion 인공지능 이미지 생초보 가이드
- Stable Diffusion 대표 UI - AUTOMATIC1111 설치방법
- Automatic1111 GUI: 초보자 가이드(메뉴 해설)
- Stable Diffusion에 대한 기본적인 이론
- ChatGPT로 스테이블 디퓨전 프롬프트 만들기