image-edit

作者: runcomfy-com

在RunComfy上编辑图像——该技能是一个智能路由,能将用户意图匹配到RunComfy目录中的正确编辑模型。可选择Nano Banana Edit(最多批量处理20张,默认保留身份特征)、OpenAI GPT Image 2 Edit(多语言图像内文本重写、多参考合成、布局精准)、Flux Kontext Pro(单参考高保真局部编辑)或Z-Image Turbo Inpaint(遮罩驱动的精准区域编辑)。该技能整合了每个模型文档中的提示模式,从而...

npx skills add https://github.com/runcomfy-com/skills --skill image-edit

Image Edit — Pro Pack on RunComfy

runcomfy.com · Nano Banana Edit · GPT Image 2 Edit · Flux Kontext · Z-Image Inpaint · GitHub

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.

npx skills add agentspace-so/runcomfy-skills --skill image-edit -g

Pick the right model for the user's intent

User intentModelWhy
Batch edit 1–20 images consistently (SKU gallery, A/B variants)Nano Banana EditUp to 20 input images per call; locked aspect/resolution for series
Swap background, preserve subject identityNano Banana EditStrong identity preservation under "keep X unchanged" prompts
Localized object removal / addition with spatial language ("the left object", "upper-right corner")Nano Banana EditHonors directional spatial scope
Multilingual / non-Latin in-image text rewrite (Japanese kana, Cyrillic, Arabic)GPT Image 2 EditStrongest in class for multilingual typography
Multi-reference composition (subject from img1, scene from img2, palette from img3)GPT Image 2 EditNumbered refs route cues correctly
Layout-precise repositioning ("move headline from top-right to bottom-center")GPT Image 2 EditDirectional language honored at layout level
Identity preservation across translated headline variantsGPT Image 2 EditSame source asset → many language variants, identity stable
Single-shot precise local edit ("she's now holding an orange umbrella")Flux Kontext ProSingle-ref single-instruction, high-fidelity preservation
Mask-driven object removal (cables, watermarks, distractions)Z-Image Turbo InpaintMask-required, strength-tunable, edge-consistent
Mask-driven region replacement (full background swap with mask)Z-Image Turbo InpaintHigh strength + clean mask = clean replacement
Default if unspecifiedNano Banana EditMost flexible, supports both single and batch

The agent reads this table, classifies the user's intent, and picks the matching subsection below.

Prerequisites

  1. RunComfy CLInpm i -g @runcomfy/cli
  2. RunComfy accountruncomfy login.
  3. CI / containers — set RUNCOMFY_TOKEN=<token>.

Route 1: Nano Banana Edit — default for general edit + batch

Model: google/nano-banana-2/edit

Schema

FieldTypeRequiredDefaultNotes
promptstringyesLead with preservation goals, end with the change.
image_urlsarrayyes1–20 publicly-fetchable HTTPS URLs.
number_of_imagesintno11–4 outputs per call.
aspect_ratioenumnoautoauto follows input; lock for batch consistency.
resolutionenumno1K0.5K / 1K / 2K / 4K.
output_formatenumnopngpng / jpeg / webp.
seedintnoReproducibility.
enable_web_searchboolnofalseWeb-grounded edits (extra latency).

Invoke

runcomfy run google/nano-banana-2/edit \
  --input '{
    "prompt": "Keep the subject identity, pose, and clothing unchanged. Convert the background into a rainy neon cyberpunk street.",
    "image_urls": ["https://.../portrait.jpg"]
  }' \
  --output-dir <absolute/path>

Batch (lock aspect + resolution):

runcomfy run google/nano-banana-2/edit \
  --input '{
    "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.",
    "image_urls": ["https://.../sku-1.jpg", "https://.../sku-2.jpg", "https://.../sku-3.jpg"],
    "aspect_ratio": "1:1",
    "resolution": "1K"
  }' \
  --output-dir <absolute/path>

Prompting tips

  • Preservation first: "Keep [identity / pose / brand / framing] unchanged." Then state the change.
  • Spatial scope: "background only", "the left object", "upper-right quadrant" — concrete locations honored.
  • Batch consistency: lock aspect_ratio and resolution across the batch.
  • Iterate small: split compound edits into multiple shorter passes.

Route 2: GPT Image 2 Edit — multilingual text + multi-ref composition

Model: openai/gpt-image-2/edit

Schema

FieldTypeRequiredDefaultNotes
promptstringyesEdit instruction; lead with preservation.
imagesstring[]yesUp to 10 HTTPS URLs. First is primary; rest are auxiliary.
sizeenumnoautoauto, 1024_1024, 1024_1536, 1536_1024. Only these.

Invoke

Multilingual text rewrite:

runcomfy run openai/gpt-image-2/edit \
  --input '{
    "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.",
    "images": ["https://.../poster-en.jpg"]
  }' \
  --output-dir <absolute/path>

Multi-ref composition:

runcomfy run openai/gpt-image-2/edit \
  --input '{
    "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.",
    "images": ["https://.../subject.jpg", "https://.../room.jpg"]
  }' \
  --output-dir <absolute/path>

Prompting tips

  • Quote in-image text exactly. Name the script for non-Latin: "Japanese kana", "Cyrillic", "Arabic right-to-left".
  • Number multi-refs: "subject from image 1, lighting from image 2".
  • Directional layout language: "move the headline from top-right to bottom-center", "replace the watermark in the bottom-right".
  • size: "auto" preserves input ratio — recommended unless the edit changes framing.

Route 3: Flux Kontext Pro — single-shot precise local edit

Model: blackforestlabs/flux-1-kontext/pro/edit

Schema (minimal)

FieldTypeRequiredNotes
promptstringyesOne declarative edit instruction.
imagestringyesSingle source image URL.
aspect_ratioenumnoPick from supported W:H values.
seedintnoReproducibility.

Single image only — no array. For multi-image flows, use Route 1 (Nano Banana Edit).

Invoke

runcomfy run blackforestlabs/flux-1-kontext/pro/edit \
  --input '{
    "prompt": "Keep the person'\''s face, pose, and clothing unchanged. Add an orange umbrella in her left hand and a slight smile.",
    "image": "https://.../portrait.jpg"
  }' \
  --output-dir <absolute/path>

Prompting tips

  • One declarative instruction. "She is now holding an orange umbrella and smiling" — imperative, single change.
  • Preservation first. Lead with "Keep [unchanged elements]" then state the change.
  • Iterate small. Compound edits drift on a single pass; split into sequential passes.

Route 4: Z-Image Turbo Inpaint — mask-driven precise region edit

Model: tongyi-mai/z-image/turbo/inpainting

Schema

FieldTypeRequiredNotes
promptstringyesWhat to fill / replace; preservation constraints for the unmasked surround.
imagestringyesSource image URL.
mask_imagestringyesGrayscale mask URL (white = inpaint, black = preserve).
strengthfloatno0.3–0.6 retouching, 0.7–1.0 full replacement.
control_scalefloatno0.6–0.9 typical.
aspect_ratioenumnoW:H output ratio.
seedintnoReproducibility.

Invoke

Object removal (low strength):

runcomfy run tongyi-mai/z-image/turbo/inpainting \
  --input '{
    "prompt": "Remove overhead cables; preserve rooflines and sky gradient; thin clean sky.",
    "image": "https://.../street.jpg",
    "mask_image": "https://.../cables-mask.png",
    "strength": 0.5,
    "control_scale": 0.8
  }' \
  --output-dir <absolute/path>

Region replacement (high strength):

runcomfy run tongyi-mai/z-image/turbo/inpainting \
  --input '{
    "prompt": "Replace busy backdrop with smooth light gray studio paper; mask background only.",
    "image": "https://.../product.jpg",
    "mask_image": "https://.../bg-mask.png",
    "strength": 0.9
  }' \
  --output-dir <absolute/path>

Prompting tips

  • A mask URL is required — grayscale, white = inpaint region, black = preserve. Slight blur on mask edges (1–3px) blends better than sharp binary.
  • Strength by intent: 0.3–0.5 for retouching / cleanup, 0.6–0.7 for object replacement with style match, 0.8–1.0 for full-region replacement.
  • Name what stays outside the mask in the prompt: "preserve rooflines and sky gradient", "match brick pattern and mortar tone".
  • Spatial labels still help even though the mask defines the region: "the left shelf", "upper-right quadrant".

Limitations

  • 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.
  • No multi-route blending. This skill picks one model per call.
  • 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.

Exit codes

codemeaning
0success
64bad CLI args
65bad input JSON / schema mismatch
69upstream 5xx
75retryable: timeout / 429
77not signed in or token rejected

Full reference: docs.runcomfy.com/cli/troubleshooting.

How it works

The skill picks one of Nano Banana Edit / GPT Image 2 Edit / Flux Kontext Pro / Z-Image Turbo Inpaint based on user intent and invokes runcomfy run <model_id> with the matching JSON body. The CLI POSTs to the Model API, polls the request, fetches the result, and downloads any .runcomfy.net/.runcomfy.com URL into --output-dir. Ctrl-C cancels the remote request before exit.

Security & Privacy

  • Token storage: runcomfy login writes the API token to ~/.config/runcomfy/token.json with mode 0600 (owner-only read/write). Set RUNCOMFY_TOKEN env var to bypass the file entirely in CI / containers.
  • 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.
  • Third-party content: image / mask / 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 / video-edit model.
  • Outbound endpoints: only model-api.runcomfy.net (request submission) and *.runcomfy.net / *.runcomfy.com (download whitelist for generated outputs). No telemetry, no callbacks.
  • Generated-file size cap: the CLI aborts any single download > 2 GiB to prevent disk-fill from a malicious or runaway model output.

来自 runcomfy-com 的更多技能

video-inpainting
runcomfy-com
Region edits across video frames on RunComfy via the `runcomfy` CLI — remove an object that appears across many frames, clean up wires or watermarks, replace a region with matching motion. Routes across Wan 2-7 edit-video (default, prompt-driven region edits with spatial language), Lucy Edit Restyle (identity-stable region-aware restyle), and Seedream 4-0 edit-sequential (when treating the clip as a frame stack). Picks the right route based on whether the change is prose-driven,...
videocreativemedia
runcomfy-cli
runcomfy-com
我们需将提供的英文文本翻译成简体中文。注意:保留产品名runcomfy-cli(但文本中未出现,所以不处理)。保留runcomfy、CLI、ControlNet、LoRA等专有名词。翻译要准确,不添加额外内容。 文本内容:描述runcomfy CLI的功能,可以从命令行运行任何模型,支持多种模型端点,以及提交请求、轮询状态、下载输出等。最后一句说这个技能教agent如何安装、认证、发现模型模式、调用模型、流式/轮询/无等待、脚本等。 翻译时注意技术术语:image generation(图像生成)、image edit(图像编辑)、video generation(视频生成)、image-to-video(图像转视频)、lip-sync(唇形同步)、face swap(换脸)、video edit(视频编辑)、inpainting(修复)、outpainting(扩展)、extend(扩展?但outpainting也是扩展,注意区分)、ControlNet(保留)、relight(重打光)、upscale(放大)、
creativemediaapi
image-to-video
runcomfy-com
Animate any still image on RunComfy — this skill is a smart router that matches the user's intent to the right i2v model in the RunComfy catalog. Picks HappyHorse 1.0 I2V (Arena #1, native audio, identity preservation) for general animations, Wan 2.7 with `audio_url` for custom-voiceover lip-sync, or Seedance 2.0 Pro for multi-modal animation from image + reference video + reference audio. Bundles each model's documented prompting patterns so the caller gets sharper output without burning...
creativevideomedia
flux-2-klein
runcomfy-com
在RunComfy上使用Flux 2 Klein(Black Forest Labs的Flux 2蒸馏快速变体)生成图像——该技能捆绑了模型文档化的提示模式,因此相比对同一模型进行朴素提示,能获得更清晰的输出。记录了Flux 2 Klein的优势(亚秒级延迟、多参考品牌风格、声明式主语优先提示)、步数策略(快速迭代4–8步,精修约25步)、9B与4B变体的权衡,以及何时转向Flux 2 Pro /...
creativeimageresearch
ai-avatar-video
runcomfy-com
Create AI avatar, talking-head, and lip-sync videos on RunComfy via the `runcomfy` CLI. Routes across ByteDance OmniHuman (audio-driven full-body avatar), Wan-AI Wan 2-7 (audio-driven mouth sync via `audio_url` on a portrait), HappyHorse 1.0 (Arena #1 t2v / i2v with in-pass audio), and Seedance v2 Pro (multi-modal cinematic with reference audio + reference subject). Picks the right model for the user's actual intent — UGC voiceover, virtual presenter, dubbed product demo, lip-synced...
videocreativemedia
nano-banana-edit
runcomfy-com
Edit images with Google Nano Banana 2 (image-to-image edit endpoint) on RunComfy. Documents Nano Banana Edit's strengths (preserve subject identity, swap background, localize edits with spatial language, multi-image batch edits up to 20 inputs), the schema, and when to route to GPT Image 2 edit / Flux Kontext / Nano Banana 2 t2i instead. Calls `runcomfy run google/nano-banana-2/edit` through the local RunComfy CLI. Triggers on "nano banana edit", "edit with nano banana", "image edit nano...
creativeimageapi
wan-2-7
runcomfy-com
我们要求翻译一段文本,目标语言是简体中文。需要保留产品名、协议名、URL、数字、技术术语。不要添加声明、解释、Markdown、项目符号、链接、标签、前缀或额外评论。只翻译<text>内的内容,不包括名称除非在源文本中出现。不要添加"description"等标签。 源文本是英文,描述了一个agent skill,关于使用Wan 2.7生成文本到视频。需要翻译成中文,保留"Wan 2.7"、"RunComfy"、"HappyHorse 1.0"、"Seedance 2.0"、"Kling"、"LTX 2"、"audio_url"、"runcomfy run wan-ai/wan-2-7/text-to-video"等专有名词和技术术语。注意"Wan 2.7"可能指代模型名称,保留原样。另外"Wan-AI"也保留。注意"multi-reference conditioning"翻译为"多参考条件","audio-driven lip-sync
creativevideomedia
lipsync
runcomfy-com
Lip-sync a face to a specific audio track on RunComfy via the `runcomfy` CLI. Routes across ByteDance OmniHuman (audio-driven full-body avatar from a portrait + audio), Sync Labs sync v2 / Pro (state-of-the-art mouth sync onto a video), Kling lipsync (audio-to- video and text-to-video with synced speech), and Creatify lipsync. The skill picks the right endpoint for the user's actual intent — portrait still + audio (avatar-style), source video + audio (mouth- swap on existing footage), or...
creativevideomedia