cURL
Python
JavaScript
Go
Java
PHP
Ruby
Swift
C#
curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "skyreels-v4-fast",
"prompt": "A serene forest at sunset with golden light filtering through the trees.",
"duration": 5,
"resolution": "1080p",
"aspect_ratio": "16:9",
"prompt_optimizer": true
}'
{
"code" : 200 ,
"data" : [
{
"status" : "submitted" ,
"task_id" : "task_01KPEY5H3NQ2W8D7T6VB3F9GR4"
}
]
}
すべての API エンドポイントは Bearer Token 認証が必要です API キーの取得: API キー管理ページ にアクセスして API キーを取得してください使用時はリクエストヘッダーに追加します: Authorization: Bearer YOUR_API_KEY
生成モード
SkyReels V4 はリクエストフィールドに応じて自動的に対応モードへルーティングします。mode フィールドを指定する必要はありません :
モード トリガー条件 機能 T2V (テキストから動画)prompt と共通フィールドのみ純粋なテキスト駆動生成 I2V (画像から動画)first_frame_image / end_frame_image / mid_frame_images のいずれか先頭・末尾・キーフレーム制御 Omni (マルチモーダル参照)ref_images / ref_videos のいずれか被写体参照、グリッドコラージュ、モーション参照、動画拡張、音声同期
厳格な排他性 :I2V フィールド(first_frame_image / end_frame_image / mid_frame_images)と Omni フィールド(ref_images / ref_videos)は同時に使用できません。違反した場合は 422 を返します。
@tag メカニズム :mid_frame_images / ref_images / ref_videos を使用する際、各要素は @ で始まる tag(例:@image1、@Actor-1、@video1)を宣言し、その tag は 必ず prompt 内に出現する必要があります 。prompt を「脚本」、tag を具体的な素材(画像 / 動画)を指す「キャラクターポインタ」と考えてください。例えば prompt に "@Actor-1 が @video1 のシーンに入る" と書くと、システムは @Actor-1 に対応する参照画像の被写体と @video1 に対応する動作参照を生成過程に注入します。
リクエストパラメータ
共通フィールド
以下の 2 つの段階をサポート: モデル 位置付け 適用シーン skyreels-v4-fast速度優先 クイックプレビュー、バッチ生成、日常コンテンツ skyreels-v4-std品質優先(Fast より 25~30% 高価) キーシーン、高詳細要件、正式納品
model フィールドは明示的に渡す必要があります。デフォルト値はありません。
料金は解像度と ref_videos の使用有無と強く関連します :1080p は 480p / 720p より大幅に高価、ref_videos(動画入力あり)は動画入力なしの約 1.5~2 倍です。正確な価格は 料金ページ を参照してください。
テキストプロンプト、最大 1280 tokens シーン、被写体、動作、スタイルなどを詳しく記述すると、より良い生成結果が得られます。 ref_images / ref_videos / mid_frame_images を使用する場合、prompt には対応する @tag(例:@Actor-1、@video1、@image1)を必ず含める 必要があります。例:"@Actor-1 walks through a neon-lit street at night."
出力動画の長さ(秒) ref_videos.type=reference を渡した場合、duration は参照動画の長さで上書きされます(上限 10 秒)。
アスペクト比 選択肢:
16:9(デフォルト)
4:3
1:1
9:16
3:4
I2V モードでは aspect_ratio は無視されます (出力比率は入力画像によって決まります);Omni が ref_videos を伴う場合も同様に無視されます。
プロンプトを自動最適化するかどうか 有効にすると、システムが自動的にプロンプトを最適化し、より良い生成結果を得られるようにします。
I2V 専用フィールド
動画の先頭フレーム画像 URL(jpg / jpeg / png / gif / bmp) 指定すると、この画像が動画の 先頭画面 として使用されます。
動画の末尾フレーム画像 URL(jpg / jpeg / png / gif / bmp) 指定すると、この画像が動画の 末尾画面 として使用されます。first_frame_image と組み合わせて先頭・末尾フレーム制御が可能です。
中間キーフレームリスト、最大 6 個 。各要素の構造は以下のとおり: @ で始まり、prompt 内に出現する必要があります(例:@image1)
画像 URL(jpg / jpeg / png / gif / bmp)
出現タイムスタンプ(秒)。デフォルト -1(未指定);指定時は 0 < time_stamp < duration を満たす必要があります。
Omni 専用フィールド
参照画像リスト(すべての要素の type は一致する必要があります)。各要素の構造は以下のとおり: @ で始まり、prompt 内に出現する必要があります(例:@Actor-1)
参照タイプ:
image - 通常の参照画像(リスト長 1~3;各 image_urls 長 1~5)
grid - グリッドコラージュ、つまり複数画像を 1 枚に結合したグリッド画像(2×2、3×3 など);リスト長は必ず = 1、image_urls は 1 枚必須
声紋音声 URL(type=image のみサポート 、音声時間 ≤ 15 秒)
参照動画リスト、最大 1 個 。各要素の構造は以下のとおり: @ で始まり、prompt 内に出現する必要があります(例:@video1)
参照タイプ:
reference - 動作/被写体参照、duration を上書きします (参照動画の長さに従う、最大 10 秒)、デフォルトで入力動画の音声を引き継ぎます;ref_images.type=image と組み合わせ可能
extend - 動画拡張、リクエストの duration で課金;ref_images と組み合わせ不可
動画 URL(MP4 / MOV、時間 ≤ 15 秒)
サポートされる生成シーン
以下のシーンは skyreels-v4-fast と skyreels-v4-std の 両方 でサポートされます:
シーン モード 必須パラメータ 代表的な用途 テキストから動画 T2V promptテキスト駆動でコンセプトショットを素早く生成 画像から動画 - 先頭フレーム I2V first_frame_image静止画を動画化、開始画面を指定 画像から動画 - 末尾フレーム I2V end_frame_image動画の終了画面を指定 画像から動画 - キーフレーム I2V mid_frame_images(1~6)先頭+末尾+中間キーフレームで分鏡ペースを精密制御 Omni 単一/複数被写体参照 Omni ref_images(type=image)キャラクター一貫性、複数被写体の同時登場 Omni グリッドコラージュ Omni ref_images(type=grid、1 枚)ステップ解説動画(チュートリアル、レシピ、操作デモ) Omni モーション参照 Omni ref_videos(type=reference)参照動画の動作、被写体、スタイルを再現 Omni 動画拡張 Omni ref_videos(type=extend)既存動画から続きを生成 Omni 音声同期 Omni ref_images(type=image)+ audio_urlデジタルヒューマンナレーション、音声駆動リップシンク
パラメータ制約
以下の制約に違反した場合、リクエストは拒否され 422 を返します。課金は発生しません :
パラメータ 制約 prompt最大 1280 tokens duration[3, 15] 秒;ref_videos.type=reference 時は参照動画の長さで上書き(上限 10 秒)resolution480p / 720p / 1080p のみaspect_ratio16:9 / 4:3 / 1:1 / 9:16 / 3:4;I2V では無視;Omni が ref_videos を伴う場合も無視mid_frame_images最大 6 個;time_stamp は -1 または (0, duration) 範囲内 ref_images 全体リスト内の type は一致する必要あり;I2V フィールドと共存不可 ref_images.type=gridリスト長は必ず = 1;image_urls は 1 枚必須 ref_images.type=imageリスト長 1~3;各 image_urls 長 1~5 ref_images.audio_urltype=image のみサポート、音声 ≤ 15 秒ref_videos最大 1 個;video_url MP4 / MOV、≤ 15 秒 ref_videos.type=referenceリクエストの duration を上書き(最大 10 秒)、ref_images.type=image と組み合わせ可能、デフォルトで入力動画の音声を引き継ぐ ref_videos.type=extendリクエストの duration で課金;ref_images と組み合わせ不可 tag フィールド@ で始まり、prompt 内に出現する必要ありI2V / Omni 排他 I2V フィールドと Omni フィールドは同時使用不可
レスポンス
レスポンスデータ配列 タスクステータス、初期提出時は submitted
タスクの一意識別子、タスクの状態と結果の照会に使用
リクエスト例
ケース 1:テキストから動画(最小)
{
"model" : "skyreels-v4-fast" ,
"prompt" : "A serene forest at sunset with golden light filtering through the trees."
}
ケース 2:テキストから動画(完全パラメータ)
{
"model" : "skyreels-v4-std" ,
"prompt" : "A serene forest at sunset." ,
"duration" : 5 ,
"resolution" : "720p" ,
"aspect_ratio" : "16:9" ,
"prompt_optimizer" : true
}
ケース 3:画像から動画 - 先頭フレーム
{
"model" : "skyreels-v4-fast" ,
"prompt" : "Slowly pull the camera back to reveal the entire scene." ,
"first_frame_image" : "https://example.com/start.png" ,
"duration" : 5
}
ケース 4:画像から動画 - 先頭・末尾フレーム + 中間キーフレーム
{
"model" : "skyreels-v4-std" ,
"prompt" : "The King summons a flying dragon. @image1 The dragon lowers. The King mounts and flies away." ,
"duration" : 8 ,
"resolution" : "1080p" ,
"first_frame_image" : "https://example.com/k2v_0.png" ,
"end_frame_image" : "https://example.com/k2v_2.png" ,
"mid_frame_images" : [
{ "tag" : "@image1" , "image_url" : "https://example.com/k2v_1.png" , "time_stamp" : 3 }
]
}
ケース 5:Omni - 単一被写体参照
{
"model" : "skyreels-v4-fast" ,
"prompt" : "@Actor-1 walks through a neon-lit street at night." ,
"ref_images" : [
{ "tag" : "@Actor-1" , "type" : "image" , "image_urls" : [ "https://example.com/actor.jpg" ] }
]
}
ケース 6:Omni - 複数被写体 + 動画モーション参照
{
"model" : "skyreels-v4-fast" ,
"prompt" : "The man from @image_1 imitates the move on the left in @video_1. The woman from @image_2 imitates the right side." ,
"duration" : 5 ,
"ref_images" : [
{ "tag" : "@image_1" , "type" : "image" , "image_urls" : [ "https://example.com/a.png" ] },
{ "tag" : "@image_2" , "type" : "image" , "image_urls" : [ "https://example.com/b.png" ] }
],
"ref_videos" : [
{ "tag" : "@video_1" , "type" : "reference" , "video_url" : "https://example.com/motion.mp4" }
]
}
このケースは ref_videos.type=reference を使用するため、リクエストの duration は参照動画の実際の長さで上書きされます (上限 10 秒)。ここで "duration": 5 を渡しても、最終的な動画長は参照動画に従います。
ケース 7:Omni - グリッドコラージュ(grid)
{
"model" : "skyreels-v4-fast" ,
"prompt" : "Create a video showing how to make tomato and egg noodles based on @image1." ,
"ref_images" : [
{ "tag" : "@image1" , "type" : "grid" , "image_urls" : [ "https://example.com/recipe_grid.png" ] }
]
}
ケース 8:Omni - 動画拡張(extend)
{
"model" : "skyreels-v4-fast" ,
"prompt" : "Video extended @video1, someone walks over and sits on the sofa." ,
"duration" : 8 ,
"ref_videos" : [
{ "tag" : "@video1" , "type" : "extend" , "video_url" : "https://example.com/source.mp4" }
]
}
ケース 9:Omni - 声紋付き(音声同期)
{
"model" : "skyreels-v4-std" ,
"prompt" : "@Actor-1 speaks with a calm tone." ,
"ref_images" : [
{
"tag" : "@Actor-1" ,
"type" : "image" ,
"image_urls" : [ "https://example.com/actor.jpg" ],
"audio_url" : "https://example.com/voice.mp3"
}
]
}
タスク結果の照会 動画生成は非同期タスクで、提出後に task_id が返されます。タスク状態取得 エンドポイントを使用して生成の進捗と結果を照会してください。