워크플로우 튜토리얼
Wan 2.2 Animate: 캐릭터 교체 및 립싱크
카메라에 잡힌 어떤 연사든지 원본 오디오에 맞게 움직임, 표정 및 입 모양을 맞추면서 자신의 캐릭터로 교체할 수 있습니다. 이 ComfyUI 워크플로우는 Wan 2.2 Animate: 캐릭터 교체 및 립싱크를 중심으로 구축되어, 입력 비디오에서 신체 자세와 얼굴 프레임을 감지하고 이를 단일 참조 이미지로 재지정하여 일관된, 말과 동기화된 결과를 렌더링합니다.
이 워크플로우는 인터뷰, 릴, VTubing, 슬라이드, 더빙된 단편을 위한 신뢰할 수 있는 캐릭터 교체를 원하는 편집자, 제작자 및 연구자에게 적합합니다. 소스 클립과 하나의 깨끗한 참조 이미지를 제공하면, 파이프라인이 새 캐릭터의 포즈와 입 움직임을 재현하고 원본 사운드트랙을 최종 출력에 결합합니다.
Comfyui Wan 2.2 Animate: 캐릭터 교체 및 립싱크 워크플로우의 주요 모델
- Wan 2.2 Animate 14B (FP8 스케일): 포즈, 얼굴 및 컨텍스트 신호를 사용하여 프레임 전반에 걸쳐 대상 캐릭터를 합성하는 핵심 비디오 생성기입니다. Model hub
- Wan 2.1 VAE (bf16): 샘플링 및 출력 중에 Wan이 사용하는 비디오 잠재 변수들을 인코딩/디코딩합니다. Weights
- UMT5‑XXL 텍스트 인코더 (bf16): 간단한 프롬프트나 샷 설명자를 위한 텍스트 임베딩을 생성합니다. Weights
- CLIP Vision H: 참조 초상화에서 강력한 이미지 특징을 추출하여 정체성을 보존합니다. Weights
- Lightx2v I2V 14B LoRA: 참조 프레임을 사용하여 구동할 때 이미지-비디오 안정성과 충실도를 향상시킵니다. LoRA
- Wan22 Relight LoRA: 샷 전반에 걸쳐 일관된 쉐이딩 및 재조명을 유지하는 데 도움을 줍니다. LoRA
- YOLOv10m (ONNX): 포즈 추정 전에 사용되는 빠른 사람/얼굴 감지. Model
- ViTPose WholeBody Large (ONNX): 전체 신체 모션 전송을 위한 고품질 골격 키포인트. Model
- Segment Anything 2.1: 교체를 안내하는 깨끗한 전경 마스크를 위한 세그먼테이션. Repo
Comfyui Wan 2.2 Animate: 캐릭터 교체 및 립싱크 워크플로우 사용 방법
그래프는 입력 로드, 참조 빌드, 포즈/얼굴 및 마스크 전처리, 생성 모델 로드, 캐릭터 교체 실행, 진단 미리보기, 그런 다음 오디오와 함께 내보내기 등 7개의 그룹을 통해 이동합니다.
비디오 로드
VHS_LoadVideo (#63)를 사용하여 소스 클립을 가져옵니다. 노드는 리사이징을 위한 선택적 너비/높이를 노출하고, 비디오 프레임, 오디오 및 프레임 수를 다운스트림 사용을 위해 출력합니다. 더 빠른 처리를 원한다면 클립을 말하는 부분 근처로 잘라두십시오. 오디오는 익스포터에 전달되어 최종 비디오가 원본 사운드트랙과 일치하도록 합니다.
참조 이미지
대상 캐릭터의 단일, 깨끗한 초상화를 제공하십시오. 이미지는 작업 해상도에 맞추기 위해 ImageResizeKJv2 (#64)로 리사이징되며, CLIP Vision 및 생성기가 사용하는 정식 참조로 저장됩니다. 소스 샷과 유사한 조명 아래 선명하고 정면을 향한 이미지를 선호하여 색상 및 음영 드리프트를 줄이십시오.
전처리
OnnxDetectionModelLoader (#178)이 YOLO 및 ViTPose를 로드한 후, PoseAndFaceDetection (#172)이 각 프레임을 분석하여 전체 신체 키포인트 및 프레임별 얼굴 크롭을 생성합니다. Sam2Segmentation (#104)은 감지된 바운딩 박스나 키프레임 포인트를 사용하여 전경 마스크를 생성합니다; 하나의 힌트가 실패하면 더 나은 분리를 위해 다른 힌트로 전환하십시오. 마스크는 GrowMaskWithBlur (#182)로 정제되고, BlockifyMask (#108)로 블록화되어 생성기에 안정적이고 명확한 주제 영역을 제공합니다. 선택적 오버레이(DrawViTPose (#173) 및 DrawMaskOnImage (#99))를 사용하여 생성 전에 포즈 범위 및 마스크 품질을 시각적으로 확인할 수 있습니다.
모델
WanVideoModelLoader (#22)은 Wan 2.2 Animate 14B를 로드하고, WanVideoVAELoader (#38)은 VAE를 제공합니다. 참조 초상화의 정체성 특징은 CLIPVisionLoader (#71) 및 WanVideoClipVisionEncode (#70)에 의해 인코딩됩니다. 스타일과 안정성은 WanVideoLoraSelectMulti (#171)로 조정되며, WanVideoSetLoRAs (#48) 및 WanVideoSetBlockSwap (#50)은 모델에 LoRAs 및 블록 교체 설정을 적용합니다; 이 도구들은 Wan 래퍼 라이브러리에서 제공됩니다. 구현 세부사항은 ComfyUI‑WanVideoWrapper를 참조하십시오.
캐릭터 교체
WanVideoTextEncodeCached (#65)은 외관이나 샷 분위기를 약간 조정하려는 경우 짧은 설명 프롬프트를 수용합니다. WanVideoAnimateEmbeds (#62)은 참조 이미지, 프레임별 포즈, 얼굴 크롭, 배경 및 마스크를 이미지 임베딩으로 결합하여 정체성을 보존하면서 움직임 및 입 모양을 일치시킵니다. 그런 다음 WanVideoSampler (#27)은 프레임을 렌더링합니다; 스케줄러와 단계는 선명도-움직임 균형을 제어합니다. WanVideoDecode (#28)에서 디코딩된 프레임은 크기/수 검사기에 전달되어 내보내기 전에 치수를 확인할 수 있습니다.
결과 콜라주
빠른 QA를 위해, 워크플로우는 ImageConcatMulti (#77, #66)를 사용하여 참조, 얼굴 크롭, 포즈 시각화 및 원시 프레임의 간단한 비교 스트립을 형성합니다. 테스트 패스 직후 정체성 단서 및 입 모양을 sanity-check하는 데 사용하십시오.
출력
VHS_VideoCombine (#30)은 최종 비디오를 생성하고 원본 오디오를 결합하여 완벽한 타이밍을 제공합니다. 추가 익스포터가 포함되어 있어 중간 진단이나 대체 컷을 저장할 수 있습니다. 긴 클립에서 최상의 결과를 얻으려면 먼저 짧은 테스트를 내보낸 다음 전체 렌더링을 수행하기 전에 LoRA 믹스 및 마스크를 반복하십시오.
Comfyui Wan 2.2 Animate: 캐릭터 교체 및 립싱크 워크플로우의 주요 노드
VHS_LoadVideo (#63) 프레임과 원본 오디오를 한 번에 로드합니다. GPU 예산에 맞는 작업 해상도를 설정하고 다운스트림 노드가 사용할 프레임 수를 확인하는 데 사용하십시오. ComfyUI‑VideoHelperSuite에서 제공됩니다.
PoseAndFaceDetection (#172) YOLO 및 ViTPose를 실행하여 사람 상자, 전체 신체 키포인트 및 프레임별 얼굴 크롭을 추출합니다. 좋은 키포인트는 믿을 수 있는 움직임 전송의 기반이며 입 움직임을 직접 재사용합니다. ComfyUI‑WanAnimatePreprocess에서 제공됩니다.
Sam2Segmentation (#104) 바운딩 박스나 키프레임 포인트 힌트를 사용하여 주위에 전경 마스크를 생성합니다. 머리카락이나 손이 누락된 경우 힌트 유형을 전환하거나 블러/성장 설정을 확장한 후 블록화하기 전에 마스크를 약간 확장하십시오. ComfyUI‑segment‑anything‑2에서 제공됩니다.
WanVideoLoraSelectMulti (#171) Lightx2v 및 Wan22 Relight 같은 LoRAs를 혼합하여 움직임 안정성, 조명 일관성 및 정체성 강도를 균형 있게 조정할 수 있습니다. 더 많은 영향을 위해 LoRA의 가중치를 증가시키되, 얼굴에 과도한 스타일링이 발생하지 않도록 주의하십시오. ComfyUI‑WanVideoWrapper에서 제공됩니다.
WanVideoAnimateEmbeds (#62) 참조 초상화, 포즈 이미지, 얼굴 크롭, 배경 프레임 및 마스크를 결합하여 Wan 2.2 Animate를 조건화하는 컴팩트한 표현을 만듭니다. width, height, num_frames가 의도한 내보내기와 일치하도록 하여 리샘플링 아티팩트를 피하십시오. ComfyUI‑WanVideoWrapper에서 제공됩니다.
WanVideoSampler (#27) 최종 프레임을 생성합니다. 더 선명한 세부 사항이 필요할 때는 더 높은 단계와 더 안정적인 스케줄러를 사용하고, 빠른 미리보기를 위해 가벼운 스케줄을 사용하십시오. 매우 긴 클립에서는 WanVideoContextOptions (#110)을 연결하여 창 전반에 걸쳐 시간적 일관성을 유지할 수 있도록 컨텍스트-윈도우 제어를 도입할 수 있습니다.
VHS_VideoCombine (#30) 완성된 비디오를 내보내고 원본 오디오를 결합하여 입 움직임이 동기화되도록 합니다. 오디오에 맞춰 트림 옵션이 제공되어 사운드트랙과 지속 시간을 일치시킵니다. ComfyUI‑VideoHelperSuite에서 제공됩니다.
추가 옵션
- 깨끗한 정체성 전송을 위해 중립적인 입술을 가진 날카로운 정면 참조를 사용하십시오; 화장이나 폐색을 피하십시오.
- 세그먼테이션이 머리카락이나 액세서리를 놓친 경우,
Sam2Segmentation힌트를 바운딩 박스와 키프레임 포인트 간에 전환한 후 마스크를 약간 확장하십시오. - Lightx2v LoRA는 I2V 안정성을 향상시킵니다; Wan22 Relight LoRA는 일관성 없는 조명을 일치시키는 데 도움을 줍니다. 작은 가중치 변경은 깜박임을 해결할 수 있지만 외관을 과도하게 굽히지 않도록 주의하십시오.
- 블록 교체는 긴 샷에서 정체성 드리프트를 줄일 수 있습니다; 얼굴이 시간이 지남에 따라 부드러워지면
WanVideoSetBlockSwap(#50)에서 활성화하고 다시 테스트하십시오. - 작업 해상도를 소스와 비례하여 유지하여 비율 왜곡을 방지하십시오; 참조 이미지가 이를 지원할 만큼 충분히 상세한 경우에만 크기를 늘리십시오.
- 실행 가능한 런타임의 경우, 래퍼 노드에서 torch 컴파일 및 효율적인 주의를 활성화하면 샘플링 속도를 높일 수 있습니다; ComfyUI‑WanVideoWrapper에서 지침을 참조하십시오.
이 Wan 2.2 Animate: 캐릭터 교체 및 립싱크 워크플로우는 최소한의 설정으로 일관된 움직임 전송 및 말과 동기화된 입 모양을 제공하여 ComfyUI 내에서 고품질 캐릭터 교체를 빠르고 반복 가능하게 만듭니다.
감사의 말
이 워크플로우는 다음 작업 및 리소스를 구현하고 확장합니다. 전체 워크플로우를 구축한 @MDMZ, Wan 2.2 Animate 및 관련 ComfyUI 노드를 제공한 Kijai, YOLOv10m 감지를 포함한 Wan2.2-Animate 자산을 제공한 Wan-AI, 그리고 Wan 2.1 Clip Vision 모델을 제공한 Comfy-Org의 기여 및 유지보수에 감사드립니다. 권위 있는 세부 사항은 아래에 연결된 원본 문서 및 저장소를 참조하십시오.
리소스
- 워크플로우 튜토리얼
- Youtube: ComfyUI-Tutorial from @MDMZ
참고: 참조된 모델, 데이터셋 및 코드는 각 저자 및 유지보수자가 제공하는 라이선스 및 조건에 따라 사용됩니다.
