[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7CWN4DPDEC8FP1GDBTYBJV4":3,"skill-same:01M7CWN4DPDEC8FP1GDBTYBJV4":49},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":27,"commitSha":28,"skillDirectory":29,"forksCount":14,"repositoryHtmlUrl":30,"repositoryHomepageUrl":6,"ownerHtmlUrl":31,"ownerBlogUrl":32,"ownerDescription":33,"updatedAt":34,"install":35,"resources":48},"01M7CWN4DPDEC8FP1GDBTYBJV4","image-edit",null,"Edit images on RunComfy — this skill is a smart router that matches the user's intent to the right edit model in the RunComfy catalog. Picks Nano Banana Edit (batch up to 20, identity-preserving default), OpenAI GPT Image 2 Edit (multilingual in-image text rewrite, multi-ref composition, layout precision), Flux Kontext Pro (single-ref high-fidelity local edit), or Z-Image Turbo Inpaint (mask-driven precise region edit). Bundles each model's documented prompting patterns so the skill gets sharper edits without burning iterations on the wrong model. Calls `runcomfy run \u003Cvendor>\u002F\u003Cmodel>\u002Fedit` through the local RunComfy CLI. Triggers on \"image edit\", \"edit image\", \"image-to-image\", \"i2i\", \"swap background\", \"remove object\", \"rewrite headline\", or any explicit ask to edit a single or batch of images.","Henrique1601\u002FSkiilsToIAs","Henrique1601","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F92006691?v=4","01M7CRXVT0GVXVK80JT1GR687S","Henrique Bezerra Dos Santos","01M7CRXVTN5Y8TMWJ1MDSKCQ1T",0,"MIT","https:\u002F\u002Fgithub.com\u002FHenrique1601\u002FSkiilsToIAs\u002Fblob\u002Fmain\u002Futilities\u002Fimage-edit\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: image-edit\ndisplayName: \"Image Edit — Pro Pack on RunComfy\"\ndescription: >\n  Edit images on RunComfy — this skill is a smart router that matches\n  the user's intent to the right edit model in the RunComfy catalog.\n  Picks Nano Banana Edit (batch up to 20, identity-preserving default),\n  OpenAI GPT Image 2 Edit (multilingual in-image text rewrite,\n  multi-ref composition, layout precision), Flux Kontext Pro\n  (single-ref high-fidelity local edit), or Z-Image Turbo Inpaint\n  (mask-driven precise region edit). Bundles each model's documented\n  prompting patterns so the skill gets sharper edits without burning\n  iterations on the wrong model. Calls `runcomfy run \u003Cvendor>\u002F\u003Cmodel>\u002Fedit`\n  through the local RunComfy CLI. Triggers on \"image edit\", \"edit image\",\n  \"image-to-image\", \"i2i\", \"swap background\", \"remove object\",\n  \"rewrite headline\", or any explicit ask to edit a single or batch\n  of images.\nhomepage: https:\u002F\u002Fwww.runcomfy.com\nlicense: MIT\n---\n\n# Image Edit — Pro Pack on RunComfy\n\n[runcomfy.com](https:\u002F\u002Fwww.runcomfy.com\u002F?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-edit) · [Nano Banana Edit](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels\u002Fgoogle\u002Fnano-banana-2\u002Fedit?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-edit) · [GPT Image 2 Edit](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels\u002Fopenai\u002Fgpt-image-2\u002Fedit?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-edit) · [Flux Kontext](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels\u002Fblackforestlabs\u002Fflux-1-kontext-pro\u002Fimage-to-image?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-edit) · [Z-Image Inpaint](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels\u002Ftongyi-mai\u002Fz-image\u002Fturbo\u002Finpainting?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-edit) · [GitHub](https:\u002F\u002Fgithub.com\u002Fagentspace-so\u002Fruncomfy-skills\u002Ftree\u002Fmain\u002Fimage-edit)\n\n**Image edit, intent-routed.** This skill doesn't lock you to one model — it picks the right edit model in the RunComfy catalog based on what the user actually wants: batch identity-preservation, multilingual text rewrite, single-shot precise edit, or mask-driven region replacement.\n\n```bash\nnpx skills add agentspace-so\u002Fruncomfy-skills --skill image-edit -g\n```\n\n## Pick the right model for the user's intent\n\n| User intent | Model | Why |\n|---|---|---|\n| Batch edit 1–20 images consistently (SKU gallery, A\u002FB variants) | **Nano Banana Edit** | Up to 20 input images per call; locked aspect\u002Fresolution for series |\n| Swap background, preserve subject identity | **Nano Banana Edit** | Strong identity preservation under \"keep X unchanged\" prompts |\n| Localized object removal \u002F addition with spatial language (\"the left object\", \"upper-right corner\") | **Nano Banana Edit** | Honors directional spatial scope |\n| Multilingual \u002F non-Latin in-image text rewrite (Japanese kana, Cyrillic, Arabic) | **GPT Image 2 Edit** | Strongest in class for multilingual typography |\n| Multi-reference composition (subject from img1, scene from img2, palette from img3) | **GPT Image 2 Edit** | Numbered refs route cues correctly |\n| Layout-precise repositioning (\"move headline from top-right to bottom-center\") | **GPT Image 2 Edit** | Directional language honored at layout level |\n| Identity preservation across translated headline variants | **GPT Image 2 Edit** | Same source asset → many language variants, identity stable |\n| Single-shot precise local edit (\"she's now holding an orange umbrella\") | **Flux Kontext Pro** | Single-ref single-instruction, high-fidelity preservation |\n| Mask-driven object removal (cables, watermarks, distractions) | **Z-Image Turbo Inpaint** | Mask-required, strength-tunable, edge-consistent |\n| Mask-driven region replacement (full background swap with mask) | **Z-Image Turbo Inpaint** | High strength + clean mask = clean replacement |\n| Default if unspecified | **Nano Banana Edit** | Most flexible, supports both single and batch |\n\nThe agent reads this table, classifies the user's intent, and picks the matching subsection below.\n\n## Prerequisites\n\n1. **RunComfy CLI** — `npm i -g @runcomfy\u002Fcli`\n2. **RunComfy account** — `runcomfy login`.\n3. **CI \u002F containers** — set `RUNCOMFY_TOKEN=\u003Ctoken>`.\n\n---\n\n## Route 1: Nano Banana Edit — default for general edit + batch\n\n**Model**: `google\u002Fnano-banana-2\u002Fedit`\n\n### Schema\n\n| Field | Type | Required | Default | Notes |\n|---|---|---|---|---|\n| `prompt` | string | yes | — | Lead with preservation goals, end with the change. |\n| `image_urls` | array | yes | — | **1–20** publicly-fetchable HTTPS URLs. |\n| `number_of_images` | int | no | 1 | 1–4 outputs per call. |\n| `aspect_ratio` | enum | no | `auto` | `auto` follows input; lock for batch consistency. |\n| `resolution` | enum | no | `1K` | `0.5K` \u002F `1K` \u002F `2K` \u002F `4K`. |\n| `output_format` | enum | no | `png` | `png` \u002F `jpeg` \u002F `webp`. |\n| `seed` | int | no | — | Reproducibility. |\n| `enable_web_search` | bool | no | false | Web-grounded edits (extra latency). |\n\n### Invoke\n\n```bash\nruncomfy run google\u002Fnano-banana-2\u002Fedit \\\n  --input '{\n    \"prompt\": \"Keep the subject identity, pose, and clothing unchanged. Convert the background into a rainy neon cyberpunk street.\",\n    \"image_urls\": [\"https:\u002F\u002F...\u002Fportrait.jpg\"]\n  }' \\\n  --output-dir \u003Cabsolute\u002Fpath>\n```\n\n**Batch (lock aspect + resolution):**\n\n```bash\nruncomfy run google\u002Fnano-banana-2\u002Fedit \\\n  --input '{\n    \"prompt\": \"Replace the watermark in the bottom-right with the text \\\"AURA\\\" in clean white sans-serif. Keep everything else exactly as in the input.\",\n    \"image_urls\": [\"https:\u002F\u002F...\u002Fsku-1.jpg\", \"https:\u002F\u002F...\u002Fsku-2.jpg\", \"https:\u002F\u002F...\u002Fsku-3.jpg\"],\n    \"aspect_ratio\": \"1:1\",\n    \"resolution\": \"1K\"\n  }' \\\n  --output-dir \u003Cabsolute\u002Fpath>\n```\n\n### Prompting tips\n\n- **Preservation first**: `\"Keep [identity \u002F pose \u002F brand \u002F framing] unchanged.\"` Then state the change.\n- **Spatial scope**: \"background only\", \"the left object\", \"upper-right quadrant\" — concrete locations honored.\n- **Batch consistency**: lock `aspect_ratio` and `resolution` across the batch.\n- **Iterate small**: split compound edits into multiple shorter passes.\n\n---\n\n## Route 2: GPT Image 2 Edit — multilingual text + multi-ref composition\n\n**Model**: `openai\u002Fgpt-image-2\u002Fedit`\n\n### Schema\n\n| Field | Type | Required | Default | Notes |\n|---|---|---|---|---|\n| `prompt` | string | yes | — | Edit instruction; lead with preservation. |\n| `images` | string[] | yes | — | **Up to 10** HTTPS URLs. First is primary; rest are auxiliary. |\n| `size` | enum | no | `auto` | `auto`, `1024_1024`, `1024_1536`, `1536_1024`. **Only these.** |\n\n### Invoke\n\n**Multilingual text rewrite:**\n\n```bash\nruncomfy run openai\u002Fgpt-image-2\u002Fedit \\\n  --input '{\n    \"prompt\": \"Keep the photograph, layout, and brand mark exactly as in the input. Replace only the in-image headline. The new headline reads \\\"今日のおすすめ\\\" in bold Japanese kana, same position and font weight.\",\n    \"images\": [\"https:\u002F\u002F...\u002Fposter-en.jpg\"]\n  }' \\\n  --output-dir \u003Cabsolute\u002Fpath>\n```\n\n**Multi-ref composition:**\n\n```bash\nruncomfy run openai\u002Fgpt-image-2\u002Fedit \\\n  --input '{\n    \"prompt\": \"Compose subject from image 1 into the room from image 2. Match the lighting and color palette of image 2. Keep image 1 subject identity unchanged.\",\n    \"images\": [\"https:\u002F\u002F...\u002Fsubject.jpg\", \"https:\u002F\u002F...\u002Froom.jpg\"]\n  }' \\\n  --output-dir \u003Cabsolute\u002Fpath>\n```\n\n### Prompting tips\n\n- **Quote in-image text exactly.** Name the script for non-Latin: `\"Japanese kana\"`, `\"Cyrillic\"`, `\"Arabic right-to-left\"`.\n- **Number multi-refs**: `\"subject from image 1, lighting from image 2\"`.\n- **Directional layout language**: `\"move the headline from top-right to bottom-center\"`, `\"replace the watermark in the bottom-right\"`.\n- **`size: \"auto\"`** preserves input ratio — recommended unless the edit changes framing.\n\n---\n\n## Route 3: Flux Kontext Pro — single-shot precise local edit\n\n**Model**: `blackforestlabs\u002Fflux-1-kontext\u002Fpro\u002Fedit`\n\n### Schema (minimal)\n\n| Field | Type | Required | Notes |\n|---|---|---|---|\n| `prompt` | string | yes | One declarative edit instruction. |\n| `image` | string | yes | **Single** source image URL. |\n| `aspect_ratio` | enum | no | Pick from supported W:H values. |\n| `seed` | int | no | Reproducibility. |\n\nSingle image only — no array. For multi-image flows, use Route 1 (Nano Banana Edit).\n\n### Invoke\n\n```bash\nruncomfy run blackforestlabs\u002Fflux-1-kontext\u002Fpro\u002Fedit \\\n  --input '{\n    \"prompt\": \"Keep the person'\\''s face, pose, and clothing unchanged. Add an orange umbrella in her left hand and a slight smile.\",\n    \"image\": \"https:\u002F\u002F...\u002Fportrait.jpg\"\n  }' \\\n  --output-dir \u003Cabsolute\u002Fpath>\n```\n\n### Prompting tips\n\n- **One declarative instruction.** \"She is now holding an orange umbrella and smiling\" — imperative, single change.\n- **Preservation first.** Lead with `\"Keep [unchanged elements]\"` then state the change.\n- **Iterate small.** Compound edits drift on a single pass; split into sequential passes.\n\n---\n\n## Route 4: Z-Image Turbo Inpaint — mask-driven precise region edit\n\n**Model**: `tongyi-mai\u002Fz-image\u002Fturbo\u002Finpainting`\n\n### Schema\n\n| Field | Type | Required | Notes |\n|---|---|---|---|\n| `prompt` | string | yes | What to fill \u002F replace; preservation constraints for the unmasked surround. |\n| `image` | string | yes | Source image URL. |\n| `mask_image` | string | yes | **Grayscale mask URL** (white = inpaint, black = preserve). |\n| `strength` | float | no | 0.3–0.6 retouching, 0.7–1.0 full replacement. |\n| `control_scale` | float | no | 0.6–0.9 typical. |\n| `aspect_ratio` | enum | no | W:H output ratio. |\n| `seed` | int | no | Reproducibility. |\n\n### Invoke\n\n**Object removal (low strength):**\n\n```bash\nruncomfy run tongyi-mai\u002Fz-image\u002Fturbo\u002Finpainting \\\n  --input '{\n    \"prompt\": \"Remove overhead cables; preserve rooflines and sky gradient; thin clean sky.\",\n    \"image\": \"https:\u002F\u002F...\u002Fstreet.jpg\",\n    \"mask_image\": \"https:\u002F\u002F...\u002Fcables-mask.png\",\n    \"strength\": 0.5,\n    \"control_scale\": 0.8\n  }' \\\n  --output-dir \u003Cabsolute\u002Fpath>\n```\n\n**Region replacement (high strength):**\n\n```bash\nruncomfy run tongyi-mai\u002Fz-image\u002Fturbo\u002Finpainting \\\n  --input '{\n    \"prompt\": \"Replace busy backdrop with smooth light gray studio paper; mask background only.\",\n    \"image\": \"https:\u002F\u002F...\u002Fproduct.jpg\",\n    \"mask_image\": \"https:\u002F\u002F...\u002Fbg-mask.png\",\n    \"strength\": 0.9\n  }' \\\n  --output-dir \u003Cabsolute\u002Fpath>\n```\n\n### Prompting tips\n\n- **A mask URL is required** — grayscale, white = inpaint region, black = preserve. Slight blur on mask edges (1–3px) blends better than sharp binary.\n- **Strength by intent**: `0.3–0.5` for retouching \u002F cleanup, `0.6–0.7` for object replacement with style match, `0.8–1.0` for full-region replacement.\n- **Name what stays outside the mask** in the prompt: `\"preserve rooflines and sky gradient\"`, `\"match brick pattern and mortar tone\"`.\n- **Spatial labels still help** even though the mask defines the region: `\"the left shelf\"`, `\"upper-right quadrant\"`.\n\n---\n\n## Limitations\n\n- **Each route inherits its model's limits.** Nano Banana: 1–20 inputs, 1–4 outputs. GPT Image 2 Edit: up to 10 refs, 4 fixed sizes. Flux Kontext: single ref. Z-Image Inpaint: mask required.\n- **No multi-route blending.** This skill picks one model per call.\n- **Brand-specific overrides** — if the user named a specific model, route to the corresponding brand skill (`gpt-image-edit`, `flux-kontext`, `nano-banana-edit`) for fuller treatment.\n\n## Exit codes\n\n| code | meaning |\n|---|---|\n| 0  | success |\n| 64 | bad CLI args |\n| 65 | bad input JSON \u002F schema mismatch |\n| 69 | upstream 5xx |\n| 75 | retryable: timeout \u002F 429 |\n| 77 | not signed in or token rejected |\n\nFull reference: [docs.runcomfy.com\u002Fcli\u002Ftroubleshooting](https:\u002F\u002Fdocs.runcomfy.com\u002Fcli\u002Ftroubleshooting?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-edit).\n\n## How it works\n\nThe skill picks one of Nano Banana Edit \u002F GPT Image 2 Edit \u002F Flux Kontext Pro \u002F Z-Image Turbo Inpaint based on user intent and invokes `runcomfy run \u003Cmodel_id>` with the matching JSON body. The CLI POSTs to the Model API, polls the request, fetches the result, and downloads any `.runcomfy.net`\u002F`.runcomfy.com` URL into `--output-dir`. `Ctrl-C` cancels the remote request before exit.\n\n## Security & Privacy\n\n- **Token storage**: `runcomfy login` writes the API token to `~\u002F.config\u002Fruncomfy\u002Ftoken.json` with mode 0600 (owner-only read\u002Fwrite). Set `RUNCOMFY_TOKEN` env var to bypass the file entirely in CI \u002F containers.\n- **Input boundary**: the user prompt is passed as a JSON string to the CLI via `--input`. The CLI does NOT shell-expand the prompt; it transmits the JSON body directly to the Model API over HTTPS. No shell injection surface from prompt content.\n- **Third-party content**: image \u002F mask \u002F video URLs you pass are fetched by the RunComfy model server, not by the CLI on your machine. Treat external URLs as untrusted; image-based prompt injection is a known risk for any image-edit \u002F video-edit model.\n- **Outbound endpoints**: only `model-api.runcomfy.net` (request submission) and `*.runcomfy.net` \u002F `*.runcomfy.com` (download whitelist for generated outputs). No telemetry, no callbacks.\n- **Generated-file size cap**: the CLI aborts any single download > 2 GiB to prevent disk-fill from a malicious or runaway model output.\n","# Image Edit — Pro Pack on RunComfy\n\n[runcomfy.com](https:\u002F\u002Fwww.runcomfy.com\u002F?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-edit) · [Nano Banana Edit](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels\u002Fgoogle\u002Fnano-banana-2\u002Fedit?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-edit) · [GPT Image 2 Edit](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels\u002Fopenai\u002Fgpt-image-2\u002Fedit?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-edit) · [Flux Kontext](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels\u002Fblackforestlabs\u002Fflux-1-kontext-pro\u002Fimage-to-image?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-edit) · [Z-Image Inpaint](https:\u002F\u002Fwww.runcomfy.com\u002Fmodels\u002Ftongyi-mai\u002Fz-image\u002Fturbo\u002Finpainting?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-edit) · [GitHub](https:\u002F\u002Fgithub.com\u002Fagentspace-so\u002Fruncomfy-skills\u002Ftree\u002Fmain\u002Fimage-edit)\n\n**Image edit, intent-routed.** This skill doesn't lock you to one model — it picks the right edit model in the RunComfy catalog based on what the user actually wants: batch identity-preservation, multilingual text rewrite, single-shot precise edit, or mask-driven region replacement.\n\n```bash\nnpx skills add agentspace-so\u002Fruncomfy-skills --skill image-edit -g\n```\n\n## Pick the right model for the user's intent\n\n| User intent | Model | Why |\n|---|---|---|\n| Batch edit 1–20 images consistently (SKU gallery, A\u002FB variants) | **Nano Banana Edit** | Up to 20 input images per call; locked aspect\u002Fresolution for series |\n| Swap background, preserve subject identity | **Nano Banana Edit** | Strong identity preservation under \"keep X unchanged\" prompts |\n| Localized object removal \u002F addition with spatial language (\"the left object\", \"upper-right corner\") | **Nano Banana Edit** | Honors directional spatial scope |\n| Multilingual \u002F non-Latin in-image text rewrite (Japanese kana, Cyrillic, Arabic) | **GPT Image 2 Edit** | Strongest in class for multilingual typography |\n| Multi-reference composition (subject from img1, scene from img2, palette from img3) | **GPT Image 2 Edit** | Numbered refs route cues correctly |\n| Layout-precise repositioning (\"move headline from top-right to bottom-center\") | **GPT Image 2 Edit** | Directional language honored at layout level |\n| Identity preservation across translated headline variants | **GPT Image 2 Edit** | Same source asset → many language variants, identity stable |\n| Single-shot precise local edit (\"she's now holding an orange umbrella\") | **Flux Kontext Pro** | Single-ref single-instruction, high-fidelity preservation |\n| Mask-driven object removal (cables, watermarks, distractions) | **Z-Image Turbo Inpaint** | Mask-required, strength-tunable, edge-consistent |\n| Mask-driven region replacement (full background swap with mask) | **Z-Image Turbo Inpaint** | High strength + clean mask = clean replacement |\n| Default if unspecified | **Nano Banana Edit** | Most flexible, supports both single and batch |\n\nThe agent reads this table, classifies the user's intent, and picks the matching subsection below.\n\n## Prerequisites\n\n1. **RunComfy CLI** — `npm i -g @runcomfy\u002Fcli`\n2. **RunComfy account** — `runcomfy login`.\n3. **CI \u002F containers** — set `RUNCOMFY_TOKEN=\u003Ctoken>`.\n\n---\n\n## Route 1: Nano Banana Edit — default for general edit + batch\n\n**Model**: `google\u002Fnano-banana-2\u002Fedit`\n\n### Schema\n\n| Field | Type | Required | Default | Notes |\n|---|---|---|---|---|\n| `prompt` | string | yes | — | Lead with preservation goals, end with the change. |\n| `image_urls` | array | yes | — | **1–20** publicly-fetchable HTTPS URLs. |\n| `number_of_images` | int | no | 1 | 1–4 outputs per call. |\n| `aspect_ratio` | enum | no | `auto` | `auto` follows input; lock for batch consistency. |\n| `resolution` | enum | no | `1K` | `0.5K` \u002F `1K` \u002F `2K` \u002F `4K`. |\n| `output_format` | enum | no | `png` | `png` \u002F `jpeg` \u002F `webp`. |\n| `seed` | int | no | — | Reproducibility. |\n| `enable_web_search` | bool | no | false | Web-grounded edits (extra latency). |\n\n### Invoke\n\n```bash\nruncomfy run google\u002Fnano-banana-2\u002Fedit \\\n  --input '{\n    \"prompt\": \"Keep the subject identity, pose, and clothing unchanged. Convert the background into a rainy neon cyberpunk street.\",\n    \"image_urls\": [\"https:\u002F\u002F...\u002Fportrait.jpg\"]\n  }' \\\n  --output-dir \u003Cabsolute\u002Fpath>\n```\n\n**Batch (lock aspect + resolution):**\n\n```bash\nruncomfy run google\u002Fnano-banana-2\u002Fedit \\\n  --input '{\n    \"prompt\": \"Replace the watermark in the bottom-right with the text \\\"AURA\\\" in clean white sans-serif. Keep everything else exactly as in the input.\",\n    \"image_urls\": [\"https:\u002F\u002F...\u002Fsku-1.jpg\", \"https:\u002F\u002F...\u002Fsku-2.jpg\", \"https:\u002F\u002F...\u002Fsku-3.jpg\"],\n    \"aspect_ratio\": \"1:1\",\n    \"resolution\": \"1K\"\n  }' \\\n  --output-dir \u003Cabsolute\u002Fpath>\n```\n\n### Prompting tips\n\n- **Preservation first**: `\"Keep [identity \u002F pose \u002F brand \u002F framing] unchanged.\"` Then state the change.\n- **Spatial scope**: \"background only\", \"the left object\", \"upper-right quadrant\" — concrete locations honored.\n- **Batch consistency**: lock `aspect_ratio` and `resolution` across the batch.\n- **Iterate small**: split compound edits into multiple shorter passes.\n\n---\n\n## Route 2: GPT Image 2 Edit — multilingual text + multi-ref composition\n\n**Model**: `openai\u002Fgpt-image-2\u002Fedit`\n\n### Schema\n\n| Field | Type | Required | Default | Notes |\n|---|---|---|---|---|\n| `prompt` | string | yes | — | Edit instruction; lead with preservation. |\n| `images` | string[] | yes | — | **Up to 10** HTTPS URLs. First is primary; rest are auxiliary. |\n| `size` | enum | no | `auto` | `auto`, `1024_1024`, `1024_1536`, `1536_1024`. **Only these.** |\n\n### Invoke\n\n**Multilingual text rewrite:**\n\n```bash\nruncomfy run openai\u002Fgpt-image-2\u002Fedit \\\n  --input '{\n    \"prompt\": \"Keep the photograph, layout, and brand mark exactly as in the input. Replace only the in-image headline. The new headline reads \\\"今日のおすすめ\\\" in bold Japanese kana, same position and font weight.\",\n    \"images\": [\"https:\u002F\u002F...\u002Fposter-en.jpg\"]\n  }' \\\n  --output-dir \u003Cabsolute\u002Fpath>\n```\n\n**Multi-ref composition:**\n\n```bash\nruncomfy run openai\u002Fgpt-image-2\u002Fedit \\\n  --input '{\n    \"prompt\": \"Compose subject from image 1 into the room from image 2. Match the lighting and color palette of image 2. Keep image 1 subject identity unchanged.\",\n    \"images\": [\"https:\u002F\u002F...\u002Fsubject.jpg\", \"https:\u002F\u002F...\u002Froom.jpg\"]\n  }' \\\n  --output-dir \u003Cabsolute\u002Fpath>\n```\n\n### Prompting tips\n\n- **Quote in-image text exactly.** Name the script for non-Latin: `\"Japanese kana\"`, `\"Cyrillic\"`, `\"Arabic right-to-left\"`.\n- **Number multi-refs**: `\"subject from image 1, lighting from image 2\"`.\n- **Directional layout language**: `\"move the headline from top-right to bottom-center\"`, `\"replace the watermark in the bottom-right\"`.\n- **`size: \"auto\"`** preserves input ratio — recommended unless the edit changes framing.\n\n---\n\n## Route 3: Flux Kontext Pro — single-shot precise local edit\n\n**Model**: `blackforestlabs\u002Fflux-1-kontext\u002Fpro\u002Fedit`\n\n### Schema (minimal)\n\n| Field | Type | Required | Notes |\n|---|---|---|---|\n| `prompt` | string | yes | One declarative edit instruction. |\n| `image` | string | yes | **Single** source image URL. |\n| `aspect_ratio` | enum | no | Pick from supported W:H values. |\n| `seed` | int | no | Reproducibility. |\n\nSingle image only — no array. For multi-image flows, use Route 1 (Nano Banana Edit).\n\n### Invoke\n\n```bash\nruncomfy run blackforestlabs\u002Fflux-1-kontext\u002Fpro\u002Fedit \\\n  --input '{\n    \"prompt\": \"Keep the person'\\''s face, pose, and clothing unchanged. Add an orange umbrella in her left hand and a slight smile.\",\n    \"image\": \"https:\u002F\u002F...\u002Fportrait.jpg\"\n  }' \\\n  --output-dir \u003Cabsolute\u002Fpath>\n```\n\n### Prompting tips\n\n- **One declarative instruction.** \"She is now holding an orange umbrella and smiling\" — imperative, single change.\n- **Preservation first.** Lead with `\"Keep [unchanged elements]\"` then state the change.\n- **Iterate small.** Compound edits drift on a single pass; split into sequential passes.\n\n---\n\n## Route 4: Z-Image Turbo Inpaint — mask-driven precise region edit\n\n**Model**: `tongyi-mai\u002Fz-image\u002Fturbo\u002Finpainting`\n\n### Schema\n\n| Field | Type | Required | Notes |\n|---|---|---|---|\n| `prompt` | string | yes | What to fill \u002F replace; preservation constraints for the unmasked surround. |\n| `image` | string | yes | Source image URL. |\n| `mask_image` | string | yes | **Grayscale mask URL** (white = inpaint, black = preserve). |\n| `strength` | float | no | 0.3–0.6 retouching, 0.7–1.0 full replacement. |\n| `control_scale` | float | no | 0.6–0.9 typical. |\n| `aspect_ratio` | enum | no | W:H output ratio. |\n| `seed` | int | no | Reproducibility. |\n\n### Invoke\n\n**Object removal (low strength):**\n\n```bash\nruncomfy run tongyi-mai\u002Fz-image\u002Fturbo\u002Finpainting \\\n  --input '{\n    \"prompt\": \"Remove overhead cables; preserve rooflines and sky gradient; thin clean sky.\",\n    \"image\": \"https:\u002F\u002F...\u002Fstreet.jpg\",\n    \"mask_image\": \"https:\u002F\u002F...\u002Fcables-mask.png\",\n    \"strength\": 0.5,\n    \"control_scale\": 0.8\n  }' \\\n  --output-dir \u003Cabsolute\u002Fpath>\n```\n\n**Region replacement (high strength):**\n\n```bash\nruncomfy run tongyi-mai\u002Fz-image\u002Fturbo\u002Finpainting \\\n  --input '{\n    \"prompt\": \"Replace busy backdrop with smooth light gray studio paper; mask background only.\",\n    \"image\": \"https:\u002F\u002F...\u002Fproduct.jpg\",\n    \"mask_image\": \"https:\u002F\u002F...\u002Fbg-mask.png\",\n    \"strength\": 0.9\n  }' \\\n  --output-dir \u003Cabsolute\u002Fpath>\n```\n\n### Prompting tips\n\n- **A mask URL is required** — grayscale, white = inpaint region, black = preserve. Slight blur on mask edges (1–3px) blends better than sharp binary.\n- **Strength by intent**: `0.3–0.5` for retouching \u002F cleanup, `0.6–0.7` for object replacement with style match, `0.8–1.0` for full-region replacement.\n- **Name what stays outside the mask** in the prompt: `\"preserve rooflines and sky gradient\"`, `\"match brick pattern and mortar tone\"`.\n- **Spatial labels still help** even though the mask defines the region: `\"the left shelf\"`, `\"upper-right quadrant\"`.\n\n---\n\n## Limitations\n\n- **Each route inherits its model's limits.** Nano Banana: 1–20 inputs, 1–4 outputs. GPT Image 2 Edit: up to 10 refs, 4 fixed sizes. Flux Kontext: single ref. Z-Image Inpaint: mask required.\n- **No multi-route blending.** This skill picks one model per call.\n- **Brand-specific overrides** — if the user named a specific model, route to the corresponding brand skill (`gpt-image-edit`, `flux-kontext`, `nano-banana-edit`) for fuller treatment.\n\n## Exit codes\n\n| code | meaning |\n|---|---|\n| 0  | success |\n| 64 | bad CLI args |\n| 65 | bad input JSON \u002F schema mismatch |\n| 69 | upstream 5xx |\n| 75 | retryable: timeout \u002F 429 |\n| 77 | not signed in or token rejected |\n\nFull reference: [docs.runcomfy.com\u002Fcli\u002Ftroubleshooting](https:\u002F\u002Fdocs.runcomfy.com\u002Fcli\u002Ftroubleshooting?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-edit).\n\n## How it works\n\nThe skill picks one of Nano Banana Edit \u002F GPT Image 2 Edit \u002F Flux Kontext Pro \u002F Z-Image Turbo Inpaint based on user intent and invokes `runcomfy run \u003Cmodel_id>` with the matching JSON body. The CLI POSTs to the Model API, polls the request, fetches the result, and downloads any `.runcomfy.net`\u002F`.runcomfy.com` URL into `--output-dir`. `Ctrl-C` cancels the remote request before exit.\n\n## Security & Privacy\n\n- **Token storage**: `runcomfy login` writes the API token to `~\u002F.config\u002Fruncomfy\u002Ftoken.json` with mode 0600 (owner-only read\u002Fwrite). Set `RUNCOMFY_TOKEN` env var to bypass the file entirely in CI \u002F containers.\n- **Input boundary**: the user prompt is passed as a JSON string to the CLI via `--input`. The CLI does NOT shell-expand the prompt; it transmits the JSON body directly to the Model API over HTTPS. No shell injection surface from prompt content.\n- **Third-party content**: image \u002F mask \u002F video URLs you pass are fetched by the RunComfy model server, not by the CLI on your machine. Treat external URLs as untrusted; image-based prompt injection is a known risk for any image-edit \u002F video-edit model.\n- **Outbound endpoints**: only `model-api.runcomfy.net` (request submission) and `*.runcomfy.net` \u002F `*.runcomfy.com` (download whitelist for generated outputs). No telemetry, no callbacks.\n- **Generated-file size cap**: the CLI aborts any single download > 2 GiB to prevent disk-fill from a malicious or runaway model output.\n",{"name":5,"license":15,"homepage":24,"description":25,"displayName":26},"https:\u002F\u002Fwww.runcomfy.com","Edit images on RunComfy — this skill is a smart router that matches the user's intent to the right edit model in the RunComfy catalog. Picks Nano Banana Edit (batch up to 20, identity-preserving default), OpenAI GPT Image 2 Edit (multilingual in-image text rewrite, multi-ref composition, layout precision), Flux Kontext Pro (single-ref high-fidelity local edit), or Z-Image Turbo Inpaint (mask-driven precise region edit). Bundles each model's documented prompting patterns so the skill gets sharper edits without burning iterations on the wrong model. Calls `runcomfy run \u003Cvendor>\u002F\u003Cmodel>\u002Fedit` through the local RunComfy CLI. Triggers on \"image edit\", \"edit image\", \"image-to-image\", \"i2i\", \"swap background\", \"remove object\", \"rewrite headline\", or any explicit ask to edit a single or batch of images.\n","Image Edit — Pro Pack on RunComfy","main","a73152352c0612252131e5cf84e91312a6cf17dc","utilities\u002Fimage-edit","https:\u002F\u002Fgithub.com\u002FHenrique1601\u002FSkiilsToIAs","https:\u002F\u002Fgithub.com\u002FHenrique1601","https:\u002F\u002Fbezerraportifolio.netlify.app\u002F","Full Stack Developer | React, Next.js, TypeScript, Node.js & IA | Construindo produtos digitais e soluções SaaS","2026-11-15 02:56:04",{"source":8,"skillName":5,"commands":36,"prompt":46,"zipAvailable":47},[37,40,43],{"tool":38,"command":39},"npx","npx skills add Henrique1601\u002FSkiilsToIAs --skill image-edit",{"tool":41,"command":42},"bunx","bunx skills add Henrique1601\u002FSkiilsToIAs --skill image-edit",{"tool":44,"command":45},"pnpm","pnpm dlx skills add Henrique1601\u002FSkiilsToIAs --skill image-edit","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FHenrique1601\u002FSkiilsToIAs\u002Fblob\u002Fmain\u002Futilities\u002Fimage-edit\u002FSKILL.md",true,[],[50,57,64,72,79,86],{"skillNo":51,"name":52,"nameZh":6,"description":53,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":54,"categories":55,"keywords":56,"publishedAt":19},"01M7E2ANBW9V6AVX5JXNCEAWF8","rag-architect-agent","Agente Arquiteto de RAG, Embeddings & Busca Vetorial. Especialista em design e implementação de pipelines de Retrieval-Augmented Generation de alta fidelidade: chunking semântico, modelagem pgvector no PostgreSQL (Neon\u002FSupabase), busca híbrida (cosseno + BM25), reranking, validação via TypeSafe AI e filosofia Ponytail (anti-overengineering).","https:\u002F\u002Fgithub.com\u002FHenrique1601\u002FSkiilsToIAs\u002Fblob\u002Fmain\u002Fcustom-agents\u002Frag-architect-agent\u002FSKILL.md",[],[],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":19},"01M7E29KKF8R02ZRGYE2MJM67G","rag-architecture-patterns","Padrões arquiteturais e implementação de pipelines RAG (Retrieval-Augmented Generation) de alta fidelidade para qualquer projeto ou sistema. Cobre chunking semântico, embeddings, busca híbrida (pgvector + BM25), reranking, validação via TypeSafe AI e filosofia Ponytail (anti-overengineering).","https:\u002F\u002Fgithub.com\u002FHenrique1601\u002FSkiilsToIAs\u002Fblob\u002Fmain\u002Fai-agents\u002Frag-architecture-patterns\u002FSKILL.md",[],[],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":68,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":19},"01M7CWRA8E3BJ7CPY8N8EG28J1","skill-repair","Use this to fix and re-install agent skills that have failed installation.\nThis skill provides the necessary context and permissions to surgically update\nthe `manifest.json` after a fix has been applied.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FHenrique1601\u002FSkiilsToIAs\u002Fblob\u002Fmain\u002Futilities\u002Fskill-repair\u002FSKILL.md",[],[],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":19},"01M7CWR66FZP8FA47WVZ4Z2EXC","security-scan","Scan your Claude Code configuration (.claude\u002F directory) for security vulnerabilities, misconfigurations, and injection risks using AgentShield. Checks CLAUDE.md, settings.json, MCP servers, hooks, and agent definitions.","https:\u002F\u002Fgithub.com\u002FHenrique1601\u002FSkiilsToIAs\u002Fblob\u002Fmain\u002Futilities\u002Fsecurity-scan\u002FSKILL.md",[],[],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":19},"01M7CWR0QPY58QPTR1P759TFNG","security-review","Use this skill when adding authentication, handling user input, working with secrets, creating API endpoints, or implementing payment\u002Fsensitive features. Provides comprehensive security checklist and patterns.","https:\u002F\u002Fgithub.com\u002FHenrique1601\u002FSkiilsToIAs\u002Fblob\u002Fmain\u002Futilities\u002Fsecurity-review\u002FSKILL.md",[],[],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":19},"01M7CWQXCE40XWT4FZ3VWZFGDP","security-bounty-hunter","Hunt for exploitable, bounty-worthy security issues in repositories. Focuses on remotely reachable vulnerabilities that qualify for real reports instead of noisy local-only findings.","https:\u002F\u002Fgithub.com\u002FHenrique1601\u002FSkiilsToIAs\u002Fblob\u002Fmain\u002Futilities\u002Fsecurity-bounty-hunter\u002FSKILL.md",[],[]]