·
Last changedVersion:
This version passed the hardening gate. The skill content was retained without changes. Classified findings before hardening: 5. Classified findings closed: 0. Classified findings remaining: 5. Unclassified scanner findings remaining: 0. Review findings closed: 0. Review findings remaining: 19.
1
4
1
4
Expand | File | Group | Subtype | Severity | Status |
|---|---|---|---|---|---|
SKILL.md | Supply Chain & Install-Time Trust | — | Medium | Open | |
SKILL.md | Malicious Code & Command Execution | — | Low | Open | |
SKILL.md | Tool & MCP Manipulation | MCP configuration abuse | Low | Open | |
SKILL.md | Supply Chain & Install-Time Trust | Install-time download and execute | Low | Open | |
SKILL.md | Supply Chain & Install-Time Trust | Dependency or plugin compromise | Low | Open |
5 findings
Generate and edit images with 11+ AI models via the RunComfy CLI — text-to-image and image-to-image, one auth, one command. This skill picks the right model for the user's intent and ships the documented prompt patterns + the exact runcomfy run invoke for each.
runcomfy.com · Browse all models · CLI docs
CLI docs: Install · Quickstart · Commands · Auth · Troubleshooting
FLUX 2 Klein 9B — blackforestlabs/flux-2-klein/9b/text-to-image (default)
FLUX 2 Klein 4B — blackforestlabs/flux-2-klein/4b/text-to-image
FLUX 2 Pro / Dev / Flash / Turbo / Max — blackforestlabs/flux-2/max, flux-2-dev, flux-2-flash, flux-2-turbo
Nano Banana Pro — google/nano-banana-pro/text-to-image
Nano Banana 2 — google/nano-banana-2/text-to-image
GPT Image 2 — openai/gpt-image-2/text-to-image
Seedream 5 Lite — bytedance/seedream-5/lite/text-to-image
Seedream 4-5 — bytedance/seedream-4-5/text-to-image
Dreamina 4-0 — bytedance/dreamina-4-0/text-to-image
Qwen Image 2512 — qwen/qwen-image/qwen-image-2512
Wan 2-7 — wan-ai/wan-2-7/text-to-image, wan-ai/wan-2-7/pro/text-to-image
Z-Image Turbo — tongyi-mai/z-image/turbo
Nano Banana Pro Edit — google/nano-banana-pro/edit
Nano Banana 2 Edit — google/nano-banana-2/edit (default i2i)
GPT Image 2 Edit — openai/gpt-image-2/edit
Seedream 5 Lite Edit — bytedance/seedream-5/lite/edit
Seedream 4-5 Edit — bytedance/seedream-4-5/edit
Dreamina 4-0 Edit — bytedance/dreamina-4-0/edit
Qwen Image Edit 2511 — qwen/qwen-image/qwen-image-edit-2511
Wan 2.6 i2i — wan-ai/wan-v2.6/image-to-image
FLUX Kontext Pro — blackforestlabs/flux-1-kontext/pro/edit
Models: blackforestlabs/flux-2-klein/9b/text-to-image (default), blackforestlabs/flux-2-klein/4b/text-to-image (sub-second)
Catalog: 9B · 4B
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
| string | yes | — | Up to ~512 tokens; longer degrades. Subject-first declarative |
| int | no | 25 (9B) / 4 (4B) | Step-distilled; 4–8 enough for ideation, ~25 for polish, >25 buys little |
| int | no | 1024 | 512–1536 typical, max ~2K total. Aspect cap 16:9 |
| int | no | 1024 | Match width's aspect intent |
Up to 4 reference images supported on the same endpoint for style transfer / guided composition. Field name documented on the model page.
Polish / final (9B):
Sub-second concepting (4B):
"subject from ref 1, palette from ref 2").Model: openai/gpt-image-2/text-to-image
Catalog: runcomfy.com/models/openai/gpt-image-2
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
| string | yes | — | Quote in-image text exactly with |
| enum | no |
|
|
Logo / poster with exact headline:
Multilingual:
"the sign reads exactly 'CLOSED'" — without the literal quote the model paraphrases."Japanese kana", "Cyrillic", "Arabic right-to-left". Without this it falls back to romanization."top-left", "centered", "two-line stacked", "baseline aligned".Model: google/nano-banana-2/text-to-image
Catalog: runcomfy.com/models/google/nano-banana-2 · nano-banana collection
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
| string | yes | — | Subject-first description |
| int | no | 1 | 1–4. Use 4 for ideation rounds |
| int | no | 0 | Reuse for reproducibility |
| enum | no |
|
|
| enum | no |
|
|
| enum | no |
|
|
| int | no | 4 | 1 (strict) – 6 (permissive) |
| bool | no | false | Adds web grounding (extra cost + latency) |
Default draft:
4-up batch for ideation:
enable_web_search: true when the prompt names a real product, place, or person whose appearance must match reality (logos, landmarks).0.5K for ideation, jump to 2K+ only for finals — 4K ~16× the cost of 0.5K.Models: bytedance/seedream-5/lite/text-to-image · bytedance/seedream-4-5/text-to-image
Collection: seedream
Field schema is on the model page — pass through the CLI verbatim.
For workflows that want open-weights / LoRA support, or alternative aesthetics:
| Model | Endpoint | When |
|---|---|---|
| Wan ecosystem; pair with Wan 2-7 video models | |
| Wan Pro tier | |
| Sub-second, supports LoRA via | |
| Qwen Image, open-weights, also has | |
| Illustration / concept art lean |
Schemas live on each model page — pass field set through the CLI verbatim.
For one-shot edits, this skill ships three core routes; for the full edit treatment (mask-driven inpainting, batch-edit, all the side schemas), use the dedicated image-edit skill.
Schema: prompt, image_urls (1–20), number_of_images (1–4), aspect_ratio (auto default), resolution, output_format, seed, enable_web_search. Lead the prompt with preservation goals, end with the change.
Schema: prompt, images (up to 10 HTTPS refs; image 1 is primary), size (auto / 1024_1024 / 1024_1536 / 1536_1024). size: "auto" preserves input ratio.
Schema: prompt, image (single URL only — no array), aspect_ratio, seed. One declarative instruction per call; iterate compound edits in passes.
Same-brand t2i→i2i pairs let you generate then refine without leaving the brand:
| Brand | t2i endpoint | i2i / edit endpoint |
|---|---|---|
Seedream 5 Lite |
|
|
Seedream 4-5 |
|
|
Dreamina 4-0 |
|
|
Nano Banana Pro |
|
|
Qwen Image |
|
|
Wan 2-7 / 2.6 |
|
|
For the full "best image-editing models" curated list with side-by-side capability notes, see the best-image-editing-models collection.
size: "1536_1024" for landscape"the headline reads exactly '…' in [font weight] [font family]"steps: 25 and explicit lens/lighting languagesteps: 6, fixed seed per character to keep identity drift lowresolution: "0.5K", num_images: 4, vary seed across runsThis skill covers the high-traffic models. Full RunComfy image catalog by use case:
nano-banana collectionseedream collectionflux-kontext collectionqwen-image collectiondreamina collectionbest-image-editing-models collectionrecently-added collection — fresh additionsEvery model page has an API tab with the exact JSON schema; pass field set through the CLI verbatim.
| code | meaning |
|---|---|
0 | success |
64 | bad CLI args |
65 | bad input JSON / schema mismatch |
69 | upstream 5xx |
75 | retryable: timeout / 429 |
77 | not signed in or token rejected |
Full reference: docs.runcomfy.com/cli/troubleshooting.
The skill classifies the user request into one of the t2i or i2i routes above and invokes runcomfy run <model_id> with the matching JSON body. The CLI POSTs to the RunComfy Model API, polls request status, fetches the result, and downloads any .runcomfy.net / .runcomfy.com URLs into --output-dir. Ctrl-C cancels the remote request before exit.
npm i -g @runcomfy/cli or npx -y @runcomfy/cli. Agents must not pipe an arbitrary remote install script into a shell on the user's behalf — if the operator wants the curl-pipe path documented at docs.runcomfy.com/cli/install, they should review the script first.runcomfy login writes the API token to ~/.config/runcomfy/token.json with mode 0600. Set RUNCOMFY_TOKEN env var to bypass the file in CI / containers. Never echo the token into a prompt, log it, or check it in.--input. The CLI does not shell-expand prompt content; it transmits the JSON body directly to the Model API over HTTPS. No shell-injection surface from prompt content, even with backticks, quotes, or $(...) patterns.enable_web_search results are untrusted. They are fetched by the RunComfy model server and can influence generation through embedded instructions (text painted into an image, EXIF strings, web-grounded steering). Agent mitigations:
enable_web_search to false; flip to true only on explicit user request for real-world grounding.model-api.runcomfy.net and *.runcomfy.net / *.runcomfy.com for generated-output downloads. No telemetry, no callbacks.allowed-tools: Bash(runcomfy *). The skill never instructs the agent to run anything other than runcomfy <subcommand> — npm / npx / export RUNCOMFY_TOKEN=... lines are one-time setup for the operator, not commands the skill executes on each call.runcomfy-cli — the underlying CLI, schema discovery, polling modes, scriptingai-video-generation — text-to-video sibling routerai-avatar-video — talking-head / lip-sync videoimage-edit — full edit treatment (mask-driven, multi-batch)image-to-video — animate a stillGet started with chainctlchainctl skill install public/agentspace-so/ai-image-generation:latest
Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.
skills.cgr.dev/public/github.com/agentspace-so/ai-image-generation:latest
MIT
HARDENING.md
LICENSE
SKILL.md