# 얼굴 교체 재제작 v4 — 생성과 합성 분리

원본: Artem Podrez / Pexels https://www.pexels.com/video/a-woman-waiving-her-hand-4492700/
권리: https://www.pexels.com/legal-pages/license/ — 교육용 발췌·크롭·AI 수정. 등장인물의 서비스 보증을 의미하지 않습니다.
참조: 로컬 DreamShaper8로 만든 가상 성인 남성. 실제 인물 신원 주장 아님.

## 무엇을 바꿨는가
384×224 전체 재생성 대신 원본 2560×1440의 x=850,y=60,w=900,h=900 영역을 512×512로 생성했습니다. 73프레임 / 24fps / 3.042초입니다. 최종 캔버스는 원본을 축소한 1280×720이며, 얼굴 생성 해상도와 다릅니다. 4-step Turbo 조합은 유지했으므로 더 많은 스텝에 따른 개선이라고 설명하지 않습니다. 여러 조건이 달라 엄밀한 단일 변수 비교는 아닙니다.

## 1. 생성
ComfyUI-VideoHelperSuite와 H3 Ref2VA INT8, 전용 Turbo 4-step LoRA, MiniMax용 Qwen3-VL NVFP4, H3 Video VAE를 준비합니다. WORKFLOW_UI.json을 ComfyUI에 불러옵니다. face-crop-v4.mp4와 fictional-man.png를 각각 VHS_LoadVideo와 LoadImage에서 선택합니다. MiniMaxH3ReferenceToVideo의 ref_videos.ref_video_0 / ref_images.ref_image_0에 연결합니다. 원본 긴 머리는 유지하고 얼굴·수염만 바꾸는 구조화된 프롬프트를 사용합니다. 출력: generated.mp4.

## 2. 추적과 정렬 — 별도의 로컬 전처리
Comfy-Org MediaPipe 모델로 원본과 생성 영상의 얼굴 랜드마크를 측정했습니다. 눈·코 5개 지점으로 similarity 변환을 추정하고 5프레임 중앙값으로 안정화했습니다. 원본 얼굴 윤곽을 0.98배로 축소하고 512px 기준 12px feather + 볼·이마 색 보정를 적용했습니다. 이 단계는 제공 Python 스크립트에서 실행한 작업이며 생성 JSON 하나에 포함된 기능이 아닙니다. 제공된 정렬 영상과 매트는 이 예제 전용입니다. 새 영상을 생성하면 다시 추적·정렬해야 합니다.

## 3. ComfyUI 합성
COMPOSITE_UI.json을 불러옵니다. source-hd-v4.mp4 / face-aligned-v4.mp4 / face-matte-v4.mp4를 세 VHS_LoadVideo에 지정합니다. 매트 영상 → ImageToMask(red). 원본 → ImageCompositeMasked.destination, 정렬 영상 → source, 매트 → mask. x=425,y=30,resize_source=false. CreateVideo=24fps → SaveVideo. 실제 API 실행을 확인한 구성입니다. UI 프런트엔드 로딩은 별도 확인이 필요합니다.

## 수정 순서
- 다른 얼굴: 얼굴 참조만 교체하고 seed 고정 → 생성 → 랜드마크 재추출 → 합성.
- 흔들림: 정렬에 사용한 지점과 smoothing을 확인. 지나친 smoothing은 동작을 늦춥니다.
- 경계: feather와 원본 얼굴 윤곽을 수정. 큰 feather로 정렬 오류를 숨기지 않습니다.
- 피부색: 얼굴의 조명과 피부색을 샷 기준으로 맞춤. 수염까지 원본 피부색으로 바꾸지 않습니다.
- 손 가림: 이 샷은 입을 가리기 전 구간입니다. 뒷부분으로 늘리면 손 holdout과 가림 후 동일성 검수가 필요합니다.

## 재현 파일
GENERATION API/UI, COMPOSITE API/UI, 영상 입력과 정렬 매트가 포함됩니다. prepare/generate 및 track/align Python 스크립트는 companion_scripts에 있습니다. 현재 작업 PC의 경로가 제거된 템플릿이며 COMFY_ROOT 환경변수를 맞춰야 합니다. 모델 가중치는 포함하지 않습니다.

## 검수
실행 성공은 납품 승인과 다릅니다. 원본 밖 영역 보존, 얼굴 동일성, 표정·시선, 턱·헤어 경계, 프레임 연속성을 확인합니다. 새 얼굴 자체가 원본보다 선명한지와 배경 보존에 의한 전체 화질 개선을 구분하세요.
