Planning Doc 05 · Art Direction

05 아트 — 화풍·이미지 45장·프롬프트 원칙

「말포이가 나보고 책임지래」 그림 문서예요. 어떤 모델로, 어떤 문장으로, 몇 장을 뽑고, 무엇을 버리고, 화면에 어떻게 놓는지 적었어요. 기준은 바이블 v2 5장이고, 작성일은 2026-10-14예요.

00 · STATUS

지금 상태 — v2 그림은 생성 전

v2 그림은 아직 한 장도 없어요. 생성은 주인이 허락한 뒤 메인이 돌려요. 집필·기획 단계에서는 tools/gen.py 를 실행하지 않아요(바이블 5-1).

1판 그림 47장은 game/images/_v1 로 옮겼고(배포 제외), 최상위엔 jpg 0장 — 엔진 폴백(그라데이션·이름 카드)으로 돌아요. prompts.json 은 v2(45항목, seed 없음)로 바뀌었어요(2026-10-14 확인). 이 문서에도 1판 그림은 싣지 않았어요.

항목지금v2 생성 전 할 일
v2 그림 45장생성 전주인 허락 → 메인이 gen.py 실행
1판 그림 47장game/images/_v1 로 옮김(배포 제외). 최상위 jpg 0장없음 — v2 그림이 들어오기 전까지 엔진 폴백으로 보여요
prompts.jsonv2 — 5-2 화풍 문장, 45항목, seed 없음없음
엔진 시작 검사 9-2 ②bg·cg id 가 prompts.json 에 있는지 봄 — validate.mjs 오류 0건(2026-10-14)없음

표 0 · 그림 현황 (2026-10-14 ls game/images 실측)

01 · DIRECTION

방향 — 손그림 수채, 성인 얼굴, 호그와트 교복

1판은 「조세이 망가 미연시」 화풍이었어요. 뽑아 보니 피부가 매끈하게 반짝이고 테두리 빛이 과했어요. 주인이 「AI 같다」고 한 게 글만이 아니라 그림에도 해당했어요. v2 는 펜 선에 수채를 얹은 그림책 쪽으로 옮겼어요. 종이 결이 보이고, 선이 조금 흔들리고, 색이 바래 있는 그림이요.

무대도 바뀌었어요. 1판은 2003년 마법부 감정실이라 코트·조끼 차림이었는데, v2 는 1998~99년 호그와트 8학년이에요. 그래서 모두 검은 학교 로브에 기숙사 넥타이를 매요. 프롬프트에는 「uniform」 대신 「academic robe」와 넥타이 색만 써요(바이블 5-3).

말포이 외형에서 정한 것

02 · SPEC

생성 조건

바이블 5-1 값 그대로예요. 근거는 research/risk-art.md 4장(2026-10-14 실측)이에요.

항목값이유·근거
모델@cf/black-forest-labs/flux-1-schnellWorkers AI 무료 할당 안에서 돌릴 수 있는 이미지 모델(risk-art.md 4장)
steps8바이블 5-1 고정값
크기1024×1024 JPEG이 모델은 width/height 를 받지 않아요. 정사각 한 장을 화면에 세 가지로 잘라 써요(4장)
seed넣지 않음넣으면 HTTP 400 이 났어요(1판 실측). prompts.json 에도 seed 키를 두지 않아요
저장 크기인물 표정 768 축소 · bg_*·cg_* 1024 원본gen.py 기본 동작. 인물 카드는 화면에서 작게 쓰이고, 배경·CG 는 화면 전체를 덮어요
후보장당 2장(45 × 2 = 90장)사람이 둘 중 하나를 골라요. 둘 다 버림 기준에 걸리면 그 id 만 다시 뽑아요
실행집필·기획 단계 금지. 주인 승인 뒤 메인2026-10-14 에 무료 한도를 넘겨도 호출이 막히지 않았어요(1판 실측). gen.py 에 유료 잠금이 들어가 있어요
후보 저장 위치game/images/_cand/<id>_1.jpg, _2.jpgpython3 tools/gen.py -n 2 ID 형식. 고른 파일만 game/images/<id>.jpg 로 복사하고 _cand 는 지워요

표 1 · 생성 조건표 (바이블 5-1)

03 · STYLE LOCK

화풍 고정 문장

모든 그림 앞에 붙는 문장이에요. prompts.json 의 style 칸에 들어가고, gen.py 가 항목마다 앞에 이어 붙여요. 글자 하나 바꾸지 않아요. 쉼표 하나만 달라져도 모델이 받는 문장이 달라져서, 이미 고른 그림과 결이 어긋날 수 있어요.

Hand-drawn illustration, fine dip-pen ink linework with loose transparent watercolor washes on rough cold-press paper, visible paper grain, uneven hand-drawn lines and small pencil marks, flat matte colors with no glossy highlights, muted desaturated palette of slate green, faded crimson, parchment beige and soft grey, gentle natural light, mature character design for adult readers, adult characters only. No text, no letters, no words, no signature, no watermark, no logo.

1판 문장과 비교 — 무엇을 넣고 무엇을 뺐나

1판 문장은 이거였어요: Josei manga visual novel illustration, clean cel shading, soft painterly lighting, muted elegant palette of deep green, silver and warm candlelight, adult characters only, no text, no watermark.

1판v2바꾼 이유
Josei manga visual novel illustrationHand-drawn illustration「manga」「visual novel」이 들어가면 모델이 애니 셀 화풍을 끌고 와요. 장르 단어를 빼고 「손으로 그렸다」만 남겼어요
clean cel shadingfine dip-pen ink linework with loose transparent watercolor washes매끈한 셀 음영이 반질반질함의 첫째 원인이었어요. 펜 선 + 투명 수채로 바꿔 면이 고르지 않게 했어요
(없음)on rough cold-press paper, visible paper grain종이 결을 깔아 화면 전체에 잔 얼룩이 생기게 해요. 디지털 그라데이션이 덜 보여요
(없음)uneven hand-drawn lines and small pencil marks선 굵기가 일정하면 기계 그림처럼 보여요. 흔들림과 연필 자국을 일부러 넣었어요
(없음)flat matte colors with no glossy highlights피부·머리카락의 하이라이트 반짝임을 막는 문구예요
soft painterly lightinggentle natural light1판은 테두리 빛(림라이트)이 과했어요. 무대 조명 느낌을 빼고 창빛 정도로 낮췄어요
muted elegant palette of deep green, silver and warm candlelightmuted desaturated palette of slate green, faded crimson, parchment beige and soft grey채도를 한 번 더 낮췄어요(desaturated). 그리핀도르 셋(해리·론·헤르미온느)이 나오니 빨강 계열(faded crimson)을 넣었고, 양피지 베이지·회색을 바탕색으로 깔았어요
adult characters onlymature character design for adult readers, adult characters only얼굴 나이를 끌어올리는 문구를 하나 더 걸었어요(원칙 1)
no text, no watermarkNo text, no letters, no words, no signature, no watermark, no logo.1판 첫 생성분에 글자·서명 같은 낙서가 섞였어요. 막는 단어를 늘렸어요. 그래도 효과는 약하니 검수에서 다시 걸러요

표 2 · 화풍 문장 비교표 (1판 = 2026-10-14 교체 전 1판 prompts.json 의 style, v2 = 바이블 5-2)

v2 문장의 효과는 미확인이에요. 한 장도 안 뽑아 봤으니까요. 첫 생성 날 표정 기준 컷(draco_neutral 등)을 먼저 보고, 여전히 반질반질하면 그때 메인에게 문장 수정을 올려요. 바이블 5-2 를 고치지 않고는 문장을 바꾸지 않아요.

04 · CHARACTER SHEETS

인물 외형 고정 문장

인물마다 영어 한 단락이 있어요. 순서는 나이 → 얼굴 → 눈 → 머리 → 옷이에요. 그 인물이 나오는 그림에는 이 단락을 그대로 넣고, 뒤에 구도·표정 문장만 바꿔 붙여요.

모든 학생이 「26 years old」인 건 실수가 아니에요. 설정 나이는 18~19세지만, 이 모델은 「mid-twenties」라고 써도 10대처럼 그렸어요(risk-art.md 3·4-3장). 그림에서 성인 얼굴을 강제하려고 일부러 높게 적었어요.

id외형 고정 문장 (영어 원문)한국어 요약
dracoAdult woman, 26 years old, mature face, narrow pointed chin, defined cheekbones, pale skin, cool grey eyes, thin straight eyebrows, long straight platinum blonde hair past the shoulders loosely tied at the nape, black open-front academic robe with green lining over a white shirt and grey knit V-neck sweater, green and silver striped tie, robe sleeves slightly too long reaching the knuckles, long black trousers, fully clothed, modest outfit.백금발 긴 생머리 목덜미 묶음 / 회색 눈 / 검은 로브(초록 안감)·회색 니트 조끼·초록-은 줄무늬 넥타이·긴 바지·손등 덮는 소매
ronAdult man, 26 years old, mature face, long face, freckles, blue eyes, shaggy ginger hair, tall and lanky, black open-front academic robe with red lining over a maroon hand-knitted sweater, red and gold striped tie loosened, long trousers, fully clothed.생강색 머리·주근깨 / 파란 눈 / 키 큼 / 검은 로브(빨강 안감)·적갈색 손뜨개 스웨터·빨강-금 넥타이 느슨하게
hermioneAdult woman, 26 years old, mature face, defined cheekbones, warm brown eyes, very bushy curly brown hair worn half-up, black open-front academic robe with red lining over a white shirt and grey knit V-neck sweater, red and gold striped tie neatly knotted, long dark trousers, a heavy book held against the chest, fully clothed, modest outfit.부스스한 갈색 곱슬 반묶음 / 갈색 눈 / 검은 로브·빨강-금 넥타이 단정·긴 바지·두꺼운 책 (피부색은 원작 본문 서술이 없어 넣지 않음)
blaiseAdult Black man, 26 years old, mature face, high cheekbones, long narrow eyes, close-cropped black hair, tall, black open-front academic robe with green lining over a crisp white shirt, green and silver striped tie, long trousers, fully clothed.짧은 검은 머리 / 높은 광대·가늘고 긴 눈[원작 HBP 묘사] / 키 큼 / 검은 로브(초록 안감)·초록-은 넥타이
slughornElderly man, very large round belly, shiny bald head, thick silvery walrus moustache, pale green eyes, maroon velvet waistcoat with gold buttons under a dark green robe, holding a small old-fashioned camera, fully clothed.대머리·은빛 바다코끼리 콧수염 / 큰 배 / 자주 벨벳 조끼·짙은 초록 로브·옛날 사진기
pomfreyMiddle-aged woman, stern but kind face, greying hair pinned under a white nurse's cap, white apron over a long dark blue robe, fully clothed, modest outfit.흰 간호모·앞치마 / 짙은 파랑 긴 로브
mcgonagallElderly woman, tall and thin, severe face, square spectacles, black hair streaked with grey in a tight bun, emerald green robe, black pointed witch's hat, fully clothed, modest outfit.사각 안경[원작] / 희끗한 올림머리 / 에메랄드 로브[원작]·고깔모자
harry (CG 전용)Adult man, 26 years old, mature face, untidy jet-black hair, bright green eyes, round glasses, thin lightning-bolt shaped scar on the forehead, black open-front academic robe with red lining over a white shirt, red and gold striped tie, long trousers, fully clothed.헝클어진 검은 머리·둥근 안경·번개 흉터 / 초록 눈 / 검은 로브·빨강-금 넥타이. CG 에서는 뒷모습·옆모습·손 위주
draco_m (cg_e2 전용)Adult man, 26 years old, mature face, narrow pointed chin, defined cheekbones, pale skin, cool grey eyes, short neatly combed platinum blonde hair, + draco 의 옷 문장 그대로(단 robe sleeves slightly too long reaching the knuckles 는 뺌)원래 모습(남성). E2 에서 키가 다시 커졌으니 소매 문구를 빼요

표 3 · 인물 외형표 (바이블 5-3 원문 그대로)

인물은 머리색과 옷으로 구별해요

이 모델은 얼굴을 장마다 똑같이 잡지 못해요(risk-art.md 4-2). 그래서 독자가 머리색과 옷으로 알아보게 해요. 학생 넷이 같은 검은 로브를 입으니 머리가 제일 큰 단서예요.

id머리옷 단서이름표 색(meta)헷갈릴 상대와 가르는 법
draco백금 긴 머리초록 안감·초록-은 넥타이·회색 조끼#dfe7ee블레이즈와 넥타이가 같아요 → 머리 길이·색으로 갈라요
ron생강색 덥수룩적갈색 손뜨개 스웨터·느슨한 넥타이#e07a4f헤르미온느와 넥타이가 같아요 → 스웨터와 머리색
hermione갈색 곱슬 반묶음단정한 넥타이·가슴에 안은 책#d39a6a책이 거의 항상 같이 나와요
blaise짧은 검은 머리흰 셔츠·초록-은 넥타이#9fb89a말포이와 같은 기숙사 → 머리
slughorn대머리·은빛 콧수염자주 벨벳 조끼·사진기#c9b06b체형과 사진기로 바로 구별돼요
pomfrey희끗한 머리·흰 간호모흰 앞치마·짙은 파랑 로브#a9b6d8간호모
mcgonagall희끗한 올림머리에메랄드 로브·고깔모자·사각 안경#6fbf8f로브 초록이 슬리데린 초록과 비슷해요 → 고깔모자와 안경

표 4 · 인물 구별표 (이름표 색 = 바이블 6-2 meta.json color)

05 · LAYOUT

화면 구성 — 정사각 한 장을 세 가지로

모든 그림이 1024 정사각이라, 종류마다 구도 문장과 화면 자르는 법을 따로 정했어요. 1판 구성을 그대로 써요(바이블 5-4).

종류생성 구도 문장 (외형 문장 뒤에 붙임)화면 표시
인물 표정Waist-up portrait, centered, facing the viewer, plain warm grey paper background with a faint watercolor stain, soft light. Expression: <표정 문장>.반신 카드: 4:5 둥근 모서리 카드, object-fit:cover; object-position:50% 20%. 가로 화면 높이 56vh, 세로 화면 폭 62vw. pos left/center/right = 22%/50%/78%. 동시 표시 최대 2명. 말하는 인물 밝기 100%, 나머지 70%
배경Empty scene, no people, wide establishing view, main subject in the middle horizontal band, eye-level camera. + 장소 문장화면 전체 object-fit:cover
CGEvent illustration, centered composition. + 등장 인물 외형 문장 + 장면 문장화면 전체 object-fit:contain, 여백은 같은 그림을 흐리게. CG 동안 인물 카드 숨김

표 5 · 화면 구성표 (바이블 5-4)

06 · FULL LIST

이미지 전체 목록 — 45장

인물 표정 25 + 배경 12 + CG 8 = 45장이에요. 파일 이름은 game/images/<id>.jpg 이고, prompts.json 항목 순서도 이 표 순서(표정 → 배경 → CG)예요. 「쓰는 챕터」는 game/story/ch1~ch5.json 을 세어 채웠어요(2026-10-14 실측 — say·show 의 face, 씬 bg·bg 줄, cg 줄). draco_teary 는 지금 원고 어디에도 안 나와요. 그래도 바이블 5-5 목록이라 45장에 남겨 뒀어요.

#id종류설명쓰는 챕터
1draco_neutral표정말포이 기본ch1~ch5
2draco_smirk표정비꼼, 「포터.」ch1~ch5
3draco_annoyed표정짜증ch1~ch5
4draco_angry표정분노(「다 네 탓이야, 포터.」)ch1~ch5
5draco_flustered표정칭찬·「해리」 직후ch2~ch5
6draco_sad표정베조아르가 안 듣는 장면 같은 상실ch2~ch5
7draco_surprised표정놀람ch1~ch5
8draco_soft표정호감 후반ch3·ch4·ch5
9draco_teary표정울음을 참음안 씀(원고 0회)
10draco_resolute표정결심ch1~ch5
11ron_neutral표정론 기본ch1~ch5
12ron_grin표정놀림·가족 가게 자랑ch1~ch5
13ron_shocked표정사레(스웨터 발견, 버터맥주)ch2~ch5
14ron_eating표정닭다리 들고 볼 빵빵ch1~ch5
15hermione_neutral표정헤르미온느 기본ch1~ch5
16hermione_stern표정잔소리·경계(화장실 장면)ch1~ch5
17hermione_smile표정누그러짐(「받아 둘게.」)ch3·ch4·ch5
18hermione_surprised표정놀람ch1·ch4
19blaise_neutral표정블레이즈 기본ch1~ch5
20blaise_smirk표정「흥미롭네.」ch1~ch5
21blaise_grave표정나르시사에게 소식 흘린 고백ch3·ch4·ch5
22slughorn_beaming표정사진기 들고 자랑ch1·ch2·ch3·ch5
23slughorn_flustered표정솥 터진 뒤 허둥댐ch1·ch2·ch3·ch5
24pomfrey_stern표정병동 잔소리ch1·ch3·ch5
25mcgonagall_stern표정「붙어 다녀라, 포터.」ch1
26bg_hall배경대연회장 — 긴 식탁 넷, 떠 있는 촛불, 별이 보이는 천장ch1~ch5
27bg_potions배경지하 마법약 교실 — 돌벽, 솥이 놓인 작업대, 재료 병 선반ch1·ch2·ch5(s1·E4)
28bg_wing배경병동 — 하얀 철제 침대 줄, 칸막이 커튼, 높은 창ch1·ch3·ch5
29bg_gryf배경그리핀도르 휴게실 — 빨간 안락의자, 벽난로ch2
30bg_slyth배경슬리데린 휴게실 — 호수 밑 초록 창, 낮은 천장, 가죽 소파ch1·ch2·ch4·ch5
31bg_pitch배경퀴디치 경기장 — 높은 골대 고리 셋, 관중석 탑, 흐린 가을 하늘ch2·ch5(E2)
32bg_bathroom배경2층 여자 화장실 — 금 간 세면대, 둥근 세면대 기둥, 흐린 창ch3
33bg_slugparty배경슬러그혼 연구실 크리스마스 파티 — 사진 액자 수십 개, 촛불, 휘장ch3
34bg_broomsticks배경세 개의 빗자루 — 붐비는 펍, 나무 테이블, 거품 머그ch4
35bg_ror배경불탄 필요의 방 — 그을린 높은 방, 재 무더기, 녹은 잡동사니ch4
36bg_lake배경호숫가 — 넓은 검은 호수, 멀리 성, 해 질 녘ch5
37bg_tower배경천문탑 꼭대기 밤 — 돌 난간, 망원경, 보름달ch4·ch5
38cg_cauldronCG터진 솥과 은빛 연기. 바닥에 주저앉은 TS 말포이(로브·바지 그대로, 소매가 손을 덮음), 연기 너머로 손을 내미는 해리의 팔과 안경 낀 옆얼굴ch1_s3
39cg_pitchCG비 오기 직전 하늘, 빗자루 두 대가 나란히 낮게 날며 작은 금색 공을 쫓음. 앞쪽 말포이(머리 묶음이 풀려 날림), 반 걸음 뒤 해리 뒷모습ch2_s3
40cg_handsCG금 간 세면대 위, 작은 약병을 든 손(초록 안감 소매)과 머리카락 한 올을 떨어뜨리는 손(빨강 안감 소매). 얼굴 없음ch3_s4a
41cg_ashCG그을린 방, 재를 뜨는 손(초록 안감 소매)과 그 손을 잡은 다른 손(빨강 안감 소매). 얼굴 없음ch4_s4
42cg_e1CG천문탑 보름달 아래, 뚜껑 닫힌 약병을 쥔 말포이가 해리 쪽으로 고개를 돌려 웃음(해리는 뒷모습). 가까운 거리, 접촉 없음ch5_e1 (E1)
43cg_e2CG다음 날 경기장, 원래 모습의 남성 말포이(draco_m)가 빗자루를 어깨에 메고 해리와 나란히 선 뒷모습 — 말포이가 약간 더 큼ch5_e2 (E2)
44cg_e3CG학기 마지막 날 호숫가, 바람에 머리가 날리는 말포이가 슬리데린 넥타이를 고쳐 매며 정면을 봄. 멀리 성ch5_e3t (E3)
45cg_e5CG새벽 안개, 성 앞 마차를 끄는 뼈만 남은 검은 날개 말(세스트랄), 마차에 오르는 백금발 뒷모습ch5_e5 (E5)

표 6 · 이미지 전체 목록 45장 (설명 = 바이블 5-5·5-6·5-7, 쓰는 챕터 = 원고 실측 2026-10-14)

07 · EXPRESSIONS

표정 문장

구도 문장 끝 Expression: 뒤에 붙는 문장이에요. 한 인물의 표정 여러 장은 외형 문장이 같고 이 줄만 달라요.

id표정 문장 (Expression: 뒤)쓰는 때
draco_neutralcalm, unreadable, lips closed기본
draco_smirkone corner of the mouth raised, condescending half-smile, eyes half-lidded비꼼·「포터.」
draco_annoyedfrowning, eyes narrowed, looking slightly away짜증
draco_angryglaring, jaw clenched, eyebrows drawn together분노
draco_flusteredfaint blush on the cheeks, eyes averted, lips pressed together칭찬·「해리」 직후
draco_sadeyes lowered, eyebrows slightly raised in the middle, quiet sorrow상실
draco_surprisedeyes wide, lips slightly parted놀람
draco_softsmall reluctant smile, relaxed eyes호감 후반
draco_tearyeyes glistening with held-back tears, chin raised stubbornly울음을 참음
draco_resolutesteady direct gaze, chin raised, determined결심
ron_neutraleasygoing, slightly sleepy기본
ron_grinwide lopsided grin놀림·자랑
ron_shockedmouth open, eyes wide, eyebrows shot up사레·경악
ron_eatingcheeks puffed with food, holding a chicken leg식탐
hermione_neutralattentive, composed기본
hermione_sternserious frown, one eyebrow raised잔소리·경계
hermione_smilesmall warm smile누그러짐
hermione_surprisedeyebrows raised, eyes wide놀람
blaise_neutralbored, heavy-lidded, cool기본
blaise_smirkamused knowing smile「흥미롭네」
blaise_graveserious, eyes lowered고백
slughorn_beamingdelighted beaming smile, moustache lifted, raising the camera기본·자랑
slughorn_flusteredsweating, wide eyes, hands raised in panic허둥댐
pomfrey_sternlips pressed, hands on hips기본
mcgonagall_sternthin lips, one eyebrow raised over the spectacles기본

표 7 · 표정 문장표 25줄 (바이블 5-5 원문 그대로)

말포이 표정이 10장으로 제일 많아요. 공략 대상이고 거의 모든 장면에 나오니까요. 론은 4장인데 그중 하나가 ron_eating 이에요. 원작 팬이 론을 알아보는 첫 번째 단서가 먹는 얼굴이라서요. 단역 셋(슬러그혼·폼프리·맥고나걸)은 1~2장으로 줄였어요.

draco_flustered 의 faint blush 는 얼굴 붉힘까지만이에요. 몸을 움츠리거나 옷을 여미는 동작은 넣지 않아요(바이블 1-5).

08 · REVIEW

검수 체크리스트

후보 2장 중 하나를 고를 때 위에서부터 봐요. 하나라도 걸리면 버려요. 애매하면 버려요. 후보가 둘뿐이라 둘 다 걸리는 일이 생길 수 있는데, 그러면 그 id 만 다시 뽑아요.

#항목버리는 경우근거
1얼굴 나이어려 보이는 얼굴. 둥근 볼·큰 눈·작은 코가 겹쳐 10대로 읽히면 버려요원칙 1 · 바이블 5-1
2노출지시하지 않은 노출. 맨다리·맨어깨·풀어헤친 셔츠 포함. 말포이는 바지가 보여야 해요원칙 2 · 바이블 1-5
3글자글자·서명·워터마크·로고. 배경 액자 속 낙서 같은 글자도 포함바이블 5-1
4배우 닮음영화 배우가 떠오르는 얼굴. 한 번이라도 특정 배우 이름이 떠오르면 버려요바이블 5-1 · 5-3
5화풍반질반질한 3D·광택 피부·강한 림라이트. 펜 선과 종이 결이 안 보이면 버려요바이블 5-1 · 5-2
6머리색·눈색말포이 머리가 백금이 아님, 눈이 초록, 론 머리가 생강색이 아님바이블 5-3
7넥타이 색그리핀도르 셋이 초록 넥타이, 슬리데린 둘이 빨강 넥타이 — 기숙사가 바뀐 그림바이블 5-3
8말포이 소매·바지TS 말포이 그림에서 소매가 손목 위로 올라감, 치마가 나옴(draco_m 은 소매 예외)바이블 1-5 · 5-3
9사람이 들어간 배경bg_* 에 사람 형체가 있음. 인물 카드와 겹쳐 누가 말하는지 헷갈려요바이블 5-4 구도 문장
10CG 접촉 수위cg_e1 에 입맞춤·끌어안기가 그려짐. 손만 나오는 CG 에서 손 외 신체가 크게 나옴원칙 2 · 바이블 5-7
11해리 얼굴CG 에서 해리 얼굴이 정면으로 크게 나옴바이블 5-3 harry 줄
12미성년으로 읽히는 인물배경·CG 에 아이 같은 형체(하급생)가 섞임원칙 1 · 바이블 0-1

표 8 · 검수 체크리스트 (항목 1~6 = 바이블 5-1 버림 기준, 7~12 = 5-3·5-7·0-1 에서 끌어낸 것)

고른 뒤에는 같은 인물 표정끼리 나란히 놓고 한 번 더 봐요. 머리 길이·넥타이 무늬가 장마다 다르면 독자가 다른 사람으로 읽어요. 이때 기준은 그 인물의 _neutral 이에요. neutral 을 먼저 고르고, 나머지 표정은 neutral 과 맞는지로 골라요.

09 · COST

생성 비용

Workers AI 는 이미지를 512×512 타일 수와 스텝 수로 셈해요. 1024² 한 장은 타일 4장이고, 8스텝이면 4×4.8 + 8×9.6 = 96 뉴런이에요(research/risk-art.md 4-1, https://developers.cloudflare.com/workers-ai/platform/pricing/ 2026-10-14 확인). 하루 무료 할당은 10,000 뉴런이에요.

구분장수후보뽑는 장수문서 계산 (96 뉴런/장)1판 실측 단가로 추정 (약 196 뉴런/장)
인물 표정252504,8009,800
배경122242,3044,704
CG82161,5363,136
합계45—908,64017,640
무료 10,000 대비———86.4% — 하루 안176.4% — 하루를 넘음

표 9 · 생성 비용표 (장수 × 후보 2 × 단가. 모두 파이썬으로 계산)

바이블 기준은 왼쪽 칸(8,640 뉴런, 하루 안)이에요. 그런데 1판을 뽑은 2026-10-14 실측은 장당 약 196 뉴런이었어요(UTC 하루 flux 호출 91건 17,798 뉴런, Cloudflare GraphQL aiInferenceAdaptiveGroups 조회 — 1판 05 문서 기록). 실패한 호출이 뉴런을 쓰는지는 미확인이라 단가가 정말 두 배인지는 확정하지 못했어요. 오른쪽 칸은 그 실측을 그대로 곱한 추정이에요.

gen.py 는 장당 200 뉴런으로 잡고 하루 10,000 을 넘을 실행을 멈춰요. 그러니 90장을 한 번에 돌리면 잠금에 걸려요. 이틀로 나눠요.

날무엇장수(후보 포함)gen.py 셈(200/장)
첫날인물 표정 25 × 2. 먼저 학생 넷의 _neutral 4장(draco·ron·hermione·blaise)과 단역 기준 컷부터 뽑아 고르고, 나머지 표정은 그 뒤에5010,000 — 한도와 딱 맞아 재시도 여유가 없어요. 표정 24장(48장, 9,600)에서 끊고 1장은 둘째 날로 넘겨요
둘째 날첫날 남은 표정 + 배경 12 × 2 + CG 8 × 2 + 다시 뽑을 것42 + 다시 뽑기8,400 + 다시 뽑기 분. 다시 뽑기가 8장을 넘으면 셋째 날로

표 10 · 이틀 나눠 뽑기 (무료 한도만 쓰는 전제. 한도는 UTC 0시 = 한국 오전 9시에 초기화)

CG 를 표정 뒤로 미룬 이유가 있어요. CG 에는 인물 외형 문장이 들어가는데, 표정 기준 컷을 보고 외형 문장이 의도대로 나오는지 먼저 확인해야 CG 후보를 버리지 않아요.

유료 단가는 미확인이에요. 2026-10-14 에 무료 한도를 넘긴 뒤에도 호출이 성공했으니, 이 계정은 한도를 넘으면 막히지 않고 과금되는 쪽으로 봐요(추정). gen.py 잠금은 주인이 허락할 때만 BRUNI_PAID_IMAGE_OK=yes-owner-approved 로 풀어요.

10 · PROMPTS.JSON

prompts.json 형식

{"style": "<5-2 문장>", "items": [{"id": "draco_neutral", "prompt": "<외형 문장> <구도 문장> Expression: calm, unreadable, lips closed."}]}

11 · OPEN ITEMS

확인 못 한 것, 조건이 걸린 일

항목지금언제 처리하나(조건)
v2 화풍 문장의 효과미확인 — 생성 전첫날 기준 컷을 본 뒤. 반질함이 남으면 메인에게 바이블 5-2 수정안을 올려요
장당 실제 뉴런문서 96, 1판 실측 약 196 — 차이 원인 미확인v2 첫 생성 날 시작 전·후 GraphQL 사용량과 성공 장수를 대조해 이 표를 고쳐요
WebP 변환안 함 — 바이블 5-1 이 JPEG 고정전체 용량을 잰 뒤 모바일 로딩이 느리다는 기록이 생기면 바이블 개정을 논의해요(research/vn-design.md 5장은 WebP 를 권함)

표 11 · 미확인·조건부 항목

← 04 시스템 06 리스크·운영 →