Compile ambiguous requests into $imagegenfinished Korean production prompts. For generation/mass production use [codex-imagegen](for 1 image, codex directly).
Workflow
- Infer and fill in missing decisions (category, cut type, subject, style, composition, text, AR). The only things to ask about are the original Korean copy text, brand names, and sensitive material.
- Determine which file to read from the routing table; formats are in §Format A/B.
- Write while following the 9 ironclad rules, and at the end
ARtoken. - For high-value deliverables, before responding run
node scripts/check_prompt.mjsvalidation (ok:true). - When linked to generation, pass only the compiled prompt (raw original text prohibited).
Expansion examples: poster→C3, pictorial→C1 B, key art→C11, icon→C9 ("no text"), product→C4, comic→C10, PPT→C12 (16:9).
Output contract: single=body + trailing AR x:yonly (without explanation) · multiple= Title/Category(Cn)/Cut type/Prompt per entry · generation request=compile silently then call the tool.
Routing table (sole routing point)
| Request signal | Category/Format | File to read |
|---|---|---|
| Solo figure pictorial·editorial | C1·Format B | references/editorial-hwabo.md (lookbook·sequence·21 fashion types +references/style-taxonomy.md) |
| Typo poster·text is the image itself | TP1~TP17 | references/typo-poster-router.md→references/typo-poster/TPn-*.md 1개 |
| Type specimen·glyph set·hand-cut wordmark·print gradient metal | TP15~TP17 | references/typo-poster-router.md→ corresponding TPn-*.md 1개 |
| Promotional merchandise·brand poster·"well-designed poster" | P1~P12 | references/promo-router.md→references/promo/Pn-*.md 1. Card-news density grammar prohibited (aesthetic death) |
| Cover plate (album cover·book cover·packaging label)·color-field division·painterly cover·signboard-type collage | P9~P12 | references/promo-router.md→ corresponding Pn-*.md 1개 |
| Poster·key art·infographic·card news·comic·field guide·icon·beauty·campaign·mockup | C2~C11 | references/category-patterns.md Corresponding §. C6·C7=density default·breakthrough tactics §C6 |
| Presentation·slide deck | C12 | references/category-patterns.md §C12 |
| Mood ("make it look good"·"luxury"·"cinematic") | 룩 L1~L9 | references/look-presets.md Drop in 1 preset |
| Draft diversification·mass-production concepts·"differentiation"·"start from the concept" | M/R/X/T축 | references/concept-axes.md Variation on 1 axis |
| Text placement·font·grid·dense text | — | references/typography-layout.md |
| Camera·lighting·color vocabulary | — | references/photo-vocab.md |
| jsonl batch·model facts·finished examples·codex skeleton·8-section variants | — | references/jsonl-and-examples.md |
Routers (P/TP) select 1 pattern and then load only one corresponding file. If multiple rows match at the same time, upper rows take priority(table order = priority) — for boundary cases, the boundary/intersection reference section of each router takes precedence.
Ironclad rules
-
Leading
[AR x:y SIZE wxh]bracket prohibited. size is only via the API parameter (jsonlsize), and only one at the end of the promptAR x:y. Slot tokens ([PERSONA_LOCK]type) are authoring-only — any residue = disqualification (E-SLOT-LEAK). -
Scene exclusions are all positive-form — gpt-image-2 actually renders scene negatives (crowd→"one person, alone", background→"clean solid-color background"). The only exceptions are the two lanes; not a workaround but compliance steering.
Tier Condition Allowed phrasing Tier-0 default Always all-positive, 0 negations Tier-1 text guard Only when rendered text is present 7-item whitelist: no extra words·no duplicate text·no invented glyphs·no watermark·no logo·no extra text·verbatim, no extra charactersTier-2 editorial lane Only when explicitly declared (no heuristic promotion) SAFETY_ASSERT (positive-form, subject clause) + NEGATIVE_TAIL (once, immediately before AR) pair structure Tier-1 combination formula (the only emission form):
All text appears once, perfectly legible — no duplicate text, no extra words, no invented glyphs, no watermark.Tier-2 fixed strings and pair rules (order-preserving subset, tail standalone prohibited) canonical source =references/editorial-hwabo.md§3 (not included here).Negative:Labels are prohibited in all tiers (E-NEG-SECTION).What to remove Lane Scene elements (people, objects, background, props) Positive-form restatement (Tier-0) Text render defects (duplication, ghosting, watermark) Tier-1 whitelist Policy safety assertion (editorial) Tier-2 pair -
SD-era deprecated vocabulary prohibited.
masterpiece/best quality/8k/4k/uhd/trending on artstation/ultra-detailed/highly detailed/sharp focus, weights(word:1.3),--ar/--v, body§, empty adjectives (beautifully/emotionally/luxuriously/refinedly/beautiful/stunning). Stage specification ("award-level/like a professional/top-tier") is equivalent; the standard lies outside the prompt. Reduce to numbers (margin %·60/30/10·hierarchy singular)·body reactions·concrete examples (concept-axes.md §dead-word reduction). -
Reduce equipment specs→results. Instead of EXIF·equipment names, use "shallow DoF, background falls off softly"·"warm key + cool rim". (Fashion
Lens character:·Director signature:is an exception as result+anchor.) -
Numbers are locked in. HEX palette (3–5 colors per cut), Kelvin,
key:fill 1:2ratio. -
1 row = 1 cut = 1 call. One-canvas grid/matrix prohibited; multiple cuts use N rows.
-
Ideal skin prohibited → "natural skin texture, visible pores, subtle film grain".
-
Real trademarks·person references prohibited, use fictional brands/personas.
-
Absolutely no post-processing of text after generation. Text is rendered inside the image via the prompt (quoted copy + role labels + free authoring zone). Compositing code onto PNG (PIL·ImageMagick·SVG/HTML·canvas) is strictly prohibited; font·kerning·tone will look off. For text errors, revise the prompt and regenerate (typography concretization→
2048x2048+quality high→copy reduction, in that order).
Master template (Format A, 6 sections)
Pure description + HEX. Core visual information at the very top (first section = strongest attention). Header # 1. Scene OK, body § forbidden.
| # | Section | What / Length |
|---|---|---|
| 1 | Scene | Who, what, where, what. Core first. 60–120 words |
| 2 | Camera | Viewpoint, distance, lens character (result description). 15–30 words |
| 3 | Lighting | Direction, soft/hard, shadows, rim light (no equipment names). 10–25 words |
| 4 | Color grading | Palette + color temperature + HEX 3~5개. 10~20어 |
| 5 | Texture/Medium | Medium, texture, surface response, post-processing. 10–20 words |
| 6 | Text-in-image (optional) | "따옴표 카피" + font, size, position + legibility once. 0–25 words |
| — | Trailing | At the end AR x:y token only |
Format A / Format B
- Format A — 6 labeled sections(table above): overall structures (posters, key art, infographics, compendiums, card news, comics, etc.).
- Format B — pictorial flat comma-style short sentences: no labels, one comma paragraph, 350–450 characters, default AR
2:3(1024x1536). 12 slot types order, Tier-2 → editorial-hwabo.md. - Routing: solo person pictorial/glamour editorial → B, everything else → A.
Size lock (6 codex runner types)
API is custom, codex ($imagegen) path only 6 types safe. auto forbidden, unified within chapter.
| ar | size | ar | size |
|---|---|---|---|
| 1:1 | 1024x1024 |
16:9 | 1792x1024 |
| 2:3 / 3:4 / 4:5 | 1024x1536 |
9:16 | 1024x1792 |
| 3:2 / 4:3 | 1536x1024 |
Dense/multi-cut | 2048x2048 |
2:3only exact ratio, 3:4·4:5is vertical approximation. Unsupported values (1024x1280 etc.) also to the nearest 6 types.
API hard constraints, transparent background (1.5 fallback): jsonl-and-examples.md §1.
Text rendering key points
- Copy is fixed in quotes + font, size, position, HEX, one language per line (no mixing Korean + English). 2+ copies separate roll labels (headline/subhead/callout), specify position, size, font per roll.
- Rendered text gets Tier-1 combination formula once (iron rule #2), same copy written twice = rendered twice, forbidden.
- Korean spell-out forbidden (hyphens render as letters). Accuracy lever = canvas size (2048 measured 12/12). Only English coinages ALL CAPS as last resort. Labels contain only actual wording.
- Dense text (3+ copy blocks/small letters) is
quality: high+ large side pairing (1536/1792,2048x2048). - Korean/English mixed: Korean = narrative, mood, cultural nouns, Korean copy, English = technique tokens, tier phrases, hybrid = Korean skeleton + English tokens. Details photo-vocab.md §8.
Validator
Before response/generation node scripts/check_prompt.mjs <file>(stdin possible).
--tier <0|1|2>enforced /--jsonlrecord /--apiE-SIZE-LOCK→warning (hard constraints maintained) /--testself-test.- Tier priority:
--tier> jsonltier>lane("editorial"→2) > heuristic (rendered text→1, otherwise 0). Tier-2 cannot be promoted by heuristic. - Output
{ok, format, tier, errors[{code,msg,hint?}], warnings[{code,msg}]}, errors 0=exit 0. - Errors:
E-NEG-TIER(undeclared higher tier),E-SLOT-LEAK·E-SIZE-LOCK, negatives, leading brackets, SD vocabulary, weights, slash flags, missing trailing AR.