動画
動画生成
Seedance, Kling, Omni, Wan, Grok, Veo, Vidu, PixVerseとMiniMaxを使い、プロンプト、最初のフレーム(最後のフレームも指定可能)、または参照画像, 動画と音声から動画を作成できます。生成には数分かかるため、開始後に進行状況を確認してください。
/v1/videos開始、確認、ダウンロード
import os, time, requestsAPI = "https://api.zurelay.com/v1"HEADERS = {"Authorization": f"Bearer {os.environ['ZURELAY_API_KEY']}"}# 1. Start the videoresponse = requests.post(f"{API}/videos", headers=HEADERS, json={ "model": "seedance-2.0", "prompt": "A paper boat drifting down a rain-soaked street at night, neon reflections, slow dolly shot", "seconds": 5, "resolution": "720p", "aspect_ratio": "16:9",})response.raise_for_status() # a 4xx says what to fixjob = response.json()# 2. Poll until it's done (usually 2 to 6 minutes)while job["status"] in ("queued", "in_progress"): time.sleep(10) job = requests.get(f"{API}/videos/{job['id']}", headers=HEADERS).json()if job["status"] == "failed": raise SystemExit(job["error"]["message"])# 3. Download the MP4video = requests.get(f"{API}/videos/{job['id']}/content", headers=HEADERS)open("boat.mp4", "wb").write(video.content)動画モデルはすべて同じ方法で使えます。modelを変えるだけで、リクエストはそのままです。各モデルの得意分野は、モデルガイドをご覧ください:Seedance、Kling、Wan、Grok Imagine、Omni Flash、MiniMax H3、Veo、Vidu、PixVerse。
callback_urlを追加してください。動画が完成するとすぐに、署名付きでサーバーにPOSTされます。コールバックをご覧ください。パラメータ
modelstring必須- 動画モデルのID。
promptstring- 動画の内容を最大8,000文字 (Klingは最大2,500, Vidu reads up to 2,000, PixVerse reads up to 2,048, MiniMax reads up to 7,000)を読み取りますで指定します。最初のフレームまたは参照画像を指定しない場合は必須です。
negative_promptstring- 動画に含めたくない内容を最大2,500文字で指定します。Kling and PixVerseは読み取りますが、ほかのモデルでは受け付けません。
secondsinteger- 動画の長さを、モデルの対応範囲内の整数秒で指定します(表を参照)。デフォルトは5、またはモデルが生成できる最も近い長さです。
resolutionstring480p、720p、1080p、2k、4kなどを指定します。各モデルの対応解像度は表をご覧ください。デフォルトは720p、またはモデルの最低解像度です。aspect_ratiostring16:9、9:16、1:1、4:3、3:4、21:9、adaptiveのいずれかを指定します(最初のフレームを指定した場合は、その縦横比がデフォルトです)。指定しない場合のデフォルトは16:9です。 Kling makes 16:9, 9:16, 1:1と21:9; Omni and Veo make 16:9 and 9:16; Kling makes 16:9, 9:16 and 1:1; Grok, Vidu and PixVerse make 16:9, 9:16, 1:1, 4:3 and 3:4.sizestring- 解像度と縦横比の代わりに、
1280x720のようなピクセル数で指定します。 generate_audioboolean- 動画とともに生成する音や音声です。デフォルトは
trueです。(audioも使えます。) Kling and PixVerse costは音声なしなら料金が安くなります。 seedinteger- 同じシードと設定を使うと、似た結果が得られます。 Kling, Grok and Veo have no seed and ignore it.
first_framestring- 動画の開始フレームに使う画像です。リンクまたはデータURLで指定します。 MiniMax takes none: give the image in reference_images.
last_framestring- 動画の終了フレームに使う画像です。最初のフレームも必要です。 Seedance, Kling, Omni, Wan, Vidu and PixVerse take one.
reference_imagesarray- キャラクター、製品、場所、スタイルの参照画像を指定します:Seedance up to 9, Kling up to 10, Omni up to 10, Wan up to 10, Grok up to 3, MiniMax up to 9; Veo, Vidu and PixVerse take none。フレームとの併用はできません。
reference_videosarray- 見た目、動き、カメラワークの参考にする動画、または編集・延長する動画を指定します。MP4またはMOVをリンクかデータURLで渡し、プロンプト内で
@Video1、@Video2などとして参照します。対応するのはSeedance 2.5, Seedance 2.0, Gemini Omni FlashとMiniMax H3のみです。参照動画の秒数には1秒分の料金の一部が課金されますが、モデルによっては無料です。参照動画と音声をご覧ください。 reference_audioarray- 使用する音声、音楽、効果音: MP3 または WAV のリンクかデータ URL を指定し、
@Audio1などで参照します。Seedance 2.5, Seedance 2.0とMiniMax H3 のみ、追加料金はかかりません。 reference_modestring- 参照動画を使う場合:
editまたはextendを指定するか、参照動画から新しい動画を作成します(reference)。デフォルトのautoでは、モデルがプロンプトに従って判断します。Seedance 2.5 のみ。 callback_urlstring- ポーリングの代わりに、完成した動画(または失敗した結果)の通知先として指定する https URL です。コールバックをご覧ください。
画像から動画を作成
最初と最後のフレーム
静止画を動かす場合、動画は first_frame の画像から始まります。last_frame も追加するとその画像で終わるため、ショットの始点と終点を指定できます。 代わりに参照画像からMiniMax starts。
{ "model": "seedance-2.0", "first_frame": "https://example.com/storefront-day.jpg", "last_frame": "https://example.com/storefront-night.jpg", "prompt": "Time passes from afternoon to night; lights come on inside the shop.", "seconds": 6, "resolution": "720p"}参照画像
最大 10 枚の画像(Seedance up to 9, Kling up to 10, Omni up to 10, Wan up to 10, Grok up to 3, MiniMax up to 9; Veo, ViduとPixVerse take none)を指定し、プロンプト内で順番に(@Image1、@Image2…)参照します。画像内の人物、商品、場所が動画に登場します。
{ "model": "seedance-2.5", "reference_images": [ "https://example.com/chef.jpg", "https://example.com/kitchen.jpg", "https://example.com/dish.jpg" ], "prompt": "The chef from @Image1 plates the dish from @Image3 in the kitchen from @Image2, close-up, warm light.", "seconds": 8, "resolution": "720p", "aspect_ratio": "9:16"}参照動画と音声
人物の外見や動き、カメラワーク、シーンには参照動画を、声、曲、効果音には参照音声を指定します。画像と同様に、プロンプト内で順番に @Video1、@Audio1 として参照します。参照画像とは併用できますが、最初のフレームとは併用できません。
{ "model": "seedance-2.5", "reference_images": ["https://example.com/singer.jpg"], "reference_videos": ["https://example.com/dance-moves.mp4"], "reference_audio": ["https://example.com/chorus.mp3"], "prompt": "The singer from @Image1 performs the dance from @Video1 on a rooftop at dusk, singing to @Audio1.", "seconds": 8, "resolution": "720p"}モデルは参照動画の全秒数を読み取るため、その秒数にも 1 秒あたりの料金の一部がかかります。10 s の参照動画を使った 5 s の動画なら、動画の 5 秒分に加えて参照動画の 10 秒分が請求されます。参照音声に追加料金はかかりません。請求対象の参照動画の秒数は、各動画オブジェクトに表示されます(reference_seconds)。
動画の編集と延長
参照動画を編集する(人物や物を入れ替える、何かを追加・削除する、音楽を変える)には reference_mode を edit に、前後に延長するには extend に設定します。プロンプトには「@Video1 の車を @Image1 の車に置き換える」「ダンサーがステージを去る場面から @Video1 を続ける」のように指示します。
- 編集では元の動画の縦横比と長さが維持されるため、
aspect_ratioとsecondsは省略します。料金は最も長い参照動画の長さに基づきます。参照動画の長さは 4~30 秒にしてください。 - 延長では元の動画の縦横比が維持されます。
secondsで新しい動画の長さを指定します。 reference_modeを指定しない場合、モデルがプロンプトから判断します。secondsまたはaspect_ratioを指定していても、プロンプトが編集指示と解釈されると失敗する場合があります(失敗した動画は無料です)。
画像の要件
- PNG、JPEG、WebP に対応しています。公開
httpsリンクまたはデータ URL で指定し、上限は 10 MB です。 - 各辺は 300~6000 ピクセル、縦横比は 5:2 以内にしてください。条件を満たさないデータ URL は、理由を示すメッセージとともにリクエスト時に拒否されます。リンク先は動画の生成開始時に読み込まれます。有効な画像でなければ
invalid_imageで動画が失敗し、料金はかかりません。 - フレームと参照画像は、同じリクエストでは併用できません。
- リクエストは JSON 形式です。画像は multipart アップロードではなく、リンクかデータ URL で指定します。
動画オブジェクト
{ "id": "video_abc123", "object": "video", "model": "seedance-2.0", "status": "completed", "progress": 100, "created_at": 1790870400, "completed_at": 1790870562, "expires_at": 1793462400, "seconds": 5, "resolution": "720p", "aspect_ratio": "16:9", "size": "1280x720", "generate_audio": true, "url": "https://...signed link...", "url_expires_at": 1790956962, "cost": 1.035, "error": null}その他のエンドポイント
動画の料金
動画の料金は、解像度ごとの秒単価に動画の長さを掛けた金額です; 音声なしの場合は1秒あたりKlingとPixVerse cost安くなります; 参照動画の秒数には、その単価の一部が加算されます。生成を開始すると料金が残高から確保され、完成時に請求されます。失敗した場合は確保分が戻され、料金はかかりません。
ご質問や不足している情報はありますか? サポートチームにお問い合わせください。通常1分以内にメールで回答します。