결론부터: AI 캐릭터의 일관성은 프롬프트 문장으로 지킬 수 없다. 매번 레퍼런스 이미지에서 생성해야 지켜진다. 작동하는 방법은 캐스팅 시트다: 캐릭터당 다각도 레퍼런스 세트를 한 번 만들고, 그 캐릭터가 나오는 모든 키프레임 생성에 이미지 입력으로 붙인다. "빨간 곱슬머리, 초록 조끼…" 식 텍스트 재설명은 열 샷 안에 무너지고, 고정된 레퍼런스 세트는 시즌 전체를 버틴다.
캐스팅 시트 방법
- 9장을 따로 뽑지 말고 3x3 멀티샷 한 장을 뽑는다. "같은 인물의 정면·후면·측면·스리쿼터·얼굴 클로즈업·표정, 물리적으로 일관되게"를 한 번의 생성으로 요청하면 각도끼리 진짜로 맞는다 - 같이 만들어졌기 때문이다. 아홉 번 따로 뽑으면 사촌 아홉 명이 나온다.
- 그리드를 잘라 셀 단위로 저장한다. 각 셀이 샷별로 붙일 수 있는 라벨된 레퍼런스(정면·프로필·표정)가 된다.
- 모든 키프레임에 레퍼런스를 붙인다. 캐릭터가 나오는 모든 이미지 생성에 시트 셀 + 짧은 정체성 디스크립터를 입력한다. 일은 레퍼런스가 하고, 텍스트는 포즈와 장면만 정한다.
그래도 깨지는 지점과 처방
- 의상 변경. 최대 드리프트 원인은 옷 변화를 프롬프트 텍스트로 쓰는 것이다. 하지 말 것. 상태별로 이름 붙인 룩 변형 시트를 만든다 - "ep1-base", "부상", "비에 젖음" - 그리고 씬마다 변형을 바인딩한다. 우리는 회차 중간에 캐릭터 복장이 소리 없이 바뀌는 사고를 겪고 이 규칙을 박았다: 프롬프트 의상 금지, 변형 시트에서 재생성.
- 특수한 물리 상태. 거꾸로 매달림, 흠뻑 젖음, 중상 - 상태를 프롬프트로 지시하면 모델이 저항한다. 그 상태의 레퍼런스 시트를 새로 구워서 거기서 생성하라. 지시를 바꾸지 말고 입력을 바꾼다.
- 영상 생성. image-to-video는 키프레임의 얼굴을 상속한다. 일관성은 키프레임 단계에서 이기고 지는 것이고, 키프레임이 맞으면 영상은 따라온다.
프로덕션 규모에서 버티는가
watch 카탈로그의 모든 시리즈가 이 방법으로 만들어졌다 - 한 사람이 만든 숏드라마·애니·웹툰 30편 이상, 그리고 같은 캐스팅 시트로 288개 샷을 재생성해 같은 에피소드에 다시 꽂아 넣은 전면 재제작 한 건까지. 레퍼런스 고정 생성은 10부작 스릴러가 시즌 중간에 영상 모델을 갈아타고도 살아남는 이유이기도 하다: 시트는 남고, 모델만 바뀐다.
Owntent에는 이 흐름 전체가 내장돼 있다 - 시트 생성, 씬별 룩 바인딩, 키프레임마다 자동 레퍼런스 첨부. 하지만 방법 자체는 이미지 레퍼런스를 받는 어떤 툴에서도 작동한다. 손으로 조립한다면: 캐릭터당 멀티샷 한 장, 분할, 라벨, 매번 첨부, 그리고 옷은 절대 텍스트로 쓰지 않기.
검증하지 못한 것
모델 간 정체성 유지율을 수치로 벤치마크하진 않았다(같은 시트, 다른 영상 모델, 얼굴 유사도 측정). 우리의 근거는 프로덕션 수준이다: 눈에 띄는 드리프트 없이 시즌들이 발행됐다는 것. 측정 벤치마크는 할 일 목록에 있다.