# Original Style LoRA Dataset Direction V1

작성일: 2026-07-14  
상태: `direction_approved_assets_require_round_chibi_refresh`  
최종 방향 승인일: 2026-07-20  
적용 범위: Media Workbench의 2D 코미디 캐릭터, 반복 캐릭터 상태팩, 배경 플레이트

## 1. 보고 목적

현재 공개 체크포인트와 LoRA 조합은 단일 캐릭터, 포즈, 단순한 색면 중 일부는
만들 수 있지만, 동일 캐릭터의 얼굴·체형·의상과 요청 동작을 동시에 유지하지
못했다. 따라서 28장 상태팩을 바로 생성하지 않고, 먼저 자체 원본 스타일이
무엇을 학습해야 하는지 승인받는다.

기존 원화 마스터 라인업은 선과 채색 참고로만 남긴다. 2026-07-20에 공통 비율을
2~3등신의 둥근 캐릭터로 다시 고정했으므로 키가 크거나 사람 비율에 가까운 기존
후보는 학습 데이터로 승인하지 않는다. 새 비율로 dataset v0 후보를 다시 검수한다.

## 2. 확인된 사실과 제안의 구분

| 구분 | 내용 |
| --- | --- |
| 확인됨 | 공개 모델·스타일 LoRA bakeoff에서 identity와 pose를 동시에 통과한 조합이 없다. |
| 확인됨 | IPAdapter 비중을 높이면 포즈가 약해지고, OpenPose 비중을 높이면 얼굴·갓·복장·체형이 바뀐다. |
| 확인됨 | 벤치마크는 얼굴 크롭을 계속 재생성하는 방식보다 전신 상태 교체와 등록된 얼굴·입 레이어를 함께 쓴다. |
| 확인됨 | BACKTOON은 목표 배경 품질에 맞지 않았고, 일반 생성도 방 구조와 소품 위치를 고정하지 못했다. |
| 확인됨 | 벤치마크 영상은 제작 문법과 품질 기준으로만 사용하며 학습 데이터에 넣지 않는다. |
| 제안 | 공통 style LoRA, 반복 캐릭터 identity LoRA, 배경 플레이트를 서로 다른 자산으로 관리한다. |
| 제안 | 9장 스타일 선택판 승인 후에만 40~60장 규모의 style dataset v0를 설계·제작한다. |
| 제안 | 28장 상태팩 전에 neutral, action, extreme 3상태를 전부 통과시킨다. |

## 3. 학습 책임 분리

### 공통 style LoRA

학습할 항목:

- 모바일 화면에서 읽히는 단순한 전신 실루엣
- 균일하고 굵은 외곽선과 단순한 내부선
- 제한된 평면 색상, 최대 한 단계 그림자
- 머리와 몸의 비율, 손과 발을 단순화하는 공통 규칙
- 눈·눈썹·입의 최소 형태와 과장된 표정 범위
- 기본 2.6등신, 허용 2~3등신의 둥글고 짧은 공통 골격
- 많은 전신 동작보다 얼굴 표정이 개그를 담당하는 표현 우선순위
- 낮은 질감 밀도와 깨끗한 색면

학습하지 않을 항목:

- 특정 캐릭터의 얼굴, 머리, 갓, 의상, 고유 소품
- 특정 포즈나 28장 상태 이름
- 입 모양 6종과 립싱크 타이밍
- 배경, 자막, 글자, 로고, 카메라 구도
- 벤치마크 채널의 캐릭터나 고유 화풍 식별 요소

공통 trigger token의 제안값은 `studio_flat_comedy_v1`이다. 특정 콘텐츠나
외부 브랜드 이름을 token에 넣지 않는다.

### 반복 캐릭터 identity LoRA

반복 출연하는 캐릭터에만 만든다. 얼굴 구조, 헤어, 체형, 고정 의상, 액세서리,
대표 색상과 실루엣을 학습한다. 표정·시점·포즈는 다양하게 주되 불변 특성은
모든 이미지에서 같아야 한다.

Godfortune 캐릭터는 공통 style LoRA 학습 데이터에서 제외하는 것을 권장한다.
그래야 공통 LoRA가 특정 캐릭터를 외운 것이 아니라 새로운 identity에 스타일을
전이하는지 검증할 수 있다. 공통 스타일이 통과한 뒤 별도 identity LoRA를 만든다.

일회성 캐릭터는 identity LoRA를 만들지 않는다. 승인된 master 1장과 3상태
gate, 필요한 상태만 생성하고 cutout cache로 재사용한다.

### 배경

캐릭터 style LoRA에 배경을 섞지 않는다. 우선 구조 guide로 만든 승인 clean
plate를 장면별로 재사용하고 캐릭터는 별도 합성한다. 캐릭터 스타일이 잠긴 뒤에도
반복 장면이 충분히 쌓인 경우에만 별도 background LoRA를 검토한다.

### 상태와 움직임

포즈, 표정, 입 모양, 카메라 움직임은 LoRA가 아니라 상태 라이브러리와 합성기가
소유한다. 전신 포즈·극단 반응은 전체 캐릭터 상태를 교체하고, 말하기 같은 작은
변화는 등록된 얼굴·입 레이어를 사용한다.

## 4. 승인 전 스타일 선택판

학습 전에 동일한 캐릭터 brief와 동일한 세 상태로 세 가지 스타일 lane을 만든다.
총 9장의 원본 keyframe만 비교하며 이 단계에서는 LoRA를 학습하지 않는다.

| lane | 비율 후보 | 선 후보 | 색·명암 후보 | 목적 |
| --- | --- | --- | --- | --- |
| A 권장 | 약 2.6등신 | 굵고 거의 균일 | 평면색, 그림자 0~1단 | 둥근 얼굴과 표정 중심의 공통 기준 |
| B | 약 2.8등신 | 중간 굵기, 약한 강약 | 평면색, 그림자 1단 | 몸을 조금 늘려도 귀여움이 유지되는 상한 비교 |
| C | 약 2.3등신 | 가장 굵고 단순 | 더 제한된 색 수 | 최소 몸짓과 최대 표정 가독성 비교 |

각 lane은 다음 세 장으로 비교한다.

1. 서로 다른 외형의 neutral front 캐릭터
2. 말하며 손짓하는 action three-quarter 캐릭터
3. 팔을 크게 들고 놀라는 extreme reaction 캐릭터

선택판에서 확정할 항목:

- 머리 대 몸 비율과 머리·손·발 크기
- 둥근 머리와 짧고 단단한 몸 실루엣
- 1024px 원본에서의 외곽선과 내부선 굵기 범위
- 눈 형태, 눈썹 기본 상태, 입 기본 형태
- 손가락 표현 수준과 관절 단순화 규칙
- 캐릭터당 기본 색 수와 그림자 단계
- 표정 과장의 상한, 소품과 의상 세부 묘사의 상한
- 배경 대비와 디테일이 캐릭터보다 낮아지는 정도

9장 중 한 lane을 그대로 채택하거나 필요한 요소를 한 번만 조합해 style bible
v1을 만든다. 세 lane을 섞은 상태로 데이터 제작을 시작하지 않는다.

## 5. 승인 후 데이터셋 v0 제안

### 공통 스타일 데이터

- 서로 다른 원본 캐릭터 identity 8~12개
- identity마다 neutral, speaking/action, strong action, extreme reaction의 4~5장
- 학습 후보 40~60장, 별도 holdout identity 2개의 6~10장
- 성별, 연령대, 체형, 헤어, 의상 실루엣은 다양하게 구성
- 한 이미지에 한 캐릭터만 배치하고 글자, 로고, 복잡한 배경은 제외
- training PNG는 1024px 이상 RGB 무손실로 저장하고, alpha cutout은 파생 자산으로 별도 보관
- 데이터 분할은 이미지 랜덤 분할이 아니라 identity 단위로 수행

모든 학습 이미지는 원본 제작 또는 권리 확인이 끝난 이미지여야 한다. 생성 초안을
사용하더라도 선, 손, 얼굴, 색상, 여분 신체와 의상 오류를 사람이 수정하고 승인한
최종본만 데이터셋에 넣는다. 검수하지 않은 모델 출력을 다시 학습하지 않는다.

### 반복 캐릭터 identity 데이터

- 캐릭터별 승인 이미지 12~20장 제안
- front, three-quarter, side의 시점과 neutral, action, extreme 표정 포함
- 불변 특성은 완전히 고정하고 조명·배경·카메라 효과는 제거
- neutral, action, extreme 각 1장 이상을 학습에서 빼고 holdout으로 사용
- 캐릭터별 trigger token은 `char_<character_id>_v1` 규칙 사용

### 선택적 배경 데이터

- 캐릭터 스타일 확정 전에는 만들지 않음
- 필요 시 장면군 6~10개, 장면당 clean plate 3~4장으로 24~30장 제안
- 캐릭터, 글자, 자막, 로고를 포함하지 않음
- 인물 위치, 자막, 주요 소품을 위한 safe zone을 manifest에 기록
- lineart 또는 layout guide와 최종 plate를 함께 보관

## 6. 파일과 메타데이터 기준

제안 구조:

```text
datasets/original_style_lora/v0/
  dataset_manifest.json
  style_bible.json
  sources.jsonl
  train/
    images/
    captions/
  holdout/
    images/
    captions/
  reviews/
  derivatives/
```

각 이미지 레코드 필수 필드:

- `asset_id`, `character_id`, `style_version`, `split`
- `source_type`, `creator_or_tool`, `source_ref`, `license_or_rights_basis`
- `sha256`, `width`, `height`, `color_mode`
- `view`, `pose`, `expression`, `action`, `costume`, `immutable_traits`
- `caption`, `trigger_tokens`, `negative_findings`
- `human_review_status`, `reviewer`, `reviewed_at`
- `derived_from`, `workflow_ref`, `prompt_ref`, `manual_edits`

캡션에는 보이는 내용만 기록한다. 스타일 trigger와 identity trigger를 분리하고,
외부 작가·채널·캐릭터 이름을 스타일 태그로 사용하지 않는다.

## 7. 품질 gate

### 데이터 제작 시작 gate

- 9장 선택판에서 한 lane과 style bible v1이 승인됨
- 원본 권리와 제작 provenance 기록 방식 승인
- 공통 style 데이터와 identity 데이터의 캐릭터 목록이 분리됨
- 베이스 체크포인트와 라이선스 보존 경로 확정

### 학습 투입 gate

- 파일, 해시, 캡션, rights 필드 100% 존재
- 중복·근접 중복, 글자, 로고, 여분 신체, 손·얼굴 오류 0건
- 선, 비율, 색상, 명암이 style bible 허용 범위 안에 있음
- train과 holdout 사이 character identity 중복 0건
- 승인되지 않은 생성 원본과 벤치마크 frame 0건

### 학습 결과 gate

- 보지 못한 holdout identity가 학습 identity로 변하지 않고 같은 공통 스타일로 출력됨
- 반복 캐릭터의 neutral, action, extreme 3상태가 모두 사람 검수를 통과함
- 불변 얼굴·헤어·복장·체형·색상 특성이 3상태 모두 유지됨
- OpenPose 또는 lineart 요청 동작이 3상태 모두 읽힘
- 360x640 축소 composite에서 얼굴, 실루엣, 주요 동작이 즉시 구분됨
- 배경 safe zone, 자막, 접지 그림자와 합성했을 때 선과 색이 이질적이지 않음

하나라도 실패하면 28장 생성으로 넘어가지 않는다. 먼저 데이터 오류, style LoRA,
identity LoRA, pose control 중 실패 원인을 분리해 한 단계만 수정한다.

## 8. 베이스 모델 방향

현재 bakeoff에서는 Animagine XL 4.0 plus iroiro가 상대적으로 덜 불안정했지만
최종 품질을 통과하지는 않았다. 따라서 다음처럼 제한한다.

- Animagine XL 4.0은 파일럿과 내부 style LoRA 학습의 우선 베이스 후보일 뿐이다.
- 공개 스타일 LoRA는 자체 데이터 학습에 합성하지 않는다. 사용하려면 각 LoRA의
  파생물·상업 이용 조건과 provenance를 별도로 승인해야 한다.
- 첫 학습은 `Animagine checkpoint + internal style LoRA`와 필요 시
  `SDXL 1.0 base + internal style LoRA`의 소규모 A/B로 판단한다.
- 베이스나 LoRA의 라이선스 사본, 버전, SHA256, 변경 사항을 학습 run에 고정한다.

Animagine XL 4.0 공식 모델 카드는 CreativeML Open RAIL++-M을 표시하며 상업 이용,
수정, 배포를 허용하는 동시에 라이선스 사본과 변경 고지 보존을 요구한다. 손,
복수 캐릭터, 스타일 일관성의 한계도 명시한다.

공식 자료: https://huggingface.co/cagliostrolab/animagine-xl-4.0

## 9. 단계별 진행안

| 단계 | 산출물 | 다음 단계 조건 |
| --- | --- | --- |
| 0 | 3 lane x 3 state 스타일 선택판 9장 | 한 lane과 style bible 승인 |
| 1 | 공통 style dataset v0, holdout, provenance manifest | 데이터 투입 gate 통과 |
| 2 | style LoRA 소규모 A/B 및 holdout 결과 | 공통 스타일 전이 통과 |
| 3 | Godfortune identity dataset과 identity LoRA | 3상태 identity gate 통과 |
| 4 | clean background plate와 최종 composite 3장 | 모바일 합성 gate 통과 |
| 5 | 요청에 필요한 상태만 생성 후 최대 28장 pack | shot 요구와 재사용성을 확인 |

## 10. 승인된 결정

2026-07-15에 다음 방향을 승인했다.

1. 기존 3인 마스터 라인업과 세 개별 keyframe은 선·채색 참고로만 사용하며
   비율과 체형의 기준 또는 학습 이미지로 사용하지 않는다.
2. 공통 style LoRA에서 Godfortune과 모든 외부 브랜드 캐릭터를 제외한다.
3. 배경은 캐릭터 데이터에 섞지 않고 clean plate 방식으로 시작한다.
4. 공통 스타일 통과 후 Godfortune identity LoRA를 별도로 만든다.
5. 3상태 gate 통과 전에는 28장 생성과 영상 production을 열지 않는다.

2026-07-20에 다음 결정을 추가했다.

1. 공통 캐릭터는 2~3등신으로 제한하고 2.6등신을 기본값으로 쓴다.
2. 둥근 머리와 큰 얼굴을 유지하며 표정이 개그의 주된 전달 수단이 되게 한다.
3. 28개 상태는 몸짓 5, 일반 표정 12, 입 모양 6, 극단 반응 5로 구성한다.
4. 기존의 키 큰 여성과 사람 비율 원화는 스타일 참고만 허용하고 학습에서 제외한다.
5. 갓과 앞치마처럼 착용한 요소는 전신 상태에 포함하고 손에 드는 소품만 분리한다.

dataset v0는 train identity 10개와 holdout identity 2개로 분리한다. 각 identity는
`neutral_front`, `speaking_gesture`, `strong_action`, `extreme_reaction` 네 상태를
가지며 총 48장이다. 승인 원화 3장은 스타일 기준으로만 사용하고 학습 이미지에는
포함하지 않는다.
