画像と動画のプロンプト拡張
画像モデルや動画モデルは、長く具体的なプロンプトをうまく扱えますが、実際には短いプロンプトを書く方がほとんどです。プロンプト拡張はその差を埋めます。"prompt_expand": true を指定すると、生成の前に Hyperouter がモデル向けにプロンプトを書き直します。画像ではより詳しい描写に、動画では秒ごとの台本になります。
既定ではオフのため、プロンプトは書いたとおりにモデルへ送られます。
対応するモデル
prompt_expand を列挙している Lumina と Qwen の画像モデル・動画モデルが対応しています。対応モデルは順次追加されるため、記事の記載ではなく一覧を確認してください。GET /v1/models は各モデルの supported_parameters を返し、このフィールドに対応するモデルはそこに prompt_expand を列挙します。
curl https://api.hyperouter.app/v1/models \
-H "Authorization: Bearer $HYPEROUTER_API_KEY"
このフィールドが使えるのは、画像または動画の作成だけです。それ以外のモデルや、動画の編集・延長・リミックスでは 400 unsupported_parameter で拒否されます。prompt_extend: true とは併用できず、400 invalid_body で拒否されます。
リクエストでオンにする
prompt_expand は、画像と動画の作成呼び出しのトップレベルのフィールドです。OpenAI SDK では、追加のボディフィールドとして送信します。Qwen Image 2.0 が対応しています。
curl https://api.hyperouter.app/v1/images/generations \ -H "Authorization: Bearer $HYPEROUTER_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "qwen/qwen-image-2.0", "prompt": "A lighthouse at dusk", "prompt_expand": true }'
img = client.images.generate(
model="qwen/qwen-image-2.0",
prompt="A lighthouse at dusk",
extra_body={"prompt_expand": True},
)
print(img.data[0].url)
動画では、同じフィールドを付けて POST /v1/videos を呼びます。もう 1 つのフィールド locale は、zh-CN のような BCP 47 タグです。prompt_expand と併用すると、動画のセリフを書く言語を指定でき、モデルはその言語で話します。指定しない場合、セリフは英語になります。
生成されたものを確認する
レスポンスには、モデルが受け取ったプロンプトである expanded_prompt が含まれます。お客様の prompt は変更されません。このフィールドは次の場所にあります。
- 画像のレスポンス
- Video オブジェクト
- GET/v1/generations/{id}
Hyperouter は expanded_prompt をリクエストから 30 日間保持し、それを過ぎると null を返します。何も拡張されなかった場合も null です。
30 日より長く必要な場合は、expanded_prompt をご自身の記録に保存してください。
料金
書き直しは同じリクエストで課金され、使用したトークンに x-ai/grok-4.6 のトークン単価が適用されます。Hyperouter は、他のリクエストと同様に、書き直しにかかりうる最大額を生成分とあわせて事前に確保し、実際に使われた分を課金します。2 回目の呼び出しはありません。
書き直しが失敗した、タイムアウトした、または使えなかった場合でも、リクエスト自体は失敗しません。モデルは送信されたとおりのプロンプトで生成し、レスポンスは expanded_prompt: null となり、書き直しは無料です。
利用を申請する
プロンプト拡張は、Hyperouter がアカウントで有効にした後に使えます。申請するには、ダッシュボードでサポートチケットを作成してください。
有効になるまでは、GET /v1/models はどのモデルにも prompt_expand を表示しません。対応するモデルに prompt_expand: true を送ると、次のレスポンスが返ります。
{
"error": {
"message": "...",
"type": "permission_error",
"code": "feature_not_enabled",
"param": "prompt_expand"
}
}
ステータスは 403 です。料金は確保されず、プロバイダーにも何も送信されないため、拒否されたリクエストは無料です。判定には message ではなく code を使ってください。
次のステップ
- リファレンスのプロンプト拡張に、すべてのルールがあります。
- 画像と動画に、作成呼び出しのすべてのフィールドを掲載しています。
- すべてのリクエストには引用できる ID がありますでは、リクエストを後から調べる方法を説明しています。