Community画像github.com

eeoa/photo-detail-edit

GPT Image を用いてユーザーのプロンプトに保存制約を追加して写真を編集し、構造で制限された局所RGBマッピングを学習して元の画像に適用し、編集後の背景と透明度を維持します。写真のスタイルや背景編集に使用し、リアルな詳細を保持しつつ対象の色と照明を調整します。

photo-detail-edit とは?

このスキルは、ユーザーが提供した元画像と編集プロンプトに基づき、GPT Image による編集から始まり、構造で制限された局所RGBマッピングを学習して元の高解像度画像に適用するまでの一連のワークフローを自動化します。主な目的は、背景やスタイルの編集において、編集意図(色合いや照明)を反映しつつ、元の細部を忠実に保存することです。対応プラットフォームは Claude Code などの AI エージェント向けで、`restore_detail.py` スクリプトを介して分析と合成の2段階で処理を行います。ユーザーは画像とプロンプトを提供するだけで、エージェントが保存領域のマスク生成、RGBマッピングの学習、最終的な画像の合成を自動で実行します。このスキルは写真レタッチに特化しており、被写体のポーズや人物の特定を大幅に変更する用途には適していません。また、編集後も透明背景や背景の一貫性を維持し、詳細なレポートとともに結果を提供します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/eeoa/photo-detail-edit/tree/HEAD

Installed? Explore more 画像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Photo Detail Edit(写真の詳細編集)

ユーザーが元画像と編集プロンプトを提供します。本スキルは以下の全工程を完了します:忠実性制約の追加 → 内蔵画像編集 → 小画像の構造マッチング → 局所RGB変換の学習 → 元サイズの原画像への適用 → 最終画像と局所比較。生成のみを行ったり、操作アドバイスを与えるだけでは不十分です。

入力と制約

  • 読み取り可能な元画像ファイルが必要です。まず、画像のピクセル数、バイト数、EXIF方向、透明度を確認してください。視覚プレビューは縮小されている可能性があるため、「元の大きな画像」として扱わないでください。セッションプレビューのみで元ファイルを取得できない場合は、ユーザーに元ファイルまたは元画像を含むZIPを提供するよう依頼してください。失われた詳細から実際の情報が復元されたと主張しないでください。
  • ユーザーは画像とプロンプトのみを提供すればよく、エージェントが保存領域の判断、分割プロンプトの作成、マスクの確認を行います。ユーザーが手動でマスクを描く必要はありません。
  • ユーザーが明示的に要求した変更は保持します。背景置換、背景削除、着替え、装飾品の削除など、該当する領域は後続の復元ステップで変更されないようにしてください。明らかに変更された物体や構造については、除外領域を設定します。
  • 本フローは写真レタッチを対象としています。ポーズ、人物の同一性、または全体の再描画を大幅に変更する場合は、信頼できる対応が得られない可能性があるため、生成結果をそのまま保持し、復元が限定的であることを説明してください。

ワークフロー

1. タスク用ディレクトリの作成

現在のワークスペースに新しい出力ディレクトリを作成し、元画像を保存し、元ファイルや既存の最終画像を上書きしないでください。元のユーザープロンプト、実際に送信された完全なプロンプト、および生成されたベース画像を保存します。添付ZIPを解凍する際はパスを検証し、既存ファイルを上書きしないでください。

依存関係がインストールされていない場合は、現在のプロジェクトの仮想環境に scripts/requirements.txt をインストールします。既存の互換性のある環境を優先的に再利用するか、uv venv / uv pip install --python ... -r ... を使用します。システム全体へのインストールは不要です。スクリプト実行時はネットワークに接続せず、モデルもダウンロードしません。

2. GPT Image による編集

  • まず view_image で元のローカルファイルを確認します。このセッションで利用可能な内蔵 image_gen 編集ツールを使用し、元ファイルを編集入力とします。前回の生成画像を元画像の代わりに使用しないでください。
  • 実際のプロンプト = ユーザーの原文 + 固定忠実性制約。固定部分は追加の制約として使用し、ユーザーの目標を置き換えたり希釈したりしないでください。全身構図の要求は、元の写真が全身構図である場合にのみ適用します。この正確な結合結果を保存します。
  • 背景削除/切り抜き/透明背景の要求では transparent_background: true を設定します。新しい背景への置換では false に設定します。その他のパラメータは現在のツールの能力に従い、品質、サイズ、モデルバージョンに関するパラメータを偽って指定しないでください。プロンプトがピクセルや解像度の忠実性を保証できると約束しないでください。
  • 生成されたファイルをタスクディレクトリにコピーします。実際の出力サイズとファイルサイズを記録します。デフォルトでは1回生成します。ツールが失敗した場合や、ユーザーの主要な要求を明らかに見逃した場合のみ、修正して1回再試行します。無制限の再生成は避けてください。有料のAPI/CLIに無断で切り替えないでください。

3. 今回の画像用の保存領域の設定

元画像と生成画像を確認します。領域設定と実行手順 に従い、今回の regions.json を作成し、元画像と生成画像それぞれの主要マスクまたはGrabCutシードを指定します。座標は現在の画像から判断し、前回の人物の座標をコピーしないでください。スクリプトは設定された座標を各画像のEXIF表示方向に従って解釈します。

マスクは、保存が必要な共通の被写体をカバーし、背景とユーザーが意図的に変更した部分を除外する必要があります。透明な前景はアルファを利用できますが、ユーザーが意図的に再描画した領域は除外する必要があります。fill_holes はデフォルトで無効です。物体の取っ手や姿勢によって形成された隙間は実際の背景である可能性があるため、穴を盲目的に埋めないでください。

少なくとも2つの人物/物体の詳細位置を選択して局所比較を行います。写真に顔、プリント、ウール/織物がある場合は、これらの位置を優先します。設定はエージェントの視覚的判断に基づき、固定テンプレートではありません。

4. 分析、確認、そして合成

同じパラメータセットを使用し、まず --stage analyze、次に --stage fuse を実行します:

<python> <skill>/scripts/restore_detail.py --source <original> --base <generated> --regions <regions.json> --out <job>/restored --stage analyze

デフォルトの --method local-rgb --structure-channel auto を使用します。分析段階では、元画像を共通サイズに縮小し、幾何学的対応を検証し、色、コントラスト、微細テクスチャが構造判断に与える影響を低減し、信頼できる領域で制約付きで単調な局所RGB色曲線をフィッティングします。通常の多色写真では輝度構造を使用します。強い単色光では自動的に対応するチャンネルを選択し、両方の画像で同じ表現を使用します。赤チャンネルに固定しません。

base-mask.png、source-mask.png、confidence-overlay.png、report.json を確認し、実際のメソッドが local-rgb であること、構造チャンネルとマッチング範囲が妥当であることを確認します。背景が復元領域に選択されてはいけません。マスクが明らかに間違っている場合は、領域設定を修正してから再分析します。マッチングしきい値を緩めてカバレッジを無理に上げないでください。

<python> <skill>/scripts/restore_detail.py --source <original> --base <generated> --regions <regions.json> --out <job>/restored --stage fuse

スクリプトは局所曲線パラメータを滑らかにアップサンプリングし、位置合わせされた元サイズの元画像に適用します。これにより、実際の詳細が目標の色合いと照明の変換を経て表現されます。マッピングが信頼できない位置では、拡大された生成画像を使用します。背景、透明度、明示的に除外された編集領域は一貫して維持されます。十分な共有特徴がない場合、元画像の内容は導入しません。被写体の色合いと照明はフィッティング結果であり、ピクセル単位での一致を保証できません。また、元画像サイズを「完全に復元された画質」と呼ぶことはできません。

デフォルトでLabグレースケール高周波を重ねたり、自由度が高すぎる任意の行列や完全な3D LUTをデフォルトで使用しないでください。--method lab-detail は、ユーザーが明示的に要求した旧方式の比較のためにのみ保持します。旧方式に黙ってフォールバックしないでください。

5. 確認と納品

  • 最終プレビューと、少なくとも2つの元のピクセルスケールでの局所比較を確認します。実際のテクスチャ、色、広範囲の照明をそれぞれ確認し、ゴースト、黒ブロック、暗部のグレー化、エッジ、接地影に注目します。テクスチャの相関度やマッチングカバレッジだけで画質改善を宣言しないでください。必要に応じて除外領域を狭め、分析と合成を再度実行します。
  • report.json で、背景範囲のピクセル変動が0であること、アルファが保持されていること、PNGが読み取り可能であることを確認します。正確な背景の一貫性はロスレスPNGを対象とし、JPEG圧縮ではピクセルが変化する可能性があります。
  • 可視プレビュー、フルサイズのロスレスPNG、および局所比較へのリンクを返します。透明度がない場合はJPEGも納品します。透明画像はJPEGで納品しないでください。
  • 出力サイズ、実際の復元範囲、および明らかな制限を簡単に説明します。実際の完全なプロンプトへのファイルリンクを提供します。補間によって拡大されたピクセル数を、新たな実際の詳細として扱わないでください。

呼び出し例

「$photo-detail-edit を使用してこの元画像を処理してください:背景と照明をクリーンにし、マガジンスタジオ撮影のような質感にしてください。」

「$photo-detail-edit を使用して背景を削除し、透明PNGを出力し、人物と衣服の詳細を保持してください。」

関連スキル