Translate real architecture and local culture photographs into editorial posters with subject treatment, active backgrounds, type design, and spatial interaction. First derive a creative proposition from the photograph, then let one compatible dominant reference reinforce it; Token handles retrieval and mechanism tracking, and cannot replace design judgment.
Core Contract
- Highly stylized tasks are fixed to use: Image 1 corrected original, Image 2 one dominant reference real image, Image 3 sparse neutral typographic underlay. Before generation it must be compiled by
scripts/prepare_generation.pyinto a single call manifest; they must not substitute for each other, be reordered, or have the prompt re-summarized at call time. - The selected Recipe must be saved as
analysis/recipe.json, then all enabled Tokens are compiled intoanalysis/design-plan.json: apart from deterministic correction items, every Token must be assigned to subject, background, typography, or interaction action, and point to the same-named region marker in Image 3. The compiler writes these actions into the final model prompt; Tokens that appear only in the brief and do not enter the prompt and underlay are considered undelivered. - The creative proposition must precede reference retrieval and simultaneously state:
主体如何处理 / 背景如何主动参与 / 文字如何与真实轮廓互动 / 哪个非默认排版动作打破双居中。 reinterpretDisplay type completesglyph-brief.mdand per-character optical compensation before the first generation, and usesguide_render: scaffoldin the underlay, to avoid ordinary font outlines overpowering the type design; it cannot merely say Songti, Heiti, serif, or "premium retro." Another conventional type family may be used for small informational text.- The image model must complete actions that code cannot replace, such as semantic cutout, composition repair, joint relighting, background reconstruction, regional materials, and image-text occlusion. Solutions reproducible by ordinary cropping, filters, gradients, and typing are invalid.
- The subject domain, background domain, and interaction domain of a single image must all be visible at thumbnail scale. The "two isolated islands" default where the subject is centered, the title is centered, and they do not touch is invalid.
- The prompt expresses only one artistic direction, without stitching together Token constraints, failure cases, or long acceptance checklists.
- Generate only the quantity requested by the user. After the image is generated, it must be read back once and obvious problems briefly pointed out, but do not automatically score, make proofs, or regenerate; only make targeted modifications after user feedback.
Input Confirmation
Extract from the user message: location/object and necessary copy, poster quantity, and whether an original-image comparison collage is wanted. Do not ask again about what is already clear; when the user says "you decide," default to 1 image, use only confirmed or verifiable short words, and do not generate a comparison collage. When the name is uncertain, it may be identified or retrieved, but must not be fabricated from appearance.
Workflow
0. Establish Safe Input
- Run
python3 scripts/check_dependencies.py. The entry point automatically looks for a compatible.venvin the caller directory; on failure, stop and explain, do not install globally, and do not silently degrade. - Artifacts are written to
output/yingzao/<run-id>/in the caller working directory, and must not be written into the Skill package. - For each source, run
scripts/photo_preflight.py, determinehero / support / reject, and record photo axis and composition issues. When needed, first usescripts/rectify.pyfor deterministic correction. - Facts are graded according to
VERIFIED / OBSERVED / USER-CONFIRMED / UNCONFIRMED; only the first three categories enter the poster. See detailed rules in photo-preflight.md and research-and-annotation.md。
1. Freeze the Creative Proposition and Select References
First write the four-domain proposition, then retrieve from preflight's controlled tags:
python3 scripts/design_tokens.py suggest \
--tag <标签> --count <数量+1> --maximize-distance \
--history output/yingzao/<run-id>/recipe-history.json \
--record-history
python3 scripts/design_tokens.py recipe <id> --json \
> output/yingzao/<run-id>/analysis/recipe.json
Zero hits returns status 2; at this point switch to controlled terms and search again. Use recipe <id> --json to obtain the real reference_assets, and save the complete output as analysis/recipe.json; a highly stylized task selects exactly one dominant reference. It must be compatible with the target's subject footprint, negative-space topology, and interaction boundaries, and must actually demonstrate subject treatment, active background, and image-text relationship. For the selection method, see mixing-logic.md。
Write anything that would change generation decisions into creative-brief.md, then pass through the eight pre-generation gates of preflight-gates.md .
2. Design glyph and spatial relationships
According to frontend-layout-guide.md , use scripts/typeset_compose.py to generate a neutral sparse underlay. First write design-plan.json, marking the four-domain actions respectively as S1 / B1 / T1 / I1 , etc.; the corresponding title layer, subject outline, and background area must be marked on the underlay using guide_marker + guide_label . The presentation layer must explicitly declare glyph_design_mode;reinterpret only draws character slots and small face labels, and does not feed the large outlines of ordinary fonts into the final form. The underlay only locks necessary text, hierarchy, common axes, reading order, action areas, and primary occlusions; it does not lock final colors, materials, or web-style containers.
When the presentation title is reinterpret , according to display-glyph-morphology.md save analysis/glyph-brief.md: choose one glyph lineage, record at least five visible features, and explain character by character the optical issues, outline actions, and unchangeable standard components. If subject-over-text is declared, the underlay must use Image 1's real outline to establish subject-footprint and the occlusion contract.
3. Overall generation
Single-image and same-location multi-image fusion use edit by default. First write the prompt according to image-generation-workflow.md and run scripts/prepare_generation.py; only when the script returns READY may the image model be called. When calling, use the tool_argumentsfrom the manifest as-is; do not omit the dominant reference, underlay, or subject/background/interaction sections.
For multi-image "unification", extract the subject from each image one by one, and recompose them into the same environment with shared perspective, light direction, contact shadows, edge language, and material; preserve photo rectangles only when the user explicitly requests a photo set or comparison.
4. Delivery and on-demand expansion
- After generation, first open the resulting image with an image-reading tool, and according to image-generation-workflow.md do a five-item quick read-back, writing the 0–3 most obvious issues into
analysis/readback.md; do not automatically regenerate because of this. - User does not want a collage: deliver a poster. User wants comparison: run
scripts/make_comparison.py ORIGINAL POSTER OUTPUT。 - invite the user to point out specific modifications in font, subject treatment, composition, material, copy, or fusion relationships. After receiving feedback, for local issues use the current image as the edit target; for structural issues such as subject, background, main layout, reference direction, or image-text relationship, return to the corrected original image and redo the proposition, reference, and underlay.
- After the poster is delivered, ask once: "Do you want to continue expanding this poster into a 3×3 video storyboard sheet, with a prompt that can be handed directly to a video model?" Only after the user agrees, read video-storyboard.md; do not automatically generate video.
On-demand reference
| Case | File |
|---|---|
| Need specific font, composition, material, or cultural translation methods | art-direction.md |
| Create typographic underlay | frontend-layout-guide.md |
| Design presentation glyphs | display-glyph-morphology.md |
| Maintain Recipe / Token | token-system.md |
| Read the encoding of the selected reference | reference-encoding-matrix.md、reference-encoding-expansion-2026.md; read only the matched entries |