image-provider-routing
Pick the image provider from job shape — text-in-image to Ideogram, photoreal to Flux, illustrative vector to Recraft, general to Gemini/GPT.
- License 许可
- MIT
- 最近更新
- 2026-11-13
- Stars
- ★ 19
- Forks
- 1
01 前言 Front Matter
- name
- image-provider-routing
- packs
- [ "ai-image" ]
- scope
- { "write": [], "verification_reason": "execution declares no handler, so this skill runs nothing of its own — every write is the calling agent's, under the rules that govern it. No command can prove a scope the skill never executes." }
- trust
- { "level": "experimental" }
- domain
- product
- install
- { "removable": true }
- personas
- []
- execution
- { "type": "manual" }
- model_tier
- inherit
- workspaces
- [ "small-business" ]
- description
- Pick the image provider from job shape — text-in-image to Ideogram, photoreal to Flux, illustrative vector to Recraft, general to Gemini/GPT.
02 资源文件 1
- 参考文档evals/triggers.json3.8 KB
03 SKILL.md 正文
image-provider-routing
Route an image generation job to the right provider based on job shape. Adapters
are scaffold-tier (dry-run only) — selection produces a plan; execution waits on
promotion per provider-lifecycle-discipline.
When to use
- Choosing which image model fits a brief (logo, banner, photo, icon, general art).
- Before calling any
node_modules/@event4u/agent-config/src/scripts/ai-image/adapters/*.shadapter. - When the user asks "which image model should I use?" or "route this image job."
Provider decision table
| Job shape | Provider | Why |
|---|---|---|
| Text-in-image (logo, banner, typographic art) | Ideogram | Best glyph rendering; raster models garble text |
| Photoreal (product shot, portrait, scene) | Flux | Photorealism specialist; routed via fal/Replicate |
| Icon the set lacks | iconography first, then svg-authoring |
The incumbent set wins; a missing glyph is hand-authored against its grid and checked — no provider involved |
| Simple geometric mark | svg-authoring |
A rect/circle/path mark is cheaper and more editable hand-authored than generated, and it ends in a file rather than a plan |
| Complex illustrative vector art | Recraft | The only job shape left for a vector provider. State the adapter's lifecycle in the answer: experimental — scaffold tier, dry-run plumbing only, so the caller knows no asset is produced |
| General art / edit / multimodal | Gemini-image or GPT Image 2 | Broad capability; natural-language prompts |
| Budget-conscious 4K upscale | Flux via Replicate | Cost-competitive at high resolution |
Decision order: an icon → the incumbent set, then svg-authoring for a missing
glyph; a simple geometric mark → svg-authoring; text-in-image → Ideogram;
complex illustrative vector art → Recraft, with its scaffold-tier lifecycle
stated; photoreal → Flux; everything else → Gemini-image (default) or GPT
Image 2 (when an OpenAI key is available and an existing image is being edited).
The split exists because the single "Vector / SVG logo or icon" row sent every
icon and every geometric mark to an adapter whose header reads experimental — scaffold tier. dry-run plumbing only and whose live calls exit at
the adapter's own live-call guard. The routed path ended in a plan;
the icon floor meanwhile sent icons to the set. Neither produced an asset for
the one case that needs one — a glyph the set does not have.
Procedure
- Extract job shape from the brief: does it need embedded text? vector output? photorealistic rendering? or general illustration?
- Apply table — match the dominant shape to the provider row above.
- Check lifecycle tier — all adapters are
experimental(scaffold). Surface this before any live invocation. - Confirm with the user when shape is ambiguous (e.g., logo that could be vector OR raster typographic art → ask once).
- Emit the routing decision in the Output format below.
Output format
- Chosen provider — name + one-line rationale citing the job-shape match.
- Lifecycle-tier caveat — "adapter is experimental (scaffold tier); dry-run
only until a smoke trace is captured per
provider-lifecycle-discipline." - Fallback — if the primary adapter is unavailable or the smoke trace is missing, name the next best provider and what changes.
- Provenance surface — whether the chosen provider writes native provenance
(C2PA or an equivalent) or the delivery needs the
.provenance.jsonsidecar fallback, per the media transparency policy.
Gotcha
- Routing a text-in-image job to a photoreal model is the #1 failure — send a
logo/banner with embedded text to Flux and the text renders as garbled glyphs;
it must go to Ideogram. Likewise a vector logo sent to Ideogram/Flux returns a
raster PNG, not the editable
<path>SVG a brand mark needs (→ Recraft). - All four adapters (
ideogram.sh,flux.sh,recraft.sh,gemini-image.sh) are scaffold-tier — dry-run plumbing only, no live generation yet. Routing produces a selection + plan; actual API calls require promotion tostablefirst (maintainer-captured smoke trace underagents/reference/ai-image/smoke-traces/). Surfacing a provider without itsexperimentaltier caveat misleads the caller into expecting a rendered asset that won't come.
Good example: "Text logo for a bakery → Ideogram (text-in-image); lifecycle: experimental — dry-run plan only."
Bad example: "Use Recraft for the product photo" — Recraft is the vector path; photoreal jobs go to Flux.
Do NOT
- Do NOT invoke an adapter without surfacing its lifecycle tier (all are
experimental). - Do NOT route a text-in-image job to Flux — Flux has no glyph renderer; text garbles.
- Do NOT route a vector/SVG job to Ideogram or Flux — neither outputs genuine
<path>SVG. - Do NOT skip
image-likeness-and-rightswhen the brief names a real person or brand mark. - Do NOT promote an adapter from
experimentaltostable— that is maintainer-only via smoke trace.
See also
prompt-engineering-image— translate the brief into provider-specific prompt grammar.provider-lifecycle-discipline— read lifecycle tier before any run.node_modules/@event4u/agent-config/src/scripts/ai-image/adapters/— the four adapter files and their header comments.media-governance-routing— rights / likeness policies before generation.- Media transparency policy — the provenance each provider's output must carry, and the sidecar fallback when it carries none.
04 同仓库更多 Skills
unknown-key-fixture
Declares a key the schema does not know.
portable-fixture
Declares only semantics the MCP-lite carrier transports whole.
non-portable-fixture
Declares a runtime semantic the carrier drops.
candidate-zero-width
A candidate whose prose carries an invisible joiner.
candidate-disclosure-suppression
A candidate whose prose tells the agent to withhold from the user.
candidate-dangerous-frontmatter
A candidate claiming an unscoped tool grant and a permission bypass.