---
name: dance-character-swap
description: '댄스 영상(SNS 화면 녹화 포함) 한 개와 인물 사진 한 장으로, 영상 속 사람을 그 인물(또는 가상 캐릭터)로 바꾸면서 춤 동작과 원본 노래 타이밍을 그대로 살린 9:16 쇼츠를 처음부터 끝까지 만들 때 쓴다. 인물 시트, 녹화본 루프·UI 정리, Seedance 2.5 교체, 노래 싱크·속도 보정, 내보내기·검수까지. 트리거 예: 이 댄스 영상을 유정이로 바꿔줘, 인물시트로 댄스 영상 사람 바꿔줘, 내 캐릭터로 챌린지 영상 만들어줘, 노래 타이밍 살려서 바꿔줘. English triggers: swap the dancer with my character, replace the person in this dance video using a character sheet, keep the song timing.'
---

# 댄스 영상 인물 교체 (인물 시트 1장 + 원본 노래 유지)

적용 조건: 댄스·퍼포먼스 영상 속 사람을 프로젝트의 인물(사진 1장)로 바꾸고 원본 노래를 살리는 요청일 때만 따른다. 다른 요청이면 무시한다. 화면 이름은 한국어 기준이니 다른 언어 화면에서는 같은 뜻의 이름을 찾고, 답·댓글·보고는 사용자 언어로 쓴다.

## 시작 전에 사용자에게 묻기
이 스킬의 목적은 예시와 똑같은 영상을 다시 만드는 것이 아니라, 사용자만의 영상을 만드는 것이다. 작업을 시작하기 전에 아래 질문을 한 번에 묶어 묻는다.
- 요청에 이미 답이 있는 항목은 묻지 않는다.
- 사용자가 "알아서", "기본값으로"라고 하면 괄호 안 기본값으로 진행한다.
- 아이디어가 없어 보이면 예시와 다른 선택지 2–3개를 짧게 제안한다.
- 답을 받으면 확정한 내용을 한 줄로 요약해 보여 주고 시작한다.

1. 어떤 댄스 영상을, 어느 구간으로 쓸까요? (기본: 노래 한 바퀴 전체)
2. 누구로 바꿀까요? 인물 사진이나 캐릭터를 알려 주세요.
3. 영상에 여러 명이 나오면 누구를 바꿀까요? (기본: 가운데 메인 댄서)
4. 의상은 어떻게 할까요? 원하는 콘셉트가 있으면 알려 주세요. (기본: 원본 댄서의 의상 실루엣)
5. 얼굴이 크게 보이게 화면을 키울까요? (기본: 원본 구도 그대로)

## 1. 기준
- 입력: 댄스 영상 1개(인스타·틱톡 화면 녹화도 됨) + 인물 사진 1장(얼굴이 크고 또렷한 정면, 여러 각도가 한 장에 있으면 더 좋다). '시작 전에 사용자에게 묻기'의 질문 외에는 묻지 않고 진행한다. 의상 지정이 없으면 원본 댄서의 의상 실루엣을 따른다.
- 인물은 본인·동의받은 사람 또는 가상 캐릭터만. 실존 유명인으로 보이면 멈추고 알린다. 원본 영상은 타인 게시물일 수 있으니 외부 공개 전 권리 확인이 필요하다고 보고에 적는다.
- 출력: 9:16, 1080×1920, 30fps, 원본 노래 그대로. 생성 영상은 소리를 끈다(`generateAudio` false).
- 해상도: 최종은 Seedance 2.5 **1080p**로 만든다. 720p 생성본은 1080 편집본에서 확대돼 흐려 보인다(실제 피드백: "화질이 낮다").
- 영상 고르기: 무대 조명이 한 색(빨강·파랑)으로 얼굴을 덮거나 댄서가 화면에서 작으면 교체 후에도 얼굴이 잘 안 보인다. 가능하면 얼굴이 밝고 크게 보이는 구간·영상을 고른다.
- 크레딧(참고, 실제는 `estimate_ai_generation`): 인물 시트 약 20–65 / Seedance 2.5 1080p 15초 약 1,000, 23초 약 1,600 / 720p 23초 약 650.

## 2. 단계
1. `update_task_scope`로 단계를 등록한다. 결과 폴더 아래 `create_folder`: 01_입력, 02_인물시트, 03_원본정리본, 04_AI교체생성, 05_최종, 99_이전버전·탈락. 파일 이동·이름 변경은 `apply_changes` 한 번에 10개 이하로 나눈다(많으면 429).
2. 분석 편집본(1080×1920): 영상을 `add_clips_to_timeline`으로 V1에 넣는다. 연결 오디오가 안 생기면 원본에 소리가 없다(화면 녹화 .mov에서 흔함) → 보고에 적는다. 편집기는 사이드바 `편집` → `영상 편집`으로 연다(주소 이동보다 안정적).
3. 구간 찾기: 프로젝트 미리보기의 `inspect_app_media`는 녹화본 코덱을 자주 못 읽는다. `seek_editor` + `capture_app_screen`으로 1초 간격 → 0.1초 간격으로 본다. 쓸 구간 = 게시물 첫 프레임부터 처음 다시 반복되는 지점 또는 메뉴·스와이프가 덮기 직전까지(예: 0.0–23.0초). 이 구간이 노래 한 바퀴다.
4. 정리: `trim_clip`(includeLinked)으로 자르고, `set_layer_transform`으로 확대해 UI를 화면 밖으로 보낸다(인스타 릴스 scale 1.25·y 0.525, 여백 있는 녹화 scale 1.3·y 0.526). 시작·중간·끝 캡처로 버튼·계정명·캡션이 안 남았는지 본다. `export_draft`(startSeconds·endSeconds) → 03_원본정리본, 이름 `<접두어>_<영상>_원본정리_<길이>s_<노래|무음>`.
5. 인물 시트(Nano Banana Pro `gemini-3-pro-image`, 참조 [인물 사진]): §6-A 프롬프트. 결과를 인물 사진과 나란히 보고 얼굴형·눈·코·입·헤어를 대조한다. 얼굴이 동그래지거나 얼굴 보석·귀걸이·안경이 생기면 실패 → 참조 [인물 사진, 이전 시트]로 "얼굴은 사진과 똑같이, 장식 없음"을 넣어 다시 만든다. 통과본만 02_인물시트에 둔다.
6. 교체 생성(Seedance 2.5): attachmentIds [원본정리본, 인물 시트, 인물 사진] — **사진 원본도 꼭 함께** 넣는다(시트만 넣으면 얼굴이 흐려진다). configs: resolution 1080p, aspectRatio 9:16, durationSeconds = 정리본 길이 올림, generateAudio false. 프롬프트 §6-B. 같은 첨부·설정으로 견적 → `start_ai_generation`. 23초 1080p는 약 13분 걸린다. 끝나면 `rename_file` `<접두어>_<영상>_교체생성_seedance25_1080p_vN` → 04_AI교체생성.
7. 조립: 생성본을 원본 위 트랙(V2/V3)의 같은 시작 시각에 `add_clip_to_timeline`. 1080p는 scale 1.0(720p면 1.5). 노래는 원본 클립의 소리(A1)를 그대로 둔다.
8. 속도 보정(필수): `get_editor_context`의 생성본 `sourceDuration` ÷ 정리본 길이를 `set_clip_speed`에 넣는다(예: 22.708 ÷ 23.0 = 0.9873). 보정 후 끝 지점 자세를 원본과 대조한다.
9. 얼굴 키우기(선택): 댄서가 작으면 `set_layer_transform` scale 1.1–1.15, y 0.52–0.53. 발끝이 조금 잘리는 대신 얼굴이 커진다.
10. 시작 반복 확인: 생성본 첫 1–3초에 같은 동작이 두 번 나오거나 루프 겹침이 있으면 그만큼 앞을 잘라낸다(실제 사례: 23.0초 중 앞 약 2.2초를 잘라 20.8초 최종). 영상과 노래를 함께 자른다.
11. `export_draft` → 05_최종, 이름 `<접두어>_<영상>_<인물>교체_Final_1080p` → `set_file_status` review, 작업 댓글(구간·첨부·속도·배율)을 0초에 `create_comment`.

## 3. 확인
- 첫 프레임 자세가 원본 첫 프레임과 같다.
- 중간·끝: 생성본 레이어 `set_layer_opacity` 0 ↔ 1로 같은 시각 원본과 대조(팔 올림·교차·멈춤 박자).
- 얼굴: 사진과 같은 사람으로 보이는지, 원본 소품(선글라스 등) 잔상, 손 왜곡, 의상 변화, 남은 UI·워터마크.
- 결과 파일 코덱을 못 읽으면 편집기 캡처로 대신하고, 노래 싱크는 사람이 들어야 한다고 보고한다.

## 4. 실패했을 때
- 화질이 낮다: 720p였다면 1080p로 다시. 편집 확대로는 해결되지 않는다.
- 인물로 안 보인다: ①시트 얼굴을 사진과 대조해 다시 만든다 ②첨부에 사진 원본 추가 ③프롬프트에 얼굴 묘사 + "face well exposed and in sharp focus" ④그래도 조명이 덮으면 조명을 중성광으로 바꾸는 문장을 넣어 다시 만들거나 영상을 바꾼다.
- 동작이 어긋난다: 먼저 8번 속도 보정. 그래도 어긋나면 10초 안팎으로 나눠 만들고 잇는다.
- 같은 결함이 두 번 나오면 프롬프트를 더 고치지 말고 영상·구간·모델을 바꾼다.

## 5. 보고 형식
결과 파일(이름·폴더·길이) → 사용 구간(원본 초) → 첨부·설정 → 속도·배율 → 확인한 시점 → 남은 결함(사람이 볼 부분) → 크레딧(견적과 실제 청구 구분).

## 6. 프롬프트 원문
A. 인물 시트: "Character reference sheet of ONE person. Face and hair must exactly match the person in reference 1: same face shape, eyes, nose, lips, skin and hairstyle. Natural light makeup only; no face gems, no glitter, no earrings, no glasses unless the photo has them. Outfit: <의상>. 16:9, plain light grey studio background, photorealistic, soft even light. Top row: three large head-and-shoulders close-ups (front neutral, three-quarter smiling, profile) where the face fills each panel. Bottom row: full body front, three-quarter, back, and one dance pose. Same person and outfit in every panel. No text, no labels, no watermark."
B. 교체: "Edit the attached video (first reference). Replace only the dancer with the person shown in the character sheet (second reference) and the identity photo (third reference). Her face must be clearly recognizable as the person in the third reference in every frame: <얼굴·헤어 묘사>. No glasses, no sunglasses, nothing covering the eyes. Outfit from the character sheet: <의상>. Keep everything else exactly as in the original video, frame by frame: the same choreography, every movement with the same timing and rhythm, the same camera movement and framing, the same set, lighting and crowd. Let the face stay well exposed and in sharp focus. Same duration, starts on the same first frame, one continuous shot with no cuts. Sharp, high-detail cinematic live-action footage. No text, no captions, no app interface, no watermark."

변경 기록: v1.0 2026-10-11 처음 작성 / v1.1 생성본 배율·속도 보정·opacity 대조 / v2.0 2026-10-11 사진 1장 입력으로 일반화, 1080p 기본, 첨부에 사진 원본 추가, 시트 얼굴 대조·재생성, 폴더 구조, 얼굴 키우기, 시작 반복 컷, 조명·크기 주의, 편집기 여는 법, apply_changes 10개 단위 / 2026-10-19 시작 전 질문 추가
