画像生成スキル
現在のプロジェクト向けに画像を生成または編集します(例:ウェブサイトアセット、ゲームアセット、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またはCLIのgpt-image-2からCLIのgpt-image-1.5に黙って切り替えないでください。これはモデル/パスのダウングレードとして扱い、ユーザーがすでにgpt-image-1.5、scripts/image_gen.py、またはCLIフォールバックを明示的に要求していない限り、実行前にユーザーに確認してください。 - 透明リクエストがクリーンなクロマキー除去には複雑すぎる場合、真のネイティブ透明を要求する場合、またはローカル除去が検証に失敗した場合、真の透明には
gpt-image-2がbackground=transparentをサポートしていないためCLIgpt-image-1.5 --background transparent --output-format pngが必要であることを説明し、続行するかどうかを尋ねてください。ユーザーが確認した場合にのみ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。 - 出力がプレビュー専用か、現在のプロジェクトで使用されるものかを決定します。
- 実行戦略を決定します:単一アセット、繰り返し組み込み呼び出し、または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 クロマキー背景上に要求された被写体を作成してください。
背景は、影、グラデーション、テクスチャ、反射、床面、照明のバリエーションのない、1つの均一な色でなければなりません。
被写体を背景から完全に分離し、シャープなエッジと十分な余白を保ってください。
被写体のどこにも #00ff00 を使用しないでください。
キャストシャドウ、コンタクトシャドウ、反射、透かし、テキストは、明示的に要求されていない限り使用しないでください。
クロマキー処理の代わりに、自動的にCLI gpt-image-1.5 --background transparent --output-format png を使用しないでください。ユーザーが真のネイティブ透明を要求した場合、ローカル除去が検証に失敗した場合、または要求された画像が複雑な場合(髪の毛、毛皮、羽、煙、ガラス、液体、半透明素材、反射性オブジェクト、ソフトシャドウ、現実的な製品接地、またはすべての実用的なキーカラーと競合する被写体色)は、最初にユーザーに確認してください。
次のような簡潔な確認を使用します:
これはおそらく真のネイティブ透明が必要です。デフォルトの組み込みパスはクロマキー背景とローカル除去を使用しますが、真の透明には、gpt-image-2 が background=transparent をサポートしていないため、gpt-image-1.5 を使用したCLIフォールバックが必要です。また、OPENAI_API_KEY も必要です。そのCLIフォールバックで続行しますか?
プロンプト拡張
ユーザープロンプトを、構造化されたプロダクション指向の仕様に再フォーマットします。ユーザーの目標をより明確で実行可能にしますが、盲目的に詳細を追加しないでください。
これをプロンプト整形ガイダンスとして扱い、閉じたスキーマとして扱わないでください。役立つ行のみを使用し、実質的に明瞭さを向上させる場合にのみ、短い追加のラベル付き行を追加します。
具体性ポリシー
ユーザーのプロンプトの具体性を使用して、どれだけの拡張が適切かを決定します:
- プロンプトがすでに具体的で詳細な場合、その具体性を保持し、正規化/構造化のみを行います。
- プロンプトが一般的な場合、結果を実質的に向上させる場合にのみ、上品な拡張を追加しても構いません。
許可される拡張:
- 構図またはフレーミングのヒント
- 仕上げレベルまたは使用目的のヒント
- 実用的なレイアウトガイダンス
- 要求されたステートメントをサポートする合理的なシーンの具体性
許可されない拡張:
- リクエストに暗示されていない追加のキャラクターやオブジェクト
- ブランド名、スローガン、パレット、または暗示されていないストーリービート
- 周囲のレイアウトがサポートしない限り、任意のサイド固有の配置
使用方法
... [翻訳のために省略]