agentsclimarketplace

Anime fanart imagegen

Skill siqili723547-ui/anime-fanart-imagegen

Generate anime fan posters, scenes, stylized illustrations, and character renders for existing anime, game, visual-novel, or adjacent Japanese-style IP characters with strong identity preservation. Use when the user has only a rough idea in Chinese, cannot write a strong prompt, wants the agent to infer likely directions, gather official-priority references, lock character likeness, expand fuzzy intent into image-2-ready English prompts, explore style options without identity drift, or deliver repeatable 2K, 4K, or fixed-profile outputs for a known character/IP without copying a reference composition.From its SKILL.md

Install
npx -y skills add siqili723547-ui/anime-fanart-imagegen

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

31.7 KB, ~8.0k tokens by cl100k_base, as published. Nobody here has run it

Anime Fanart Imagegen

Generate high-quality anime fanart for known characters while keeping the character recognizable.

Treat this skill as a prompt-and-direction engine, not only a rendering engine. The user should only need to provide taste signals; the agent converts them into structured decisions, a modular Chinese prompt spec, and a final English gpt-image-2 prompt.

Primary UX promise: make exploration the default. A user who cannot describe the image should be able to pick from concrete direction cards instead of writing a prompt. Put exploration first in first-turn choices, keep the default path in exploration for at least 10 rounds before proactively offering generation, then compile the prompt only after the user chooses, mixes, or delegates a direction.

Read First

Load references only when needed:

  • references/frictionless-ux.md: vague requests, character-name-only starts, intent router, low-question intake
  • references/discovery-loop.md: multi-turn exploration, "再探索", option mixing, current-branch exploration
  • references/prompt-modules.md: final modular prompt spec, single-module edits, module-level exploration, more-dimensions exploration
  • references/style-matrix.md: style axes, user-language translation, safe style combinations
  • references/reference-sourcing.md: official-priority reference sourcing
  • references/prompt-recipes.md: English prompt templates
  • references/quality-standards.md: output profiles and resolution guardrails
  • references/recovery.md: identity, outfit, color, scene, and style drift fixes
  • references/qa-checklist.md: acceptance checks before final delivery

Core UX Contract

  • Accept rough Chinese or English input as valid.
  • Do not ask the user to write a complete prompt.
  • Infer missing prompt slots when the intent is clear.
  • Ask at most one clarifying question unless identity or deliverable selection is blocked.
  • Show concrete choices instead of broad open-ended questions.
  • Label visible choices with letters (A, B, C) and accept numeric aliases (1, 2, 3) silently. Do not use numbers as the primary labels because they conflict with 已探索: N/10, L2/L3 layers, and M1-M12 modules.
  • Every exploration choice block should end with three short guidance lines: 怎么选, 接下来, and 已探索. 怎么选 explains the valid replies; 接下来 says what the next round will refine; 已探索 shows progress. Avoid vague "what do you want" prompts.
  • Every exploration choice block should mark exactly one option as 推荐 and explain why in one short sentence. The recommendation is a visible default, not a hidden decision; the user can still pick, mix, or ask for more options.
  • Add a short 风险 or 影响 label to each option. For image directions, risk means likely identity drift, scene complexity, or prompt ambiguity; use 低/中/高 in plain Chinese.
  • Do not make default exploration a repeated three-choice funnel. Normal exploration layers should offer 4-5 real creative options; use 5-6 when the user says "再给几个", "换一组", or "都不满意". Reserve 3 options for quick mode or narrow module edits.
  • Keep identity anchors fixed while exploring style, mood, crop, and scene.
  • Exploration must feel progressive, not scattered. Use a fixed ladder: identity baseline -> broad direction -> picture content -> crop/composition -> lighting/color -> style/finish -> final modules. Each exploration reply should show the current layer, what is already locked, and the next small choice.
  • Every major prompt module M1-M12 may expose small modules. First let the user choose which small modules to explore, then expand the selected small modules one by one. Do not jump straight from a big module like "光影" into fixed final lighting presets. Example: under M9 光线色彩, first offer submodules such as 人物打光, 背景光, 环境光, 光线颜色, and 阴影质感; after the user selects one or more, offer rich creative options only for the first selected submodule and keep the rest queued. Use references/prompt-modules.md for the full M1-M12 small-module map.
  • In the default discovery path, L3 画面内容, L4 构图距离, L5 光色氛围, and L6 风格质感 should all start with small-module pickers unless the user already selected a specific submodule. Do not reserve small-module selection only for lighting.
  • Small-module selection is a control surface, not the final prompt itself. Show plain Chinese submodule names and what they affect; avoid forcing every submodule into the final prompt unless the user selects it or delegates with "你选".
  • Default exploration depth: track exploration_rounds for the current task. Count a round whenever the user picks an option, mixes options, says "再探索", delegates with "你选", gives a taste reaction that changes the branch, or chooses a module/dimension probe. Before exploration_rounds >= 10, do not proactively offer the copyable 开始生成图片 CTA; keep the final next-action line focused on the next exploration step and show progress as 已探索: N/10.
  • For existing-character dogfood tests and final outputs where recognizability matters, the complete flow must include an identity lock pass before the final poster/scene pass. If no accepted lock or baseline image exists, do not present a final poster as a complete test result; first prepare the lock prompt and, after the user permits generation with 开始生成图片, generate a neutral identity-lock image for approval.
  • If the main ladder reaches style/finish before round 10, continue with high-value refinement rounds instead of pushing generation: likeness safety, composition readability, scene density, light/color tuning, finish strength, or avoid terms.
  • If the user explicitly asks to skip exploration (B, "不要探索", "直接给提示词") or already says the exact phrase 开始生成图片, respect that explicit exit. The 10-round rule controls proactive prompting on the default path; it must not block a clear user override.
  • Hard generation gate: never call any image-generation tool unless the user message contains the exact phrase 开始生成图片.
  • Treat option letters, "生成", "出图", "直接生成", "按这个生成", "可以了", "就这个", "you decide", and selected ready directions as guidance or prompt-finalization only, not permission to generate images.
  • Until the user says 开始生成图片, keep guiding exploration of more dimensions. Use a lightweight exploration state for "再探索", "再给几个", "换一组", "都不满意", option mixing, module probes, and direction cards: show the current branch, the changed module or dimension, 4-6 concrete choices, and the next action only.
  • Use the full finalization state only when the user says "可以了", "就这个", "生成", 开始生成图片, asks for the full prompt, or reaches generation preflight. In finalization state, show the full current 提示词模块 list (M1-M12) and the full compiled English prompt before the next-action line.
  • Before every image-generation tool call, tell the user that if the image is unsatisfying they can name the part to change, and that feedback will continue through the matching prompt module instead of restarting.
  • When the user gives post-image feedback such as "人物不像", "脸不像", "不够像", "更像原作", "光影不满意", "背景太乱", or "风格太 AI", map it to the relevant module(s), revise the full prompt state, show full modules and the full compiled English prompt, then ask whether they want more changes or 开始生成图片.
  • After multi-turn exploration, finalize as modules first, then compile the English prompt.

First-Turn Routing

If the first turn or a new task explicitly asks to generate a poster, cover, wallpaper, or key visual, but does not choose a workflow, do not render yet. Ask one confirmation question before preparing the prompt:

我理解你要做 <character/source + requested poster direction>。
你想 A. 先给我 4 个方向让我选(推荐),还是 B. 直接给我一版可生成提示词?

If the user chooses A, says "引导", "给我几个方向", "先看看方向", "完善提示词", "不知道怎么写 prompt", or equivalent, show four user-facing direction cards before finalizing modules and prompt. If the user chooses B, says "直接给提示词", "不要探索", "无需引导", "直接生成", or equivalent, infer missing slots conservatively and prepare the final modules and English prompt, but do not generate. Use this fixed shape for the exploration path:

当前层级: L2 方向感 / 已锁定: <character/source + identity baseline>.

A. 保守原作向
画面感: <一句用户能立刻想象的画面>.
差异点: <3-5 个用户能看懂的差异,例如用途 / 情绪 / 构图 / 风格强度 / 角色距离>.
角色钩子: <与角色或作品强相关的视觉母题>.
适合: <用白话说明适合什么结果>.
风险: <低/中/高 + 一句原因>.

B. 情绪电影向
画面感: <一句用户能立刻想象的画面>.
差异点: <3-5 个用户能看懂的差异>.
角色钩子: <与角色或作品强相关的视觉母题>.
适合: <用白话说明适合什么结果>.
风险: <低/中/高 + 一句原因>.

C. 角色符号向
画面感: <一句用户能立刻想象的画面>.
差异点: <3-5 个用户能看懂的差异>.
角色钩子: <与角色或作品强相关的视觉母题>.
适合: <用白话说明适合什么结果>.
风险: <低/中/高 + 一句原因>.

D. 风格探索向
画面感: <一句用户能立刻想象的画面>.
差异点: <3-5 个用户能看懂的差异>.
角色钩子: <与角色或作品强相关的视觉母题>.
适合: <用白话说明适合什么结果>.
风险: <低/中/高 + 一句原因>.

推荐: <A-D + 一句原因,通常优先兼顾像角色和画面完成度>.
怎么选: 回 A-D(也接受 1-4);不确定就回"推荐"或"你选";想融合就回"A+C";都不满意就回"再给几个"或"换一组"。
接下来: 我会锁定方向感,然后进入画面内容;不会直接生成。
已探索: 1/10

Each card must differ from the others on at least 3 of these axes: purpose, emotion, crop, style strength, and character distance. Each card must include one character-specific hook from the source, such as a relationship, signature object, world location, theme metaphor, or original visual motif. Do not expose axis names as the main card content; translate them into plain Chinese choices.

Example card:

A. 保守原作向
画面感: 露西站在夜之城冷色霓虹边缘,脸部清楚、姿态克制,整体像官方宣传视觉。
差异点: 成品海报 / 冷静疏离 / 半身到三分之二身 / 接近原作 / 角色优先。
角色钩子: 月球梦、白色短发、黑色网跑服与夜之城霓虹形成对照。
适合: 你想先要一张稳、像本人、可直接用的图。
风险: 低,最稳但惊喜少。

If the user already says "不要问", "无需引导", "直接生成", or equivalent in the same request, treat that as workflow B for prompt preparation only. Generate only if the same or later user message contains 开始生成图片.

If the user only gives a character name or says something like "我要生成 X 图片", do not generate immediately.

First show a compact guide:

  1. interpreted character and source
  2. inferred identity anchors
  3. exploration-first intent router
  4. recommended exploration path or direction cards
  5. optional quick tweak chips
  6. one-line next action

Do not put a full English prompt in the first response by default. On the default exploration path, keep advancing the progressive ladder and provide the ready English prompt after exploration_rounds >= 10, when the user asks for B direct prompting, says "不要探索", asks for the full prompt, or explicitly enters finalization.

Default intent router:

A. 探索方向(推荐,不用写 prompt)
B. 成品图
C. 壁纸或封面
D. 头像或肖像
E. 最大化角色相似度
F. 改变风格
G. 我来决定

The user may reply with one option, multiple options, or a natural-language reaction.

Examples:

  • AF
  • A
  • A+C
  • B 但更像 F
  • 开始生成图片
  • 再探索

Interpret the first selected option as the base when the user mixes options, unless they say otherwise.

Discovery Loop

Use references/discovery-loop.md when the user is unsure, asks for more options, says "再探索", combines choices, or reacts with "不够泛化", "继续探索", "不是这个", or "还有吗".

Do not reset the conversation. Maintain a lightweight preference state:

  • known: character, source, identity anchors, hard constraints
  • liked: moods, scene families, crops, styles, references
  • disliked: directions to avoid
  • open: unresolved choices
  • exploration_rounds: number of exploration turns completed on the default path
  • next_probe: smallest useful next comparison

Exploration rules:

  • In early exploration, avoid locking exact picture content too soon.
  • Follow the progressive ladder from discovery-loop.md: first broad direction, then picture content, then crop/composition, then lighting/color, then style/finish, then final modules.
  • After the user chooses one layer, advance only one layer unless they explicitly ask to jump ahead.
  • If the user says "再探索", stay at the current layer and show different alternatives for that same layer.
  • If the user chooses an option during active exploration, treat it as a locked preference and continue inside that branch.
  • When the user says "可以了", "就这个", "use this", or equivalent approval before exploration_rounds >= 10, finalize the prompt if requested but do not push generation; end with edit/explore exits and a note that deeper exploration is still available. After exploration_rounds >= 10, finalization may end with the copyable 开始生成图片 CTA plus optional edit/explore exits. Generate only when the user says 开始生成图片.
  • Always mention that mixing is allowed, such as A+C or A 但更像 C.

Every discovery response should keep visible exits and explain the next round:

推荐: <one option + short reason>.
怎么选: 回 A-F(也接受 1-6);可混合如"A+C";不确定回"推荐"或"你选";都不满意回"再给几个"或"换一组";想退一步回"返回"。
接下来: 我会锁定当前小节,并进入 <next layer/dimension>;不会直接生成。
已探索: <N>/10
未满 10 轮时继续探索;满 10 轮后再主动提示生成口令。

Modular Prompt Spec

Use references/prompt-modules.md when the user says "可以了", asks to finalize after exploration, asks to revise only part of a prompt, asks to explore a specific module, or asks the agent to decide unresolved modules.

For Chinese users, output three layers:

  1. 最终确认卡: short Chinese summary for fast user confirmation
  2. 提示词模块: editable Chinese module list with stable module IDs
  3. 英文生成提示词: final English image-2 prompt assembled from those modules

The confirmation card is a read-only UI summary, not the source of truth. The only editable prompt state is M1-M12; if the user asks to change something in the confirmation card, map that request to the matching module(s), update the modules, then recompile the English prompt.

Required modules:

M1 身份锚点
M2 原作基线
M3 用途目标
M4 改编边界
M5 情绪方向
M6 角色状态
M7 画面内容
M8 构图画幅
M9 光线色彩
M10 风格质感
M11 正向约束
M12 避免项

After showing modules, always tell the user they can:

  • generate
  • edit one module
  • explore one module
  • explore more dimensions
  • go back

If the user asks for module-level exploration, keep all other modules fixed and offer alternatives only inside that module.

If the user asks the agent to decide unresolved modules, or after the user picks a module option, integrate the decision into the current prompt state. While the user is still exploring, return a lightweight update with the changed module or dimension, the selected value, and next actions. When the user says "可以了", "就这个", "生成", 开始生成图片, asks for the full prompt, or reaches generation preflight, switch to finalization state and show the full module spec plus compiled English prompt.

Reference Workflow

Build a reference pack before strict likeness work.

Default source priority:

  • user-provided references
  • official anime or game site
  • publisher or distributor promo pages
  • trusted character pages that embed official art or anime screenshots

Default exclusions:

  • fanart sites
  • booru sites
  • Pinterest
  • social media reposts
  • aggregation pages with no clear official source

Save local references under a stable folder:

refs/<character-slug>/

Try to cover:

  • face
  • full-body
  • outfit color
  • prop or accessory
  • source visual baseline
  • scene or lighting sample

If the user supplied references, treat them as the top-priority definition of the character version.

Identity Anchors

Write down the minimum identity anchors before generating:

  • character name
  • series or franchise
  • source visual baseline
  • hairstyle and hair color
  • eye color and eye shape
  • face vibe and age impression
  • canonical outfit silhouette
  • dominant colors
  • signature prop or accessory
  • non-negotiable notes from the user

Separate what must stay recognizable from what may change.

Identity Confidence Gate

Treat text prompts as soft constraints. A detailed description can still produce a generic nearby design, especially when the scene, style, lighting, or outfit freedom is stronger than the character evidence.

Choose the identity confidence level before generation:

  • prompt-only: quick ideation; acceptable when likeness is not the main goal
  • reference-constrained: use user or official-priority references; required when the user expects the character to be recognizable
  • locked: run a lock pass first and use the lock image as the first image for the final pass; required when the user says likeness, face accuracy, "must look like", or provides reference images for identity

For a real existing-character test, default to locked unless the test is explicitly labeled as prompt-only ideation. A test that jumps directly to the final poster without an accepted lock image should be reported as an incomplete flow test, not as evidence that the skill preserves identity.

Once an accepted lock or baseline image exists for the current character version, use it as an identity reference for every final generation direction, including posters, wallpapers, avatars, style changes, and mood explorations. Do not make the user choose E again just to keep the baseline active. Option E means "maximize likeness": generate or re-check the lock before final generation, use stricter acceptance, and recover identity drift more aggressively.

Do not let the lock pass replace the user's creative-direction workflow. For a normal task, guide the user from the character into intent, mood, composition, style, and final modules first. Use the lock or baseline image as an identity gate before final generation, not as the final art direction. If the user asks to test the lock image first, generate and confirm it, then return to the module workflow for the final image.

After a baseline or lock image is generated, accepted, re-uploaded, or named by the user, treat it as accepted_lock_image and immediately resume prompt selection. Do not ask the user to write the final prompt from scratch. Show lettered direction cards or the next unresolved ladder layer, with the lock state visible, for example:

当前层级: L2/L3 最终成图方向 / 已锁定: <character/source> identity uses accepted lock image only.

A. 稳定原作主视觉: ...
B. 情绪电影海报: ...
C. 壁纸场景版: ...
D. 风格探索版: ...

推荐: <one option + reason>.
怎么选: 回 A-D;可混合如 "A+B";不确定回 "你选";想先改基准图回 "修基准图"。
接下来: 我会把所选方向整理进 M1-M12,基准图只约束身份,不限制最终姿势、场景、光影和风格。

If the user attaches or references a baseline image and asks for final art, use that image as identity evidence, then guide final prompt selection unless the same message explicitly asks for the direct prompt path. The baseline image should reduce identity drift; it must not replace the user's choice of final composition, mood, use case, or style.

Do not finalize the full prompt immediately after the user picks one post-lock direction card such as A, B, C, or A+C. Treat that selection as the locked L2 方向感 only, increment exploration_rounds, and advance to L3 画面内容. Continue the normal progressive ladder and default 10-round exploration depth unless the user explicitly asks for the direct prompt path or the exact generation phrase 开始生成图片.

When advancing into a broad prompt module on that ladder, show the module's small-module picker first instead of concrete final alternatives. In practice: L3 starts with M7 画面内容 small modules, L4 starts with M8 构图画幅 small modules, L5 starts with M9 光线色彩 small modules, and L6 starts with M10 风格质感 small modules. Only after the user selects one or more small modules should the assistant expand the first selected small module and keep the rest as an ordered queue.

Treat an accepted lock image as identity evidence only. It may define face, hair, eyes, makeup, outfit silhouette, color hierarchy, and signature cues. It must not define the final pose, crop, lighting, background, rendering finish, body emphasis, composition, scene, or mood unless the user explicitly chooses those from the lock image.

If likeness is important, do not try to fix drift by only adding more prompt adjectives. Strengthen the evidence instead: reduce optional style language, put the cleanest face reference first, keep the character larger in frame, use neutral or simple lighting for the lock pass, and retry from the lock image.

Before accepting a lock or final output, compare it against the reference pack and ask: would the character be recognized without reading the prompt? If not, the identity gate failed even if the image is technically polished.

Prompt Drafting

Use English for the generation prompt, even when the user speaks Chinese.

Default prompt spread:

  • faithful baseline
  • scene-first variation
  • stylized variation that preserves anchors

Keep these fixed unless the user asks otherwise:

  • character identity anchors
  • canonical outfit silhouette
  • canonical color hierarchy
  • source visual baseline

Vary only 1-2 axes at a time:

  • visual baseline
  • stylization delta
  • scene archetype
  • framing
  • finish
  • lighting

For vague input, upgrade weak wording into concrete visual decisions:

  • mood word -> lighting and palette
  • taste word -> finish and staging
  • intended use -> crop and profile
  • "official art" -> baseline plus poster archetype
  • "premium" -> cleaner staging, lower prop count, controlled lighting
  • "more emotional" -> expression, pose, light, and symbolic environment

Generation Decision

Before choosing a generation method, verify that the latest user message contains the exact phrase 开始生成图片. If it does not, do not call image_gen, scripts/anime_fanart.py, scripts/image_gen_refs.py, or scripts/generate_from_lock.py; continue guiding, refining, or finalizing the prompt, and keep offering the next useful dimensions to explore.

Immediately before calling any image-generation tool, send a short pre-generation note that names the current prompt version and says the user can continue by naming unsatisfying parts after the image, for example face, likeness, lighting, color tone, outfit, background, composition, emotion, or style. Do not put this note after the image-generation call.

If the user gives feedback after a generated image, use references/prompt-modules.md Revision Feedback Loop to continue from the current modules. Do not ask the user to rewrite the whole prompt. If the feedback is "人物不像", "脸不像", "不够像", "更像", or equivalent, enter identity-first recovery: reduce scene/style pressure, make the face and canonical outfit more readable, and edit M1, M2, M4, M8, M10, and M12 as needed before offering another 开始生成图片 pass.

Default to the built-in image_gen tool for image generation. Do this even when likeness matters, unless the user explicitly asks for a local file output, fixed profile, API/script workflow, or real local image inputs. OPENAI_API_KEY is optional for the skill, not a prerequisite for the default workflow.

Use the built-in image_gen tool when:

  • the user asks to generate an image in the chat
  • the user wants quick ideation or normal final art
  • exact local file output, fixed profile, or repeatable API payloads are not required
  • the accepted baseline can be represented by current conversation context, attached images, or explicit identity anchors

Use scripts/image_gen_refs.py when:

  • the user wants the convenience of image generation but a local baseline or reference image must be sent as a real image input
  • the task is not necessarily the full anime lock workflow
  • the built-in chat image_gen tool would only receive text and therefore cannot actually see the local image file
  • the user accepts that this local-file path requires OPENAI_API_KEY

Use scripts/generate_from_lock.py when:

  • the user already has an accepted local baseline or lock image
  • that lock image must be sent as the first real image input
  • the final prompt should treat the lock image as identity-only evidence
  • the written prompt should remain free to control pose, crop, scene, lighting, mood, background, and finish
  • the task does not need to create a new lock image first
  • the user accepts that this local-file path requires OPENAI_API_KEY

Use scripts/anime_fanart.py when:

  • the user explicitly wants the API/script workflow for stricter local-file reference control
  • the user wants PNG, a stable named profile, a validated custom gpt-image-2 size, or repeatable metadata
  • the workflow needs repeatable lock-first generation
  • local reference images must be sent as real API image inputs
  • prior attempts looked polished but unlike the intended character

If a script workflow is selected but OPENAI_API_KEY is missing, treat the key as an optional upgrade blocker only for that script path. Run --dry-run when useful, report that local-file API generation is unavailable, and offer to continue with the default built-in image_gen path using the compiled prompt, attached images if present, and identity anchors. Do not make API key setup the preferred or required path unless the user asks for the script/API workflow.

Script Workflow

Lock first:

python scripts\anime_fanart.py lock `
  --character "Anna Yanami" `
  --series "Too Many Losing Heroines!" `
  --image "refs\yanami-anna-anime\01-face-icon.png" `
  --image "refs\yanami-anna-anime\02-fullbody-character.png" `
  --out "output\yanami-lock.png"

Generate after the lock passes:

python scripts\anime_fanart.py generate `
  --character "Anna Yanami" `
  --series "Too Many Losing Heroines!" `
  --lock-image "output\yanami-lock.png" `
  --image "refs\yanami-anna-anime\02-fullbody-character.png" `
  --profile poster-safe `
  --prompt "<compiled English image-2 prompt>" `
  --out "output\yanami-poster.png"

When using a lock image for final generation, explicitly state that the lock image is identity-only. The final image should follow the selected modules for scene, mood, lighting, crop, finish, and composition rather than copying the lock image's baseline pose or render style.

Use --dry-run first when inspecting payloads without calling the API.

Generate from an accepted local lock image:

python scripts\generate_from_lock.py `
  --character "Anna Yanami" `
  --series "Too Many Losing Heroines!" `
  --lock-image "output\yanami-lock.png" `
  --profile poster-safe `
  --prompt-file "output\yanami-final-prompt.txt" `
  --out "output\yanami-poster-from-lock.png"

This wrapper always sends --lock-image as image input #1 and prepends an identity-only lock note to the prompt. The lock image should keep the character from drifting, while the written prompt still controls pose, crop, scene, lighting, mood, background, and finish. Use --dry-run to verify that source_images[0] and dry_run_payload.image[0] are the lock image before calling the API.

Local reference-image wrapper:

python scripts\image_gen_refs.py `
  --image "output\lucy-lock-baseline-v1.png" `
  --prompt-file "output\lucy-final-prompt.txt" `
  --profile poster-safe `
  --out "output\lucy-final-poster.png"

This wrapper sends each --image path as a real image input to the image edit API. It is the local-file equivalent of "give this photo to image generation."

Quality Rules

Defaults use API-reference-compatible named profiles so the first script path stays reliable:

  • poster-safe: 1024x1536 stable vertical poster source
  • scene-safe: 1536x1024 stable horizontal scene source
  • square-safe: 1024x1024 stable square source
  • banner-safe: 1536x1024 stable cover source

For explicit 2K or 4K delivery, use a manual --size rather than a named profile. Manual sizes may use auto or any gpt-image-2 size that satisfies the current Image API constraints: longest edge <= 3840, both edges multiples of 16, aspect ratio <= 3:1, and total pixels between 655,360 and 8,294,400. Treat outputs above 2560x1440 total pixels as experimental. Legacy profile names such as poster-2k are compatibility aliases only. If a user requests actual 2K or 4K output, pass --size explicitly instead of using one of those legacy aliases.

Do not promise transparent backgrounds with gpt-image-2.

A lock image passes only if:

  • the face reads as the intended character before reading the prompt
  • hairstyle and hair color are correct
  • eye color and eye shape are close enough
  • canonical outfit silhouette is correct
  • dominant colors are correct
  • no extra limbs, eyes, or fingers
  • the character reads correctly at a glance

If the lock image fails, fix the lock. Do not move on to the final poster or scene. If the final image no longer matches the accepted lock image, treat it as identity drift: put the lock image first, reduce the reference set to the cleanest 1-3 images, simplify style or scene pressure, and retry one variable at a time. If the final image copies the lock image's pose, crop, lighting, or finish too closely, treat it as lock overfitting: keep the lock image for identity, but make M7, M8, M9, and M10 more explicit and add an avoid term for copying the lock composition or render style.

Recovery Rules

Use references/recovery.md when:

  • face is off
  • outfit drifts
  • colors drift
  • scene becomes too busy
  • final image stops looking like the locked character
  • variants look technically polished but too similar
  • stylization gets stronger and recognizability collapses
  • user says "人物不像", "脸不像", "不够像", "更像", or equivalent likeness feedback

Change one thing at a time during retries.

What ships with it: 17 files

149.6 KB alongside SKILL.md, 4 of them executable

agents/

scripts/

Keep looking

Skills are one crate of 326,790. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.