name: acg-character-settei description: Use when generating an ACG (anime/manga) character settei sheet (キャラ設定資料) — multi-view full-body lineup, expression list, detail callouts, color palette — from a template settei image plus a single character reference image. Built on top of gemini-image-generation; this skill encodes the layout-locking + identity-locking prompt pattern that reliably produces settei-style output.
ACG Character Settei Generation
Overview
Produce a horizontal anime character design sheet by feeding the model two reference images at once:
- Template image — supplies layout, composition, line weight, palette aesthetic, and white background.
- Character image — supplies identity (hair, eyes, face, outfit, expression).
The skill is a thin wrapper over gemini-image-generation. Read that skill first for client setup, retry pattern, and watermark handling.
When to Use
- User has a settei template (any artist's character sheet) and wants to restyle a different character into the same sheet format.
- User wants a clean three-view + expression-sheet + detail-callout layout for an OC, VTuber, or avatar character.
Skip when:
- Only one full-body pose is needed → use plain
gemini-image-generationinstead. - The template requires legible Japanese annotations as real text (Gemini cannot render exact text reliably; treat the script labels as decorative).
Inputs
| Variable | Meaning |
|---|---|
TEMPLATE_PATH |
Path to the settei template image (defines layout). |
CHARACTER_PATH |
Path to the character reference image (defines identity). |
OUTFIT_DESC |
One-sentence outfit description, locked across all three full-body views. |
OUT_PATH |
Output PNG path. |
Workflow
[1] Inspect both inputs
-> read template to identify panels (full-body count, expression count, callouts, palette)
-> read character to extract identity tokens (hair, eyes, blush, accessories, outfit)
[2] Compose the prompt with two locked blocks
-> LAYOUT block: lock template's composition, line style, background, panel arrangement
-> IDENTITY block: lock character's hair / eyes / accessories / outfit, applied to every panel
[3] Call gemini-3.1-flash-image-preview
-> contents = [prompt, template_image, character_image]
-> aspect_ratio = "16:9", image_size = "2K"
[4] Verify
-> three full-body views all wear the same outfit
-> expression row matches template count
-> character identity matches reference (hair color, eye color, accessories)
-> if drift, tighten the locked block that drifted and retry; do not patch the output
Prompt Pattern
Two blocks, positive instructions, ≤ ~200 words total. Long negative-list prompts trigger MALFORMED_FUNCTION_CALL.
Create a horizontal anime character settei sheet matching the EXACT layout,
composition, line weight, soft watercolor shading, and pure white background
of the FIRST reference image:
- left: three full-body standing views (front, side, back)
- upper right: row of small head-and-shoulder expression variations
(gentle smile, blush, surprised, sleepy, pout, happy)
- lower right: close-up detail callouts (eye, <key outfit detail>) and small
color-palette swatch dots
- thin pencil-style annotation lines and tiny handwritten-style note marks
(decorative, no need to read)
The character must be the girl from the SECOND reference image:
<2–4 short identity sentences: hair, bangs, eye color, accessories, expression>.
She wears <OUTFIT_DESC>. Keep the same outfit consistent across all three
full-body views.
Art style: soft anime cel-shading with light watercolor highlights, clean
thin linework, bright airy palette, white paper background — match the first
reference's aesthetic exactly.
Rules
- Always pass exactly two reference images: template first, character second. Order matters — the model treats the first image as the structural template.
- Lock the outfit explicitly with
Keep the same outfit consistent across all three full-body views.Without this, side and back views drift to different outfits. - Do not include negative lists (
do NOT add ...). Use positive substitutes. - Treat label text as decorative. Never request specific Japanese strings; the model will produce plausible-looking marks but not real readable text.
- Aspect ratio 16:9, size 2K matches the typical settei canvas. Use
1Kfor fast iteration. On Vertex (VERTEX_AI_KEYorGOOGLE_GENAI_USE_VERTEXAI=true),image_sizeis dropped automatically — the model uses its default resolution. - Identity drift fix: re-extract identity tokens from the character reference and compress to ≤ 4 sentences; do not over-describe.
- Auth: any one of
GOOGLE_AI_STUDIO_API_KEY/GEMINI_API_KEY/GOOGLE_API_KEY(AI Studio), orVERTEX_AI_KEY(Vertex Express), orGOOGLE_GENAI_USE_VERTEXAI=true+GOOGLE_CLOUD_PROJECT/LOCATION(Vertex ADC). Never read.envdirectly.
Script
scripts/gen_settei.py — copy, edit the four constants at the top, run with uv run. Inline uv deps declared at the top of the file.
uv run skills/content/acg-character-settei/scripts/gen_settei.py
Verification
- Open the output PNG; confirm three distinct full-body views with the SAME outfit.
- Confirm expression row count matches template.
- Confirm character hair color / eye color / accessory placement matches the character reference.
- If a Gemini sparkle ✦ leaked in (from a Gemini-sourced template), add the watermark-removal clause from
gemini-image-generationand retry.