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-generation instead.
- 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
1K for fast iteration. On Vertex (VERTEX_AI_KEY or GOOGLE_GENAI_USE_VERTEXAI=true), image_size is 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), or VERTEX_AI_KEY (Vertex Express), or GOOGLE_GENAI_USE_VERTEXAI=true + GOOGLE_CLOUD_PROJECT/LOCATION (Vertex ADC). Never read .env directly.
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-generation and retry.
1---2name: acg-character-settei3description: 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.4---56# ACG Character Settei Generation78## Overview910Produce a horizontal anime character design sheet by feeding the model two reference images at once:11121. **Template image** — supplies layout, composition, line weight, palette aesthetic, and white background.132. **Character image** — supplies identity (hair, eyes, face, outfit, expression).1415The skill is a thin wrapper over `gemini-image-generation`. Read that skill first for client setup, retry pattern, and watermark handling.1617## When to Use1819- User has a settei template (any artist's character sheet) and wants to restyle a different character into the same sheet format.20- User wants a clean three-view + expression-sheet + detail-callout layout for an OC, VTuber, or avatar character.2122Skip when:2324- Only one full-body pose is needed → use plain `gemini-image-generation` instead.25- The template requires legible Japanese annotations as real text (Gemini cannot render exact text reliably; treat the script labels as decorative).2627## Inputs2829| Variable | Meaning |30|---|---|31| `TEMPLATE_PATH` | Path to the settei template image (defines layout). |32| `CHARACTER_PATH` | Path to the character reference image (defines identity). |33| `OUTFIT_DESC` | One-sentence outfit description, locked across all three full-body views. |34| `OUT_PATH` | Output PNG path. |3536## Workflow3738```text39[1] Inspect both inputs40 -> read template to identify panels (full-body count, expression count, callouts, palette)41 -> read character to extract identity tokens (hair, eyes, blush, accessories, outfit)4243[2] Compose the prompt with two locked blocks44 -> LAYOUT block: lock template's composition, line style, background, panel arrangement45 -> IDENTITY block: lock character's hair / eyes / accessories / outfit, applied to every panel4647[3] Call gemini-3.1-flash-image-preview48 -> contents = [prompt, template_image, character_image]49 -> aspect_ratio = "16:9", image_size = "2K"5051[4] Verify52 -> three full-body views all wear the same outfit53 -> expression row matches template count54 -> character identity matches reference (hair color, eye color, accessories)55 -> if drift, tighten the locked block that drifted and retry; do not patch the output56```5758## Prompt Pattern5960Two blocks, positive instructions, ≤ ~200 words total. Long negative-list prompts trigger `MALFORMED_FUNCTION_CALL`.6162```text63Create a horizontal anime character settei sheet matching the EXACT layout,64composition, line weight, soft watercolor shading, and pure white background65of the FIRST reference image:66- left: three full-body standing views (front, side, back)67- upper right: row of small head-and-shoulder expression variations68 (gentle smile, blush, surprised, sleepy, pout, happy)69- lower right: close-up detail callouts (eye, <key outfit detail>) and small70 color-palette swatch dots71- thin pencil-style annotation lines and tiny handwritten-style note marks72 (decorative, no need to read)7374The character must be the girl from the SECOND reference image:75<2–4 short identity sentences: hair, bangs, eye color, accessories, expression>.76She wears <OUTFIT_DESC>. Keep the same outfit consistent across all three77full-body views.7879Art style: soft anime cel-shading with light watercolor highlights, clean80thin linework, bright airy palette, white paper background — match the first81reference's aesthetic exactly.82```8384## Rules8586- **Always pass exactly two reference images**: template first, character second. Order matters — the model treats the first image as the structural template.87- **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.88- **Do not include negative lists** (`do NOT add ...`). Use positive substitutes.89- **Treat label text as decorative.** Never request specific Japanese strings; the model will produce plausible-looking marks but not real readable text.90- **Aspect ratio 16:9, size 2K** matches the typical settei canvas. Use `1K` for fast iteration. On Vertex (`VERTEX_AI_KEY` or `GOOGLE_GENAI_USE_VERTEXAI=true`), `image_size` is dropped automatically — the model uses its default resolution.91- **Identity drift fix**: re-extract identity tokens from the character reference and compress to ≤ 4 sentences; do not over-describe.92- Auth: any one of `GOOGLE_AI_STUDIO_API_KEY` / `GEMINI_API_KEY` / `GOOGLE_API_KEY` (AI Studio), **or** `VERTEX_AI_KEY` (Vertex Express), **or** `GOOGLE_GENAI_USE_VERTEXAI=true` + `GOOGLE_CLOUD_PROJECT`/`LOCATION` (Vertex ADC). Never read `.env` directly.9394## Script9596`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.9798```bash99uv run skills/content/acg-character-settei/scripts/gen_settei.py100```101102## Verification103104- Open the output PNG; confirm three distinct full-body views with the SAME outfit.105- Confirm expression row count matches template.106- Confirm character hair color / eye color / accessory placement matches the character reference.107- If a Gemini sparkle ✦ leaked in (from a Gemini-sourced template), add the watermark-removal clause from `gemini-image-generation` and retry.