画像・動画生成
最終更新
DGX SparkでCosmos 3 Edgeを使い、画像から短い動画を作る
静止画とJSONプロンプトを渡すと、生成した短いMP4が返ります。
Cosmos 3 EdgeのGeneratorは、参照画像と動画向けのJSONプロンプト1から短い動画を生成します。このガイドでは、ARM64対応を確認したvLLM-OmniコンテナをDGX Sparkで起動し、公開I2Vサンプル画像をローカルAPI2へ送り、返されたMP4を保存します。モデルカードのDGX Spark時間は189フレーム3の公開測定で、実行経路ごとの数値として読みます。Reasonerの文章生成や行動推定とは別のタスクです。
画像から短いMP4を作るモデルです
Cosmos 3 Edgeは、テキスト・画像・行動入力から物理世界を生成・解釈するNVIDIAのワールドモデルです。このガイドではGeneratorの画像→動画(I2V)経路を使います。静止画1枚と、場面の続きを示す構造化JSONプロンプトを送ると、APIがMP4を返します。ロボット動作の予測や動画理解を行うReasoner要求は別の処理なので、ここで扱う動画生成時間と比較しません。Cosmos 3 Edgeモデルカード
DGX SparkはGB10を搭載したARM64 Linuxシステムです。vLLM-Omni公式Cosmos3コンテナのイメージマニフェストにはlinux/arm64があるため、この構成ではそのプラットフォームを選びます。APIの公開先は127.0.0.1だけにし、要求時に画像ファイルを直接アップロードします。vLLM-Omni Cosmos3-Edgeレシピ

DockerでARM64サーバーをローカル起動します
DGX SparkにNVIDIAドライバーとNVIDIA Container Toolkitを用意します。標準ガードレールを使うため、先にCosmos Guardrailのモデルページで条件を読み、自分のアカウントでアクセス承認を得てください。続いて下のコマンドでPython環境を作り、ログインしてサーバーを起動します。ログにApplication startup completeが表示されたら要求を送れます。DGX Spark User Guide
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -U huggingface_hub requests
hf auth login
cosmos_cache="${HF_HOME:-$HOME/.cache/huggingface}"
mkdir -p "$cosmos_cache"
docker run --rm --name cosmos3-edge --platform linux/arm64 \
--runtime nvidia --gpus all --ipc=host \
-p 127.0.0.1:8000:8000 \
-v "$cosmos_cache:/root/.cache/huggingface" \
vllm/vllm-omni:cosmos3 \
vllm serve nvidia/Cosmos3-Edge --omni --host 0.0.0.0 --port 8000 \
--init-timeout 1800サーバーを起動したまま、同じ作業フォルダーで2つ目の端末を開きます。仮想環境4を再度有効にし、サンプル画像とJSONプロンプトだけを取得します。動画の確認にはFFmpegに含まれるffprobeが必要です。
source .venv/bin/activate
hf download nvidia/Cosmos3-Edge --include "assets/*" --local-dir Cosmos3-Edgeサンプル画像と構造化プロンプトを送信します
ダウンロードしたサンプルフォルダーへ移動し、次のPythonクライアントを実行します。モデルカードのJSONプロンプトとネガティブプロンプトを読み込み、画像をmultipart要求でローカルサーバーへ送ります。832×480、121フレーム、24fpsを指定し、返されたデータを現在のフォルダーにcosmos3_edge_i2v.mp4として保存します。モデルカードのI2V要求形式
cd Cosmos3-Edge
python - <<'PY'
import json, mimetypes, requests
from pathlib import Path
prompt = json.load(open('assets/example_i2v_prompt.json'))
negative = json.load(open('assets/negative_prompt.json'))
image = Path('assets/example_i2v_input.jpg')
data = {
'prompt': json.dumps(prompt),
'negative_prompt': json.dumps(negative),
'size': '832x480',
'num_frames': '121',
'fps': '24',
'num_inference_steps': '20',
'guidance_scale': '6.0',
'max_sequence_length': '4096',
'flow_shift': '12.0',
'seed': '0',
'extra_params': json.dumps({
'use_resolution_template': False,
'use_duration_template': False,
'guardrails': True,
}),
}
mime = mimetypes.guess_type(image.name)[0] or 'image/jpeg'
with image.open('rb') as file:
response = requests.post('http://127.0.0.1:8000/v1/videos/sync', data=data, files={'input_reference': (image.name, file, mime)}, headers={'Accept': 'video/mp4'}, timeout=1800)
response.raise_for_status()
output = Path('cosmos3_edge_i2v.mp4')
output.write_bytes(response.content)
print(f'Saved {output} ({len(response.content):,} bytes)')
PY
ffprobe -v error -select_streams v:0 -show_entries stream=width,height,nb_frames,r_frame_rate -of default=noprint_wrappers=1 cosmos3_edge_i2v.mp4サーバーが動画データを返し、クライアントがファイルに保存します。完了後にffprobeで寸法とフレーム数を調べると、API要求がMP4出力まで完了したか確認できます。

公開生成時間は同じモデルの別々の記録として読みます
DGX Sparkでは同じ画像→動画の処理でも、実行エンジンによって時間が変わります。下表は189フレーム生成の公開記録です。上の短い実行例は121フレームなので、時間とフレーム数を合わせて確認してください。
| 実行経路 | DGX Spark I2V時間 |
|---|---|
| vLLM-Omni | 165.96秒 |
| PyTorch | 179.80秒 |
DGX Spark・Generator I2V・480p・189フレーム・単一統合プラットフォーム・batch size5 1。測定条件と結果
サーバーが起動しない場合は、docker infoでNVIDIAランタイム6を確認します。422応答になったらサーバーログと要求フィールドを見直し、JPEGと公式JSONがCosmos3-Edge/assets/にあるか確認してください。ffprobeがMP4ストリームを表示すれば、出力ファイルの保存を確認できます。

用語の注釈
プロンプト — モデルに送る入力文です。生成モデルでは作りたい結果を説明する文になり、出力の構成や内容を大きく左右します。
本文に戻るAPI — 別のコードからプログラムの機能を呼び出すための決められたインターフェースです。
本文に戻るフレーム — 動画を構成する1枚の画像です。
本文に戻るPython仮想環境 — プロジェクトごとにPythonパッケージを分けて導入する環境です。パッケージのバージョンの衝突を減らせます。
本文に戻るバッチサイズ — 1回の処理単位にまとめる入力またはリクエストの数です。
本文に戻るランタイム — プログラムの実行時に必要な機能を提供するソフトウェア環境です。ローカルAIではモデル実行エンジンを指すこともあります。
本文に戻る
よくある質問
- この記事で最初に確認すべきことは何ですか?
- Cosmos 3 EdgeのGeneratorは、参照画像と動画向けのJSONプロンプトから短い動画を生成します。このガイドでは、ARM64対応を確認したvLLM-OmniコンテナをDGX Sparkで起動し、公開I2Vサンプル画像をローカルAPIへ送り、返されたMP4を保存します。モデルカードのDGX Spark時間は189フレームの公開測定で、実行経路ごとの数値として読みます。Reasonerの文章生成や行動推定とは別のタスクです。
- 条件と出典はどこで確認できますか?
- Cosmos 3 Edgeは、テキスト・画像・行動入力から物理世界を生成・解釈するNVIDIAのワールドモデルです。このガイドではGeneratorの画像→動画(I2V)経路を使います。静止画1枚と、場面の続きを示す構造化JSONプロンプトを送ると、APIがMP4を返します。ロボット動作の予測や動画理解を行うReasoner要求は別の処理なので、ここで扱う動画生成時間と比較しません。[Cosmos 3 Edgeモデルカード](https://huggingface.co/nvidia/Cosmos3-Edge)
