| name | handdrawn-character-lock |
| description | 동일한 사용자 캐릭터로 여러 장의 손그림 삽화·슬라이드 이미지를 만들 때 캐릭터 정체성, 선 모드, 팔레트, 표정, 여백을 고정한다. 캐릭터 참조 이미지가 있는 연속 이미지 생성 요청에 사용하며, 단일 비캐릭터 이미지나 기존 이미지의 단순 보정에는 사용하지 않는다. |
Handdrawn Character Lock
캐릭터 참조 이미지 한 장 이상을 받아, 여러 컷이 같은 사람·같은 화풍으로 읽히게 만든다. 이 스킬은 handdrawn-ppt가 다른 환경에서 누락되더라도 동작하도록 핵심 규칙과 style-lock 자산을 자체 포함한다.
포함된 규칙과 자산의 고정 upstream 커밋 및 MIT 라이선스는 upstream provenance에서 확인한다.
필수 동반 스킬
이미지 생성 또는 편집 전에 imagegen 스킬을 완전히 읽고 따른다. 로컬 handdrawn-ppt 스킬이 있으면 함께 읽되, 없어도 중단하지 않는다. 이 스킬에 포함된 규칙과 자산을 폴백으로 사용한다.
다른 상위 스킬이 이미지 생성을 요청했더라도 아래 게이트를 생략하지 않는다. 특히 character-slide-maker, character-deck-reviser, 발표자료 제작 흐름에서 새 캐릭터 삽화를 만들 때 이 스킬을 적용한다.
하드 게이트
첫 이미지 생성 전에 아래가 모두 정해져 있어야 한다.
- 원본 캐릭터 참조 이미지 경로
clean 또는 rough 선 모드 하나
- 최종 슬롯과 동일한 종횡비
- 캐릭터 락 문장: 헤어, 얼굴, 안경·소품, 의상, 색, 비율, 절대 바꾸지 않을 요소
- 장면별 감정과 표정
- 승인된 앵커 파일을 저장할 경로
발표자료·강의자료·제안서는 clean, SNS·캐러셀은 rough가 기본이다. 한 시리즈 안에서는 섞지 않는다.
참조 이미지 계약
앵커 생성
첫 앵커 컷은 다음 참조를 한 번에 넣어 새 이미지로 생성한다.
- 사용자의 원본 캐릭터 이미지 1장 이상
- 항상
assets/style_lock/01_comparison_annotated.png
- 장면 포맷과 가장 가까운 style-lock 1장
style-lock 속 인물은 스타일 정보일 뿐이다. 프롬프트에 다음 문장을 그대로 넣는다.
Use the style reference images for LINE QUALITY, ANNOTATION STYLE, PALETTE and LAYOUT only.
IGNORE every character in the style references completely.
The character identity must come only from the user's character reference image(s).
앵커는 전신 또는 무릎 위까지 보이는 중립 자세로 만들고, 사용자 캐릭터와 같은 사람인지 눈으로 확인한다. 불합격이면 장면 생성으로 넘어가지 않는다.
장면 생성
모든 본편 컷은 각각 새로 생성하며, 참조 이미지는 다음으로 고정한다.
- 사용자의 동일한 원본 캐릭터 이미지
- 승인된 동일 앵커 이미지
이전 장면 출력은 절대 다음 장면의 참조로 쓰지 않는다. 앵커 → 컷 1, 앵커 → 컷 2처럼 별 모양으로 생성하고 컷 1 → 컷 2 → 컷 3 편집 체인을 만들지 않는다.
수정은 한 번에 한 가지 변화만 요청한다. 같은 컷을 두 번 편집했는데 정체성이 어긋나면 편집을 중단하고 원본 참조+앵커에서 다시 생성한다.
화풍 락
공통 북극성 문구는 프롬프트 계약을 사용한다.
- 순백 배경
- 캐릭터와 소품은 화면의 20~40%
- 콩눈, 작은 입, 단순한 얼굴
- 깨끗한 플랫 채색, 음영 최소
- 보조 오브젝트 1~4개
- 캐릭터 고유색은 배경 오브젝트와 강조색에 재사용하지 않음
- 벡터, 클립아트, 3D, 포토리얼, 크레용·오일파스텔 질감 금지
rough는 끊긴 거친 펜선, clean은 균일하지만 사람 손맛이 남은 닫힌 선을 사용한다.
표정 락
모델의 기본 미소를 허용하지 않는다. 장면마다 감정을 지정한다.
- 위기·불안: 입을 다문 작은 찡그림, 시선 아래, 미소 금지
- 충격·당황: 작은 열린 입, 넓은 콩눈, 미소 금지
- 판단: 일자 입, 차분한 눈, 팔짱, 미소 금지
- 지침: 처진 어깨, 시선 아래, 일자 입
- 결심: 닫힌 단단한 입, 정면 시선
- 희망: 마지막 장면에만 작은 미소
텍스트 정책
기본값은 이미지 안 텍스트 없음이다. 제목·본문은 소비하는 PPTX에서 편집 가능한 텍스트로 얹는다.
그림 안 한글이 꼭 필요하면 2~6자 라벨만 사용한다. 생성 후 실제 글자를 눈으로 읽고, 깨졌으면 재생성한다. 두 번 연속 실패하면 숫자·영문으로 바꾸거나 이미지 밖 텍스트로 이동한다.
생성 계획과 검증
여러 컷을 만들기 전 계획 스키마에 맞춰 JSON을 작성하고 검증한다.
python3 scripts/validate_plan.py plan.json
검증 실패 상태에서는 이미지를 생성하지 않는다.
이미지 생성과 QA
imagegen의 기본 내장 도구 경로를 사용한다. 모든 대상이 로컬 파일이면 referenced_image_paths로 원본 캐릭터와 앵커를 전달한다. 새 장면 생성에서는 이전 결과를 자동으로 포함하는 옵션을 쓰지 않는다.
각 컷을 생성한 직후 확인한다.
- 앵커와 같은 사람인가: 머리 실루엣, 안경, 얼굴 비율, 의상, 고유색
- 선 모드가 섞이지 않았는가
- 캐릭터가 화면을 과도하게 채우지 않는가
- 배경이 순백이고 채색이 플랫한가
- 표정이 장면 감정과 맞는가
- 장면이 원문의 특정 주장과 1:1로 연결되는가
2장 이상이면 마지막에 전 컷을 나란히 놓고 얼굴과 의상만 빠르게 훑는다. 한 장이라도 다른 사람으로 읽히면 그 컷만 원본 참조+앵커에서 재생성한다.
저장
outputs/character/: 승인된 앵커와 선택적 턴어라운드
illustrations/: 본편 컷
- 기존 파일을 덮어쓰지 않고 버전 파일명으로 저장
최종 응답에는 사용한 선 모드, 앵커 경로, 최종 이미지 경로, 사용한 생성 경로를 알린다.