image-edit について
image-editは、RunComfy CLI向けの意図ベースの画像編集スキルです。バッチ編集、局所的な修正、複数画像の合成、画像内テキストの変更などに応じて4つのモデルから選び、1回の呼び出しで1モデルを使います。
主な機能
- 01編集意図に応じたモデル選択
- 02単一画像とバッチ編集への対応
- 03複数参照画像の合成と多言語テキスト編集
- 04マスクによる領域置換
- 05RunComfy CLIでの実行と結果のダウンロード
活用シーン
- 01商品画像の一貫したバリエーションを一括作成
- 02ポスター内の日本語などのテキストを修正
- 03別々の参照画像から被写体とシーンを合成
- 04マスクを使った物体除去や背景置換
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ doany-ai/ skills --skill image-editインストール後、Claude Code で/image-editを入力して読み込まれたか確認します。
詳細
Image Edit — RunComfy の Pro Pack
runcomfy.com · Nano Banana Edit · GPT Image 2 Edit · Flux Kontext · Z-Image Inpaint · GitHub
意図に応じた画像編集。 このスキルでは、1つのモデルに固定されません。ユーザーが実際に求めている内容に基づいて、RunComfy カタログから適切な編集モデルを選択します。たとえば、アイデンティティを維持した一括編集、多言語テキストの書き換え、1回で完了する精密な編集、マスクを使った領域の置き換えなどです。
npx skills add agentspace-so/runcomfy-skills --skill image-edit -g
ユーザーの意図に合ったモデルを選ぶ
| ユーザーの意図 | モデル | 理由 |
|---|---|---|
| 1~20枚の画像を一貫性を保って一括編集する(SKU ギャラリー、A/B バリエーション) | Nano Banana Edit | 1回の呼び出しで最大20枚の入力画像に対応。シリーズ全体でアスペクト比と解像度を固定できます |
| 背景を入れ替え、被写体のアイデンティティを維持する | Nano Banana Edit | 「X は変更しない」というプロンプトで、アイデンティティを強く維持します |
| 空間表現(「左側のオブジェクト」「右上隅」)を使った、局所的なオブジェクトの削除/追加 | Nano Banana Edit | 方向を示す空間的な範囲を忠実に反映します |
| 画像内テキストの多言語/非ラテン文字による書き換え(日本語のかな、キリル文字、アラビア語) | GPT Image 2 Edit | 多言語タイポグラフィでクラス最高の性能を発揮します |
| 複数の参照画像を使った構成(画像1の被写体、画像2のシーン、画像3の配色) | GPT Image 2 Edit | 番号付きの参照画像から手がかりを正しく反映します |
| レイアウトを正確に保った位置変更(「見出しを右上から下中央に移動」) | GPT Image 2 Edit | レイアウトレベルで方向の指示を忠実に反映します |
| 翻訳した見出しのバリエーション間でアイデンティティを維持する | GPT Image 2 Edit | 同じソース素材から多数の言語バリエーションを作成しても、アイデンティティが保たれます |
| 1回で完了する正確な局所編集(「彼女がオレンジ色の傘を持っている」) | Flux Kontext Pro | 1つの参照画像と1つの指示で、高い忠実度を維持します |
| マスクを使ったオブジェクトの削除(ケーブル、透かし、不要なもの) | Z-Image Turbo Inpaint | マスクが必須で、強度を調整でき、エッジの一貫性を保ちます |
| マスクを使った領域の置き換え(マスクによる背景全体の差し替え) | Z-Image Turbo Inpaint | 強度を高くし、マスクをきれいにすれば、きれいに置き換えられます |
| 指定がない場合のデフォルト | Nano Banana Edit | 最も柔軟で、単一画像にも一括処理にも対応します |
エージェントはこの表を読み、ユーザーの意図を分類して、以下の該当するセクションを選びます。
前提条件
- RunComfy CLI —
npm i -g @runcomfy/cli - RunComfy アカウント —
runcomfy login。 - CI/コンテナ —
RUNCOMFY_TOKEN=<token>を設定します。
ルート1:Nano Banana Edit — 一般的な編集と一括処理のデフォルト
モデル:google/nano-banana-2/edit
スキーマ
| フィールド | 型 | 必須 | デフォルト | 備考 |
|---|---|---|---|---|
prompt | string | はい | — | 維持したい要素を最初に示し、変更内容を最後に記述します。 |
image_urls | array | はい | — | 公開取得可能な HTTPS URL を1~20個指定します。 |
number_of_images | int | いいえ | 1 | 1回の呼び出しにつき1~4枚を出力します。 |
aspect_ratio | enum | いいえ | auto | auto は入力に合わせます。一括処理で一貫性を保つには固定します。 |
resolution | enum | いいえ | 1K | 0.5K / 1K / 2K / 4K。 |
output_format | enum | いいえ | png | png / jpeg / webp。 |
seed | int | いいえ | — | 再現性を確保します。 |
enable_web_search | bool | いいえ | false | ウェブ情報に基づく編集(追加の遅延が発生します)。 |
呼び出し
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>
一括処理(アスペクト比と解像度を固定):
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>
プロンプトのヒント
- まず保持を指示する:「
[identity / pose / brand / framing]を変更しないでください。」と指定してから、変更内容を述べます。 - 空間的な範囲:「背景のみ」「左側のオブジェクト」「右上の領域」など、場所を具体的に示すと反映されます。
- バッチの一貫性:バッチ全体で
aspect_ratioとresolutionを固定します。 - 小さく反復する:複合的な編集は、複数回の短い処理に分けます。
ルート 2:GPT Image 2 Edit — 多言語テキスト+複数参照画像の合成
モデル:openai/gpt-image-2/edit
スキーマ
| フィールド | 型 | 必須 | デフォルト | 備考 |
|---|---|---|---|---|
prompt | string | はい | — | 編集指示。保持する内容を最初に指定します。 |
images | string[] | はい | — | HTTPS URL を最大 10 件指定します。最初の画像がメイン、残りが補助画像です。 |
size | enum | いいえ | auto | auto、1024_1024、1024_1536、1536_1024。これらのみです。 |
実行
多言語テキストの書き換え:
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>
複数参照画像の合成:
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>
プロンプトのヒント
- 画像内のテキストは正確に引用します。 ラテン文字以外の文字については、「
Japanese kana」「Cyrillic」「Arabic right-to-left」のように文字体系を指定します。 - 複数の参照画像には番号を付けます:「画像 1 の被写体、画像 2 のライティング」。
- 方向を示すレイアウト表現を使います:「見出しを右上から下中央に移動する」「右下の透かしを置き換える」。
size: "auto"は入力画像の比率を維持します。編集でフレーミングを変更する場合を除き、推奨されます。
ルート 3:Flux Kontext Pro — 1 回で行う正確な局所編集
モデル:blackforestlabs/flux-1-kontext/pro/edit
スキーマ(最小構成)
| フィールド | 型 | 必須 | 備考 |
|---|---|---|---|
prompt | string | はい | 宣言的な編集指示を 1 つ指定します。 |
image | string | はい | 単一の元画像 URL。 |
aspect_ratio | enum | いいえ | 対応する W:H 値から選択します。 |
seed | int | いいえ | 再現性を確保します。 |
画像は 1 枚のみです。配列は指定できません。複数画像を使う場合は、ルート 1(Nano Banana Edit)を使用してください。
実行
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>
プロンプトのヒント
- 宣言的な指示を 1 つにする。 「彼女はオレンジ色の傘を持って笑っています」のように、変更を 1 つに絞って指示します。
- まず保持を指示する。 「
[unchanged elements]を変更しないでください。」と最初に指定してから、変更内容を述べます。 - 小さく反復する。 1 回の処理で複合的な編集を行うと内容がずれるため、順次処理に分けます。
ルート 4:Z-Image Turbo Inpaint — マスクを使った正確な領域編集
モデル:tongyi-mai/z-image/turbo/inpainting
スキーマ
| フィールド | 型 | 必須 | 備考 |
|---|---|---|---|
prompt | string | はい | 塗りつぶし/置き換えの内容と、マスクされていない周囲を保持するための制約を指定します。 |
image | string | はい | 元画像 URL。 |
mask_image | string | はい | グレースケールのマスク URL(白=インペイント、黒=保持)。 |
strength | float | いいえ | レタッチには 0.3~0.6、完全な置き換えには 0.7~1.0 を指定します。 |
control_scale | float | いいえ | 一般的な値は 0.6~0.9 です。 |
aspect_ratio | enum | いいえ | 出力比率 W:H。 |
seed | int | いいえ | 再現性を確保します。 |
実行
オブジェクトの削除(低い強度):
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>
領域の置き換え(高い強度):
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>
プロンプトのヒント
- マスク URL が必要です。グレースケールで、白がインペイントする領域、黒が保持する領域です。マスクの端を少しぼかす(1~3 px)と、二値のくっきりした端より自然になじみます。
- 目的に応じて強度を設定します:レタッチ/修正には
0.3–0.5、スタイルを合わせたオブジェクトの置き換えには0.6–0.7、領域全体の置き換えには0.8–1.0を使います。 - マスク外で保持する内容をプロンプトに明記します:「屋根の輪郭と空のグラデーションを保持する」「レンガの模様と目地の色調を合わせる」。
- マスクで領域を定義していても、空間的なラベルが役立ちます:「左側の棚」「右上の領域」などを指定します。
制限事項
- 各ルートはモデルの制限を引き継ぎます。 Nano Banana:入力1~20件、出力1~4件。GPT Image 2 Edit:参照画像は最大10件、サイズは4種類固定。Flux Kontext:参照画像は1件。Z-Image Inpaint:マスクが必要です。
- 複数ルートを組み合わせることはできません。 このスキルでは、呼び出しごとに1つのモデルを選択します。
- ブランド固有のオーバーライド — ユーザーが特定のモデルを指定した場合は、より詳しく対応するため、該当するブランドのスキル(
gpt-image-edit、flux-kontext、nano-banana-edit)にルーティングします。
終了コード
| code | meaning |
|---|---|
| 0 | 成功 |
| 64 | CLI 引数が不正 |
| 65 | 入力 JSON が不正/スキーマが一致しない |
| 69 | 上流の 5xx エラー |
| 75 | 再試行可能:タイムアウト/429 |
| 77 | サインインしていない、またはトークンが拒否された |
詳しくは、docs.runcomfy.com/cli/troubleshooting を参照してください。
仕組み
このスキルは、ユーザーの意図に基づいて Nano Banana Edit/GPT Image 2 Edit/Flux Kontext Pro/Z-Image Turbo Inpaint のいずれかを選択し、対応する JSON ボディを使用して runcomfy run <model_id> を実行します。CLI は Model API に POST リクエストを送信し、リクエストをポーリングして結果を取得し、.runcomfy.net/.runcomfy.com の URL があれば --output-dir にダウンロードします。Ctrl-C を押すと、終了前にリモートリクエストをキャンセルします。
セキュリティとプライバシー
- トークンの保存:
runcomfy loginは、API トークンをモード 0600(所有者のみ読み取り/書き込み可能)で~/.config/runcomfy/token.jsonに書き込みます。CI/コンテナでファイルを完全に使わないようにするには、RUNCOMFY_TOKEN環境変数を設定してください。 - 入力境界:ユーザープロンプトは、
--inputを介して JSON 文字列として CLI に渡されます。CLI はプロンプトをシェル展開せず、JSON ボディを HTTPS 経由で Model API に直接送信します。プロンプトの内容によるシェルインジェクションの攻撃対象領域はありません。 - サードパーティのコンテンツ:指定した画像/マスク/動画の URL は、手元のマシン上の CLI ではなく、RunComfy モデルサーバーによって取得されます。外部 URL は信頼できないものとして扱ってください。画像ベースのプロンプトインジェクションは、あらゆる画像編集/動画編集モデルで知られているリスクです。
- 外部接続先:
model-api.runcomfy.net(リクエストの送信先)と、生成された出力のダウンロード許可リストである*.runcomfy.net/*.runcomfy.comのみです。テレメトリーやコールバックはありません。 - 生成ファイルのサイズ上限:悪意のある、または制御不能なモデル出力によるディスクの枯渇を防ぐため、CLI は 2 GiB を超える単一のダウンロードを中止します。