
캐릭터 LoRA만으로는 일관성을 지킬 수 없다 — 마스터 1장 방식의 원리
요약
캐릭터 LoRA 학습은 캐릭터의 '특징'을 구현하는 데는 효과적이지만, 연속된 영상에서 요구되는 '동일성(Identity)'을 유지하기에는 근본적인 한계가 있습니다. 이는 확산 모델이 매번 노이즈로부터 이미지를 재구성하는 과정에서 발생하는 원리적 드리프트(Drift) 때문입니다.
핵심 포인트
- LoRA는 캐릭터의 특징은 구현하나, 완벽한 동일성 유지는 어려움.
- 영상 콘텐츠에서는 미세한 얼굴 변화가 시간 흐름 속에서 두드러지게 나타남.
- 일관성은 '뽑아내는' 것이 아닌, '고정해서 재사용하는' 원리가 중요함.
- 정지 이미지(사진집) 단위로는 LoRA로 높은 일관성을 확보할 수 있음.
AI 영상에서 캐릭터의 일관성을 구현하려고 할 때, 많은 사람이 가장 먼저 취하는 수단은 캐릭터 LoRA 학습이다. 나 또한 학습시켰다. 데이터를 모으고, 캡션(Caption)을 한 장씩 작성하며, 4시간을 들여 돌렸다.
그럼에도 불구하고, 컷을 나열하면 다른 사람이 되었다.
이 기사는 왜 LoRA만으로는 부족한지, 그리고 대신 무엇을 해야 하는지를 다룬다. 결론부터 말하자면, 일관성은 '뽑아내는(draw)' 것이 아니라 '고정해서 재사용하는' 것이다.
LoRA는 무엇을 보장하고, 무엇을 보장하지 않는가
캐릭터 LoRA를 학습시키면 그 캐릭터의 특징을 가진 인물이 나오게 된다. 여기까지는 기대한 대로다.
하지만 보장되는 것은 '그 캐릭터다움'이지, '동일성(Identity)'이 아니다.
생성할 때마다 얼굴의 생김새, 윤곽, 피부 질감, 눈 사이의 간격, 콧날의 모양 등이 조금씩 흔들린다. LoRA는 그 흔들림의 중심을 모아주지만, 흔들림의 폭을 제로(0)로 만들지는 않는다.
그리고 인간의 뇌는 얼굴의 미세한 차이에 이상할 정도로 민감하다. 스스로 한 장씩 보고 있을 때는 '같은 캐릭터다'라고 생각할 수 있다. 하지만 나열해서 연속 재생하는 순간, 시청자는 이성보다 먼저 위화감을 느낀다. 컷이 바뀔 때마다 '어라?' 하게 된다.
이것이 LoRA를 학습시켜도 해결되지 않는 이유다. 강도를 높여도, 시드(Seed)를 고정해도, 프롬프트(Prompt)를 토씨 하나 틀리지 않고 맞추어도, 같은 얼굴은 두 번 나오지 않는다.
실례: 대책을 세워도 남는 드리프트(Drift)
내가 공개한 작품이 바로 이 경우다. 여름 축제를 배경으로 한 3분짜리 MV에서, 콘티 25컷을 캐릭터 LoRA로 생성했다. 게다가 단순히 생성만 한 것이 아니다.
- 의상(남색 유카타)에 대한 기술을 전체 25컷에 고정하여 주입
- 헤어스타일(경단 머리·올림머리)도 전체 컷에 고정
- '다른 색의 유카타', '머리를 내린 상태'를 배제하는 네거티브 프롬프트(Negative Prompt) 추가
여기까지 했다. 생성 직후 컷을 나열하여 검사했을 때는, '의상도 머리도 25컷이 완전히 일치하며 드리프트 없음'이라고 판단했다.
하지만 완성된 영상을 통째로 재생하면, 의상의 디테일이 미묘하게 흔들리고 있다.
정지 영상을 나열해서 비교할 때는 눈치채지 못한다. 영상으로서 시간의 흐름 속에서 보면 알 수 있다. 이것이 LoRA 기반의 한계였다. '대책이 부족했던 것'이 아니라, 확률로 뽑아내는 한, 이 흔들림은 원리적으로 남는다.
단 '정지 영상이라면' LoRA로 여기까지 가능하다
오해를 없애기 위해 덧붙이자면, LoRA가 쓸모없다는 이야기가 아니다.

다른 장면, 다른 의상, 다른 빛. 거리의 흐림 / 툇마루의 그늘 / 해변의 직사광선 / 별이 빛나는 밤 등, 빛의 조건을 모두 바꾸어도 얼굴과 체형은 변하지 않았다. 자작 캐릭터 LoRA로 컷마다 생성한 사진집에서
사진집처럼 1장 단위로 완결되는 결과물이라면, LoRA + 의상과 헤어의 고정 주입으로 여기까지 도달할 수 있다.
문제는 영상이다. 위에 쓴 것처럼, 정지 영상에서는 보이지 않는 차이가 시간의 흐름 속에서 나타난다. 따라서 용도에 따라 수법을 나눌 필요가 있다.
왜 같은 얼굴이 두 번 나오지 않는가
확산 모델(Diffusion Model)은 노이즈로부터 매번 '다시 그린다'. 프롬프트는 '어떻게 그릴지'에 대한 지시이지, '지난번과 똑같은 것을 재현하라'는 명령이 아니다.
따라서 같은 입력이라도 난수의 씨앗(Seed)이 1만 달라도 다른 그림이 된다. 시드를 고정하더라도 모델(Model)이나 샘플러(Sampler), 해상도가 바뀌면 결과는 달라진다.
이 부분을 오해한 채 '컷마다 생성한다'고 하면 다음과 같은 상황이 벌어진다.
5컷을 생성하면,
닮았지만 다른 사람 5명이 만들어진다.
일관성은 확률로 나오지 않는다. 몇 번을 뽑아도 같은 얼굴은 뽑을 수 없다. 이 문장을 받아들이는 것이 출발점이 된다.

왼쪽이 '매번 뽑기', 오른쪽이 '1장에 고정하여 잘라내기'
해결책: 뽑는 것을 그만두고, 고정하라
할 일은 단순하다. '매번 뽑는 것'을 그만두고, '1장에 고정해서 재사용하는 것'이다.
① 이미지 모델 + 캐릭터 LoRA로 후보를 몇 장 뽑는다 ← 여러 시드가 허용되는 것은 여기뿐
② 마음에 드는 1장을 '확정'한다 ← 얼굴, 의상, 빛이 이 1장에 구워짐(baked in)
③ 그 1장을 고해상도화(2배)한다
...
핵심은 ④다.
'다른 각도가 필요하니까 별도로 생성한다'가 아니라, 1장의 고해상도 마스터(Master)로부터 물리적으로 잘라낸다(Crop). 크롭은 비파괴 작업이므로 얼굴은 원리적으로 변하지 않는다. 클로즈업(Closeup)도 풀샷(Full)도, 똑같은 1장의 다른 부분일 뿐이다. 따라서 입력되는 정지 영상으로서는 완전히 동일 인물이 된다.
생성 AI의 문제를 생성 AI로 해결하려 했던 것이 실수였다. 이미지 처리(Crop)로 해결할 수 있다.
확정해도 좋은 1장의 합격 기준
②의 '확정' 단계에서 타협하면, 그 부족함이 모든 컷으로 전파된다. 반대로 말하면, 여기만 통과하면 이후는 안전하다.
확정 전에, 이 5가지를 확인한다.
- 손가락이 파손되지 않았는가 (개수, 방향, 뭉침)
- 눈이 좌우로 대칭이며 시선이 자연스러운가
- 옷의 디테일이 좌우·전후로 일치하는가
- 얼굴·피부에 부자연스러운 아티팩트 (Artifact)가 없는가
잘라내기에 견딜 수 있는 해상도·구도 (full / bust / closeup을 확보할 수 있는 여백이 있는가)
마지막 한 가지를 놓치기 쉽다. 얼굴 초근접 샷으로 확정해 버리면, 거기서 전신을 잘라낼 수 없다. 멀리서 찍어두고, 가까운 샷은 잘라내는 것이 올바른 순서가 된다.
"잘라내기만 해도, 움직이는 컷을 만들 수 있는가"
만들 수 있다. 잘라낸 정지 영상을 기점으로, 비디오 모델로 움직이게 한다 (I2V 또는 음성 구동).
이때, 정지 영상에 약간의 거친 부분이 있더라도, 영상화 과정에서 시간축 방향으로 평균화되어 눈에 띄지 않게 된다.
그러므로 정지 영상 마스터는 "완벽"할 필요가 없다. 오히려 완벽을 추구하며 재생성 (Regeneration)을 반복하는 것이 해롭다. 1장을 확정하고, 영상화로 마무리한다. 이 분업이 일관성과 품질을 양립시키는 유일한 길이 된다.
솔직하게 적어두는 한계
"100% 동일 인물"이라고 썼지만, 이는 입력값인 정지 영상의 이야기다.
영상화 단계에서는 각 프레임이 재그려지기 때문에, 1컷 내부나 처리 윈도우(Window)의 경계점에서 미세한 표정·윤곽의 드리프트 (Drift)가 발생할 수 있다. 영상화의 드리프트는 제로가 되지 않는다.
다만, 기점 소재가 동일 인물이라면, 이 드리프트는 미세한 차이로 수렴한다. 토대가 제각각이면, 거기에 영상화의 드리프트가 더해져 붕괴한다. 이 차이가 결정적이다.
"마스터 1장 방식으로 하면 드리프트가 사라진다"가 아니라, "드리프트가 미세한 차이에 머물도록 토대를 만든다"가 정확한 이해다.
자주 묻는 두 가지 의문
앵글이 다른 경우는 어떻게 하는가
"확정 후에는 생성 금지"와 "앵글을 나누어 만든다"는 모순되어 보이지만, 순서로 해결한다.
- 다른 앵글이 필요하다면,
확정하기 전의 탐색 단계에서 필요한 각도를 찍어둔다 - 혹은, 확정된 1장을
영상화할 때의 카메라 워킹으로 돌린다
금지하고 있는 것은 "확정된 주인공 마스터를, 다른 앵글이 필요하다는 이유로 처음부터 다시 생성하는 것"이다. 탐색 단계에서 각도를 맞춰두면 이 모순은 일어나지 않는다.
옷을 바꾸고 싶다면
옷 갈아입히기 (Cloth-swap)를 마스터에 적용해서는 안 된다. 옷 갈아입히기는 내부적으로 확산 재생성 (Diffusion Regeneration)을 동반하므로, 옷을 바꾸는 과정에서 얼굴까지 다시 만들어진다. 얼굴 참조나 가속화 보조를 추가해도 유지할 수 없었다.
옷을 바꾸고 싶다면, 그 의상의 특징을 언어로 기술하여 ②부터 다시 시작한다. 멀리 돌아가는 것처럼 보이지만, 이것이 유일한 길이었다.
(이 이야기를 포함한 "얼굴을 망가뜨리는 조작"은 별도 기사에 정리했다)
확대할 때의 주의사항
③의 고해상도화에도 함정이 있다. 소재의 출처에 따라 도구를 바꿔야 한다.
- 이미지 모델로 만든 깨끗한 정지 영상 → 확산계 업스케일러 (Diffusion-based Upscaler)로 충분
- 비디오 모델 유래의 소재 →
비확산계로 확대한다 (확산계를 사용하면 피부가 무지개색으로 파손된다)
마스터는 이미지 모델 유래이므로 전자로 충분하다. 하지만 후공정에서 영상으로부터 잘라낸 프레임을 확대할 때는 후자로 전환한다. 같은 "확대"라도 입력이 무엇에서 유래했느냐에 따라 정답이 달라진다.
요약
- LoRA는 "그 캐릭터다움"을 보장하지만, "동일성"은 보장하지 않는다
- 옷이나 머리카락을 모든 컷에 고정 주입하고, 제외 네거티브 (Negative Prompt)까지 넣어도,
미묘한 드리프트는 원리적으로 남는다 - 확산 모델은 매번 새로 그리기 때문에,
일관성은 확률로 나오지 않는다 - 해결책은 생성 측이 아니라
이미지 처리 측에 있다. - 1장을 확정하고, Crop으로 잘라낸다. 특히
잘라내기에 견딜 수 있는 구도인가를 확인한다. - 정지 영상은 완벽하지 않아도 된다. 영상화가 차이를 흡수한다.
- 단,
영상화의 드리프트는 제로가 되지 않는다. 토대를 맞춰 미세한 차이로 억제한다.
이 사고방식이 이해되면, AI 영상 제작의 설계가 통째로 바뀐다. "좋은 그림을 뽑는 게임"이 아니라, "한 번 뽑은 좋은 그림을 어떻게 망가뜨리지 않고 운용할 것인가"의 게임이 된다.
공정의 전체상 (곡의 밑준비부터 립싱크, 마무리까지)은 이쪽.
GPU별로 무엇을 할 수 있고 몇 분 기다려야 하는지에 대한 실측값은 이쪽.
각 공정의 구체적인 설정값 (프롬프트 구조, LoRA 학습 파라미터, 업스케일러 활용법 등)과 실패 패턴 19가지의 전체 내용은 교재에 정리되어 있다.
→ 교재 「로컬 AI MV 스튜디오의 교과서」 (PDF 62페이지 · 9,800엔)
노래 립싱크에서 입이 맞지 않는 원인 (소리의 준비)은 이쪽.
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기