← 블로그

Seedance 2.0에서 캐릭터 일관성 유지하는 방법 (레퍼런스 팩 + 규칙)

레퍼런스 팩, 엄격한 제약 조건, 다음에 수정할 사항을 알려주는 QA 체크리스트를 활용해 캐릭터 정체성 변형을 줄이세요.

7 min read
Seedance 2.0에서 캐릭터 일관성 유지하는 방법 (레퍼런스 팩 + 규칙)

Seedance 2.0처럼 시네마틱한 영상을 만들고 싶으신가요? WaveSpeed 시네마틱 비디오 생성기를 사용해 지금 바로 Seedance 2.0 수준의 시네마틱 영상을 만들어보세요.

처음부터 정체성 드리프트를 고치려 했던 건 아니었습니다. 그냥 같은 캐릭터가 방을 두 번 가로질러 걸어갈 때 사촌처럼 바뀌지 않기를 원했을 뿐이에요. 썸네일 크기로 보면 첫 번째 결과물은 괜찮아 보였습니다. 그런데 스크러빙하면서 보니 턱선이 부드러워지고, 머리카락의 컬이 사라지고, 마지막 초에는 눈의 기울기까지 달라져 있었습니다. 섬뜩하다기보다는… 뭔가 어긋난 느낌이었습니다. Seedance 2.0은 빠르고 유능하지만, 캐릭터 일관성은 흔들릴 수 있는 부분입니다.

저는 Dora입니다. 이번 달 몇 번의 늦은 밤을 보내며 작은 루프들을 돌리고 무엇이 유지되는지 메모했습니다. Seedance 2.0 캐릭터 일관성을 무엇보다 중요하게 여겼을 때, 실제로 저에게 효과가 있었던 것과 없었던 것을 정리해봤습니다.

ID 드리프트가 발생하는 이유 (모델이 “잊어버리는” 것)

Seedance 2.0은 두 가지 일을 동시에 처리합니다: 인식 가능한 얼굴을 유지하면서 생동감 있는 움직임을 구현하는 것입니다. 둘 중 하나를 선택해야 할 때, 모델은 종종 움직임을 선택합니다. 바로 그 지점에서 ID 드리프트가 발생합니다.

반복 실행에서 제가 계속 목격한 것들:

  • 먼저 전체적인 실루엣을 잡아냅니다 (머리 볼륨, 키, 전반적인 체형).
  • 그 다음 압박 아래에서 미세한 특징들이 흔들립니다: 눈 간격, 인중 길이, 귀 모양, 헤어라인 모서리. 짧은 클립에서는 전환부와 고개 돌림 부근에서 나타납니다.
  • 조명 변화는 정체성에 대한 소프트한 편집처럼 작동합니다. 측면 키라이트 하나가 제 캐릭터를 약간 다른 사람으로 바꿨습니다.

실질적으로 말하자면 (가중치를 볼 수 있는 척하는 게 아니라): 텍스트 프롬프트는 카테고리 매칭 방향으로 밀어붙이고 (“젊은 여성, 곱슬 단발, 데님 재킷”), 레퍼런스는 정확한 인물을 고정합니다. 프롬프트가 과하게 묘사하면 카테고리가 이깁니다. 레퍼런스가 약하거나 일관성이 없으면 모델이 얼굴을 “평균화”합니다.

모델이 예측 가능한 지점에서 “잊어버린다”는 것도 알아챘습니다:

  • 손이 얼굴을 가로지를 때, 모델은 다음 프레임을 미니 리셔플로 취급합니다.
  • 빠른 요(yaw) 회전은 귀/관자놀이 충실도를 깨뜨립니다.
  • 반복 패턴이 있는 의상 질감이 때때로 얼굴 랜드마크에서 초점을 빼앗습니다.

드리프트는 무작위가 아닙니다. 구체성에서 유형으로 서서히 흘러내리는 것입니다. 이를 알고 나서 입력을 준비하는 방식과 프롬프트를 작성하는 방식이 바뀌었습니다. 미묘한 프레임 불안정성과도 싸우고 있다면, Seedance 2.0에서 플리커와 지터 수정하기 가이드가 정체성 제어와 함께 도움이 됩니다.

레퍼런스 팩 구축 (이미지 + 짧은 클립 + 스타일 앵커)

가장 큰 성과는 평범한 시도에서 나왔습니다: 작고 규율 있는 레퍼런스 팩을 구축한 것입니다. ByteDance의 공식 발표에서는 Seedance 2.0이 “명령 따르기에 탁월하며, 풍부한 캐릭터 상호작용이 있는 복잡한 스토리에서도 정밀한 재현과 안정적인 피사체 일관성을 가능하게 한다”고 강조합니다. 더 적고 명확한 앵커를 제공했을 때, 제 캐릭터가 잘 유지되었습니다.

저에게 가장 효과적이었던 것들:

  • 최대 세 장의 스틸 이미지, 열 장이 아닌. 선택 기준: 정면, 3/4 각도, 측면 각각 한 장씩. 같은 촬영 세션, 같은 조명. 한 장은 웃고 다른 장은 무표정한 것을 피합니다. 표정 다양성이 너무 크면 모델이 중간 얼굴을 선택합니다.
  • 중립적인 고개 끄덕임이나 천천히 눈 깜빡임이 담긴 2~3초 레퍼런스 클립. 빈 프레임을 잘라내고 배경을 단순하게 유지합니다. 이를 통해 모델에게 턱과 눈 움직임에 대한 기준선을 제공했습니다.
  • 스타일 앵커: 그레이드와 대비를 설정하는 하나의 비주얼. 이전에 마음에 들었던 내보내기의 스틸 프레임을 사용했습니다. 이것을 건너뛰면 정체성은 유지되었지만 분위기가 흔들렸습니다. 앵커를 사용하면 둘 다 더 가깝게 유지되었습니다.

도움이 되지 않은 것들:

  • 콜라주. 저에게는 정리된 것처럼 보이지만, 모델은 복잡한 장면처럼 취급하는 것 같습니다.
  • 혼합 조명. 따뜻한 실내 사진 하나와 차가운 야외 사진 하나가 있었는데, 모델이 이를 중립적으로 평균화하면서 피부 톤과 인지된 나이가 약간 바뀌었습니다.
  • 고해상도 헤드샷만 사용하기. 이상하게도, 선명한 두 장 사이에 중간 해상도 프레임 하나를 넣는 것이 도움이 되었습니다. 아마도 모공에 대한 과적합을 완화하고 형태를 보존했기 때문인 것 같습니다.

이 팩을 단순한 이름으로 (front.jpg, threequarter.jpg, profile.jpg, ref.mp4, look.jpg) 단일 폴더에 보관합니다. 설정 시간이 1분으로 줄어들고, 무엇을 포함할지 고민할 필요가 없습니다. 많이 반복할 때 이 작은 정신적 마찰 감소가 중요합니다.

정체성을 안정시키는 프롬프트 규칙 (고정할 것, 피할 것)

화려한 프롬프트 작성을 그만뒀습니다. 모델에게 인상을 주려고 할수록 모델은 제 인물을 무시하고 미학을 추구했습니다. 다음은 Seedance 2.0 캐릭터 일관성을 유지하는 데 효과적이었던 조용한 접근 방식입니다.

고정하는 것들:

  • 가상의 인물이라도 하나의 단일 존재로 명명합니다: “레퍼런스와 동일한 캐릭터: 하나의 일관된 정체성.” 중복처럼 보이지만, 모델이 “유형 변형”을 샘플링하는 것을 막아주었습니다.
  • 나이 범위, 머리카락 세부사항, 그리고 인식에 가장 중요한 한두 가지 핵심 특징을 고정합니다: “20대 후반, 귀 길이의 촘촘한 검은 곱슬머리, 왼쪽 귀에 작은 실버 후프.” 세부사항이 너무 적으면 일반화되고, 너무 많으면 선택적으로 가져갑니다.
  • 촬영 의도와 템포: “프레임을 가로지르는 느린 걷기 루프, 미묘한 표정, 극적인 회전 없음.” 움직임 규율이 곧 정체성 규율입니다.

피하는 것들:

  • 앵커와 충돌하는 모호한 스타일 단어들: “시네마틱,” “몽환적,” “그리티.” 특정 룩이 필요하면 형용사 대신 스타일 레퍼런스로 설정합니다.
  • 클립 중간에 실루엣을 바꾸는 의상 세부 관리 (스카프, 바람에 날리는 헐렁한 재킷). 의상이 구체적이어야 한다면, 피팅되고 정적으로 유지합니다.
  • 복잡한 동작. 추가 비트마다 새로운 얼굴이 등장할 기회가 생깁니다. 단순하게 시작합니다: 걷기, 앉기, 15도 돌기, 눈 깜빡임.

도움이 된 두 가지 표현 방법:

“모든 프레임에 걸쳐 레퍼런스와 동일한 얼굴 비율을 유지하세요.” 독단적으로 들립니다. 하지만 대부분 효과가 있었습니다.

“새로운 액세서리 없음, 메이크업 변경 없음, 자연스러운 흔들림 이상의 머리카락 움직임 없음.” 이 작은 토글들이 미처 생각하지 못했던 이상한 간격들을 닫아주었습니다.

다섯 번 실행 후, 작은 것을 발견했습니다: 프롬프트를 1/3 줄이면 결과물이 더 가깝게 유지되었습니다. 제 추측: 불필요한 토큰이 적을수록 모델이 분위기 뷔페를 향해 끌려가는 일이 줄어듭니다.

재실행 전 QA 체크리스트 (얼굴, 손, 로고, 의상)

예전에는 직관에 의존해서 재실행했습니다. 이제는 매번 동일한 체크리스트로 60~90초 검토를 합니다. 맹목적인 재시도를 방지해 시간을 절약해줍니다.

얼굴

  • 1번 프레임, 중간 지점, 마지막 프레임에서 정지. front.jpg와 눈 간격 및 턱 각도를 비교합니다. 둘 다 “썸네일 크기에서 1픽셀 너비” 이상 벗어나면 재실행합니다.
  • 눈 깜빡임 전체를 천천히 스크러빙합니다. 깜빡임 중간에 눈꺼풀 가장자리 두께가 변하면 정체성이 위험합니다.

  • 손이 얼굴을 가로지르는 순간을 확인합니다. 얼굴이 더 가늘어지거나 다른 콧대로 다시 나타나면, 어쩌면이 아닌 확실한 실패로 봅니다.
  • 손가락 아티팩트를 세어봅니다. 하나의 결함은 종종 10~15프레임 후의 두 번째 정체성 이탈을 예고합니다.

로고와 작은 마크

  • 셔츠의 작은 로고가 뒤집히거나 흐릿해지면, 얼굴 미세 특징도 흔들릴 것으로 예상합니다. 좋은 조기 경보입니다.
  • 점이나 주근깨: 이동하면 그레이딩에서 싸우지 않습니다. 대신 입력이나 움직임을 수정합니다.

의상

  • 패턴 크롤 (모아레)이 주의를 지배할 수 있습니다. 보인다면 상의를 단색으로 바꾸거나 스타일 앵커에서 노출을 변경합니다.
  • 이동하는 넥라인은 쇄골을 다르게 드러냅니다. 이것이 인식된 얼굴 너비를 미묘하게 바꿀 수 있습니다.

각 패스를 느슨하게 점수를 매깁니다: 0 (재시작), 1 (컷어웨이에 사용 가능), 2 (시퀀스를 이끌기에 충분). 2점을 연속으로 두 번 받으면 조정을 멈춥니다. 완벽하지 않더라도, 스토리가 받쳐줄 만큼 안정적이면 됩니다.

드리프트가 지속될 때의 수정 사다리 (레퍼런스 교체, 제약 강화, 움직임 단축)

깨끗한 입력과 신중한 프롬프트 후에도 정체성이 흔들릴 때, 추측을 멈추고 간단한 사다리를 오릅니다. 한 번에 한 단씩 시도하고 2~3초 테스트를 재실행합니다.

  1. 모든 것이 아닌 레퍼런스만 교체
  • 조명이 더 가까운 것으로 측면 또는 3/4 각도만 교체합니다. 나머지는 유지합니다. 전면 개편은 쉽게 되찾을 수 없는 진전을 지워버렸습니다.
  • 표정이 다양하면, 정규화합니다: 모든 스틸에서 중립 표정. 환한 미소 하나가 전체 클립에서 볼 볼륨을 더 넓게 밀어붙인 경험이 있습니다.
  1. 작고 평이한 언어로 제약 강화
  • 실행당 하나의 제약을 추가합니다: “10° 이상 고개 돌리지 않기,” 그 다음 “얼굴을 가리는 가림 없음,” 그 다음 “바람 없이 머리를 머리에 고정.” 한꺼번에 쏟아붓는 것보다 천천히 쌓는 것이 더 효과적이었습니다.
  • 모델이 저항하면 부정문으로 바꿉니다: “극적인 회전 피하기: 머리카락 들림 피하기: 액세서리 변경 피하기.” 부정문이 더 엄격하게 지켜지는 것 같았습니다.
  1. 움직임 단축 후 재구축
  • 동작 창을 1.5~2초로 줄이고 비트를 제거합니다: 그냥 걷기, 그냥 시선 돌리기. 얼굴이 유지되면, 비트를 하나씩 다시 추가합니다.
  • 루프의 경우, 완벽한 주기적 겹침을 피합니다. 이음새에서 얼굴 “리셋”을 유도할 수 있습니다.
  1. 시각적 엔트로피 감소
  • 배경을 단순화하고 스타일 앵커에서 대비를 약간 낮춥니다. 장면이 조용해지면, Seedance 2.0이 얼굴에 더 많은 “주의”를 쏟았습니다.
  • 색조가 샷 사이에서 계속 흔들리면 앵커에서 피부를 약간 탈채도합니다. 갑작스러운 따뜻함/차가움 변화를 억제하는 것 같았습니다.
  1. 최후 수단: 실루엣에 굴복
  • 독특한 턱선이 유지되지 않으면, 머리카락 형태, 귀 액세서리, 의상 핏에 기댑니다. 시청자들은 우리가 인정하는 것보다 훨씬 멀리서 정체성을 읽습니다. 이건 속임수가 아닙니다. 이건 편집입니다.

여덟 번의 짧은 테스트에서, 이 사다리는 재시도를 약 1/3 줄여주었습니다. 더 중요한 것은 정신적 소음을 낮춰주었다는 점입니다. 각 렌더링에 도박을 하는 느낌이 들지 않았습니다.

누구에게 도움이 되는가: 화려한 카메라 움직임보다 Seedance 2.0 캐릭터 일관성을 중요하게 여긴다면, 이 느리고 꾸준한 방법이 자연스럽게 느껴질 것입니다. 큰 아크, 빠른 전환, 또는 한 번에 표현력 있는 독백을 원한다면 가드레일에 빠르게 부딪힐 것입니다. 그래도 도달할 수 있습니다. 단, 레이어를 쌓아서 만들어야 합니다.


Seedance 2.0처럼 시네마틱한 영상을 만들고 싶으신가요? WaveSpeed 시네마틱 비디오 생성기를 사용해 지금 바로 Seedance 2.0 수준의 시네마틱 영상을 만들어보세요.