はじめに
daVinci-MagiHuman 画像から動画 は、写真から動きと声を持つクリップを作ります。daVinci-MagiHuman は、Sand.ai と SII-GAIR によるオープンな 150 億パラメータのモデルで、映像とサウンドトラックを一緒に生成します。写真が開始フレームになり、プロンプトで次に何が起きるか、引用符で何を言うかを書きます。このエンドポイントは、256p、720p、1080p のいずれかで、16:9 か 9:16 の 5〜10 秒を返します。手持ちの音声や歌を audio_url として受け付けます。
手元の素材に合わせてモードを選ぶ
| 手元にあるもの | モード |
|---|---|
| 文章による説明 | daVinci-MagiHuman テキストから動画 |
| 出発点にする写真(手持ちの音声の有無を問わず) | daVinci-MagiHuman 画像から動画 |
主な機能とハイライト
開始フレームが動き、話し出す
クリップは画像から始まります。音声ファイルなしの当社の試行では、彼女は海のほうから振り向き、髪を耳にかけて、引用されたセリフを話しました。サウンドトラックの文字起こしはセリフと一語一句一致しました。
手持ちの声
audio_url を指定すると、声を作る代わりに、提供された音声と同期して動画が生成されます。5 秒の話し声のクリップを使った当社の試行では、口元は音声に従い、半分の微笑みと眉の動きも見られ、顔は入力したポートレートに近いまま保たれました。
当社の計測結果
720p・16:9 で 2 本の画像から動画のクリップを生成しました。どちらも 5.0 秒で、どちらも約 1358 x 678、25 fps でした。720p は 1280 x 720 ちょうどではありません。音声なしの試行は約 1 分 45 秒、5 秒の話し声を audio_url で指定した試行は約 3 分 7 秒かかりました。このエンドポイントでは、1080p、9:16、クリップと長さの違う録音は試していません。
解像度と画面の形
resolution は 256p、720p(既定)、1080p のいずれかで、aspect_ratio は 16:9(既定)か 9:16 です。モデルは低い基本解像度で生成し、高い段階は超解像の工程で作られます。解像度が高いほど 1 秒あたりの料金は上がります。音声とアスペクト比によって料金は変わりません。
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
prompt | はい | 写真のあとに起きることを書いてください。人物が何をするか、そして引用符の中で何を言うかです。 3 文字以上 · 5000 文字以内 |
image_url | はい | 開始フレームです。公開されていて直接ダウンロードできるリンクを指定してください。 |
audio_url | いいえ | 任意です。音声または歌のファイルへの公開リンクです。 |
aspect_ratio | いいえ | 16:9(既定)か 9:16 です。当社の画像から動画の試行はすべて 16:9 でした。 |
resolution | いいえ | 256p、720p(既定)、1080p のいずれかです。解像度が高いほど 1 秒あたりの料金は上がります。 |
duration_seconds | いいえ | 5〜10 秒、既定は 5 秒です。秒数ごとに課金されます。 |
seed | いいえ | 任意の整数です。同じ seed と同じ入力では、似た結果になりますが、同一になることは保証されません。 |
料金
リクエストした長さの秒数ごとに課金されます。1 秒あたりの料金は解像度によって変わり、音声とアスペクト比では変わりません。失敗したリクエストには課金されません。
| 仕様 | 料金 |
|---|---|
| $0.024 / 秒 |
| $0.048 / 秒 |
| $0.072 / 秒 |
ユースケース
録音で話すポートレート
ヘッドショットと音声ファイルを組み合わせると、口元は録音に従い、顔は写真に近いまま保たれます。
セリフを 1 つ話すキャラクター
開始フレームの画像と短い引用セリフで、本格的に作り込む前に、キャラクターの見た目と声を確かめられます。
写真からの縦型クリップ
フィードやストーリーズには 9:16 を選んでください。このエンドポイントの当社の試行はすべて 16:9 だったので、最初のクリップで確認してください。
プロンプトガイドと実践のヒント
次の瞬間を書く
写真が撮られたあとに、その人が何をするかを書きます。彼女が振り向き、髪を耳にかけ、話す、という具合です。当社の試行では 3 つとも起こりました。
手持ちの音声なら、言葉は書かない
声は audio_url から来るので、プロンプトでは雰囲気、動き、光を指定できます。例:he speaks low and teasing, a slow half smile and a raised eyebrow, warm amber light。
録音をクリップに合わせる
当社の試行では 5 秒の録音を 5 秒のクリップに使いました。duration_seconds より短い録音や長い録音は試していないので、設定した長さに合わせて音声を切ってください。
音声なしなら、セリフを引用する
その人が言うことを引用符で囲めば、モデルがそれを話します。当社は英語で試しました。
モデルの選び方
すでに声の録音と肖像写真があり、その音声で動く最長 300 秒のクリップが欲しい場合は、OmniHuman 2.0 を使ってください。Kling Avatar 2.0 も同じ考え方です。書いたセリフをモデルに話させたい場合、または 9:16 のクリップが必要な場合は、daVinci-MagiHuman を選んでください。
API クイックスタート
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "sand-ai/davinci-magihuman/image-to-video",
"input": {
"aspect_ratio": "16:9",
"duration_seconds": 5,
"image_url": "https://example.com/reference.png",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "720p"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
認証、完全なスキーマ、ポーリング、エラー処理は API リファレンスを参照してください。




