メインコンテンツへスキップ
POST
/
v1
/
videos
/
generations
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"
    }
  ]
}
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"
    }
  ]
}

認証

Authorization
string
必須
すべての 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 に対応する動作参照を生成過程に注入します。

リクエストパラメータ

共通フィールド

model
string
必須
以下の 2 つの段階をサポート:
モデル位置付け適用シーン
skyreels-v4-fast速度優先クイックプレビュー、バッチ生成、日常コンテンツ
skyreels-v4-std品質優先(Fast より 25~30% 高価)キーシーン、高詳細要件、正式納品
model フィールドは明示的に渡す必要があります。デフォルト値はありません。
料金は解像度と ref_videos の使用有無と強く関連します:1080p は 480p / 720p より大幅に高価、ref_videos(動画入力あり)は動画入力なしの約 1.5~2 倍です。正確な価格は 料金ページ を参照してください。
prompt
string
必須
テキストプロンプト、最大 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."
duration
integer
デフォルト:"5"
出力動画の長さ(秒)
  • 範囲:[3, 15]
  • デフォルト:5
ref_videos.type=reference を渡した場合、duration は参照動画の長さで上書きされます(上限 10 秒)。
resolution
string
デフォルト:"1080p"
動画解像度選択肢:
  • 480p
  • 720p
  • 1080p(デフォルト)
aspect_ratio
string
デフォルト:"16:9"
アスペクト比選択肢:
  • 16:9(デフォルト)
  • 4:3
  • 1:1
  • 9:16
  • 3:4
I2V モードでは aspect_ratio は無視されます(出力比率は入力画像によって決まります);Omni が ref_videos を伴う場合も同様に無視されます。
prompt_optimizer
boolean
デフォルト:"true"
プロンプトを自動最適化するかどうか有効にすると、システムが自動的にプロンプトを最適化し、より良い生成結果を得られるようにします。

I2V 専用フィールド

first_frame_image
string
動画の先頭フレーム画像 URL(jpg / jpeg / png / gif / bmp)指定すると、この画像が動画の 先頭画面 として使用されます。
end_frame_image
string
動画の末尾フレーム画像 URL(jpg / jpeg / png / gif / bmp)指定すると、この画像が動画の 末尾画面 として使用されます。first_frame_image と組み合わせて先頭・末尾フレーム制御が可能です。
mid_frame_images
object[]
中間キーフレームリスト、最大 6 個。各要素の構造は以下のとおり:

Omni 専用フィールド

ref_images
object[]
参照画像リスト(すべての要素の type は一致する必要があります)。各要素の構造は以下のとおり:
ref_videos
object[]
参照動画リスト、最大 1 個。各要素の構造は以下のとおり:

サポートされる生成シーン

以下のシーンは skyreels-v4-fastskyreels-v4-std両方 でサポートされます:
シーンモード必須パラメータ代表的な用途
テキストから動画T2Vpromptテキスト駆動でコンセプトショットを素早く生成
画像から動画 - 先頭フレームI2Vfirst_frame_image静止画を動画化、開始画面を指定
画像から動画 - 末尾フレームI2Vend_frame_image動画の終了画面を指定
画像から動画 - キーフレームI2Vmid_frame_images(1~6)先頭+末尾+中間キーフレームで分鏡ペースを精密制御
Omni 単一/複数被写体参照Omniref_imagestype=imageキャラクター一貫性、複数被写体の同時登場
Omni グリッドコラージュOmniref_imagestype=grid、1 枚)ステップ解説動画(チュートリアル、レシピ、操作デモ)
Omni モーション参照Omniref_videostype=reference参照動画の動作、被写体、スタイルを再現
Omni 動画拡張Omniref_videostype=extend既存動画から続きを生成
Omni 音声同期Omniref_imagestype=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 フィールドは同時使用不可

レスポンス

code
integer
レスポンスステータスコード、成功時は 200
data
array
レスポンスデータ配列

リクエスト例

ケース 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 が返されます。タスク状態取得 エンドポイントを使用して生成の進捗と結果を照会してください。