Seedance 2.5로 'Disaster Girl' 장면을 구현하기 위해 Codex를 활용해 봄
I used Codex to make Seedance 2.5 arrive at the Disaster Girl frame
핵심 요약
ChatGPT를 프롬프트 생성기가 아닌 샷 플래너로 활용해, 최종 장면을 역산하여 영상의 일관성을 확보한 사례입니다.
- 샷 플래닝 — 최종 장면을 기준으로 카메라 경로를 역설계함
- 역방향 설계 — 영상의 시작이 아닌 끝의 상태를 고정하고 제약 조건을 설정함
- 모델 제어 — 모호한 묘사 대신 구체적인 카메라 움직임과 물리적 경로를 계획함
- 반복 최적화 — 실패 지점을 분석하여 제약 조건을 수정하는 기계적 반복 과정을 거침
ChatGPT를 그냥 프롬프트 입력창 정도로만 쓰는 사람들이 많지.
영화 같은 샷 하나 뽑아달라고 하고, 카메라 용어 몇 개 섞어서 비디오 모델에 복붙한 다음, 제발 마지막 장면만이라도 멀쩡하게 나오길 기도하는 식이지.
근데 내 문제는 그 '마지막'이 항상 개판이라는 거였어. 이미지 투 비디오 작업할 때 실패하는 건 십중팔구 마지막 1초 때문이거든. 19초 동안은 그럴싸하게 움직이다가, 갑자기 Seedance가 마지막 장면을 뒤늦게 떠올린 것처럼 원본 이미지로 확 튀어버려. 얼굴이 뭉개지거나, 원근감이 널뛰거나, 아니면 하얀 플래시가 터지면서 전환을 가려버리는 거지.
그래서 ChatGPT의 역할을 바꿨어. 더 멋진 프롬프트를 짜달라고 징징대는 대신, ChatGPT/Codex를 '샷 플래너'로 쓴 거야. 'Disaster Girl'의 최종 프레임을 먼저 정해두고, 전체 카메라 동선을 그 도착지점에서부터 거꾸로 설계했지.
핵심은 이거야:
"이 영상에서 무슨 일이 일어나야 하지?"라고 묻지 마.
"영상이 끝날 때 무엇이 확정되어 있어야 하지?"라고 물어봐.
- ChatGPT에게 최종 상태(terminal state)를 던져줘
마지막 프레임에서 절대 바뀌면 안 되는 것들을 싹 다 나열했어:
소녀의 위치, 시선, 표정, 전경과 배경의 순서, 최종 카메라 높이, 그리고 정확한 시점. 이건 그냥 시각적인 제안이 아니라 '절대 지켜야 할 제약 조건'이 되는 거야.
- 카메라 액션과 시각적 형용사를 분리해
"역동적인", "부드러운", "영화 같은" 같은 단어들은 듣기엔 좋아도 실제 경로를 정의해주진 못해. 나는 Codex한테 최종 프레임 요구사항을 명확한 카메라 움직임, 전경 이벤트, 노출 변화, 정지 동작이 포함된 샷 플랜으로 바꾸라고 시켰어. 목표는 프롬프트를 길게 늘리는 게 아니라, 모호함을 싹 다 제거하는 거였지.
- 물리적 경로를 역산해
결과물로 나온 경로는 이런 식이었어:
낮은 실내에서 시작 → 바닥의 빨간색 단서를 따라감 → 밝게 터지는 출구를 향해 가속 → 마당으로 나감 → 전경을 가리는 드릴 팀, 호스 라인, 소방차를 지나침 → 소녀 옆으로 이동 → 최종 시점으로 곡선을 그리며 진입
모든 오브젝트에는 존재 이유가 있어. 빨간 단서는 방향을 잡아주고, 밝은 출구는 노출 전환의 명분을 만들어줘. 트럭과 호스 라인은 이동감과 시차를 만들어내지. 마지막 곡선은 카메라를 참조 이미지의 시점으로 딱 맞춰주는 역할을 해.
- ChatGPT로 실패 지점을 찾아내
첫 번째 버전이 엇나갔을 때, "더 좋은 프롬프트 짜줘"라고 안 했어.
"어떤 제약 조건이 제대로 명시되지 않았지?"라고 물었지.
그럼 보통 답이 나와: 카메라가 이동이 아니라 회전을 하고 있었다거나, 전경 오브젝트의 타이밍이 안 맞았다거나, 마지막 프레임이 상태값이 아니라 그냥 이미지로만 묘사되었다는 식이지.
이렇게 하니까 반복 작업이 훨씬 기계적으로 변하더라고.


