mcpField
I
image-edit

image-edit

github.com/starchild-ai-agentクリエイティブ・メディア302.3k 回インストール1 週間前に更新
リポジトリ

image-edit について

Starchild で既存画像を編集・補正するスクリプトベースのスキルです。背景置換や写真修復からレタッチ、車の色変更まで対応し、付属スクリプトで画像処理を行います。

主な機能

  1. 01ローカルファイルと公開 URL に対応
  2. 02背景置換とアウトペイント
  3. 03写真修復とカラー化
  4. 04レタッチと画像補正
  5. 05車の色変更とラッピングプレビュー

活用シーン

  1. 01ポートレートの背景変更
  2. 02古い写真の修復やカラー化
  3. 03ポートレートのレタッチ
  4. 04車の色やラッピングのプレビュー

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/starchild-ai-agent/official-skills --skill image-edit

インストール後、Claude Code で/image-editを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

_cost_track.py
edit_image.py
exports.py

詳細

image-edit

このスキルは、Starchild 上のすべての画像編集および画像補正リクエストに使用します。

対象: 一般的な編集、背景の置き換え、超解像、古い写真の復元、カラー化、人物の削除、ポートレートのレタッチ (肌の滑らか化、シミの除去、歯のホワイトニング)、スリム化、カラーグレーディング、芸術的なフィルター、画像の合成、アウトペインティング、ローカル編集、テキストのレンダリング、多角度からの生成、ビフォーアフター比較、車の色変更、カーラッププレビュー、フィットネス/医療の変化比較。

基本原則: 提供されたスクリプトを呼び出してください。プロキシ/課金の処理を再実装しないでください。

image-edit と他の画像スキルの使い分け:

  • image-edit → ユーザーが既存の画像を編集、補正、または変換したい
  • image-portrait → ユーザーが参照写真から顔/本人の特徴を保持したポートレートを作成したい
  • image-create → ユーザーがテキストの説明から何かを生成したい (ソース画像なし)

1. クイックスタート — 基本的な編集 (最も一般的)

⚠️ 実行コンテキスト — まずこれを読んでください。 以下のコードブロックは Python であり、シェルコマンドではありません。Starchild の bash ツールは /bin/bash -c を実行するため、exec(open(...)) を解析できません — bash コマンドに直接貼り付けると syntax error near unexpected token 'open' で失敗します。 また、python3 -c 内の exec(open(...)) は、スクリプトがパス解決に __file__ を使用するため NameError: __file__ で失敗します。

bash ツール経由で呼び出す場合は、from exports import とともに python3 - <<'EOF' を使用してください:

python3 - <<'EOF'
import sys
sys.path.insert(0, "skills/image-edit")
from exports import edit_image
result = edit_image(
    image_path="uploads/photo.jpg",
    prompt="make the sky more dramatic with golden sunset colors",
    action="enhance",
)
print(result)
EOF

ヒアドキュメント (<<'EOF') はすべての引用符と改行を保持します — エスケープは不要です。

exec(open('skills/image-edit/edit_image.py').read())
result = edit_image(
    image_path="uploads/photo.jpg",
    prompt="make the sky more dramatic with golden sunset colors",
    action="enhance",
)
# result -> {"success": True, "images": [{"local_path": "output/images/..."}], ...}

スクリプトはローカルファイルを読み取り、base64 でエンコードして、データ URI として fal.ai に送信します — 手動での URL 公開は不要です。

2. クイックスタート — 公開 URL

exec(open('skills/image-edit/edit_image.py').read())
result = edit_image(
    image_url="https://example.com/photo.jpg",
    prompt="replace the background with a tropical beach",
    action="replace_bg",
)
ユーザーへの結果の配信 — 重要

ユーザーに生の fal.media URL を決して渡さないでください。 fal は制限的な CSP ヘッダーでファイルを提供します。唯一信頼できる配信経路は、すでにダウンロード済みのローカルファイルです:

  1. 各画像の local_path (例: output/images/xxx.png) を使用してください — スクリプトは成功時に必ずダウンロードします。
  2. ファイルが output/images/ に保存され、ワークスペースのファイルパネルで表示できることをユーザーに伝えてください。
  3. Web チャンネルでは、ユーザーがチャット内でプレビューできるようにインラインで埋め込んでください:
    ![edited](output/images/<filename>.png)
    
  4. Telegram / WeChat では、send_to_telegram(file_path="output/images/...", message_type="image") または send_to_wechat(file_path="output/images/...", message_type="image") で送信してください。

3. パラメータ

パラメータ必須デフォルト説明
image_pathはい*—ソース画像のローカルワークスペースファイルパス
image_urlはい*—ソース画像の公開 HTTPS URL
promptいいえ自動編集指示 (何を変更するか)
actionいいえ"edit"操作タイプ (§4 を参照)
modelいいえ"nanopro"モデル: "nanopro" (高速 ~25 秒) または "gpt" (最高品質 ~150 秒)
aspect_ratioいいえNone出力比率: 1:1、3:4、4:3、9:16、16:9。None = 元の比率を保持。

*image_path または image_url の少なくとも一方を指定する必要があります。両方が指定された場合、image_path が優先されます。


4. アクション — 操作タイプ

F: 複数画像 / 一般的な編集
アクションキー説明
一般的な編集editプロンプトに従って画像を修正します
画像合成blend人物や被写体を新しい背景やシーンに配置します
アウトペインティングextend画像を現在の境界を超えて拡張します
ローカル編集local_edit画像の特定の領域のみを修正します
構造の再設計restructureレイアウト、グリッド、列数、要素の配置を変更します — 「構図を保持」を上書きします
テキストレンダリングtext_render画像内にテキストを追加または変更します
マルチアングルmulti_angle1 枚の写真から異なる視点を生成します
ビフォー / アフターbefore_after並べて比較する画像を生成します
G: プロフェッショナル編集
アクションキー説明
背景の置き換えreplace_bg被写体を保持したまま背景を差し替えます
超解像upscale画像の解像度をアップスケールして高画質化します
写真の復元restore古い写真の傷、破れ、色あせを修復します
カラー化colorize白黒写真にリアルな色を追加します
人物の削除remove_person写真から特定の人物を削除します
V: レタッチ / 美容
アクションキー説明
ポートレートのレタッチretouch肌のなめらかさ、シミの除去、歯のホワイトニング
スリム化slim顔や体のプロポーションをさりげなく調整します
強調enhance色補正、照明の改善、品質の向上
アーティスティックフィルターfilter特定の芸術スタイルやフィルター効果を適用します
W: 医療 / フィットネスの比較
アクションキー説明
変化の比較comparison医療、フィットネス、変化のビフォー / アフター
X: 自動車
アクションキー説明
車の色変更car_color車両の色を変更します
カーラッププレビューcar_wrap車両へのラップやフィルムを可視化します

5. モデル選択ガイド

モデルキー速度品質最適な用途
NanoPronanopro約25秒良好すべてのリクエストのデフォルトです。高速な反復に適しています。
GPT Image 2gpt約150秒最高ユーザーが明示的に「最高品質」または「ベスト品質」を求めた場合。複雑な編集。

判断ルール:

  1. デフォルト: ユーザーが明示的に高品質を要求しない限り、常に nanopro を使用します。
  2. gpt を使用する場合: ユーザーが「最高品質」「ベスト品質」「プレミアム」と言った場合、または編集で非常に精密なディテールの保持が必要な場合(例: 複雑なテキストレンダリング、繊細なインペインティング)。
  3. nanopro を使用する場合: ユーザーが迅速な結果を求める場合、編集を反復している場合、または編集が単純な場合。
# Default (fast)
result = edit_image(image_path="photo.jpg", prompt="remove background", action="replace_bg")

# High quality (user requested)
result = edit_image(image_path="photo.jpg", prompt="remove background", action="replace_bg", model="gpt")

6. 意図認識ガイド

この表を使用して、ユーザーのリクエストを正しいアクションにマッピングします:

一般的な編集
ユーザーの発言アクションプロンプトのヒント
「この写真を編集して」「この画像を修正して」editユーザーの指示をプロンプトとして渡します
「ビーチに置いて」「シーンを変えて」blend対象のシーンを記述します
「画像を拡張して」「もっと広くして」「アウトペイントして」extend追加する内容を記述します
「シャツの色だけ変えて」「空だけ編集して」local_edit領域と変更内容を指定します
「列を減らして」「グリッドをシンプルにして」「レイアウトを並べ替えて」「最大 7 列にして」restructure対象の構造を明示的に記載します(行 / 列 / 配置)
「テキストを追加して」「画像に『Hello』と書いて」text_renderテキストの内容と配置を指定します
「横から見せて」「別の角度で」multi_angle希望する角度を記述します
「ビフォーアフター」「違いを見せて」before_after変化の内容を記述します
プロフェッショナル編集
ユーザーの発言アクションプロンプトのヒント
「背景を削除」「背景を変更」「换背景」replace_bg新しい背景を説明してください
「アップスケール」「解像度を上げて」「品質を向上」upscale必要に応じて目標品質を指定してください
「古い写真を復元」「この損傷した写真を修正」「修复老照片」restore修正する具体的な損傷を説明してください
「カラー化」「白黒写真に色を追加」「上色」colorize必要に応じて期待する色を説明してください
「この人物を削除」「P掉某人」remove_person削除する人物を説明してください
レタッチ / 美容
ユーザーの発言アクションプロンプトのヒント
「レタッチ」「肌をなめらかに」「シミを除去」「磨皮美白」retouchレタッチのレベルを指定してください
「痩せさせて」「顔を細く」「瘦脸」slim調整する領域を指定してください
「色を強調」「照明を改善」「调色」enhance希望する仕上がりを説明してください
「フィルターを適用」「ヴィンテージ風にして」「滤镜」filterフィルターのスタイルを説明してください
医療 / フィットネス
ユーザーの発言アクションプロンプトのヒント
「手術前後」「フィットネストランスフォーメーション」comparisonトランスフォーメーションの文脈を説明してください
自動車
ユーザーの発言アクションプロンプトのヒント
「車の色を変更」「赤にして」「汽车改色」car_color目標の色と仕上げを指定してください
「カーラッピング」「ビニールラップのプレビュー」「贴膜预览」car_wrapラップの素材と色を説明してください

7. プロンプトエンジニアリングのベストプラクティス

プロンプトテンプレートシステム

すべてのアクションには、最適な結果を得るためにユーザーの指示をラップする組み込みのプロンプトテンプレートがあります。ユーザーの具体的な意図を渡すだけで、テンプレートが技術的な品質指示を自動的に追加します。

たとえば、ユーザーが「背景を夕日が沈むビーチにして」と言った場合:

result = edit_image(
    image_path="photo.jpg",
    prompt="a beautiful sunset beach with palm trees and golden light",
    action="replace_bg",
)
# The script wraps this into: "Replace the background of this image: a beautiful
# sunset beach with palm trees and golden light. Keep the foreground subject
# perfectly intact with clean edges. Match the lighting direction..."
主要な原則(リファレンススキルより)
  1. 変更について具体的に述べる — 曖昧なプロンプトは悪い結果を生みます:

    • ❌ 「もっと良くして」
    • ✅ 「コントラストを上げ、温かみのある黄金色のトーンを加え、ディテールをシャープにする」
  2. 保持するものを説明する — 特にローカル編集の場合:

    • ❌ 「シャツを変更して」
    • ✅ 「シャツの色をネイビーブルーに変更し、同じ生地の質感とシワを保つ」
  3. 素材と仕上げを指定する — 車や製品の編集の場合:

    • ❌ 「青にして」
    • ✅ 「光沢のあるクリアコート仕上げの深いメタリックブルー」
  4. 実世界のスタイルを参照する — フィルターや芸術的効果の場合:

    • ❌ 「芸術的にして」
    • ✅ 「ウェス・アンダーソン作品のような温かみのあるシネマティックなカラーグレーディングを適用する」
  5. 復元 / カラー化には時代を説明する:

    • ❌ 「これをカラー化して」
    • ✅ 「この 1940 年代の家族写真を、当時の服装の色でカラー化する」
  6. レタッチではレベルを指定する:

    • 軽度:「微妙な肌のなめらか化、自然な質感を保つ」
    • 中度:「プロフェッショナルなレタッチ、シミを除去、肌のトーンを均一にする」
    • 重度:「完全な美容レタッチ、肌をなめらかに、目を明るく、歯を白くする」

8. シナリオ別の使用例

背景の置き換え
exec(open('skills/image-edit/edit_image.py').read())

# Simple background swap
result = edit_image(
    image_path="uploads/portrait.jpg",
    prompt="a modern office with floor-to-ceiling windows and city skyline view",
    action="replace_bg",
)

# Studio background
result = edit_image(
    image_path="uploads/product.jpg",
    prompt="clean white studio background with soft shadow",
    action="replace_bg",
)
古い写真の復元
# Repair damaged photo
result = edit_image(
    image_path="uploads/old_family_photo.jpg",
    prompt="repair all scratches, tears, and stains; restore faded colors; enhance clarity",
    action="restore",
)

# Colorize black-and-white photo
result = edit_image(
    image_path="uploads/grandpa_1945.jpg",
    prompt="colorize with historically accurate colors for 1940s era, natural skin tones, period-appropriate clothing",
    action="colorize",
)
ポートレートのレタッチ
# Professional retouching
result = edit_image(
    image_path="uploads/selfie.jpg",
    prompt="professional portrait retouching: smooth skin while keeping natural texture, remove blemishes, subtle teeth whitening, brighten eyes",
    action="retouch",
)

# Slimming
result = edit_image(
    image_path="uploads/photo.jpg",
    prompt="subtle facial slimming, slightly more defined jawline, natural proportions",
    action="slim",
)
画像の強化
# Color grading
result = edit_image(
    image_path="uploads/landscape.jpg",
    prompt="cinematic color grading with warm golden tones, enhanced contrast, vibrant but natural colors",
    action="enhance",
)

# Artistic filter
result = edit_image(
    image_path="uploads/photo.jpg",
    prompt="oil painting style with visible brushstrokes, rich warm palette, impressionist feel",
    action="filter",
)
超解像アップスケーリング
result = edit_image(
    image_path="uploads/low_res.jpg",
    prompt="upscale to maximum quality, enhance fine details, reduce noise and compression artifacts",
    action="upscale",
)
人物の削除
result = edit_image(
    image_path="uploads/group_photo.jpg",
    prompt="remove the person on the far right, fill with the park background seamlessly",
    action="remove_person",
)
アウトペインティング(画像の拡張)
result = edit_image(
    image_path="uploads/cropped.jpg",
    prompt="extend the image to the left and right, continuing the mountain landscape naturally",
    action="extend",
    aspect_ratio="16:9",
)
車のカスタマイズ
# Car recolor
result = edit_image(
    image_path="uploads/my_car.jpg",
    prompt="change to a deep cherry red metallic paint with glossy clear coat",
    action="car_color",
)

# Car wrap preview
result = edit_image(
    image_path="uploads/my_car.jpg",
    prompt="matte black vinyl wrap with carbon fiber accents on the hood and mirrors",
    action="car_wrap",
)
ビフォー / アフター比較
# Fitness transformation
result = edit_image(
    image_path="uploads/fitness_photo.jpg",
    prompt="create a fitness transformation comparison showing a more toned and fit version",
    action="comparison",
)
ローカル編集
# Change specific element
result = edit_image(
    image_path="uploads/outfit.jpg",
    prompt="change only the dress color from red to emerald green, keep the same fabric texture",
    action="local_edit",
)
テキストのレンダリング
result = edit_image(
    image_path="uploads/poster_bg.jpg",
    prompt="add the text 'SUMMER SALE' in bold white letters centered at the top, with a subtle drop shadow",
    action="text_render",
)
高品質編集
# Use GPT model for best quality
result = edit_image(
    image_path="uploads/important_photo.jpg",
    prompt="professional color correction and enhancement for print publication",
    action="enhance",
    model="gpt",
)

9. 提供されるスクリプト

ファイル目的
edit_image.pyコアスクリプト:画像を解決 → プロンプトを構築 → 送信 → ポーリング → ダウンロード。ローカルファイル(base64)と URL に対応し、すべてのアクション、2 つのモデルを扱います。
exports.py他のスキルからプログラムで使用するために edit_image、ACTIONS、ACTION_PROMPTS、MODELS を再エクスポートします。
_cost_track.pyコスト追跡ヘルパー — sc-proxy ヘッダーを介して呼び出しごとのコストを記録します。

10. ローカルテスト

FAL_KEY 環境変数を設定すると、fal.ai を直接呼び出します(sc-proxy をバイパスします):

# Basic edit
FAL_KEY=your-fal-key python3 skills/image-edit/edit_image.py photo.jpg "make it brighter" enhance nanopro

# Args: <image_path_or_url> [prompt] [action] [model]

11. トラブルシューティング

問題解決策
File not found: ...ワークスペースのパスを確認してください。ファイルが存在している必要があります
Unsupported image format.jpg、.jpeg、.png、.webp、または .bmp を使用してください
Image too largeアップロード前に 10 MB 未満にリサイズしてください
image_url must be a public HTTP(S) URLローカルファイルには image_path を使用するか、有効な https:// URL を指定してください
Unknown action§4 で有効なアクションを確認してください
HTTP 402 insufficient_credits残高をチャージしてください。コストは送信時に事前請求されます
HTTP 403 endpoint_not_allowedsc-proxy は承認済みの fal エンドポイントのみを許可します。管理者に連絡してください
編集が上流で FAILEDプロンプトを簡素化し、ソース画像が鮮明であることを確認して、再試行してください
ジョブが IN_PROGRESS のまま 10 分以上停滞request_id を保存し、後で再試行してください
編集品質が低いより高品質にするには model="gpt" を試してください。プロンプトをより具体的にしてください
何度繰り返してもレイアウト/グリッド/列数が変わらない構造的な変更には action="restructure" を推奨します — そのテンプレートはレイアウト変更を必須とします。通常の edit には優先順位のフォールバックが追加されました(明示的な構造指示が構図の保持より優先されます)が、これは互換性のためのセーフティネットとしてのみ扱い、主要な手段とはしないでください
背景が完全に除去されない明示的な背景の説明を付けて replace_bg アクションを使用してください
レタッチが不自然に見えるプロンプトに「keep natural texture」または「subtle」を追加してください

12. インフラストラクチャ(参考)

  • 呼び出し元 → sc-proxy → queue.fal.run/{model} → fal モデルプロバイダー
  • すべてのリクエストには Authorization: Key fake-falai-key-12345 を含める必要があります(プロキシが実際の FAL_KEY を注入します)
  • 事前請求は送信時に発生します。ポーリング/結果取得の呼び出しは無料です。
  • ローカルファイルはデータ URI として base64 エンコードされます — 別途アップロードの手順は不要です。
  • 最終的な画像は https://*.fal.media/... に配置されます — パブリック CDN であり、ダウンロードに認証は不要です。
  • コスト追跡は _cost_track.py で行います — sc-proxy のレスポンスヘッダーから X-Credits-Used を記録します。
モデルエンドポイント
モデル編集エンドポイント
nanoprofal-ai/nano-banana-pro/edit
gptopenai/gpt-image-2/edit

コメント