NVIDIA Cosmos™ 是一个世界基础模型平台,旨在通过使机器能够在机器人技术、自动驾驶和智能空间环境(包括工业和工厂规模的应用)中理解、模拟和与物理世界交互,从而加速物理智能(Physical AI)的发展。
Cosmos3 是一系列全模态世界模型的集合,能够从文本、图像、视频和动作轨迹输入的组合中生成动态、高质量的视频、图像、音频和动作指令。它作为广泛物理智能应用和研究的基础构建块,涵盖世界理解、世界生成、模拟和具身策略学习等领域。
该模型已准备好用于商业和非商业用途。
模型开发者: NVIDIA
Cosmos3-Nano:
Cosmos3-Super:
Cosmos3-Nano-Policy-DROID:
Cosmos3-Super-Image2Video:
Cosmos3-Super-Text2Image:
本模型基于 OpenMDW1.1 许可协议发布。
全球
物理人工智能:涵盖机器人技术、自动驾驶汽车(AV)以及智能空间环境,包括工业和工厂规模的应用。
Hugging Face:2026年5月31日,通过 https://huggingface.co/collections/nvidia/cosmos3 GitHub:2026年5月31日,通过 https://github.com/nvidia/cosmos
架构类型: Transformer
网络架构: 混合Transformer(Mixture-of-Transformers,MoT)
Cosmos3 是一个全模态基础模型,构建于混合Transformer(MoT)架构之上,包含两个互补的Transformer塔:一个用于离散 token 生成的自回归Transformer,以及一个用于连续多模态生成的扩散Transformer。在推理过程中,文本通过标准的下一个 token 自回归解码生成,而非文本模态(如图像、视频、音频和动作)则通过迭代去噪合成。这种统一的架构使 Cosmos3 能够在单一框架内对异构模态进行建模,同时保留每种模态最适合的生成机制。
本模型基于以下技术开发: Cosmos Framework
可训练模型参数数量:
max_tokens=4096+;可请求更长的输出。视频内容将输入文本描述可视化为简短的动画场景,在指定的时间限制内捕捉关键元素。
我们的AI模型设计和/或优化用于在NVIDIA GPU加速系统上运行。通过利用NVIDIA的硬件(例如GPU核心)和软件框架(例如CUDA库),与仅使用CPU的解决方案相比,该模型实现了更快的训练和推理时间。
运行时引擎:
支持的硬件微架构兼容性:
操作系统:
注意: 仅测试了 BF16 精度。其他精度(如 FP4、FP8 和 FP16)未获得官方支持。
将基础模型和微调模型集成到 AI 系统中,需要使用特定用例的数据进行额外测试,以确保安全有效的部署。遵循 V 模型方法,在单元和系统层面进行迭代测试和验证至关重要,这有助于在部署前降低风险、满足技术和功能要求,并确保符合安全和道德标准。
来自内部和外部来源的原始数据通过多个阶段的整理、筛选和质量审查,转换为可用于训练的数据。数据采集涵盖多种多模态来源——机器人技术、自动驾驶、工业环境、室内外场景、不同光照和天气条件、摄像机视角、物体类别以及人类活动——以扩大在物理 AI 操作环境中的覆盖范围。自动化筛选管道会移除损坏、重复、低质量和受限制的内容。在预处理阶段,应用元数据分析、启发式规则和模型辅助分类器来标记异常分布和低多样性子集。人工审核对选定数据集、基准构建和目标质量分析的自动化筛选起到补充作用。数据集在多种模态和任务类别之间保持平衡——视觉推理、文本到图像、文本到视频、图像到视频、音频生成、视频转换、动作条件生成和动作命令生成——以减少狭窄领域的过度代表性。合成和基于模拟的增强补充了对罕见物理交互和边缘情况场景的覆盖。在整个语料库中应用去重和来源跟踪。最终处理后的数据在开始训练前,通过特定于模态的预处理器转换为模型就绪的标记化或编码表示。
训练数据集经过多层自动化和人工保护措施处理,旨在减少各类有害或违反政策内容的存在,这些类别包括武器及与武器相关的指导内容、犯罪策划、儿童性虐待材料 (CSAM)、非自愿私密图像 (NCII)、涉及未成年人的性内容、骚扰、仇恨言论、亵渎、威胁和煽动暴力、自残或自杀相关内容以及血腥暴力。在将数据纳入训练语料库之前,会对数据源进行许可兼容性、来源以及与内部数据治理和安全政策的一致性审查。自动化筛选管道结合了多种检测策略:针对已知 CSAM 和 NCII 参考数据库的哈希匹配;为显式性内容、仇恨言论、暴力、武器图像和其他受限制类别训练的基于分类器的审核模型;针对文本数据中犯罪策划、威胁和自残短语的关键字和正则表达式筛选;针对源级别风险信号的元数据和来源启发式方法;以及用于发现超出预期分布样本的基于嵌入的异常检测。人工审核和目标审计对选定数据集、基准构建和安全敏感评估的自动化筛选起到补充作用。对于多模态物理 AI 数据(机器人技术、自动驾驶、工业场景),额外的筛选针对无效的动作轨迹、物理上不合理的交互以及不安全的控制序列。合成和模拟生成的数据在纳入前经过内部验证。训练后应用基准评估和红队测试,以发现世界生成、推理、音频和动作任务中剩余的安全漏洞。没有任何大规模数据筛选过程能够保证完全删除所有有害内容;残余风险可能仍然存在,特别是在罕见的边缘情况或开放世界部署环境中。发布后将继续进行持续监控和数据集审查。
数据模态和训练数据大小
| 模态 | 推理数据样本数 | 生成数据样本数 |
|---|---|---|
| 文本 | 2200 万 | 不适用 |
| 图像 | 1900 万 | 7.67 亿 |
| 视频 | 100 万 | 3.48 亿 |
| 音频 | 不适用 | 1.39 亿 |
| 动作 | 不适用 | 800 万 |
按数据集划分的数据收集方法
按数据集划分的标注方法
特性: 训练、测试和评估数据集由多样化的多模态视频、图像、音频、动作、合成和传感器条件数据组成,这些数据来源于 NVIDIA 拥有的数据以及公开可用的、商业许可的数据集。这些数据集经过精心整理,排除了已知的受限制内容,并支持构建一个 Omni 模型,该模型学习在世界推理和生成任务中对动态物理环境进行生成和推理。
| 数据集 | 样本量 |
|---|---|
| OpenImage | 120万 |
| Coyo700M | 1亿 |
| YouTube Video | 3.4亿 |
| UMI | 450万 |
| 数据集 | 样本量 |
|---|---|
| Egocentric | 700万 |
| Nexar | 60万 |
| AgiBot | 20万 |
| HOI | 30万 |
| 数据集 | 样本量 |
|---|---|
| 使用HiDream-I1生成的合成图像 | 1500万 |
| 使用Qwen-Image-2512生成的合成图像 | 1400万 |
| 使用Qwen3-VL生成的合成文本描述 | 11.15亿 |
各数据集的数据收集方法
各数据集的标注方法
特性: 训练、测试和评估数据集包含多样化的多模态视频、图像、音频、动作、合成数据以及传感器条件数据,这些数据来源于NVIDIA所有的数据以及公开可用的、商业许可的数据集。这些数据集经过精心筛选,排除了已知的受限内容,旨在支持构建一个Omni模型,使其能够学习在世界推理和生成任务中对动态物理环境进行生成和推理。
有关基础模型的详细评估,请参见我们的技术论文。




为获得最佳质量,文本提示词应上采样为特定的 JSON 结构。相关说明和代码可在 此处 找到。
例如,使用 Opus-4.6 进行文本到视频的上采样:
git clone https://github.com/NVIDIA/cosmos-framework.git packages/cosmos-framework
pip install -e packages/cosmos-framework
export PROMPT_UPSAMPLER_ENDPOINT_URL="https://api.anthropic.com/v1/"
export PROMPT_UPSAMPLER_MODEL_NAME="claude-opus-4-6"
export PROMPT_UPSAMPLER_API_TOKEN="<you_token>"
python -m cosmos_framework.inference.prompt_upsampling \
--input assets/example_t2v_prompt_short.txt \
--output /tmp/upsampled_t2v_opus/ \
--mode text2video \
--endpoint-url "${PROMPT_UPSAMPLER_ENDPOINT_URL}" \
--model "${PROMPT_UPSAMPLER_MODEL_NAME}" \
--api-token "${PROMPT_UPSAMPLER_API_TOKEN}" \
--resolution 720 \
--aspect-ratio "16,9"为方便使用,assets/example_t2v_prompt_short.txt 的 JSON 上采样版本已保存至 assets/example_t2v_prompt.json,并用于以下视频生成示例。
docker pull vllm/vllm-omni:cosmos3您可以使用经过发布测试的 vllm-omni 软件包来部署兼容 OpenAI 的 API 推理端点。
在 H200 上部署 nvidia/Cosmos3-Nano 时,推荐的 vLLM-Omni 服务配置如下:
vllm serve nvidia/Cosmos3-Nano \
--omni \
--host 0.0.0.0 \
--port 8000 \
--init-timeout 1800若要借助额外的 GPU 加快推理速度,可使用 --ulysses-degree 启用上下文并行,或通过 --tensor-parallel-size 切换至张量并行。对于显存较少的 GPU,设置 --enable-layerwise-offload 有助于降低显存占用。
示例输入(assets/)位于此模型仓库中。使用 Hugging Face CLI 仅下载该文件夹:
pip install -U "huggingface_hub[cli]"
hf download nvidia/Cosmos3-Nano assets/ --local-dir Cosmos3-Nano
cd Cosmos3-Nano请在下载的仓库根目录下运行以下所有命令。
import json
import mimetypes
from pathlib import Path
import requests
# 1. Read JSON-upsampled prompt and negative prompt
json_prompt = json.load(open("assets/example_i2v_prompt.json"))
negative_prompt = json.load(open("assets/negative_prompt.json"))
# 2. Build and send the multipart API request
url = "http://localhost:8000/v1/videos/sync"
image_path = Path("assets/example_i2v_input.jpg")
mime_type = mimetypes.guess_type(image_path)[0] or "image/png"
data = {
"prompt": json.dumps(json_prompt),
"negative_prompt": json.dumps(negative_prompt),
"size": "1280x720",
"num_frames": "189",
"fps": "24",
"num_inference_steps": "35",
"guidance_scale": "6.0",
"max_sequence_length": "4096",
"flow_shift": "10.0",
"extra_params": json.dumps(
{
"use_resolution_template": False,
"use_duration_template": False,
"guardrails": True,
}
),
"seed": "1111",
}
with image_path.open("rb") as image_file:
files = {
"input_reference": (image_path.name, image_file, mime_type),
}
print("Sending request to server...")
response = requests.post(
url,
data=data,
files=files,
headers={"Accept": "video/mp4"},
)
response.raise_for_status()
# 3. Save the generated video
output_path = Path("/tmp/cosmos3_nano_i2v.mp4")
output_path.write_bytes(response.content)
print(f"Saved video to {output_path}")示例输出:
import json
from pathlib import Path
import requests
# 1. Read JSON-upsampled prompt and negative prompt
json_prompt = json.load(open("assets/example_t2v_prompt.json"))
negative_prompt = json.load(open("assets/negative_prompt.json"))
# 2. Build your API payload
data = {
"prompt": json.dumps(json_prompt),
"negative_prompt": json.dumps(negative_prompt),
"size": "1280x720",
"num_frames": "189",
"fps": "24",
"num_inference_steps": "35",
"guidance_scale": "6.0",
"max_sequence_length": "4096",
"flow_shift": "10.0",
"extra_params": json.dumps(
{
"use_resolution_template": False,
"use_duration_template": False,
"guardrails": True,
}
),
"seed": "123",
}
# 3. Send the POST request
url = "http://localhost:8000/v1/videos/sync"
print("Sending request to server...")
response = requests.post(
url,
data=data,
headers={"Accept": "video/mp4"},
)
response.raise_for_status()
# 4. Save the generated video
output_path = Path("/tmp/cosmos3_nano_t2v.mp4")
output_path.write_bytes(response.content)
print(f"Saved video to {output_path}")示例输出:
import json
import mimetypes
from pathlib import Path
import requests
# 1. Read JSON-upsampled prompt and negative prompt
json_prompt = json.load(open("assets/example_i2v_prompt.json"))
negative_prompt = json.load(open("assets/negative_prompt.json"))
# 2. Build and send the multipart API request
url = "http://localhost:8000/v1/videos/sync"
image_path = Path("assets/example_i2v_input.jpg")
mime_type = mimetypes.guess_type(image_path)[0] or "image/png"
data = {
"prompt": json.dumps(json_prompt),
"negative_prompt": json.dumps(negative_prompt),
"size": "1280x720",
"num_frames": "189",
"fps": "24",
"num_inference_steps": "35",
"guidance_scale": "6.0",
"max_sequence_length": "4096",
"generate_sound": "true",
"sound_duration": "7.875",
"flow_shift": "10.0",
"extra_params": json.dumps(
{
"use_resolution_template": False,
"use_duration_template": False,
"guardrails": True,
}
),
"seed": "0",
}
with image_path.open("rb") as image_file:
files = {
"input_reference": (image_path.name, image_file, mime_type),
}
print("Sending request to server...")
response = requests.post(
url,
data=data,
files=files,
headers={"Accept": "video/mp4"},
)
response.raise_for_status()
# 3. Save the generated video
output_path = Path("/tmp/cosmos3_nano_i2vs.mp4")
output_path.write_bytes(response.content)
print(f"Saved video to {output_path}")示例输出:
import json
from pathlib import Path
import requests
# 1. Read JSON-upsampled prompt and negative prompt
json_prompt = json.load(open("assets/example_t2vs_prompt.json"))
negative_prompt = json.load(open("assets/negative_prompt.json"))
# 2. Build your API payload
data = {
"prompt": json.dumps(json_prompt),
"negative_prompt": json.dumps(negative_prompt),
"size": "1280x720",
"num_frames": "189",
"fps": "24",
"num_inference_steps": "35",
"guidance_scale": "6.0",
"max_sequence_length": "4096",
"generate_sound": "true",
"sound_duration": "7.875",
"flow_shift": "10.0",
"extra_params": json.dumps(
{
"use_resolution_template": False,
"use_duration_template": False,
"guardrails": True,
}
),
"seed": "0",
}
# 3. Send the POST request
url = "http://localhost:8000/v1/videos/sync"
print("Sending request to server...")
response = requests.post(
url,
data=data,
headers={"Accept": "video/mp4"},
)
response.raise_for_status()
# 4. Save the generated video
output_path = Path("/tmp/cosmos3_nano_t2vs.mp4")
output_path.write_bytes(response.content)
print(f"Saved video to {output_path}")示例输出:
正向动力学示例使用 AgiBotWorld-Beta 机器人动作轨迹,逆向动力学示例使用自动驾驶汽车(AV)动作轨迹。源文件:
assets/example_action_fd_agibotworld_first_frame.pngassets/example_action_fd_agibotworld_action_chunks.jsonassets/example_action_fd_agibotworld_4chunk_output.mp4assets/example_action_id_av_0_input.mp4、assets/example_action_id_av_1_input.mp4assets/example_action_id_av_0_output.json、assets/example_action_id_av_1_output.json以下示例通过 vLLM-Omni /v1/videos/sync 推理端点执行 4 块 AgiBotWorld-Beta 机器人推演。每个请求通过 input_reference 发送一个条件帧,并通过 extra_params["action"] 发送一个 16 步归一化 29 维动作块。请求还将顶级 size 字段设置为输入图像分辨率,因此 vLLM-Omni 返回的每个块与条件图像分辨率相同,且无反射填充。拼接后的输出会丢弃每个块的条件帧,生成 64 帧。脚本从每个块中提取最后一帧生成帧,并将其用作下一个块的条件帧。
import json
import mimetypes
from pathlib import Path
import imageio.v3 as iio
import numpy as np
import requests
from PIL import Image
url = "http://localhost:8000/v1/videos/sync"
first_frame_path = Path("assets/example_action_fd_agibotworld_first_frame.png")
action_spec = json.loads(Path("assets/example_action_fd_agibotworld_action_chunks.json").read_text())
action_chunks = action_spec["action_chunks"]
prompt = action_spec.get("prompt", "Pickup items in the supermarket")
fps = int(action_spec.get("fps", 10))
action_chunk_size = int(action_spec.get("action_chunk_size", 16))
current_frame_path = first_frame_path
input_width, input_height = Image.open(first_frame_path).size
chunk_video_paths = []
stitch_frames = []
for chunk_idx, action_chunk in enumerate(action_chunks):
mime_type = mimetypes.guess_type(current_frame_path)[0] or "image/png"
extra_params = {
"action_mode": "forward_dynamics",
"domain_name": action_spec.get("domain_name", "agibotworld"),
"action_chunk_size": action_chunk_size,
"image_size": action_spec.get("image_size", 480),
"view_point": action_spec.get("view_point", "concat_view"),
"action": action_chunk,
"guardrails": True,
}
data = {
"prompt": prompt,
"num_frames": str(action_chunk_size + 1), # conditioning frame + generated frames
"fps": str(fps),
"size": f"{input_width}x{input_height}", # return chunks at input resolution
"num_inference_steps": "30",
"guidance_scale": "1.0",
"flow_shift": "10.0",
"seed": "0",
"extra_params": json.dumps(extra_params),
}
with current_frame_path.open("rb") as image_file:
files = {"input_reference": (current_frame_path.name, image_file, mime_type)}
print(f"Sending action FD chunk {chunk_idx} to vLLM-Omni...")
response = requests.post(
url,
data=data,
files=files,
headers={"Accept": "video/mp4"},
timeout=600,
)
response.raise_for_status()
chunk_video_path = Path(f"/tmp/cosmos3_nano_action_fd_chunk_{chunk_idx:02d}.mp4")
chunk_video_path.write_bytes(response.content)
chunk_video_paths.append(chunk_video_path)
# The returned chunk contains the conditioning frame followed by generated frames.
# Drop the conditioning frame when stitching the generated-only rollout.
frames = iio.imread(chunk_video_path)
stitch_frames.extend(frames[1:])
# Autoregressive conditioning: use the final generated frame from this chunk
# as the input image for the next vLLM-Omni request.
if chunk_idx + 1 < len(action_chunks):
current_frame_path = Path(f"/tmp/cosmos3_nano_action_fd_ar_frame_{chunk_idx + 1:02d}.png")
iio.imwrite(current_frame_path, frames[-1])
stitched_path = Path("/tmp/cosmos3_nano_action_fd_agibotworld_4chunk.mp4")
iio.imwrite(stitched_path, np.asarray(stitch_frames), fps=fps)
print("Generated chunk videos:", chunk_video_paths)
print("Saved stitched rollout:", stitched_path)
print("stitched resolution:", f"{input_width}x{input_height}")示例输出:
import json
import time
from pathlib import Path
import requests
base_url = "http://localhost:8000"
input_videos = {
"av_inverse_0": Path("assets/example_action_id_av_0_input.mp4"),
"av_inverse_1": Path("assets/example_action_id_av_1_input.mp4"),
}
for name, video_path in input_videos.items():
extra_params = {
"action_mode": "inverse_dynamics",
"domain_name": "av",
"action_chunk_size": 60,
"image_size": 480,
"view_point": "ego_view",
"raw_action_dim": 9,
"guardrails": True,
}
data = {
"prompt": "You are an autonomous vehicle planning system.",
"num_frames": "61",
"fps": "10",
"num_inference_steps": "30",
"guidance_scale": "1.0",
"flow_shift": "10.0",
"seed": "0",
"extra_params": json.dumps(extra_params),
}
with video_path.open("rb") as video_file:
files = {
"input_reference": (video_path.name, video_file, "video/mp4"),
}
print(f"Submitting {name} request to server...")
response = requests.post(f"{base_url}/v1/videos", data=data, files=files)
response.raise_for_status()
initial = response.json()
while True:
response = requests.get(f"{base_url}/v1/videos/{initial['id']}", timeout=30)
response.raise_for_status()
final = response.json()
print(initial["id"], final.get("status"), f"{final.get('progress', 0)}%")
if final.get("status") == "completed":
break
if final.get("status") in {"failed", "cancelled"}:
raise RuntimeError(json.dumps(final, indent=2))
time.sleep(2)
action = final.get("action")
if not action or "data" not in action:
raise RuntimeError(f"Response did not include action data: {json.dumps(final, indent=2)}")
output_path = Path(f"/tmp/cosmos3_nano_action_id_{name}.json")
output_path.write_text(json.dumps(action, indent=2))
print(f"Saved predicted action to {output_path}")
print("action shape:", action.get("shape"), "dtype:", action.get("dtype"))示例输出:
您可以使用经过发布测试的 vllm 软件包来部署兼容 OpenAI 的 API 端点:
uv venv --python 3.13 --seed --managed-python
source .venv/bin/activate
uv pip install --torch-backend=cu130 "vllm==0.21.0" \
"vllm-cosmos3 @ git+https://github.com/NVIDIA/cosmos-framework.git#subdirectory=packages/vllm-cosmos3" \
openai对于 CUDA 13 驱动程序,请使用 --torch-backend=cu130 "vllm==0.21.0"。对于 CUDA 12.8 驱动程序,请使用 --torch-backend=cu128 "vllm==0.19.1"。
启动 Reasoner 服务器:
CUDA_VISIBLE_DEVICES=0 \
vllm serve nvidia/Cosmos3-Nano \
--hf-overrides '{"architectures": ["Cosmos3ReasonerForConditionalGeneration"]}' \
--tensor-parallel-size 1 \
--mm-encoder-tp-mode data \
--async-scheduling \
--allowed-local-media-path / \
--media-io-kwargs '{"video": {"num_frames": -1}}' \
--port 8000从模型仓库根目录运行此示例。它会从 assets/example_reasoning_prompt.json 读取机器人规划提示,并将 assets/example_reasoning_input.png 发送到本地 vLLM 服务器。
import json
from pathlib import Path
import openai
# 1. Read the image reasoning prompt
example = json.load(open("assets/example_reasoning_prompt.json"))
image_path = Path("assets/example_reasoning_input.png").resolve()
image_url = image_path.as_uri()
# 2. Query the OpenAI-compatible vLLM server
client = openai.OpenAI(
api_key="EMPTY",
base_url="http://localhost:8000/v1",
)
response = client.chat.completions.create(
model=client.models.list().data[0].id,
messages=[
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": image_url}},
{"type": "text", "text": example["prompt"]},
],
},
],
max_tokens=example["max_tokens"],
seed=0,
)
# 3. Print the generated reasoning output
print(response.choices[0].message.content)示例输入:
提示词:
The task is to put flower into the red bottle. Generate a plan consisting of subtasks for accomplish the task.上述命令的示例输出:
Move your arm to the flower. Grasp the flower. Move your arm to the red bottle. Place the flower in the red bottle.Cosmos3 已在广受欢迎的 HuggingFace Diffusers 软件包中得到全面支持。此集成使其成为受支持的推理后端,让开发者能够轻松将 Cosmos3 的功能(如文本到视频生成)整合到自己的工作流中,只需使用 Cosmos3OmniPipeline 类即可,具体可参考所提供的代码示例(其他模态的示例请参见 HuggingFace Cosmos3 页面)。
如需安装带有 Cosmos3OmniPipeline 的 diffusers:
uv venv --python 3.13 --seed --managed-python
source .venv/bin/activate
uv pip install \
"diffusers @ git+https://github.com/huggingface/diffusers.git" \
accelerate \
av \
cosmos_guardrail \
huggingface_hub \
imageio \
imageio-ffmpeg \
torch \
torchvision \
transformers
从模型仓库根目录运行此示例。它会从assets/example_t2v_prompt.json读取JSON格式的上采样提示词,并从assets/negative_prompt.json读取负面提示词。随后加载管道并生成视频,最后将其保存为MP4文件。
import json
import torch
from diffusers import Cosmos3OmniPipeline
from diffusers.schedulers.scheduling_unipc_multistep import UniPCMultistepScheduler
from diffusers.utils import export_to_video
# Read JSON-upsampled prompt and negative prompt
json_prompt = json.load(open("assets/example_t2v_prompt.json"))
negative_prompt = json.load(open("assets/negative_prompt.json"))
pipe = Cosmos3OmniPipeline.from_pretrained(
"nvidia/Cosmos3-Nano",
torch_dtype=torch.bfloat16,
device_map="cuda",
enable_safety_checker=True,
)
pipe.scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config, flow_shift=10.0)
result = pipe(
prompt=json.dumps(json_prompt),
negative_prompt=json.dumps(negative_prompt),
num_frames=189,
height=720,
width=1280,
num_inference_steps=35,
guidance_scale=6.0,
generator=torch.Generator(device="cuda").manual_seed(123),
)
export_to_video(result.video, "/tmp/cosmos3_nano_t2v_diffusers.mp4", fps=24)
print("Saved video to /tmp/cosmos3_nano_t2v_diffusers.mp4")示例输出:
在复杂场景下,Cosmos3 可能会生成不尽完美的输出。生成缺陷包括时间不一致性、不稳定的相机或物体运动、不精确的物理交互、不准确的音视频同步以及动作状态偏移——尤其是在长时程或高分辨率输出中。推理过程也可能存在错误:物体状态、因果关系、空间几何、时间顺序、主体意图和未来结果可能被错误推断;复杂或长上下文输入可能导致虚构实体、不一致的解释或不合理的预测。由于模型缺乏显式的物理模拟器,3D 几何、4D 时空演化、物体恒存性、接触动力学和物理定律仅为近似模拟——这会产生诸如物体消失或变形、不真实的碰撞以及物理上不合理的运动等缺陷。在分布外环境、安全关键边缘案例以及训练中代表性不足的领域,生成质量会进一步下降。
Cosmos3 的输出不应被视为物理精确的模拟、可靠的事实推理或安全认证的决策依据。涉及机器人控制、自主系统、科学模拟或安全关键规划的应用,在部署前需要额外的验证、外部约束、系统级安全分析以及特定领域的防护措施。
加速引擎: PyTorch、vLLM、vLLM-Omni、Hugging Face Diffusers
测试硬件: GB200 和 H100
NVIDIA 认为可信 AI 是一项共同责任,我们已制定相关政策和实践,以支持广泛 AI 应用的开发。开发者应与内部模型团队合作,确保该模型满足相关行业和用例的要求,并应对未预见的产品误用问题。
请确保您对所有输入图像和视频内容拥有适当的权利和许可;如果图像或视频中包含人物、个人健康信息或知识产权,生成的图像或视频不会模糊或保持所包含图像主体的比例。
用户对模型的输入和输出负责。用户负责确保在部署前对该模型进行安全集成,包括实施防护措施以及其他安全机制。
有关此模型伦理考量的更多详细信息,请参见 Model Card++ 的可解释性、偏差、安全与安保和隐私子卡片。请通过此处报告模型质量、风险、安全漏洞或 NVIDIA AI 相关问题。