Skip to content

Simulation Transfer inference

This recipe generates video from a caption and one precomputed edge, blur, depth, or segmentation control using nvidia/Cosmos3-Nano-Sim-Transfer. The causal model generates video autoregressively while retaining control and generated-latent history.

Compiled inference includes numerical-preservation safeguards without an additional option. The recipe below keeps its existing eager settings.

Follow the framework setup instructions first. Use one NVIDIA GPU with sufficient memory and a CUDA dependency group matching your driver. The control-video decoder requires PyAV 18. Run commands below from the framework repository root with its virtual environment active.

Checkpoint and cookbook inputs

Authenticate to Hugging Face with read access to the model repository and download the exported checkpoint:

hf download nvidia/Cosmos3-Nano-Sim-Transfer \
  --local-dir checkpoints/Cosmos3-Nano-Sim-Transfer

Pass this local directory to --checkpoint-path. Its exported configuration defines the model architecture and sampling schedule; no checkpoint export is needed. Required tokenizer and VAE artifacts may be downloaded separately by their registered loaders.

The four input specifications, captions, and control videos live in the Cosmos Transfer cookbook. Point COSMOS_COOKBOOK_ROOT at the cookbook root, .agents/skills in this checkout, and materialize its Git LFS assets:

export COSMOS_COOKBOOK_ROOT=/absolute/path/to/cosmos-framework/.agents/skills
export SIM_TRANSFER_ROOT="$COSMOS_COOKBOOK_ROOT/cookbooks/cosmos3/simulation/transfer"
git -C "$COSMOS_COOKBOOK_ROOT" lfs install --local
git -C "$COSMOS_COOKBOOK_ROOT" lfs pull

The JSON input paths resolve relative to each specification, including its references to the shared Generator Transfer assets. Keep that cookbook directory structure intact. Each specification explicitly supplies the model-specific sample settings, so this recipe does not require changing the framework's generic defaults.

Run inference

export LD_LIBRARY_PATH=
export COSMOS_TRAINING=0
python -m cosmos_framework.scripts.inference \
  -i "$SIM_TRANSFER_ROOT/specs/sim_transfer_depth.json" \
  -o outputs/sim-transfer-depth \
  --checkpoint-path checkpoints/Cosmos3-Nano-Sim-Transfer \
  --seed 42 --no-use-torch-compile --condition-stream-encode \
  --kv-cache-inference-size 30 --attention-sink-size 3 \
  --dp-shard-size 1 --cp-size 1 --cfgp-size 1 --no-guardrails --debug

Use sim_transfer_edge.json, sim_transfer_blur.json, or sim_transfer_seg.json for the other controls, with a fresh output directory for each run. These samples request 121 frames at 30 FPS. Depth, edge, and segmentation use an 832 × 480 canvas; blur uses 736 × 544. The 480 resolution tier selects an aspect-ratio-specific canvas, rather than requiring every output to be 480 pixels high.

Keep num_frames, max_frames, and num_video_frames_per_chunk equal when adapting the specifications. Supply enough control frames and a pre-upsampled caption, with prompt_upsampling: false. The native recipe uses one control per sample, autoregressive generation, guidance: 1, control_guidance: 1, and the checkpoint's fixed four-step SDE schedule. num_steps: 4 and shift: 5 in these specifications are compatibility fields; the fixed sampler does not apply the RF shift again.

The command selects incremental control encoding, a 30-latent-frame history, three attention-sink frames, and eager execution on one GPU. The dedicated Transfer path does not invoke guardrails; the command makes that setting explicit. See the native cookbook recipe for input requirements, supported canvases, and control-quality checks.

Validate the output

For each run, verify that sample_outputs.json reports success, vision.mp4 decodes for all 121 requested frames at 30 FPS, and the generated video follows the spatial control through the final chunk. Also inspect temporal consistency and visible artifacts across the full clip.