First, the most important point
A single generation can do well with "texture + character + color-block layout," but does poorly with "structured grid + grouped text." This is the conclusion from multiple hands-on tests, and it directly determines the workflow:
| Section | Generation model performance | Handling method |
|---|---|---|
| One Hero Banner | Stable. Character crop overflow and large text pressed onto color blocks are both correct | Generate directly |
| Two Character Profile | The title is fine,the two-column × 3-row field grid is often misaligned(labels and values run together, missing items, garbled text) | After generation, redraw as needed with scripts/sheet_text.py Redraw |
| Three Multiview four views | Basically correct, butdetails such as torso/tail may have structural bugs(such as two tails) | When a single view has problems, use scripts/replace_view.py to replace that cell |
| Four Action banner | Stable | Generate directly |
| Five Action atlas | Almost always wrong: repeated poses, misspelled labels, order does not follow instructions | Generate pose images separately → scripts/compose_actions.py layout |
Inference:Do not use image-to-image to modify section five or the field grid. In tests, 3 consecutive attempts all reverted to the original, wasting credits for nothing. For any structural change, always use "generate elements separately + programmatic compositing."
Process
Step 0 Collect information
Collect all the following fields according to the template. For missing items, infer according to the right column; do not repeatedly ask. After writing, state the inferred values in the reply.
| Field | Required | Handling when missing |
|---|---|---|
| Character name (Chinese) | Yes | Must ask |
| Character English name | No | Use the brand English name; if none, use a free translation of the Chinese name in all caps |
| Appearance description (species, main color, iconic features) | Yes | Must ask |
| Nickname / birthplace / birthday / gender / personality / hobbies | No | Fill in only what the user gives;for birthday, use by default 08.08, and for the rest, prefer leaving blank rather than making things up |
| Brand main color | No | Take the character's main body colorone shade darker in the same color family(light camel character → caramel amber), ensuring the character can still be separated from the color block |
| Reference image | No | If available, use it as an identity anchor; if not, first generate the character's main appearance |
Step 1 Confirm specifications
Before one generation, state:1 image at 1024×2560 (exactly 1:2.5), five sections, estimated 2~3 generations (1 for the full layout + 1 for pose images, with possible additional fixes if problems arise). Write the scale and specifications clearly before starting work; do not ask follow-up questions for each image midway.
Step 2 Establish the identity anchor
- If the user provided a character image → use it directly as the anchor,include this image in every generation, and never degrade it into a text description.
- If the user did not provide one → first generate only the character's main design (front view, full body, white background), and proceed to the full layout only after confirmation.
Step 3 Full layout generation
Use references/prompt-templates.md 's [Template A] to assemble the prompt, filling in the placeholders item by item.
First check whether the current image generation entry point supports 1024x2560. If it does not, generate according to actual capabilities, then achieve the exact 1:2.5 through cropping, outpainting, or layout; before delivery, read the actual pixels to verify, and do not treat the prompt dimensions as a guarantee of the output.
After generationyou must read the image and verify: whether all five blocks are present, whether the proportions are approximately 25/15/20/15/25, whether the Hero character overflows the color block, and whether the Multiview four-panel order and the Chinese and English labels are correct.
Step 4 Structured patch
Choose a script by failure type (each requires only one base image + one asset, and does not regenerate the entire layout):
# ① 区块五重排:单独生成的 N 姿势白底图 → 等距网格 + 重绘英文标签
python scripts/compose_actions.py --base sheet.png --poses poses.png --out sheet_v2.png \
--labels stand,running,sitting,lying,jumping,"left hook" --cols 3 --rows 2
# ② 替换 Multiview 某一格(如后视图双尾、侧视图比例异常)
python scripts/replace_view.py --base sheet_v2.png --view back.png --out sheet_v3.png \
--center 638 --baseline 1414 --height 286
# ③ 重绘区块二字段网格(标签与值串行时)
python scripts/sheet_text.py --base sheet_v3.png --out sheet_v4.png --grid 2x3 \
--fields "昵称:袋袋,出生地:澳大利亚 · 墨尔本,生日:08.08,性别:男,性格:热情开朗,爱好:运动 · 看书 · 旅行"
The three scripts share scripts/cutout.py 's cutout logic; the background patch automatically blends with the base image's original gradient, leaving no rectangular seams.All rectangle-type parameters are unified as X0 Y0 X1 Y1(top-left corner + bottom-right corner), and passing them in the wrong order will silently cover the adjacent cell. For parameter meanings and tuning, see each script's --help and references/layout-spec.md。
Step 5 Acceptance
Check item by item,and write the conclusion into the reply to the user:
- Whether the aspect ratio is exactly 1:2.5 (read pixels, do not rely on visual estimation)
- All five blocks are present, and the proportions are close to 25/15/20/15/25
- Whether the character design, color scheme, matte texture, and proportions are the same person across all blocks
- Text on the image: spelling, language consistency, no garbled characters; whether the profile field labels and values are aligned
- Multiview four-panel order and labels (front view/side view/back view/45° view + front/side/after/forty-five°)
- Whether the action atlas pose count, order, and labels match the user's requirements item by item
- No shadow residue, no double tails/multiple limbs, and patch edges invisible at 1:1
When it failsfirst report the specific phenomenon and then ask whether to redo it, and do not automatically redo it (redoing costs credits).
Reference files
| File | When to read |
|---|---|
references/prompt-templates.md |
When assembling the full-layout prompt, pose image prompt, or single-view supplementary image prompt |
references/layout-spec.md |
When precise coordinates, font sizes, color values, or baselines are needed; when tuning script parameters |
references/pitfalls.md |
When problems occur (garbled characters, double tails, seams, white edges, poses not following instructions), consult the table |
Scripts
| Script | Function |
|---|---|
scripts/cutout.py |
White-background cutout (warm-color criterion / saturation criterion), output RGBA + content box |
scripts/compose_actions.py |
Pose grid image → evenly spaced arrangement in specified regions + redraw labels + background gradient blending |
scripts/replace_view.py |
Replace any single cell's character view in the design sheet (cutout + proportional scaling + baseline alignment + ground shadow) |
scripts/sheet_text.py |
Redraw the field grid of block two (clear old content + lay out in 2 columns × N rows) |
Dependencies: Python 3.10+ + Pillow (can be installed via python -m pip install Pillow ). Fonts default to the system's msyh.ttc / msyhbd.ttc(Chinese),arial.ttf(Latin), and can use --font Override.