画像生成スキル
現在のプロジェクトの画像を生成または編集します(例:ウェブサイトアセット、ゲームアセット、UIモックアップ、プロダクトモックアップ、ワイヤーフレーム、ロゴデザイン、フォトリアリスティック画像、インフォグラフィック)。
トップレベルのモードとルール
このスキルには、正確に2つのトップレベルモードがあります。
- デフォルトの組み込みツールモード(推奨): 通常の画像生成、編集、および簡易的な透明画像リクエスト用の組み込み
image_genツールです。OPENAI_API_KEYは不要です。 - フォールバックCLIモード:
scripts/image_gen.pyCLIです。ユーザーが明示的にCLI/API/モデルパスを要求した場合、またはユーザーがgpt-image-1.5を使用した真のモデルネイティブな透明画像フォールバックを明示的に確認した後に使用します。OPENAI_API_KEYが必要です。
CLIフォールバック内では、CLIは3つのサブコマンドを公開します。
generateeditgenerate-batch
ルール:
- 通常の画像生成および編集リクエストには、デフォルトで組み込みの
image_genツールを使用します。 - 通常の品質、サイズ、ファイルパス制御のためにCLIフォールバックに切り替えないでください。
- ユーザーが透明な画像/背景を明示的に要求した場合、まず組み込みの
image_genを使用します。フラットで除去可能なクロマキー背景をプロンプトで指定し、その後、インストール済みのヘルパー$CODEX_HOME/skills/.system/imagegen/scripts/remove_chroma_key.pyを使用してローカルで背景を除去します。 - 組み込みの
image_genまたはCLIgpt-image-2からCLIgpt-image-1.5へ黙って切り替えないでください。これはモデル/パスのダウングレードとして扱い、ユーザーがすでに明示的にgpt-image-1.5、scripts/image_gen.py、またはCLIフォールバックを要求している場合を除き、実行前にユーザーに確認してください。 - 透明画像のリクエストがクリーンなクロマキー除去には複雑すぎる場合、真の/ネイティブな透明性を要求する場合、またはローカルでの除去が検証に失敗した場合は、真の透明性にはCLI
gpt-image-1.5 --background transparent --output-format pngが必要であることを説明します(gpt-image-2はbackground=transparentをサポートしていないため)。その後、続行するかどうかを尋ねてください。ユーザーが確認した場合にのみCLIフォールバックを実行します。 batchという単語自体はCLIフォールバックを意味しません。ユーザーが多くのアセットを要求したり、CLI/API/モデル制御を明示的に要求せずにアセットをバッチ生成するように言った場合は、組み込みパスに留まり、要求されたアセットまたはバリアントごとに1回の組み込み呼び出しを発行します。- 組み込みツールが失敗した場合、または使用できない場合は、CLIフォールバックが存在し、
OPENAI_API_KEYが必要であることをユーザーに伝えてください。ユーザーがそのフォールバックを明示的に要求した場合にのみ進めてください。 - ユーザーが明示的にCLIモードを要求した場合は、バンドルされている
scripts/image_gen.pyワークフローを使用します。一回限りのSDKランナーを作成しないでください。 scripts/image_gen.pyを決して変更しないでください。何か不足している場合は、他のことをする前にユーザーに尋ねてください。
組み込みの保存パスポリシー:
- 組み込みツールモードでは、Codexはデフォルトで生成された画像を
$CODEX_HOME/*の下に保存します。 - OSの一時ディレクトリをデフォルトの組み込み保存先として説明したり、依存したりしないでください。
- 組み込みの
image_genツールの保存先パス引数(存在する場合)を説明したり、依存したりしないでください。特定の場所が必要な場合は、最初に生成し、その後$CODEX_HOME/generated_images/...から選択した出力を移動またはコピーしてください。 - 組み込みモードでの保存パスの優先順位:
- ユーザーが保存先を指定した場合は、選択した出力をそこに移動またはコピーします。
- 画像が現在のプロジェクト用である場合は、最終的な選択画像をワークスペースに移動またはコピーしてから終了します。
- 画像がプレビューまたはブレインストーミング専用である場合は、インラインでレンダリングします。基になるファイルはデフォルトの
$CODEX_HOME/*パスに残すことができます。
- プロジェクトで参照されるアセットをデフォルトの
$CODEX_HOME/*パスだけに残さないでください。 - ユーザーが明示的に置き換えを要求した場合を除き、既存のアセットを上書きしないでください。それ以外の場合は、
hero-v2.pngやitem-icon-edited.pngなどのバージョン管理されたファイル名を作成してください。
両方のモードに共有のプロンプトガイダンスは references/prompting.md と references/sample-prompts.md にあります。
CLIモード専用のフォールバックドキュメント/リソース:
references/cli.mdreferences/image-api.mdreferences/codex-network.mdscripts/image_gen.py
ローカル後処理ヘルパー:
$CODEX_HOME/skills/.system/imagegen/scripts/remove_chroma_key.py:生成された画像からフラットなクロマキー背景を除去し、アルファチャンネルを持つPNG/WebPを書き込みます。アンチエイリアスエッジには、自動キーサンプリング、ソフトマット、デスピルを推奨します。
使用する場合
- 新しい画像を生成する(コンセプトアート、商品写真、表紙、ウェブサイトのヒーローイメージ)
- スタイル、構図、ムードの参考として1つ以上の参照画像を使用して新しい画像を生成する
- 既存の画像を編集する(インペインティング、照明や天候の変換、背景の置き換え、オブジェクトの削除、コンポジット、透明背景)
- 1つのタスクに対して多くのアセットまたはバリアントを生成する
使用しない場合
- リポジトリ内の既存のSVG/ベクターアイコンセット、ロゴシステム、またはイラストライブラリを拡張または一致させる場合
- SVG、HTML/CSS、またはキャンバスで直接作成する方が適切な単純な形状、図、ワイヤーフレーム、またはアイコンを作成する場合
- ソースファイルが編集可能なネイティブ形式ですでに存在する場合に、小さなプロジェクトローカルアセットを編集する場合
- ユーザーが生成されたビットマップではなく、決定論的なコードネイティブな出力を明らかに望んでいるタスク
決定木
次の2つの別々の質問について考えてください。
- 意図: これは新しい画像ですか、それとも既存の画像の編集ですか?
- 実行戦略: これは1つのアセットですか、それとも複数のアセット/バリアントですか?
意図:
- ユーザーがその一部を保持しながら既存の画像を変更したい場合は、そのリクエストを 編集 として扱います。
- ユーザーがスタイル、構図、ムード、または主題のガイダンスのための参照としてのみ画像を提供する場合は、そのリクエストを 生成 として扱います。
- ユーザーが画像を提供しない場合は、そのリクエストを 生成 として扱います。
組み込みの編集セマンティクス:
- 組み込みの編集モードは、添付された画像やスレッド内で以前に生成された画像など、会話のコンテキストですでに表示されている画像を対象としています。
- ユーザーが組み込みツールでローカル画像ファイルを編集したい場合は、まず組み込みの
view_imageツールで画像を読み込み、画像が会話のコンテキストで表示されるようにしてから、組み込みの編集フローに進みます。 - 組み込みツールを通じて任意のファイルシステムパス編集を約束しないでください。
- ローカルファイルに直接ファイルパス制御、マスク、またはその他の明示的なCLI専用パラメータがまだ必要な場合は、ユーザーが要求した場合にのみ明示的なCLIフォールバックを使用します。
- 編集の場合、積極的に不変条件を保持し、デフォルトで非破壊的に保存します。
実行戦略:
- 組み込みのデフォルトパスでは、要求されたアセットまたはバリアントごとに1回の
image_gen呼び出しを発行して、多くのアセットまたはバリアントを生成します。 - CLIフォールバックパスでは、ユーザーが明示的にCLIモードを選択し、多くのプロンプト/アセットが必要な場合にのみ、CLI
generate-batchサブコマンドを使用します。 - 多くの異なるアセットに対しては、
nを個別のプロンプトの代わりとして使用しないでください。nは1つのプロンプトのバリアント用です。異なるアセットには、個別の組み込み呼び出しまたは個別のCLIgenerate-batchジョブが必要です。
ユーザーが既存の画像を変更することを明確に要求しない限り、新しい画像を望んでいると想定します。
ワークフロー
- トップレベルのモードを決定します:デフォルトで組み込み、簡易的な透明出力リクエストを含みます。フォールバックCLIは、明示的に要求された場合、またはユーザーが透明出力フォールバックを明示的に確認した場合のみ。
- 意図を決定します:
generateまたはedit。 - 出力がプレビュー専用か、現在のプロジェクトで消費されるものかを決定します。
- 実行戦略を決定します:単一アセット vs 繰り返し組み込み呼び出し vs CLI
generate-batch。 - 入力を事前に収集します:プロンプト、正確なテキスト(逐語)、制約/回避リスト、および入力画像。
- すべての入力画像について、その役割を明示的にラベル付けします:
- 参照画像
- 編集対象
- サポートする挿入/スタイル/コンポジット入力
- 編集対象がローカルファイルシステム上にのみあり、組み込みパスに留まる場合は、最初に
view_imageで画像を検査し、画像が会話のコンテキストで利用できるようにします。 - ユーザーが写真、イラスト、スプライト、商品画像、バナー、またはその他の明示的にラスター形式のアセットを要求した場合は、SVG/HTML/CSSのプレースホルダーで代用するのではなく、
image_genを使用します。リクエストが既存のリポジトリネイティブなSVG/ベクター/コードアセットと一致する必要があるアイコン、ロゴ、またはUIグラフィックの場合は、代わりにそれらを直接編集することを優先します。 - プロンプトの具体性に基づいてプロンプトを拡張します:
- ユーザーのプロンプトがすでに具体的で詳細な場合は、創造的な要件を追加せずに、明確な仕様に正規化します。
- ユーザーのプロンプトが一般的な場合は、出力品質を実質的に向上させる場合にのみ、センスの良い拡張を追加します。
- デフォルトで組み込みの
image_genツールを使用します。 - 透明出力リクエストの場合は、以下の透明画像ガイダンスに従います:フラットなクロマキー背景で組み込みの
image_genを使用して生成し、選択した出力をワークスペースまたはtmp/imagegen/にコピーし、インストール済みの$CODEX_HOME/skills/.system/imagegen/scripts/remove_chroma_key.pyヘルパーを実行し、使用前にアルファ結果を検証します。このパスが不適切に見える場合、または失敗した場合は、CLIgpt-image-1.5に切り替える前に確認を求めます。 - 出力を検査し、検証します:主題、スタイル、構図、テキストの正確性、および不変条件/回避項目。
- 単一のターゲットを絞った変更で繰り返し、再確認します。
- プレビュー専用の作業の場合は、画像をインラインでレンダリングします。基になるファイルはデフォルトの
$CODEX_HOME/generated_images/...パスに残ることがあります。 - プロジェクトにバインドされた作業の場合は、選択したアーティファクトをワークスペースに移動またはコピーし、消費するコードや参照を更新します。プロジェクトで参照されるアセットをデフォルトの
$CODEX_HOME/generated_images/...パスだけに決して残さないでください。 - バッチまたはマルチアセットリクエストの場合、ユーザーが明示的に出力をプレビュー専用にしておくように要求した場合を除き、要求されたすべての成果物の最終版をワークスペースに保持します。破棄されたバリアントは、要求されない限り保持する必要はありません。
- ユーザーが明示的にCLIフォールバックを選択または確認した場合は、フォールバック専用のドキュメントをモデル、品質、サイズ、
input_fidelity、マスク、出力形式、出力パス、およびネットワーク設定に使用します。 - ワークスペースにバインドされたアセットの最終保存パス、最終プロンプトまたはプロンプトセット、および組み込みツールとフォールバックCLIモードのどちらが使用されたかを常に報告します。
透明画像リクエスト
透明画像リクエストでも、最初に組み込みの image_gen を使用します。組み込みツールは真の透明背景制御を公開していないため、除去可能なクロマキーソース画像を作成し、その後、キーカラーをローカルでアルファに変換します。
デフォルトのシーケンス:
- 組み込みの
image_genを使用して、完全にフラットなソリッドクロマキー背景上に要求された主題を生成します。 - 主題に現れる可能性が低いキーカラーを選択します:デフォルトは
#00ff00、緑色の被写体には#ff00ffを使用し、青色の被写体には#0000ffを避けます。 - 生成後、
$CODEX_HOME/generated_images/...から選択したソース画像をワークスペースまたはtmp/imagegen/に移動またはコピーします。 - プロジェクト相対のスクリプトパスではなく、インストール済みのヘルパーパスを実行します:
python "${CODEX_HOME:-$HOME/.codex}/skills/.system/imagegen/scripts/remove_chroma_key.py" \ --input <source> \ --out <final.png> \ --auto-key border \ --soft-matte \ --transparent-threshold 12 \ --opaque-threshold 220 \ --despill - 出力にアルファチャンネル、透明なコーナー、妥当な主題のカバレッジ、および明白なキーカラーフリンジがないことを検証します。薄いフリンジが残っている場合は、
--edge-contract 1を指定して1回再試行します。エッジが明らかに階段状で、被写体が光沢や反射性でない場合にのみ--edge-feather 0.25を使用します。 - アセットがプロジェクトにバインドされている場合は、最終的なアルファPNG/WebPをプロジェクトに保存します。プロジェクトで参照される透明アセットを
$CODEX_HOME/*の下だけに残さないでください。
透明リクエストは次のようにプロンプトします。
背景除去のために、完全にフラットなソリッド #00ff00 クロマキー背景上に要求された主題を作成します。
背景は、影、グラデーション、テクスチャ、反射、床面、または照明のバリエーションがなく、均一な色でなければなりません。
主題を背景から完全に分離し、鮮明なエッジと十分なパディングを確保します。
主題のどこにも #00ff00 を使用しないでください。
明示的に要求されない限り、キャストシャドウ、コンタクトシャドウ、反射、透かし、テキストはなし。
クロマキー処理の代わりにCLI gpt-image-1.5 --background transparent --output-format png を自動的に使用しないでください。ユーザーが真の/ネイティブな透明性を要求した場合、ローカルでの除去が検証に失敗した場合、または要求された画像が複雑な場合(髪の毛、毛皮、羽毛、煙、ガラス、液体、半透明の素材、反射性のあるオブジェクト、ソフトシャドウ、リアルなプロダクトグラウンディング、またはすべての実用的なキーカラーと競合する被写体の色)は、最初にユーザーに尋ねてください。
次のような簡潔な確認を使用します。
これにはおそらく真のネイティブ透明性が必要です。デフォルトの組み込みパスはクロマキー背景とローカル除去を使用しますが、真の透明性にはgpt-image-1.5を使用したCLIフォールバックが必要です(gpt-image-2はbackground=transparentをサポートしていないため)。また、OPENAI_API_KEYも必要です。そのCLIフォールバックで続行しますか?
プロンプト拡張
ユーザーのプロンプトを、構造化されたプロダクション志向の仕様に再フォーマットします。ユーザーの目標をより明確で実行可能にしますが、盲目的に詳細を追加しないでください。
これをプロンプト整形ガイダンスとして扱い、閉じたスキーマとしては扱いません。役立つ行のみを使用し、明確さを実質的に向上させる場合にのみ、短い追加ラベル行を追加します。
具体性ポリシー
ユーザーのプロンプトの具体性を使用して、どの程度の拡張が適切かを決定します。
- プロンプトがすでに具体的で詳細な場合は、その具体性を保持し、正規化/構造化のみを行います。
- プロンプトが一般的な場合は、結果を実質的に向上させる場合にのみ、センスの良い拡張を追加してもかまいません。
許可される拡張:
- 構図またはフレーミングのヒント
- 洗練度または意図された使用のヒント
- 実用的なレイアウトガイダンス
- 要求をサポートする合理的なシーンの具体性
許可されない拡張:
- リクエストによって暗示されない追加のキャラクターやオブジェクト
- ブランド名、スローガン、パレット、または暗示されないナラティブビート
- 周囲のレイアウトがサポートしない限り、任意のサイド固有の配置