---
name: multicut-dance-multi-swap
description: 여러 컷으로 된 댄스 영상에서 인물 2명 이상을 각각 지정한 인물/캐릭터 시트로 교체하고, AI 생성은 무음으로 한 뒤 원본 음성을 편집기에서 합쳐 완성본을 만든다.
version: 1.1
---

# 멀티컷 댄스 영상 다인물 교체 (무음 생성 + 원본 음성 합성)

## 적용 조건
- 원본 댄스/퍼포먼스 영상 1개 + 교체할 인물별 참조 시트(인물시트, 캐릭터 시트) 2개 이상이 있다.
- "인물 교체", "캐릭터로 바꿔", "원본 음성 유지" 같은 요청.
- 음성/음악은 원본 그대로 써야 한다(모델 음성 출력 금지).
- 해당하지 않으면 이 스킬을 쓰지 않는다.

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

1. 바꿀 사람은 몇 명이고, 각자 어떤 캐릭터(시트)로 바꿀까요?
2. 원본에서 누가 누구인지 위치나 의상으로 알려 주세요.
3. 의상이나 소품을 바꾸고 싶은 것이 있나요? (기본: 시트의 의상 그대로)
4. 모델과 예산은요? (기본: Seedance 2.5, 견적 합계를 먼저 보여 줌)
5. 원본 음성을 그대로 쓸까요? (기본: 그대로)

## 입력 확인
1. 원본 영상 fileId, 길이, 프레임레이트(get_editor_context frameRate), 컷 경계 시점.
2. 인물 배정: 원본의 누구(좌/우, 의상 등) → 어떤 시트인지. 화면 위치가 바뀌는 컷이 있으면 컷마다 배정을 적어 둔다.
3. 모델과 예산. 지정이 없으면 사용자에게 묻는다.

## 1. 원본 구간 나누기
- 원본을 7초 안팎 구간으로 나눈다(예: 0–7, 6.2–13.2, 끝 4초). 구간은 0.5–1초씩 겹치게 잡는다.
- 구간 경계는 컷 경계 근처에 둔다. 동작 한가운데에서 자르지 않는다.
- 각 구간을 편집기에서 범위 내보내기(export_draft start/end)로 참조 영상 파일로 만든다.

## 2. 구간별 생성 (무음)
- 모델: 사용자가 지정한 모델(예: Seedance 2.5).
- configs: resolution 1080p, aspectRatio 16:9(원본 비율), duration = 구간 길이, **generateAudio: false**.
- attachmentIds: [구간 참조 영상, 인물시트 A, 인물시트 B].
- 프롬프트: "참조 영상의 카메라·컷·안무·타이밍을 프레임 단위로 그대로 유지. 왼쪽(또는 ○○ 의상) 인물 → 시트 A, 오른쪽 인물 → 시트 B. 배경·조명·카메라 유지. 컷 순서와 길이 변경 금지. 음성 없음."
- 견적 → maxCredits = 견적값으로 시작. 견적 도구가 실패하면 maxCredits를 작게 넣어 거절 응답의 견적을 확인하는 방법도 있다(생성되지 않음).
- 같은 구간도 **다른 테이크(이전 생성본, 전체 1회 생성본 등)를 지우지 말고 보관**한다. 5단계에서 대체 소스로 쓴다.

## 3. 타임라인 조립 (레이어 구조)
- V1: 원본 영상, 불투명도 0. 맞춤 기준이며 화면에는 보이지 않음.
- A1: 원본 음성 1.0. 생성본 소리는 쓰지 않는다.
- V2: 보조 테이크(이전 생성본 등). V3에 빈 곳이 생기면 이 트랙이 보인다.
- V3: 주 테이크(구간별 재생성본).
- 모든 생성 클립은 scale을 맞춰 가장자리 검은 테두리를 없앤다(예: 1.0032).
- 생성본은 컷이 약 5프레임 일찍 나오는 경향이 있다. 원본 컷 경계에 맞춰 +5프레임 정도 뒤로 둔다(move_clips deltaFrames).

## 4. 속도 맞춤
- 기본은 **1.0배속 위치 맞춤**. 배속을 크게 바꾸면 끊기거나 버벅이는 것처럼 보인다.
- 원본과 어긋나는 긴 구간만 split_clip으로 나눠 0.94–1.06배 안에서 보정한다.
- 그 범위로 안 맞는 구간은 배속을 더 바꾸지 말고 5단계 대체 또는 재생성으로 해결한다.

## 5. 문제 구간 잘라 내고 대체 (v1.1 추가)
- 생성 구간은 **뒷부분일수록 원본과 어긋나기 쉽다**(인물 좌우 배정 뒤바뀜, 동작 흐트러짐 등).
- 원본(V1 불투명도를 잠시 올리거나 원본 파일 프레임)과 대조해 어긋나기 시작하는 시점을 찾는다.
- 그 시점에서 V3 클립을 trim_clip으로 잘라 낸다. 잘린 자리는 V2 보조 테이크가 그대로 보인다.
- 짧은 구간(2초 안팎)이면 보조 테이크의 배속이 1.0이 아니어도(예: 약 1.26배) 동작·배정이 원본과 맞는 쪽을 쓴다.
- 모든 테이크가 어긋날 때만 그 구간을 새로 생성한다(비용 발생 → 견적 먼저).
- 사례: 0.167–4.733초는 주 테이크, 4.733–6.7초는 보조 테이크, 6.7초 이후는 다시 주 테이크.

## 6. 검수
- 편집기에서 컷 경계와 각 구간 중간을 포함해 15–20개 시점을 원본 프레임과 비교한다(inspect_app_media times).
  - 확인 항목: 컷 타이밍(±2프레임), 인물 배정(좌/우), 동작 일치, 얼굴·의상이 시트와 일치하는지, 가장자리 테두리.
- 어긋난 시점이 나오면 4–5단계로 고치고 다시 확인한다.
- 생성 클립 사이 빈 프레임(검은 화면)이 없는지 타임라인 수치로 확인한다.

## 7. 내보내기와 마무리
- export_draft로 MP4를 내보내 결과 폴더에 저장하고, 결과 파일로 다시 여러 시점을 확인한다.
- 이름: `{프로젝트}_인물교체_완성본_원본음성_vN.mp4`.
- 상태는 검토 필요(review). 승인됨은 사람만 지정한다.
- 작업 메모 댓글: 사용 모델·설정·프롬프트·구간·참조·대체 구간·실제 청구 크레딧·남은 확인 사항.
- 소리 싱크(노래와 동작)는 도구로 들을 수 없으면 사람이 들어 보도록 보고에 남긴다.

## 비용 기록
- 구간별 견적과 실제 청구(get_ai_generation_status billedCredits)를 따로 적는다.
- 참고: 1080p 7초 약 462, 4초 약 250 크레딧(2026-10 기준, 실제 견적이 우선).

## 변경 기록
- 2026-10-19 시작 전 질문 추가.
- v1.1: 사용자 최종본(완성본 v1) 방식 반영. 주/보조 테이크를 겹치는 트랙 구조, 문제 구간을 잘라 내고 보조 테이크로 대체하는 단계(5단계) 추가, 짧은 대체 구간의 배속 예외 명시.
- v1.0: 구간 생성 + 1.0배속 위치 맞춤 + 원본 대조 검수(에이전트 v3 기준).
