承認済みの人物写真1枚から、使える動画ショット2本を作ります。ひとつは静かでゆっくりした寄りのショット、次は周囲を見せるゆっくりしたカメラ横移動です。どちらも MiniMax H3 の画像から動画、768p、5秒、1クリップ $0.185 で始めてください。 サウンドトラックをオフにしたいときや長く動かしたいときは Seedance 2.5 へ、納品が4Kで必要なときは LTX 2.5 へ切り替えます。各ショットには控えめな動作を1つ、抑制したカメラ移動を1つ、そして変えてはいけない項目のリストを1つだけ決めます。
ルートを選ぶ
| 必要なもの | ルート | 開始時の設定 | 5秒 |
|---|---|---|---|
| 最も安い実用的な下書き | MiniMax H3 | resolution: "768p"; 4〜15秒 | $0.185 |
| オフにできるサウンドトラック、または30秒までのクリップ | Seedance 2.5 | resolution: "720p", generate_audio: false; 4〜30秒 | $1.3865 |
| 20秒までの4K納品 | LTX 2.5 | resolution: "4k"; 5〜20秒 | $1.50 |
価格はすべて5秒あたりのクリップです。LTXは720pで $0.45 なので、4Kが納品の要件になるときだけその分を支払ってください。Seedanceは音をオンにしてもオフにしても同じ価格です。
表に出ていないことが3つあります。
- 音。 H3とLTXは常に生成されたサウンドトラックを返し、それをオフにする項目がありません。
generate_audioスイッチがあるのはSeedanceだけです。 - フレームの形。 画像から動画を作るとき、3つのどれも画面比を選べません。出力は元画像の形をそのまま踏襲するので、アップロードの前にポートレートを納品フォーマットに合わせて切り詰めるか広げてください。
- 大人向けのプロジェクト。 3つとも架空の成人の元画像を受け付けます。Seedanceの入力チェックは実際の人物を識別できる写真を通さないことがあります(請求は発生しません)。そのため、架空または許諾済みの元画像を使ってください。本格的な大人向けの作業には専用の MiniMax H3 Spicy と Seedance 2.5 Spicy ルートがあります。
動きの余白を残した元画像を選ぶ
2本のショットは同じ承認済みのスチルから始まるので、顔も衣装も光も同じ状態から始まります。後のフレームはその元画像と突き合わせて確認してください。両目が見え、髪が枠の中に入って、肩が背景から抜けているものを選んでください。被写体が向いている側に余白を空けてください。1本目の視線はそこに落ち、2本目ではカメラがその周囲を見せます。
私たちの例は、サテン地のトップスに黒いブレザーを羽織って、手をポケットに入れた架空の成人女性で、夕暮れの川沿いの街を見下ろすテラスに立っています。暖かい光が左から彼女の顔に差し込み、彼女は右側の開けた空間を見ています。画像にはすでに映像に必要なものがすべて入っています。同じクリップで雨を足し、コートを変え、頭の向きを変え、新しい場所まで作り出させると、アニメーションが作り直しになってしまいます。
静止画にブラーや二重に写った装飾品、手すりと融合した手があると、動かしたときにさらに悪化します。まずスチルを修正してください。手は動きに含めないでください。この元画像では手はポケットの中なので、動かす必要はありません。

ショット1:静かな寄り
本当のクローズアップが必要なら、アップロードの前に同じ承認済みスチルの胸上アップ版を納品の比率に合わせて切り出してください。寄りだけでは腰上の枠がわずかに狭くなるだけです。プロンプトは動きだけを書いてください。元画像がすでに人物と場所を決めています。各プロンプトは被写体の動作を1つ、カメラ移動を1つ、固定したままのもの、除外するものを明示します。承認済みのスチルで MiniMax H3 に次のプロンプトを使ってください。
A restrained cinematic portrait of the adult woman in the supplied image. She remains in place, breathes naturally and blinks slowly, then makes one small eye movement toward the open space on screen right, followed by a subtle closed-mouth smile. Very slow camera push-in. Preserve her face, black blazer, hairstyle and the warm terrace light. No head turn, no walking, no new objects or text. No speech.
Playground で試す
- プロンプトを入れた MiniMax H3 画像から動画を開く(またはページを開いて Prompt に貼り付けてもかまいません)。Playground タブの Form ビューに留まり、ログインして入金済みのアカウントで実行してください。
- 承認済みのスチルを Input image の下に追加します。
- Resolution を 768p、Duration を 5 に設定します。
- 実行し、同じスチルで2本目のプロンプトを使って繰り返します。
寄りは、顔の新しい面を見せることなく動きを加えます。それでも目や顎が変わるなら、その指示を外してください。固定カメラ、呼吸、1回のまばたきだけを求めてください。
ショット2:周囲を見せるゆっくりした横移動
2本目の役割は異なります。顔は静かに保ち、カメラが街の景色を見せます。手前の手すり、中央の女性、奥に灯る街の3つのレイヤーが、横移動中に互いにずれていきます。それがズームではなくカメラ移動として読める理由です。

同じ元画像と同じ設定を使います。
A medium portrait of the adult woman from the supplied image on the same dusk terrace. The camera slides slowly and steadily a short distance to the right along the railing, revealing more of the lit city on screen right. She stays in frame, holds her pose and shifts her gaze slightly toward the city lights. Keep her face, black blazer and hairstyle unchanged, and the warm light constant. No orbit, no walking, no speech, no text.
動きのラベルだけでなく、その動きで見えるものを具体的に書いてください。カメラの方向性がモデルを混乱させるなら、「彼女の右肩のとなりに街の景色がもう少し見える」へと簡単にします。
この元画像からカメラオービットや真横の横顔を要求しないでください。3/4の向きの画なので、反対側の頬へ動くには2枚目の承認済みスチルが必要です。
コードから呼び出す
Python SDK をインストールし(pip install spicyapi)、SPICY_API_KEY を設定して、承認済みのスチルから1本目を実行します。費用は $0.185 です。
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient()
still = client.upload_file("./approved-still.png") # local file -> spicy:// address
task = client.create_task(
model="minimax/h3/image-to-video",
input_data={
"image_url": still["uri"],
"prompt": (
"A restrained cinematic portrait of the adult woman in the supplied image. "
"She remains in place, breathes naturally and blinks slowly, then makes one small "
"eye movement toward the open space on screen right, followed by a subtle "
"closed-mouth smile. Very slow camera push-in. Preserve her face, black blazer, "
"hairstyle and the warm terrace light. No head turn, no walking, no new objects "
"or text. No speech."
),
"resolution": "768p",
"duration_seconds": 5,
},
idempotency_key=str(uuid.uuid4()), # new key per new request; reuse only to retry the same one
)
final = client.wait_for_terminal(task["taskId"])
print(output_assets(final)[0]["url"])2本目は横移動のプロンプトに差し替えてください。アップロード、待機、エラーは Python SDK リファレンス を参照してください。
エージェントに実行させる
クリップをアシスタントに作らせたい場合、公式ツールは価格を表示して、有料の実行前に確認を求めます。
- CLI。
spicyapi files upload ./approved-still.pngを実行し、返却されたspicy://アドレスをinput.jsonのimage_urlにして、spicyapi tasks create --model minimax/h3/image-to-video --input-file input.json --waitを実行します。npx @spicyapi/cliはインストールなしで使えます。CLI ドキュメント も確認してください。 - MCP サーバー。 MCP サーバー を追加し、手元のスチルで push-in を依頼します。アシスタントは
spicyapi_upload_fileでファイルをアップロードし、spicyapi_task_createを呼び出して価格の確認で停止し、続いてspicyapi_task_waitを呼び出します。 - Skill。
npx skills add spicyapi-ai/spicy-skillで Agent Skill を入れると、コーディングアシスタントがフィールド名を推測せずに実際のモデルスキーマを読みます。
2本のクリップをつなげる
寄りを先に、横移動を後に置きます。1本目は画面右への視線で終え、2本目は彼女がすでにその方向を見ている状態から始めて、カットが同じ視線の向きに来るようにします。5秒全体ではなく、各クリップのきれいな2〜3秒を使ってください。
サウンドトラックは1つにまとめます。H3かLTXを使った場合は、クリップ自身の音声をミュートし、下に音源を1つだけ置きます。Seedanceなら生成音声をオフにして同じことをします。ショットごとに違う環境音がほしい場合は、Seedanceで生成音声をオンにして、「quiet distant street ambience, no speech」のように一文を追加してください。
3つのルートはいずれも任意のクロージングフレームを受け取ります。特定の承認済み画像で終える必要があるときに役立ちます。ただし、長いクリップほどその画像からずれるため、最初の下書きでは外しておきましょう。
失敗したものだけ直す
| 目に見える失敗 | 次の対応 |
|---|---|
| 寄りの途中で目や顎が変わる | 元のスチルに戻り、寄りを固定カメラと1回のまばたきに置き換えます。 |
| 笑顔が不安定な歯を見せる | 口を閉じた控えめな笑顔を求め、発話を外します。 |
| 髪が頬を這う | 風と頭の動きを外し、呼吸だけを残します。 |
| 顔がフレーム外に出る | 生成前に元画像の余白を足してください。画面比を調整する項目はモデル側にありません。 |
| 横移動中に手すりや看板が曲がる | 移動を遅く短くするか、看板を元画像から切り抜いてください。文字は確実に保持されません。 |
| 2本のクリップで光や色が違う | 弱い方を同じスチルから作り直してください。新しい元画像に差し替えないでください。 |
| 1秒だけは良く、以降がずれる | 安定した部分だけ切り出して、短い差し込みとして使います。 |
H3の5秒を4本下書きすると $0.74、2ショットそれぞれ4本なら $1.48 です。下書き1本から取れる安定した2秒でも、カットには十分使えることがあります。Seedance 2.5 と LTX 2.5 ではシードを固定してプロンプトだけを変え、何が変わったかを確認できるようにします。まったく同じクリップが保証されるわけではありません。H3 にはシードの設定がないので、勝ったプロンプトをそのまま残して引き直してください。








