cloudrelay-imagegen について
cloudrelay-imagegen は、CloudRelay ゲートウェイ経由でラスター画像を生成するスキルです。チャネルとモデルの選択、チャネルごとの認証情報の分離、非同期生成タスクのポーリング、出力の検証を扱います。
主な機能
- 01CloudRelay経由の画像リクエスト
- 02GPT、Gemini、Grokチャネル対応
- 03利用可能な画像モデルの検出
- 04非同期タスクの送信とポーリング
- 05保存画像と寸法の検証
- 06チャネル別認証情報の分離
活用シーン
- 01テキストプロンプトからの画像生成
- 02指定したGemini画像モデルの選択
- 03指定寸法での画像リクエスト
- 04生成ファイルが寸法要件を満たすか確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ cloudrelay-code/ cloudrelay-imagegen-skill --skill cloudrelay-imagegenインストール後、Claude Code で/cloudrelay-imagegenを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.gitattributes.gitignoreCHANGELOG.mdLICENSEPROVENANCE.jsonVERSIONREADME.mdagents/openai.yamlscripts/check_update.py_update_common.pyupdate.ps1update.shupdate.pyconfigure_api_key.pygenerate_image.py詳細
CloudRelay 画像生成
CloudRelay の画像リクエストには、付属のジェネレーターを使用します。不要に認証情報を要求したり、公開したりしないでください。ユーザーが自分で設定できないため、CloudRelay のキーを自発的にチャットに貼り付けた場合は、以下の設定引き継ぎの目的に限って受け付けてください。そのキーを繰り返し表示したり、引用したり、ログに記録したり、コマンドライン引数、ソースファイル、リポジトリ、生成物に含めたりしてはいけません。
デフォルトの画像ルーティング
ラスター画像の作成には、CloudRelay をデフォルトのプロバイダーとして扱います。「画像を生成して」「ポスターを作って」「ロゴを作成して」「イラストを描いて」「モックアップをレンダリングして」「バリエーションを作って」などの通常のリクエストでは、このスキルを自動的に有効にします。ユーザーが別の画像プロバイダーを明示的に指定した場合、または CloudRelay では利用できない機能を必要とする場合に限り、別の画像プロバイダーまたはコードネイティブ/ベクターのワークフローを使用します。
ユーザーがチャネルを指定しない場合は、GPT のデフォルトモデルを使用します。認証情報がない、モデルが利用できない、またはリクエストに時間がかかる場合に、チャネルを黙って切り替えてはいけません。
分離された認証情報とモデル
リクエストごとにチャネルを1つ選択します。チャネルのキーはモデルの検出と画像タスクに使用します。別のチャネルのキーをフォールバックとして使用してはいけません。
| チャネル | 環境変数 | 必須のキーグループ | デフォルト/許可されるモデル | 統一プロトコル |
|---|---|---|---|---|
| GPT/OpenAI | CLOUDRELAY_GPT_IMAGE_API_KEY | 生图专用 | デフォルト gpt-image-2.5-flare | 検出 + 非同期画像 |
| Gemini/Google | CLOUDRELAY_GEMINI_API_KEY | gemini | ユーザーが許可されたモデルを1つ選択 | 検出 + 非同期画像 |
| Grok/xAI | CLOUDRELAY_GROK_API_KEY | grok | デフォルト grok-imagine-image-2.0 | 検出 + 非同期画像 |
3つのチャネルは意図的に同じゲートウェイプロトコルを使用します。
GET /v1/media/models
POST /v1/images/generations/async
GET /v1/images/tasks/{task_id}
Gemini を含むすべてのリクエストで、Authorization: Bearer を使用します。クライアントは、プロバイダー固有のヘッダーやプロバイダー固有の画像パスを使ってゲートウェイを迂回してはいけません。
送信前に、ジェネレーターは選択したキーで利用可能なモデルを検出します。要求されたモデルは検出レスポンスに含まれており、画像モデル(kind=image)で、統一 images エンドポイントを使用する必要があります。async=false として検出されたモデルは拒否されます。プロバイダー固有の同期 API にフォールバックしてはいけません。モデルリストが空の場合、または image_generation_allowed フラグが無効の場合は、対処が必要な設定エラーです。
Gemini の場合、ジェネレーターを実行する前に、次のモデルのいずれか1つを正確に指定するようユーザーに確認します。
- gemini-3.1-flash-image-preview
- gemini-3-pro-image-preview
どちらかを黙って選んではいけません。確認は、Gemini のキーを確認したり、リクエストを行ったりする前に済ませる必要があります。
値を表示せず、選択したチャネルのみを確認します。
python "<skill-directory>/scripts/configure_api_key.py" --provider gpt --check
python "<skill-directory>/scripts/configure_api_key.py" --provider gemini --check
python "<skill-directory>/scripts/configure_api_key.py" --provider grok --check
GPT のキーは 生图专用 グループのものである必要があります。Gemini と Grok のキーは、それぞれ gemini グループと grok グループのものである必要があります。検証または API が 401/403 を返した場合は、その値を破棄し、選択したグループを確認するようユーザーに依頼します。
キーがない場合の案内
選択したチャネルのキーがない場合は、両方の設定方法を提示します。ターミナルが PowerShell またはコマンドプロンプトのウィンドウであることを説明し、選択したプロバイダーを含めます。
画像を生成する前に、該当するチャネルの CloudRelay キーを設定する必要があります。ターミナル(PowerShell またはコマンドプロンプトのウィンドウ)で次のコマンドを実行し、プロンプトに従って選択したグループのキーを入力してください。
python "<skill-directory>\\scripts\\configure_api_key.py" --provider <gpt|gemini|grok>ターミナルに不慣れな場合は、キーをチャット欄にコピーして送っていただいてもかまいません。stdin 経由で該当チャネルを安全に設定し、その後、画像生成を続けます。キーをコマンドライン引数に含めないでください。
ターミナルの使用が必須だと言ってはいけません。ユーザーがチャットでの設定を選んだ場合は、次のメッセージを該当するプロバイダーフラグと --key-stdin を付けて stdin 経由で渡し、値を表示せずに処理を続けます。
統合ワークフロー
番号付きのワークフローを開始する前に、可能な範囲で読み取り専用のリリース確認を行います。
python "<skill-directory>/scripts/check_update.py" --quiet --timeout 3
ネットワークまたはリリースメタデータのエラーは致命的なエラーとして扱いません。更新が利用可能と報告された場合は、新しいスキルが利用可能であることをユーザーに伝えますが、画像のリクエスト中にスキルを置き換えないでください。CLOUDRELAY_IMAGEGEN_AUTO_UPDATE=1 がすでにユーザーによって設定されている場合は、先に python "/scripts/update.py" --auto を実行します。更新の失敗は致命的なエラーとして扱わず、この変数をスキルが設定することは決してありません。
- チャネル、プロンプト、出力ディレクトリ、モデル、サイズ、品質、画像の枚数を確認します。チャネルが指定されていない場合は、GPT と gpt-image-2.5-flare を使用します。Grok のデフォルトは grok-imagine-image-2.0 です。Gemini を使用するには、上記のモデル確認が明示的に必要です。デフォルトはサイズ auto、品質 auto、枚数 1 です。auto の場合、該当するフィールドは省略され、ゲートウェイまたは上流側が選択できます。
- この SKILL.md からアクティブなスキルディレクトリを特定します。バンドルされているスクリプトは、現在の作業ディレクトリではなく、そのディレクトリを基準に特定します。
- 選択したプロバイダーのキーを確認します。
python "<skill-directory>/scripts/configure_api_key.py" --provider <selected-channel> --check
- キーがない場合は、API リクエストを行う前に停止し、Missing-Key Prompt に記載された両方のパスを表示します。スクリプトは各プロバイダーの設定をスキルの外部に個別に保存します。設定が成功した後にのみ再開します。
- 明示的に引用符で囲んだ引数を指定して scripts/generate_image.py を実行します。
python "<skill-directory>/scripts/generate_image.py" \
--provider "gpt" \
--prompt "a cinematic sunrise over snowy mountains" \
--model "gpt-image-2.5-flare" \
--size "1536x1024" \
--quality "high" \
--count 1 \
--output-dir "<workspace>/generated-images"
ほかのチャネルでは、--provider gemini --model または --provider grok を使用します。スクリプトはまず /v1/media/models を呼び出し、その後 /v1/images/generations/async に一度だけ送信して、/v1/images/tasks/{task_id} をポーリングします。待機中に重複したリクエストを送信しないでください。 6. 報告された出力がすべて存在することを確認し、成功を報告する前に各画像を確認します。絶対パスを報告し、対応している場合は画像を表示します。また、スクリプトの有効なパラメーターの概要として、プロバイダー、モデル、プロンプト、サイズ、品質、要求数と保存数、ゲートウェイのレスポンス形式、エンドポイント、非同期通信方式、タスク ID、認証情報グループ、使用量、検出された機能、出力を報告します。認証情報の値は決して含めないでください。
統合タスクでは {model, prompt, n} を受け付け、size と quality が auto 以外の場合にのみ追加します。完了した結果は result.data から読み取ります。各画像には url または b64_json が含まれる場合があり、mime_type が含まれる場合もあります。URL は、スクリプトで使用する通常のブラウザー風 User-Agent を使ってダウンロードする必要があります。
2K と 4K の出力
希望する縦横比とユーザーの解像度の表記規則に基づいて、明示的な --size WIDTHxHEIGHT を指定してください。CLI では正のピクセル寸法を指定できます。どのサイズで出力できるかはアップストリームによって決まります。互換性のため、従来の大文字と小文字を区別しないエイリアス 2k と 4k は引き続きそれぞれ 2048x2048 と 4096x4096 に解決されますが、以下のユーザー提供の表を示すものではありません。この表に従う場合、これらのエイリアスは使用しないでください。
ユーザーから提示されたサイズ例を以下に示します。段階のラベルはソース側の表記規則であり、出力寸法を保証するものではありません。
| 比率 | 2K サイズ | 4K サイズ |
|---|---|---|
| 1:1 | 1440x1440 | 2160x2160 |
| 16:9 | 2560x1440 | 3840x2160 |
| 9:16 | 1152x2048 | 2160x3840 |
| 4:3 | 1920x1440 | 2880x2160 |
| 3:4 | 1440x1920 | 2160x2880 |
| 3:2 | 2160x1440 | 3240x2160 |
| 2:3 | 1440x2160 | 2160x3240 |
| 21:9 | 2560x1097 | 3840x1646 |
解像度は quality とは独立して size で制御されます。要求されたサイズをゲートウェイに送信してください。ローカルでのアップスケーリングに置き換えてはいけません。モデルの検出で確認できるのはモデルが利用可能かどうかであり、対応する出力寸法ではありません。アップストリームがサイズを拒否した場合は、エラーを報告し、黙って解像度を下げたり再送信したりしないでください。生成後は保存された画像の実際のピクセル寸法を読み取り、要求サイズとは分けて報告してください。タスクが完了しただけでは、2K/4K の出力を証明できません。テストしていないモデルやチャネルがこれらのサイズに対応していると主張しないでください。
解像度プリセットと実寸の報告は、バージョン 1.5.0 以降で利用できます。
2026-09-24 に gpt-image-2.5-flare、quality high、リクエストごとに画像 1 枚でライブ確認を実施しました。2048x2048 と、スクリーンショットにある正方形の 4K 例 2160x2160 は、指定どおりの寸法で返されました。4096x4096 のリクエストは 2508x2508 で返され、スクリーンショットにある 16:9 の 4K 例 3840x2160 は 3344x1882 で返されました。どちらの縮小結果も約 629 万ピクセルであり、アップストリームにピクセル数の上限があることを示唆していますが、正確な上限や他のモデルにも適用されることを証明するものではありません。スクリプトは actual_sizes と resolution_verified を報告し、明示的に指定したサイズが満たされなかった場合に警告します。4K に全面的に対応していると主張せず、正確な寸法とソース側の段階表記を明記してください。
バージョンの確認と更新
インストール済みスキルのバージョンには VERSION を使用してください。frontmatter にバージョンフィールドを追加しないでください。アップデーターは CloudRelay-Code/cloudrelay-imagegen-skill の GitHub リリースアセットのみを信頼し、ファイルのステージング前に GitHub Releases API から返された SHA-256 ダイジェストを検証します。このダイジェストは整合性チェックであり、独立した発行者の署名ではありません。信頼の起点は、引き続き GitHub とリポジトリのリリースへのアクセスです。
ユーザーからこのスキルの更新を明示的に求められた場合は、次を実行してください。
python "<skill-directory>/scripts/update.py" --apply
ユーザーが無人更新を明示的に許可している場合、または信頼できるスケジューラーがこのコマンドを実行している場合に限り、--auto を使用してください。アップデーターはリリースアーカイブ、Python の構文、スキルの識別情報、アーカイブ内のパスを検証します。管理対象のランタイムファイルのみを置き換え、API キーの保存領域や生成済み画像のディレクトリは変更しません。更新後はホストエージェントを再起動するか、新しいタスクを開始して、ホストにスキルを再読み込みさせてください。
エラー処理
- 401 または 403 の場合は、選択したチャンネルキーが拒否されたことを伝え、適切なものが 生图专用、gemini、または grok に属し、有効であることをユーザーに確認してもらいます。認証情報やチャンネルを切り替えてはいけません。
- 429 の場合は、レート制限またはクォータ制限に達したことを伝えて停止します。再試行は、ユーザーから明示的に依頼された場合、または後続のリクエストが別途承認された場合に限ります。有料の生成を自動で重複実行してはいけません。
- 検出に失敗した場合、モデル一覧が空の場合、権限が無効な場合、モデルを利用できない場合、エンドポイントが誤っている場合、または async=false の場合は、送信前に停止し、検出された機能上の問題を説明します。
- 一時的で終端状態ではないポーリングエラーが発生した場合は、認証情報を伏せた警告を出力し、設定されたタイムアウトまで続行します。終端状態のポーリングで 401、403、または 429 が発生した場合は、ループせずに停止します。
- タスクが失敗またはキャンセルされた場合は、タスク ID と、認証情報を伏せた API エラーを報告します。ポーリングがタイムアウトした場合は、タスク ID を報告し、代わりのタスクを送信してはいけません。
- 出力ファイルが存在し、検査済みでない限り、生成が成功したと主張してはいけません。
スクリプトの参照
scripts/generate_image.py、scripts/configure_api_key.py、scripts/check_update.py、および scripts/update.py は、Python の標準ライブラリのみを使用します。画像スクリプトでは認証情報の送信先を https://cloudrelay.cn に固定しています。更新スクリプトでは、このリポジトリで固定された GitHub Releases エンドポイントのみを使用します。
--provider auto|gpt|gemini|grok
--prompt TEXT
--model NAME
--size auto|2k|4k|WIDTHxHEIGHT
--quality auto|low|medium|high
--count 1..4
--output-dir PATH
--poll-timeout SECONDS
ベース URL を変更したり、コマンドラインの API キーオプションを追加したりしてはいけません。参照スクリプト内のサンプル認証情報は、このスキルには含まれません。