NVIDIA/cosmos

▲ 4 stars today★ 11,824⑂ 879

NVIDIA Cosmos is an open platform of world models, datasets, and tools that enables developers to build Physical AI for robots, autonomous vehicles, smart infrastructure, and more.

About NVIDIA/cosmos

NVIDIA/cosmos is an open-source project on GitHub, mainly written in Jupyter Notebook. NVIDIA Cosmos is an open platform of world models, datasets, and tools that enables developers to build Physical AI for robots, autonomous vehicles It currently holds 11,824 stars and 879 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).

Project Overview

AI Homed tracks it on the Today's Trending board, currently at rank #86 with 4 new stars today.

GitHub Repository Details

Repository NVIDIA/cosmos · default branch - · size 0 KB · watchers 0 · source: GitHub REST API and repository README

README

Cosmos

https://github.com/NVIDIA/cosmos/blob/HEAD/NVIDIA Cosmos

Website | Framework | Agent Skills | Models

Table of Contents

Introduction

NVIDIA Cosmos is an open platform of world models, datasets, and tools that enables developers to build Physical AI for robots, autonomous vehicles, smart infrastructure, and more.

Cosmos 3

Cosmos 3 is our newest model family [[Models]](https://huggingface.co/collections/nvidia/cosmos3) [[Report]](https://research.nvidia.com/labs/cosmos-lab/cosmos3/technical-report.pdf) [[Website]](https://research.nvidia.com/labs/cosmos-lab/cosmos3/). It is a suite of omnimodal world models designed to jointly process and generate language, images, video, audio, and action sequences within a unified Mixture-of-Transformers architecture. By supporting highly flexible input-output configurations, it seamlessly unifies critical modalities for Physical AI — effectively subsuming vision-language models, video generators, world simulators, and world-action models into a single framework.

Cosmos 3 exposes two runtime surfaces:

| Surface | Inputs | Outputs | Use Cases | |----------|----------|----------|----------| | Reasoner | Text, vision | Text | World understanding, grounding, physical reasoning, task planning, action forecasting, embodied agent reasoning, and autonomous system decision making | | Generator | Text, vision, sound, action | Vision, sound, action | World generation, world simulation, future prediction, synthetic data generation, policy learning, and robot training |

Key Capabilities

Model Architecture

Cosmos 3 model architecture

Cosmos 3 is an omnimodal world model built on a unified Mixture-of-Transformers (MoT) architecture that combines an autoregressive (AR) transformer for reasoning with a diffusion transformer (DM) for multimodal generation. In Reasoner Mode, language and visual understanding tokens are processed through causal self-attention, enabling next-token prediction for tasks such as perception, planning, and world reasoning. In Generator Mode, noisy image, video, audio, and action tokens are denoised through full attention, allowing the model to jointly generate coherent multimodal outputs. Both modes share the same transformer architecture, multimodal attention layers, and a unified 3D multi-dimensional rotary position embedding (mRoPE) representation that encodes spatial and temporal structure across modalities, enabling consistent reasoning over images, videos, audio streams, and action trajectories.

Model Family

Cosmos3-Super Cosmos3-Nano Cosmos3-Edge
Size 64B 16B 4B
Recommended Hardware Data Center: H200 / B200 / GB200 Data Center and Workstation: RTX Pro 6000 / H100 / B200 Edge and On-Device: Jetson AGX Orin / Thor / RTX Pro 6000
Input Text / Image / Video / Action Text / Image / Video / Action Text / Image / Video2 / Action
Output Text / Image / Video / Sound1 / Action Text / Image / Video / Sound1 / Action Text / Image / Video / Action
Suited For Data center deployment; high quality synthetic data generation; teacher model for distillation Flexible hardware range; balanced speed and quality; strong base model to post-train Edge deployment; real-time robotic policy; real-time visual reasoning
Model Variants SoTA image/video generation: SoTA quality with 17-25x speed up: Less memory, higher speed:
  • FP8/NVFP4 (coming soon)
SoTA World Action Model: Less memory, higher speed:
  • FP8/NVFP4 (coming soon)
Real-time World Action Model: Less memory, higher speed:
  • FP8/NVFP4 (coming soon)

1 The models generate sound along with the video, not standalone.
2 Cosmos3-Edge currently doesn't support video-to-video transfer.

Supported Generation Settings

| Setting | Supported values | | ------------------| --------------------------------------- | | Resolution tiers | 256p, 480p, 720p, default=480p | | Aspect ratios | 16:9, 4:3, 1:1, 3:4, 9:16, default=16:9 | | Frame rates | 10, 16, 24, and 30 FPS, default=24 | | Frame count | 5 to 300 frames, default=189 | | Precision | BF16 tested | | Operating system | Linux | | GPU architectures | NVIDIA Ampere, Hopper, and Blackwell |

Cosmos3-Edge only supports 256p and 480p resolution, 12–30 fps, and 50–150 frames.

Input and Output

| Spec | Value | | --- | --- | | Input types | Text, text + image, text + video, text + image + action | | Input formats | Text string, JPG/PNG/JPEG/WEBP image, MP4 video, JSON action array | | Vision conditioning | 720p uses 1280x720, 480p uses 832x480, and 256p uses 320x192. Video conditioning uses 5 frames at the matching resolution. | | Action conditioning | Supported action dimensions depend on the embodiment, including camera motion (9D), autonomous vehicle (9D), egocentric motion (57D), single-arm robot (10D, DROID/UR/Fractal/Bridge/UMI), dual-arm robot (20D, dual DROID arms), humanoid robot (29D, AgiBot). | | Output types | Image, video, sound, action state, text | | Output formats | JPG image, MP4 video, AAC sound stream muxed into MP4, JSON action values, text string | | Prompt length | Fewer than 300 words is recommended for world-generation prompts | | Sound output | Stereo AAC at 48 kHz when generated with video |

Use Cases

Generator

Generator examples produce non-text outputs conditioned by text, vision, and action inputs.

| Workflow | Inputs | Outputs | What it demonstrates | | --- | --- | --- | --- | | Text-to-image | Text | Vision | Robotics laboratory scene generation from a text prompt | | Text-to-video | Text | Vision | Industrial video generation from a dense scene description | | Text-to-video with sound | Text | Vision, sound | Synchronized visual and audio generation | | Image-to-video | Text, image | Vision | Robot manipulation animation from a starting image and prompt | | Image-to-video with sound | Text, image | Vision, sound | Image-conditioned motion with synchronized audio | | Video-to-video | Text, video | Vision | Prompt-guided transformation of a robot manipulation video | | Video-to-video with sound | Text, video, sound | Vision, sound | Prompt-guided transformation of a robot manipulation video | | Forward dynamics | Text, vision, action | Vision | Future-state rollout from action and visual context | | Action policy | Text, vision | Action, vision | Action trajectories and rollout video from context |

Generator prompt upsampling expands short scene descriptions into dense structured prompts. The current examples use these sampling defaults:

| Parameter | Value | | --- | ---: | | max_tokens | 20000 | | temperature | 0.7 | | top_p | 0.8 | | top_k | 20 | | repetition_penalty | 1.0 | | presence_penalty | 1.5 | | seed | 3407 |

Reasoner

Reasoner examples produce text outputs from text and vision inputs. It follows Qwen3-VL-compatible message conventions for image and video inputs.

| Workflow | Inputs | Outputs | What it demonstrates | | --- | --- | --- | --- | | Caption | Video | Text | Detailed video captioning | | Temporal localization | Video, query | Text or JSON | Event detection, timestamp query, and interval question answering | | Embodied reasoning | Video, question | Text | Next-action prediction for robotics and assisted-task settings | | Common-sense reasoning | Video, question | Text | Physical common-sense judgment with visible context | | 2D grounding | Image, prompt | JSON boxes | Bounding-box localization from an image prompt | | Describe anything | Image, marked subjects | JSON or text | Attribute captioning for marked subjects | | Action CoT | Image or video, prompt | Text or JSON | Trajectory prediction and driving-scene chain-of-thought | | Physical Plausibility Analysis | Video, prompt | Label | Physical plausibility classification | | Situation Understanding | Video, question | Text | Situation understanding and likely-next-action prediction |

Reasoner examples use the following sampling settings:

| Parameter | Without reasoning | With reasoning | | --- | ---: | ---: | | top_p | 0.8 | 0.95 | | top_k | 20 | 20 | | repetition_penalty | 1.0 | 1.0 | | presence_penalty | 1.5 | 0.0 | | temperature | 0.7 | 0.6 |

Use this basic message shape for text + vision requests:

[
  {
    "role": "system",
    "content": [{"type": "text", "text": "You are a helpful assistant."}]
  },
  {
    "role": "user",
    "content": [
      {"type": "video_url", "video_url": "https://example.com/video.mp4"},
      {"type": "text", "text": "List the notable events with approximate timestamps."}
    ]
  }
]

For explicit reasoning, append this format instruction to the user prompt:

Answer the question using the following format:

Your reasoning.

Write your final answer immediately after the tag.

Quickstart

Before running examples, create a Hugging Face access token and then authenticate locally:

uvx hf@latest auth login

Set HF_HOME if you want to use a shared cache or a disk with more space. NIM examples use an NGC API key (NGC_API_KEY) instead of Hugging Face authentication.

Generator requires the Guardrail. Request access to the gated nvidia/Cosmos-1.0-Guardrail HF repository for Hugging Face based Generator paths. To disable the guardrail, set enable_safety_checker=False (Diffusers), TRTLLM_DISABLE_COSMOS3_GUARDRAILS=1 or use_guardrails: false through extra_params (TensorRT-LLM), guardrails: false (vLLM-Omni extra_params/extra_args), or --no-guardrails (Cosmos Framework).

Generator with Diffusers

Expand Diffusers Generator setup, example, and modes

Use HuggingFace Diffusers for Cosmos 3 Generator research, training, and model development. This path loads the full Cosmos 3 checkpoint, including the reasoner path, diffusion generation path, and media tokenizers.

uv venv --python 3.13 --seed --managed-python
source .venv/bin/activate
uv pip install --torch-backend=auto \
  "diffusers @ git+https://github.com/huggingface/diffusers.git" \
  accelerate \
  av \
  cosmos_guardrail \
  huggingface_hub \
  imageio \
  imageio-ffmpeg \
  torch \
  torchvision \
  transformers

--torch-backend=auto lets uv detect your NVIDIA driver and install a matching CUDA build of torch/torchvision. Without it, uv pulls the newest CUDA wheel (currently cu130), which fails on pre-CUDA-13 drivers with The NVIDIA driver on your system is too old and torch.cuda.is_available() returns False. Pin an explicit backend instead if you prefer, e.g. --torch-backend=cu128 for a CUDA 12.8 driver.

A text-to-video run takes a while: the first run downloads Cosmos3-Nano, and diffusion is compute-heavy, running through every inference step before producing output. Long step times are expected, not a hang.

import torch
from diffusers import Cosmos3OmniPipeline
from diffusers.schedulers.scheduling_unipc_multistep import UniPCMultistepScheduler
from diffusers.utils import export_to_video

pipe = Cosmos3OmniPipeline.from_pretrained( "nvidia/Cosmos3-Nano", torch_dtype=torch.bfloat16, device_map="cuda", ) pipe.scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config, flow_shift=10.0)

result = pipe( prompt="A mobile robot navigates a warehouse aisle and stops at a shelf.", negative_prompt="", image=None, num_frames=189, height=720, width=1280, fps=24, num_inference_steps=35, guidance_scale=6.0, enable_sound=False, add_resolution_template=False, add_duration_template=False, generator=torch.Generator(device="cuda").manual_seed(1234), )

export_to_video(result.video, "cosmos3_t2v.mp4", fps=24, macro_block_size=1)

Diffusers modes:

| Mode | Use | | --- | --- | | text-to-image | Single-frame image generation with num_frames=1; returns a PIL image | | text-to-video | Video generation; 189 frames is about 7.9 seconds at 24 FPS | | image-to-video | Video generation conditioned on an input image | | text-to-video-with-sound | Video generation with sound for checkpoints that include sound modules |

See the Cosmos 3 Diffusers documentation for runnable examples of each mode.

Generator with vLLM-Omni

Expand vLLM-Omni Generator setup, endpoints, and request reference

Use vLLM-Omni for Generator production inference behind an OpenAI-compatible API. This integration loads the full Cosmos 3 checkpoint, including the Qwen3-VL-based reasoner path and the diffusion generation path. For understanding-only tasks that return text, use Reasoner with vLLM instead, which loads only the reasoner.

Compatibility status: Cosmos 3 Generator support is available in vllm-project/vllm-omni main for text-to-image, text-to-video, image-to-video, video-to-video, transfer-control video-to-video, video-with-sound, and action generation. For current setup and per-modality usage, see the maintained recipes: Cosmos3-Nano and Cosmos3-Super.

Start the server from the vllm/vllm-omni:cosmos3 Docker image. Mount any directory that contains local media or action files you want the server to read. The command below runs from /workspace, so repo-local paths such as cookbooks/... resolve inside the container.

docker run --runtime nvidia --gpus all \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  -v "$(pwd):/workspace" \
  -p 8000:8000 \
  --ipc=host \
  -w /workspace \
  vllm/vllm-omni:cosmos3 \
  vllm serve nvidia/Cosmos3-Nano \
  --omni \
  --model-class-name Cosmos3OmniDiffusersPipeline \
  --allowed-local-media-path / \
  --port 8000 \
  --init-timeout 1800

Cosmos3 checkpoints can exceed the default server init timeout; use --init-timeout 1800 on every vllm serve command in this section.

vLLM-Omni prints Application startup complete. when the API is ready.

For nvidia/Cosmos3-Super (the larger 64B model), split weights across GPUs and optionally offload layers to reduce peak memory: --tensor-parallel-size splits model weights across multiple GPUs, and --enable-layerwise-offload offloads transformer blocks between CPU and GPU with a latency tradeoff and extra CPU RAM use. For example, on four GPUs, add --tensor-parallel-size 4 --enable-layerwise-offload --init-timeout 1800 to the vllm serve command.

Additional parallelism options:

| Option | Use | | --- | --- | | --cfg-parallel-size 2 | Runs the positive and negative CFG branches in parallel on two GPUs. Set CFG strength with the request-level guidance_scale; do not use true_cfg_scale. | | --ulysses-degree 2 | Enables Ulysses sequence parallelism, splitting the sequence dimension across GPUs. |

When combining parallelism options, ensure the server has enough GPUs for the product of the enabled degrees (tensor_parallel_size × cfg_parallel_size × ulysses_degree).

To install vLLM-Omni from main instead of using the Docker image, create a venv and install, choosing the CUDA build that matches your driver. This path uses the same request formats as the Docker image; see the Cosmos3-Nano and Cosmos3-Super recipes for per-modality usage:

uv venv --python 3.13 --seed --managed-python
source .venv/bin/activate

CUDA 13 driver:

uv pip install --torch-backend=cu130 \ "vllm-omni @ git+https://github.com/vllm-project/vllm-omni.git@main"

CUDA 12.8 driver:

uv pip install --torch-backend=cu128 \

"vllm-omni @ git+https://github.com/vllm-project/vllm-omni.git@main"

Then run vllm serve nvidia/Cosmos3-Nano --omni --model-class-name Cosmos3OmniDiffusersPipeline --allowed-local-media-path / --port 8000 --init-timeout 1800 directly, without the docker run ... vllm/vllm-omni:cosmos3 wrapper.

Vision endpoints:

| Mode | Endpoint | Notes | | --- | --- | --- | | Text to image | POST /v1/images/generations | Returns a base64-encoded PNG | | Text to video | POST /v1/videos/sync | Blocks and returns the MP4 bytes directly | | Image to video | POST /v1/videos/sync | Upload the conditioning image with input_reference | | Video to video | POST /v1/videos/sync | Upload a source video and choose which frames stay as clean conditioning | | Transfer video to video | POST /v1/videos/sync | Pass one or more transfer hints such as edge, blur, depth, seg, or wsm in extra_params | | Video with sound | POST /v1/videos/sync | Add generate_sound=true to supported text-to-video or image-to-video requests |

Action modes use Cosmos 3 as a world model: they condition on an embodiment (domain_name) and exchange video and action sequences. Policy and inverse dynamics return a predicted action chunk, so send those through the asynchronous POST /v1/videos job and read the action data from the completed result; forward dynamics returns only video and can use synchronous POST /v1/videos/sync.

| Mode | action_mode | Input | Output | | --- | --- | --- | --- | | Policy | policy | Image + instruction | Video + predicted action chunk | | Inverse dynamics | inverse_dynamics | Video + instruction | Video + predicted action chunk | | Forward dynamics | forward_dynamics | Image + action chunk | Video |

Pass embodiment settings through extra_params: action_mode, domain_name (for example bridge_orig_lerobot, av, or camera_pose), raw_action_dim, and action_chunk_size. Forward dynamics also takes an action_path pointing at an action file the server can read, so start the server with --allowed-local-media-path covering that file (for Docker, mount the file and pass the container-visible path). For the full set of robot, autonomous-vehicle, and camera-pose variants, see the Cosmos 3 vLLM-Omni recipes.

Example video request:

```shell curl -sS -X POST http://localhost:8000/v1/videos/sync \ --form-string "prompt=A small warehouse robot moves a blue box across a clean floor." \ --form-string "negative_prompt=blurry, distorted, low quality" \ --form-string "size=1280x720" \ --form-string "n

GitHub Stars & Activity

11,824Stars
879Forks
0Open issues
Jupyter NotebookLanguage

GitHub Popularity

GitHub stars11,824
Forks879
Open issues0
Primary languageJupyter Notebook
License-
Stars gained today4
Created-
Last pushed-

Trending History

Daily boardrank #86 · ▲ 4 stars

Related AI Projects

1

microsoft / generative-ai-for-beginners

Jupyter Notebook★ 119,834⑂ 63,090▲ 77 stars
2

microsoft / ai-agents-for-beginners

Jupyter Notebook★ 74,827⑂ 24,674▲ 81 stars
3

Lordog / dive-into-llms

Jupyter Notebook★ 54,341⑂ 6,489▲ 190 stars
4

anthropics / prompt-eng-interactive-tutorial

Jupyter Notebook★ 38,193⑂ 4,230▲ 24 stars
5

datawhalechina / happy-llm

Jupyter Notebook★ 33,836⑂ 3,205▲ 36 stars
6

shap / shap

Jupyter Notebook★ 25,759⑂ 3,750▲ 3 stars
7

karpathy / nn-zero-to-hero

Jupyter Notebook★ 24,403⑂ 3,571▲ 12 stars
8

QwenLM / Qwen3-VL

Jupyter Notebook★ 19,948⑂ 1,848▲ 10 stars

More AI Rankings