wan2.7-t2v
必須フィールドは model と prompt だけです。size と duration を省略すると、ゲートウェイは 1280*720 の 5 秒で送信します。
該当するものがありません。プロトコル名、機能名、エンドポイントのパスで試してください。
動画モデルは 1 回のレスポンスではなくタスクとして応答します。POST /v1/videos はタスク ID と "status": "queued" を返し、GET /v1/videos/{task_id} でタスクが completed または failed になるまで進捗を確認します。完了したら、生成物は metadata.url にある署名付き URL です。この URL には Expires パラメーターが付くため、リンクを保存せずファイル自体をダウンロードしてください。失敗したタスクは上流のコードとメッセージを error.code と error.message に載せるので、リクエストに足りなかったフィールドはたいていそれで分かります。POST /v1/video/generations も同じハンドラーに届くので、そのパスに合わせて実装済みのクライアントはそのまま使えます。
curl https://api.chinaapi.ai/v1/videos \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.7-i2v",
"prompt": "the cat turns and walks toward the camera",
"input_reference": "https://example.com/first-frame.jpg",
"size": "1280*720",
"duration": 5
}'
# {"id":"task_9f2c...","task_id":"task_9f2c...","object":"video",
# "model":"wan2.7-i2v","status":"queued","progress":0}
curl https://api.chinaapi.ai/v1/videos/task_9f2c... \
-H "Authorization: Bearer $CHINAAPI_KEY"
# {"id":"task_9f2c...","object":"video","model":"wan2.7-i2v",
# "status":"completed","progress":100,
# "metadata":{"url":"https://.../output.mp4?Expires=..."}}
必須フィールドは model と prompt だけです。size と duration を省略すると、ゲートウェイは 1280*720 の 5 秒で送信します。
静止画を動かします。input_reference には公開アクセスできる画像 URL を渡し、それが最初のフレームになります。size と duration も一緒に送ってください。
参照素材から動画を作ります。input_reference は参照画像 1 枚を受け取ります。複数渡すときは代わりに images を使い、video_url で参照動画を追加します — 参照は合わせて 5 件までです。input_reference と images を同時に送らないでください。ゲートウェイは input_reference だけを残します。
プロンプトで既存のクリップを編集します。video_url には元動画を渡します。元動画は 2〜10 秒の MP4 または MOV である必要があり、出力は size で決まります。
参照画像は images に入れます。input_reference は 1 枚だけ受け取り、両方送った場合は両方とも送信されます。長さは seconds か duration、ベンダー固有のパラメーターは metadata に入れ、resolution は 480p か 720p のどちらかです。
リクエストの形は doubao-seedance-2-5-260628 と同じで、metadata.content の role の規則もそのまま当てはまります。doubao-seedance-2-0-fast-260128 と doubao-seedance-2-0-mini-260615 は品質と引き換えに速度とコストを取ります。また 2.0 系は画像か動画の参照が最低 1 つ必要で、2.5 のように音声だけの入力は受け付けません。
先頭フレームは image に入れます。このファミリーは input_reference を一切読みません。mode の既定は std、duration の既定は 5 秒です。残りは metadata が受け持ちます — 終了フレームの image_tail、on か off を取る sound(既定は off)、それに negative_prompt・cfg_scale・camera_control です。
テキストから動画なら prompt だけ、先頭フレームを付けるなら image を足せば、上流が求める contents 配列はゲートウェイが組み立てます。サイズ関連は metadata.settings の下です — resolution は 720p か 1080p、duration は 3〜15 秒、aspect_ratio は 16:9・9:16・1:1 のいずれかです。音声は常に付き、切り替えるスイッチはありません。
複数の画像をまとめて参照して生成します。パラメーターはすべて metadata の中にあり、resolution フィールドは存在しません — 品質の段階は mode です。下の実例を参照してください。
ゲートウェイ自身のフィールドを受け取り、上流のペイロードは自動で組み立てます。image または input_reference が先頭フレーム、images が参照画像、video_url が参照動画になります。size で 768P か 2K を選び、duration は 4〜15 の整数です。テキストのみのリクエストでは、adaptive 以外の metadata.ratio を明示する必要があります。
MiniMax-Hailuo-2.3-Fast と MiniMax-Hailuo-02 も同じ扱いです。これらがトップレベルから読むのは prompt・duration・size だけで、画像はすべて metadata 経由 — first_frame_image・last_frame_image・subject_reference のいずれか — で渡します。
happyhorse-1.1-i2v と happyhorse-1.1-r2v も同じです。フィールドは wan2.7 ファミリーと同じ prompt・input_reference・size・duration で、こちらは 480P にも価格が付いているため、wan2.7 が拒否する 832*480 を受け付けます。参照を複数渡すときは metadata.input.media に入れてください。images フィールドが起こす自動組み立ては wan2.7-r2v 専用です。
1280*720 のように書きます。x は使えません。832x480 は invalid size: 832x480, example: 1920*1080 が返ります。duration は秒数の整数です。wan2.7-i2v・wan2.7-r2v・wan2.7-videoedit ではゲートウェイが size を解像度の段階に折りたたみ、上流には 2 段階しかありません。720P には 1280*720、1080P には 1920*1080 を送ってください。832*480 のような 480P のサイズはこの 3 つに価格が設定されておらず、その場で拒否されるか、いったん受け付けられたうえで上流が InvalidParameter で失敗させます。失敗したタスクは返金されますが、いずれにせよ往復が無駄になります。wan2.7-t2v は値をそのまま受け取ります。
size から縦横比を読み取りますが、その対応表はサイズを x でつづります — 1280x720・1920x1080・720x1280・1080x1920・1024x1024・512x512 — そして表にない値はエラーにならずに 1:1 になります。したがって kling-v3 にアスタリスク形式の 1280*720 を送ると、苦情ではなく正方形の動画が返ります。構図が重要なときは metadata.aspect_ratio を直接指定してください。
MiniMax-Hailuo-2.3・MiniMax-Hailuo-2.3-Fast・MiniMax-Hailuo-02 は、トップレベルの image・input_reference・images・video_url を何も言わずに捨てます。リクエストは成功しますが、テキストから動画として実行され、その料金で課金されます。画像は metadata.first_frame_image に入れ、終了フレームは metadata.last_frame_image、被写体の参照は metadata.subject_reference を使ってください。MiniMax-H3 はこのファミリーの例外で、トップレベルのフィールドを読みます。
curl https://api.chinaapi.ai/v1/video/generations \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-v3-omni",
"prompt": "the character from the references walks through a neon-lit street",
"metadata": {
"image_list": [
{"image_url": "https://example.com/character.jpg"},
{"image_url": "https://example.com/outfit.jpg"},
{"image_url": "https://example.com/scene.jpg"}
],
"mode": "std",
"duration": "5",
"aspect_ratio": "16:9",
"sound": "off"
}
}'
curl https://api.chinaapi.ai/v1/video/generations/task_9f2c... \
-H "Authorization: Bearer $CHINAAPI_KEY"
# {"code":"success",
# "data":{"task_id":"task_9f2c...","status":"SUCCESS",
# "progress":"100%","fail_reason":"",
# "result_url":"https://.../output.mp4"}}
type は付けません。このフィールドは first_frame か end_frame を示すためだけにあります。先頭フレームがない場合は aspect_ratio が必須です。mode は品質の段階で std・pro・4k のいずれか。上流の既定は pro で表示価格の 1.33 倍、4k は 5 倍で課金されるため、想定どおりの料金にするには mode を明示してください。duration は "3" から "15" までの文字列、sound の既定は off です。参照動画は video_list に入れ、必ず "refer_type": "feature" を指定します。編集モードの base は渡した動画の長さで課金され、送信前に価格を出せないため拒否されます。 参照画像には上流側の最小サイズもあります。アイコン程度の小さな画像は送信こそ通りますが、タスクは Image pixel is invalid で失敗します。失敗したタスクは返金されますが、往復は無駄になります。
GET /v1/videos/{task_id} は OpenAI の動画形式で答え、ファイルは metadata.url、進捗は数値です。GET /v1/video/generations/{task_id} は {"code": "success", "data": {…}} で答え、ファイルは data.result_url、data.status は SUCCESS や FAILURE のような大文字の語、data.progress は "100%" のような文字列で、失敗の理由は data.fail_reason に入ります。送信したパスと同じ側をポーリングしてください。
curl https://api.chinaapi.ai/v1/videos \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-5-260628",
"prompt": "the subject slowly turns toward the camera",
"images": ["https://example.com/first-frame.jpg"],
"seconds": "5",
"metadata": {"resolution": "480p"}
}'
curl https://api.chinaapi.ai/v1/videos \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-5-260628",
"prompt": "keep the subject from the reference image",
"seconds": "5",
"metadata": {
"resolution": "480p",
"ratio": "16:9",
"content": [
{
"type": "image_url",
"image_url": {"url": "https://example.com/reference.jpg"},
"role": "reference_image"
}
]
}
}'
role のない画像は参照ではなく先頭フレームとして読み取られます。出力の縦横比はその画像に従い、ratio を一緒に送ると InvalidParameter.TaskTypeConstraint で拒否され、seconds の 2 もそこでは拒否されます(5 なら通ります)。generate_audio は上流の既定が true なので、metadata で false にしない限り音声トラック付きのファイルが返ります。metadata.content の各要素に role を付けると参照モード全体 — 画像 30 枚・動画 10 本・音声 10 本まで、音声のみの入力、30 秒を一度に生成 — が使え、そこでは ratio も受け付けられます。