OpenAI 画像生成とネイティブ GIF
このスキルは、スタンドアロンでコピー可能な Agent Skills パッケージであり、プロジェクト単位および個人でのインストールをサポートします。このファイルが配置されているフォルダーを スキルルートディレクトリ として扱います。固定のインストールパスやカレントディレクトリを想定しないでください。すべての Python コマンドは uv を使用して実行し、裸の python、pip、または手動で作成した venv を使用しないでください。
機能と制限
- 静止画像:PNG、JPEG、WebP。
- ネイティブアニメーション GIF:
output_format=gif、frame_count、frame_duration_msを使用し、/v1/images/generationsを1回呼び出します。 - デフォルトモデル:
gpt-image-2.6-sunburst;高速なイテレーションにはgpt-image-2.6-flareを選択できます。gpt-image2.6のような口語的な名前をモデル ID として直接使用しないでください。 - GIF は現在、選択したモデルの GIF preview アクセス権限 が必要です。ChatGPT / Codex / Copilot のサブスクリプションだけでは利用できない場合があります。
- GIF は 2~16 フレームに対応し、デフォルトは 9 フレームです。各フレームのデフォルト継続時間は 200 ms、最小 20 ms で、API は 10 ms 単位に丸められ、最大エンコード時間は 655350 ms です。デフォルトのアニメーションは約 1.8 秒ですが、実際の時間は出力データに依存します。
- 同じ画像を複数フレームにコピーしたり、PNG ファイルの拡張子を GIF に変更したり、失敗した際にこっそりと複数回の画像生成や他の有料サービスに切り替えたりすることはありません。
- この CLI はテキストからの画像生成に特化しており、画像編集、ストリーミング、動画生成、またはローカルでのアニメーション合成は提供しません。Pillow、FFmpeg、OpenAI SDK への依存はありません。
ワークフロー
- 静止画像かアニメーションかを判断します。ユーザーが指定した被写体、構図、テキスト、スタイル、出力パスを保持します。
- アニメーションの場合は、「動き、固定カメラアングル、背景の一貫性、ループのつなぎ目」などの説明を補完します。ユーザーの同意なく要求を変更しないでください。フレーム数と速度が指定されていない場合はデフォルト値を使用します。API の制限を超える場合は、その旨を説明し、ユーザーにトレードオフを尋ねてください。
- OpenAI API のクレジットが消費されることをユーザーに通知します。ユーザーが画像生成を明示的に許可した場合にのみ API を呼び出します。スキルの参照、ヘルプの表示、dry-run の実行は、有料テストの許可とはみなされません。ソースコード、認証情報、その他の機密データを送信しないでください。
uv --versionを確認します。uv がインストールされていない場合は、ユーザーに uv のインストールを依頼し、システムツールを勝手にインストールしないでください。OPENAI_API_KEYが存在することを確認するだけで十分です。.envファイルやキーの内容を絶対に出力せず、チャットに貼り付けたり、ソースコードやリポジトリに書き込んだりするよう要求しないでください。既存のプロセス環境変数がある場合はそれを直接使用します。dotenv が必要な場合は、ユーザーの作業プロジェクトまたは明示的に指定された.envファイルの絶対パスを確認し、uv run --env-file <パス>で読み込みます。スキルのインストールディレクトリにある他のプロジェクトの認証情報を探さないでください。このツールはhttps://api.openai.comにのみ接続し、OPENAI_BASE_URLは読み込みません。- スキルルートディレクトリから CLI の絶対パスを解決し、まず dry-run でパラメータを確認してから、実際のリクエストを1回実行します。出力パスはユーザーの作業プロジェクトに基づき、スキルのインストールディレクトリには書き込みません。初期設定時には、同梱の空の設定テンプレートと使用ガイドを使用し、既存の設定を上書きしないでください。
- 終了コードと結果の JSON を確認します。ツールは応答形式を検証し、GIF の場合はチャンクを解析して少なくとも2フレームあることを確認し、実際の寸法、フレーム数、合計時間を報告してからファイルに書き込みます。これはコンテナと形式のチェックであり、完全なピクセルデコードや視覚的な品質検証ではありません。画像プレビュー機能がある場合は、その時点で画像を確認します。
- 出力ファイルへのリンクを提供します。GIF の場合、プレビューを確認していないのに視覚効果が検証されたと主張しないでください。フレーム数が期待と異なる場合は警告を表示し、隠蔽しないでください。
実行方法
まず、読み込み場所に基づいて $skillDir をスキルルートディレクトリの絶対パスに設定し、ユーザーの作業プロジェクトから実行します。完全な設定、静止画像/GIF の例、およびパラメータについては、使用ガイドを参照してください。
$script = Join-Path $skillDir 'scripts\openai_image.py'
uv run --no-env-file --script "$script" --prompt 'オリジナル水彩風の台湾の山林と朝霧、文字なし' --output outputs\mountains.png --dry-run
--dry-runは API キーを必要とせず、API を呼び出さず、ファイルも書き込みません。プロンプトを表示しますが、機密コンテンツには使用しないでください。uv が初めて Python を見つけられない場合、実行環境をダウンロードする可能性があります。- 画像生成の許可を得た後にのみ
--dry-runを削除してください。dotenv が必要な場合は、--no-env-fileを--env-file <ユーザー指定の .env 絶対パス>に置き換えてください。 - GIF には
.gif拡張子を使用し、--frames 9 --frame-duration-ms 200を指定できます。n=1はフレーム数ではなく、完全なアニメーションを表します。 response_format、stream、partial_images、output_compressionなど、GIF に適用されないパラメータは送信しないでください。- デフォルトではサイズを指定しません。カスタムサイズは 16 の倍数で、アスペクト比は 1:3 から 3:1 の間である必要があります。GIF にはモデル固有のサイズ制限があるため、静止画像のサイズがそのまま適用できるとは想定しないでください。
- ユーザーが既存ファイルの置き換えに明示的に同意しない限り、
--overwriteは提供しません。
エラー処理
- キーがない場合:停止し、ユーザーに自分の環境で設定するよう依頼します。キーをチャットに貼り付けないでください。
- HTTP 401 / 403 / 404:認証情報、完全なモデル ID、組織検証、GIF preview 権限を確認してください。
- HTTP 400:サイズ、形式、フレームパラメータ、モデルのサポート状況を確認してください。他の形式への自動ダウングレードや代替合成を行わないでください。
- HTTP 429、5xx、タイムアウト、または接続中断:リクエストが処理され課金された可能性があります。まず報告し、ユーザーの同意を得てから再送信してください。
- アニメーションではない GIF、不正な形式、無効な Base64、または不完全な GIF:成功として報告せず、ターゲットファイルに書き込まないでください。
- 出力パスが存在しない場合は、親フォルダーを自動的に作成します。既存のファイルはデフォルトでは上書きされません。ファイルシステムは、上書きせずにアトミックに保存するためのハードリンクをサポートしている必要があります。サポートされていない場合はエラーを報告し、黙って上書きすることはありません。
検証
オフラインテストはローカルの HTTP モックサーバーのみを使用し、実際のキーを読み取らず、OpenAI に接続せず、課金も発生しません。
$tests = Join-Path $skillDir 'tests\test_openai_image.py'
uv run --no-env-file --script "$tests"
テストは、モデル/GIF preview 権限を取得したことや、有料のエンドツーエンド検証が完了したことを意味するものではありません。実際の生成には有効なキーとユーザーの許可が必要です。
エージェントでの呼び出し方
- Copilot:
/openai-imageと入力するか、「OpenAI で画像を描いて / アニメーションGIF を作って」と直接指示します。 - Codex:
$openai-imageを使用するか、自然言語でこのスキルの使用を要求します。Codex インターフェース設定は共通コマンドに影響しません。 - 見つからない場合は、現在のハーネスがインストール場所をサポートしているか確認し、チャットを再開するかスキルリストをリロードしてください。Copilot CLI と Codex は
.agents/skillsを共有できます。一部の Copilot ハーネスは.github/skillsを使用します。完全なフォルダーを移動し、同時にスキャンされる複数の場所に同じ名前のスキルをコピーしないでください。
公式リファレンス
実装パラメータは 2026-11-09 時点の公式ドキュメントに基づいています。モデルへのアクセス、制限、価格は変更される可能性があります。