---
name: multicut-chase-dual-swap
description: '멀티컷 추격·액션 영상(16:9 또는 9:16, 약 10–20초)에서 인물 두 명을 프로젝트 인물(실사)과 캐릭터 시트(카툰 등)로 동시에 바꿀 때 쓴다. Seedance 2.5 영상 교체를 기본으로 하고, 전체 생성이 실패하면 컷 단위로 나눠 생성한다. 실존 인물 얼굴 클로즈업처럼 계속 막히는 컷은 첫 프레임 이미지를 새로 만든 뒤 이미지→영상으로 채우고, 원본 음원을 편집기에서 합쳐 Final을 만든다. 트리거 예: 이 영상 두 사람 바꿔줘, 라이더는 유정이로 추격자는 캐릭터 시트로, 생성 실패하면 소리 끄고 원본 음원 합쳐줘, 추격 영상 인물 교체. English: swap both people in this chase clip, rider to my character and chaser to the character sheet, if it fails turn audio off and merge the original sound.'
---

# 멀티컷 2인 교체 (Seedance 2.5 + 컷 분할 + 막힌 컷 첫 프레임 대체)

적용 조건: 컷이 여러 개 있는 짧은 영상에서 인물 2명 이상을 각각 다른 참조(인물 사진·캐릭터 시트)로 바꾸는 요청일 때 쓴다. 한 사람만 바꾸는 춤 영상은 dance-character-swap을 쓴다. 답변과 보고는 사용자 언어로 한다.

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

1. 원본 영상은 무엇인가요?
2. 두 사람을 각각 누구로 바꿀까요? 예: 앞사람은 인물, 뒷사람은 캐릭터 시트
3. 의상과 소품은요? (기본: 인물 시트의 의상, 소품 없음)
4. 탈것과 배경은 원본 그대로 둘까요? (기본: 원본 그대로)
5. 모델과 예산은요? (기본: Seedance 2.5, 견적을 먼저 보여 줌)

## 1. 결론 (실제 결과 기준)
- 사용자가 Seedance 2.5를 지정하면 그대로 쓴다. 영상 교체 첨부는 [원본(또는 구간 참조), 인물 시트, 캐릭터 시트] 순서로 넣는다.
- **전체 길이(18초)를 한 번에 생성하면 실패할 수 있다.** 소리를 켜도 꺼도 `SERVICE_UNAVAILABLE`로 약 12분 재시도 후 FAILED가 됐다(청구 0). 소리를 끄는 것만으로는 해결되지 않았다.
- **실패 원인은 실존 배우 얼굴 클로즈업 컷이 포함된 구간일 가능성이 크다.** 그 컷이 든 구간(11초·6초)은 계속 실패했다. 그 컷을 뺀 구간(5.1초·3.7초·7.7초)은 모두 성공했다.
- 해결 방법:
  1. 원본을 컷 경계에서 나눠 구간 참조 영상으로 내보낸다.
  2. 구간마다 Seedance 2.5로 교체한다(소리 끔).
  3. 막힌 클로즈업 컷은 Nano Banana Pro로 같은 구도의 첫 프레임을 만들고, Seedance 2.5 이미지→영상으로 채운다.
  4. 편집기에서 이어 붙이고 원본 음원을 그대로 깐다.
- 크레딧 참고(실제 청구액, 1080p 16:9 소리 끔):

  | 항목 | 견적 | 실제 청구 |
  |---|---|---|
  | 4초 | 370 | 250 |
  | 6초 | 495 | 356 |
  | 8초 | 670 | 497 |
  | 이미지→영상 4초 | 270 | 238 |
  | Nano Banana Pro 이미지 | 50 | 15 |

  18초 전체 견적은 1,450이고, 실패한 생성은 청구 0이다.

## 2. 단계
1. **원본 확인**
   - 프로젝트 미리보기에서는 코덱 디코딩이 막히는 경우가 많다. 원본을 편집기에 넣고 seek_editor와 capture_app_screen(캔버스 ref)으로 본다.
   - 컷 위치를 0.1초 단위까지 좁혀 적는다. 예: 5.133 / 6.7 / 10.433초.
   - 컷마다 누가, 어떤 크기로 나오는지 표로 만든다(예: 라이더 정면 / 추격자 얼굴 클로즈업 / 둘이 나란히 / 드론 와이드).
2. **편집본**
   - 사용자 편집본은 수정하지 않는다. 새 편집본에서 작업한다.
   - 원본 비율과 같은 캔버스를 쓴다. 비율 버튼이 안 보이면 같은 비율 편집본을 "복제"한 뒤 클립을 비우고 쓴다. 이 경우 반드시 새 이름을 붙이고, 원본 편집본은 건드리지 않는다.
   - 원본이 캔버스보다 작게 놓이면 set_layer_transform의 scale로 꽉 채운다(1280×720 → 1920×1080은 1.5).
3. **인물 시트**(Nano Banana Pro)
   - 인물 사진을 참조로 넣고 "exactly the same face, same hair"를 지시한다.
   - 의상과 소품(예: 레이싱 슈트, 아이패드)을 정하고 턴어라운드, 얼굴 클로즈업, 액션 포즈를 한 장에 담는다.
   - 글자와 로고는 넣지 않는다. 결과 얼굴이 사진과 같은지 직접 대조한다.
4. **1차 시도: 전체 생성**(Seedance 2.5, 1080p, 원본 길이, 원본 비율)
   - 소리 켬 → 실패하면 소리 끔으로 1회 더 시도한다. 그래도 실패하면 바로 컷 분할로 넘어간다. 같은 조건 재시도는 최대 1회만 한다.
5. **컷 분할**
   - export_draft의 구간 지정으로 구간 참조를 내보낸다. 이름 예: `<접두어>_원본참조A1_0.000-5.133s.mp4`.
   - 큰 구간이 실패하면 더 잘게 나눈다. 실패를 반복하는 컷(얼굴 클로즈업)은 따로 떼어낸다.
6. **구간별 교체**(Seedance 2.5, 소리 끔)
   - 길이는 참조 길이를 올림한 값으로 한다(최소 4초).
   - 프롬프트는 §5-A를 쓴다. 구간마다 그 컷에 나오는 인물 순서대로 지시한다(앞에 나오는 사람을 1번으로).
7. **막힌 컷 대체**
   - Nano Banana Pro에 캐릭터 시트를 참조로 넣고, 원본 컷과 같은 구도·조명·탈것의 첫 프레임을 만든다(§5-B).
   - Seedance 2.5에 그 이미지 1장만 첨부하고, 이미지→영상 4초로 만든다(§5-C).
8. **조립**
   - V1에 원본 영상(가려짐)과 A1에 원본 음원을 그대로 둔다.
   - 생성 클립은 V2/V3에 컷 위치대로 놓는다. 겹치면 다른 트랙에 놓는다.
   - 생성 길이가 참조와 다르면 set_clip_speed로 맞춘다. 실측 예: 5.03초 → 0.9805배, 4.03초를 3.73초로 → 1.0804배. ±10% 안이면 자연스럽다.
   - 대체 클립은 trim_clip으로 컷 끝에서 자른다.
   - 각 구간 중간 지점을 캡처해 교체가 됐는지 확인한다.
9. **내보내기와 마무리**
   - 원본과 같은 폴더(또는 지정 폴더)로 내보낸다. 이름: `<접두어>_<인물>_<캐릭터>_최종_원본음원_v1.mp4`.
   - set_file_status를 review로 바꾼다.
   - 0초 지점에 작업 메모 댓글을 남긴다(구간표, 파일 ID, 배속, 확인 필요 항목).
   - 생성 파일 이름을 구간·모델·버전이 드러나게 바꾼다.

## 3. 확인
- 인물 시트: 얼굴과 헤어가 사진과 같은지, 글자와 로고가 없는지 본다.
- 구간마다: 얼굴, 의상, 소품(아이패드 등)이 보이는지 확인한다. 캐릭터가 탈것 위치에 맞게 바뀌었는지, 원본 인물이 남지 않았는지 본다.
- 경계: 컷 경계 앞뒤 프레임이 이어지는지, 원본 음원 효과음 타이밍과 맞는지 본다.
- 최종 파일은 코덱 제한으로 일부 시점만 캡처될 수 있다. 캡처하지 못한 범위와 소리 싱크는 사람이 확인해야 한다고 보고한다.

## 4. 실패했을 때
- `SERVICE_UNAVAILABLE`이 상태 PROCESSING 중에 붙어 있어도 서버가 재시도하는 중일 수 있다. 최종 FAILED가 될 때까지 기다리고, 같은 요청은 새로 내지 않는다.
- 같은 구간이 두 번 실패하면 더 잘게 나누거나, 그 컷을 첫 프레임 대체로 바꾼다. 프롬프트만 고쳐서 반복하지 않는다.
- 소품(아이패드)이 사라지는 문제: 원본 자세가 두 손을 쓰는 컷에서는 빠지기 쉽다. 꼭 필요하면 그 컷만 첫 프레임을 만들어 이미지→영상으로 다시 만든다.
- 브랜드 글자 이미지를 첨부하면 PROVIDER_REJECTED가 날 수 있다. 글자는 프롬프트로 지시하거나 편집기 텍스트로 넣는다.
- 실패한 생성은 영상 없는 빈 항목으로 폴더에 남는다. 삭제는 사용자에게 묻는다.

## 5. 프롬프트 원문
A. 구간 교체:
"Video edit of reference video 1. Keep everything from reference video 1 exactly the same: every camera move, every cut, the timing, the location, lighting, speed, motion blur and <탈것·배경>. Replace only the people.
1) The <앞에 나오는 인물 설명> is replaced by the young Korean woman from reference image 2 — exactly the same face, <헤어>. She wears <의상> from reference image 2. She holds <소품> in one hand, keeping the same pose, arm movements, expressions and head turns as the original. Her face stays clearly identical to reference image 2.
2) The <다른 인물 설명> is replaced by the <캐릭터 설명> from reference image 3 — <캐릭터 특징>, riding/doing the same thing in the same pose with the same motion.
No text, no subtitles, no logos, no watermark."

B. 막힌 컷 첫 프레임(Nano Banana Pro, 참조: 캐릭터 시트):
"Cinematic live-action film still, 16:9 landscape, photorealistic. <원본 컷 구도 그대로: 카메라 위치, 탈것 형태, 조명 색, 손 위치>. The rider is the <캐릭터> from reference image 1 — the same <특징>, rendered as a realistic 3D character, <표정>. <배경·시간대>, slight motion blur. Match a movie action shot. No text, no logos, no watermark."

C. 이미지→영상(Seedance 2.5, 첨부: 첫 프레임 1장):
"Start from the attached image as the first frame. Cinematic live-action action shot: <구도>. The camera moves <방향> with the bike, slight handheld shake, background rushes past with motion blur. The <캐릭터> keeps the same face and outfit, <동작>. One continuous shot, no cuts. No text, no logos, no watermark."

## 6. 참고 실측 (카트 추격 18.13초, 16:9)
| 구간 | 내용 | 방법 | 결과 |
|---|---|---|---|
| 0–5.133 | 라이더 정면 + 뒤 추격자 | 구간 교체 6초 | 성공, 0.9805배 |
| 5.133–6.7 | 추격자 얼굴 클로즈업 | 첫 프레임 → 이미지→영상 4초 | 영상 교체는 실패, 대체 성공(앞 1.57초 사용) |
| 6.7–10.433 | 나란히 질주 | 구간 교체 4초 | 성공, 1.0804배 |
| 10.433–18.133 | 드론 와이드·후반 | 구간 교체 8초 | 성공, 1.0배 |
청구 합계 1,371 (시트 15 포함), 실패 6건 0.

변경 기록: v1.0 2026-10-19 카트 추격 작업으로 처음 작성 / 2026-10-19 시작 전 질문 추가
