
[Day 12] 비디오 프레임으로 라인 아트 LoRA를 제작하려 했으나 캐릭터의 머리가 합쳐져 버린 경험
요약
비디오 프레임을 추출하여 라인 아트 LoRA를 학습시키려 했으나, 캐릭터의 머리가 합쳐지는 등의 실패를 경험한 사례입니다. 데이터셋 구축 방식에 따른 학습 결과의 차이와 캐릭터 재현의 어려움을 다룹니다.
핵심 포인트
- 비디오 프레임 추출 방식은 데이터 양 확보는 쉬우나 캐릭터 융합 오류 발생 가능성이 높음
- 단순 프레임 추출만으로는 캐릭터의 고유한 외형을 정확히 학습하기 어려움
- 데이터셋 재구축을 통해 선의 품질은 개선할 수 있으나 캐릭터 재현 문제는 별개임
- LoRA 학습 시 데이터의 질과 구성 방식이 결과물에 결정적인 영향을 미침
서론
Day 12!
이번에는 제가 직접 손으로 그린 애니메이션(짧은 영상)을 활용하여, 그 아트 스타일과 캐릭터를 학습하는 라인 아트 (line-art) LoRA를 제작해 보려고 했습니다.
솔직히 말하면 계획은 조금 게을렀습니다. 보통 이를 학습시키는 일반적인 방법은 캐릭터의 정지 화면을 하나씩 수동으로 준비하는 것입니다. 하지만 저는 이렇게 생각했습니다:
"이미 비디오가 있는데, 그냥 거기서 프레임을 추출해서 쉬운 방법으로 학습 데이터를 모으면 안 될까?"
요약하자면: 선(line)은 깔끔해졌지만, 가장 중요한 부분인 제 캐릭터를 실제로 재현하는 데는 완전히 실패했습니다. 그리고 그 실패한 이유가 바로 오늘 제가 얻은 교훈입니다.
사용 도구: 개인 AI 머신 (DGX Spark) + 학습 도구 (Kohya) + 직접 그린 애니메이션 (캐릭터 두 명).
참고: 여기에 표시된 모든 것은 LoRA로 생성된 라인 아트일 뿐입니다. 원본 비디오 자체나 게시된 위치는 보여드리지 않습니다.
결과부터 말씀드리면: 왼쪽은 실패, 오른쪽 또한 실패입니다
왼쪽은 첫 번째 시도입니다. 머리 윗부분에서 두 번째 몸이 거꾸로 자라나고 있습니다.
오른쪽은 원인을 찾아내고 데이터를 다시 구축한 후의 결과입니다 — 선은 깔끔하게 나왔습니다. 하지만 보시다시피 이 또한 실패입니다. 제 원래 캐릭터와 전혀 닮지 않았으며, 완전히 다른 사람처럼 보입니다.
"오류가 수정되었는데" 어떻게 여전히 실패일 수 있을까요? 과정을 설명해 드리겠습니다.
제가 한 일: 비디오에서 프레임을 추출하여 학습 (v1)
간단한 단계:
- 직접 그린 애니메이션 비디오에서 정지 프레임 추출
- 그중 약 300개를 학습 데이터로 대략 선택
- 해당 데이터로 LoRA 학습
학습 자체는 DGX에서 17분이 걸렸습니다. 번개처럼 빨랐습니다.
"오, 이거 쉽네"라고 생각했습니다 — 약 5분 동안은 말이죠.
그러고 나서 생성해 보았더니, 엉망진창이었습니다
완성된 LoRA에 "single character"(단일 캐릭터)와 "two-person scenes"(2인 장면)를 요청했을 때 결과는 다음과 같았습니다:
| 증상 | 오류 발생 방식 |
|---|---|
| Fused heads (머리 융합) | 머리에서 두 번째 몸이 돋아나거나 / 여러 얼굴이 하나로 합쳐짐 |
| ... |
캐릭터를 구분할 수는 있었습니다 (A와 B가 서로 다른 사람으로 인식됨).
하지만 외형은 완전히 망가졌습니다. 나열된 실제 출력물들은 그야말로 공포 영화 수준이었습니다:

▲ 두 명의 캐릭터가 나타날 때, 무엇이 무엇인지 더 이상 구분할 수 없음

▲ 남겨진 캡션(captions)들이 프레임 전체에 "유령 텍스트(ghost text)"처럼 박혀 있음

▲ 움직임이 큰(high-motion) 프레임으로 학습하면 모든 것이 녹아내림
왜 망가졌을까? (핵심 요점)
범인은 바로 비디오 프레임을 소스(source) 자체로 사용한 것이었습니다.
생각해 보면, 비디오는 수많은 일들이 동시에 일어나는 영상입니다. 거기서 프레임을 한 장 떼어내면, 캐릭터의 형태만 배우는 것이 아니라 주변의 모든 노이즈(noise)까지 함께 배우게 됩니다.
| 증상 | 원인 |
|---|---|
| 머리 융합 (Fused heads) | 영상에 한 샷 안에서 두 사람이 움직이는 프레임이 많음. 모델이 신체가 겹치는 순간을 "하나의 단일 신체"로 학습함 |
| ... |
한 문장으로 요약하자면: 비디오는 노이즈가 가득한 재료 — 움직임, 겹침, 배경, 텍스트가 모두 포함되어 있음 — 이며, 캐릭터의 형태만을 깔끔하게 추출하기에는 좋지 않은 방법입니다.

▲ "흰색 배경"을 요청하더라도, 학습 배경색(분홍색)이 떨어져 나가지 않으며, 덤으로 캐릭터까지 증식함
해결 방법 (v2)
원인을 알게 되었으므로, 저는 데이터 측면을 재구축하여 다시 학습을 진행했습니다.
- 캡션 텍스트가 포함된 프레임 자동 제거
- "캐릭터가 없는" 프레임 제거 — 순수 배경, 전환 프레임 (~300 → 141 프레임)
- 캐릭터들이 서로 섞이는 것을 방지하기 위해 세 그룹으로 분리 — "A만 있음", "B만 있음", "둘이 함께 있음"
- 베이스 모델(Base model)을 (라인 아트에 강한) 애니메이션 모델로 교체하고 설정 조정
결과:
| 측면 | v1 (최초) | v2 (재구축) |
|---|---|---|
| 머리 융합 (Fused heads) | ✗ 빈번함 | ✓ 사라짐 |
| ... |
표의 윗부분만 보면 "오, 해결됐네!"라고 생각할 것입니다. 저도 잠시 그렇게 생각했습니다.
노이즈 문제(머리 융합, 굵은 선, 배경색)는 정말로 해결되었습니다.
하지만 자세히 들여다보면 제 원래 캐릭터의 흔적이 전혀 없습니다. 선은 깔끔하지만, 결과물로 나오는 것은 "어딘가 모호하게 애니메이션 스타일인 낯선 사람"입니다. 최악의 경우에는 팔 하나가 빠져 있기도 합니다.

▲ 선은 확실히 깔끔하지만, 제 원래 캐릭터와는 전혀 닮지 않았습니다. 낯선 사람입니다.

▲ 그림처럼 안정적입니다. 하지만 여전히 닮은 구석이 전혀 없으며 (옷에 색이 여전히 번집니다)
제가 결코 넘지 못한 진짜 벽
노이즈가 사라졌음에도 불구하고, 제가 실제로 원했던 단 한 가지 — 저만의 캐릭터를 재현하는 것 — 은 완전히 불가능했습니다. 제가 얻은 것은 그저 깔끔해 보이는 낯선 사람뿐이었습니다.
그리고 단 한 명의 캐릭터조차 이 정도로 다른 사람처럼 나온다면, "두 명이 함께 관계를 맺고 있는 장면"은 훨씬 더 절망적이었습니다. 두 명을 요청하면 한 명만 나타나거나, 장면이 무너져 버립니다.
왜 특히 '2인 장면'이 더 나빴는지 그 이유를 추적해 보았습니다:
- 두 사람이 자연스럽게 나란히 있는 프레임은 전체 세트에서 단 9개뿐이었습니다.
- 다른 478개의 프레임을 재확인하여 더 많이 확보하려 시도했지만, '2인'으로 감지된 모든 결과는 거짓 양성 (false positive) 이었습니다 (탐지기가 화면상의 텍스트나 신체 파편에 반응한 경우).
- → 즉, 비디오 소스만으로는 "2인 장면"을 키워낼 수 없습니다.
원하는 구도(두 사람이 깔끔하게 함께 있는 모습)가 비디오에 존재하지 않는다면, 사후에 그것을 추출해낼 수는 없습니다. 지나고 보니 당연한 이야기지만, 벽에 부딪히고 나서야 이 사실이 뼈저리게 다가왔습니다.
오늘의 교훈
비디오에서 프레임을 추출하는 것은 기껏해야 모델에게 "어렴풋이 애니메이션 같은" 느낌을 가르칠 뿐입니다.
단 한 명의 캐릭터조차 (두 명이나 관계는커녕) 재현할 수 없었습니다. 결국, 모델이 학습하기를 원하는 정지 이미지는 직접 손으로 그려야 합니다.
이것은 단순히 결과가 안 좋아서 내뱉는 변명이 아닙니다. 데이터를 늘리기 위한 모든 방법을 다 써본 뒤에 얻은 결론입니다. 게으름을 피우려다 먼 길을 돌아왔지만, 덕분에 이제는 왜 손으로 그린 정지 이미지가 필요한지 몸소 이해하게 되었습니다.
언젠가 이 결론에 따라 구도를 직접 준비할 것이지만, 그것은 다음 기회로 미뤄두겠습니다.
세부 사항
학습 설정 (v1 → v2)
| 항목 | v1 | v2 |
|---|---|---|
| 베이스 모델 (Base model) | SD1.5 (plain) | 애니메이션 스타일 (line art에 능숙함) |
| ... |
v2에서는 캐릭터들이 서로 섞이는 현상 (bleeding)을 억제하기 위해, 각 그룹의 캡션(captions) 맨 앞에 필수 캐릭터 이름 태그를 고정했습니다 (keep_tokens).
"2인 장면"을 늘릴 수 없었던 이유
"프레임 내 두 사람 (two people in frame)"을 찾기 위해 다른 478개의 비디오 프레임을 다시 태깅(re-tagging)했습니다. 동시 출현 (Co-occurrence) 결과 25개가 표시되었으나, 전체 해상도로 정밀 검사한 결과 거의 모두가 단 한 명의 인물만을 포함하고 있었습니다. 태거(tagger)가 화면상의 텍스트 라벨이나 신체 파편을 잘못 인식한 것이었습니다. 실제 "두 명이 함께 있는" 프레임은 처음에 수동으로 선별했던 9개뿐이었으며, 사실상 그것이 전체 공급량의 전부였습니다.
남은 과제 (숙제)
- 옷 위로 색상이 번지는 현상 (Color bleeding, 일부 그룹의 색상 태그 때문일 가능성이 높음)
- 남아있는 고스트 텍스트 (Ghost text, 약간의 텍스트 같은 노이즈가 남아 있음)
- 그리고 가장 큰 문제: 캐릭터를 재현하는 것 자체가 안 됨. 단일 인물도, 쌍으로 있는 인물도 실제 "내" 캐릭터처럼 보이지 않음 → 필요한 구도를 직접 손으로 그려야 함
다음 단계
다음번에는 완전히 다른 실험으로 변화를 줄 예정입니다 🎬
100ExperimentsWithDGX #LocalLLM
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기