news 2026/9/15 21:57:40

从零跑通NVIDIA Cosmos:四步生成你的第一个物理世界视频

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零跑通NVIDIA Cosmos:四步生成你的第一个物理世界视频

从零跑通NVIDIA Cosmos:四步生成你的第一个物理世界视频

【免费下载链接】cosmosNVIDIA 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.项目地址: https://gitcode.com/GitHub_Trending/cosmos7/cosmos

NVIDIA Cosmos 是一个世界基础模型开放平台,最直接的用途是生成物理世界视频:输入一段文本描述,产出 121 帧的世界模拟视频;输入一张图片或一小段视频,它会续写出这个场景的未来。本文带你从零搭环境,跑通 Text2World(文本生成世界)和 Video2World(视频/图片生成世界)两条链路,所有命令都可以直接复制运行,跑完你会得到两个真实的 mp4 文件。

明确目标:你会得到两个可播放的 mp4

先说结论:这篇教程只干一件事——把 Cosmos 的第一条完整流程跑通。我们走的是扩散模型(Diffusion)路线,它是官方文档里最先推荐、参数也最少的一条路。自回归(Autoregressive)路线留到最后讲。

先理解一下这条链路的分工:文本先经过 T5 编码,Prompt Upsampler(基于 Mistral)会把短提示扩写成详细描述,再交给 DiT 扩散网络去噪,最后由 Cosmos Tokenizer 把潜空间解码回像素。

跑完后你手上应该有这两个产物:

  • outputs/my_first_cosmos_video.mp4—— 一段由纯文本生成的世界视频
  • outputs/my_video2world_demo.mp4—— 一张图片"活"起来后的视频

📦 环境搭建:Docker 镜像构建与模型权重下载

系统要求

Cosmos 只在 Ubuntu 20.04 / 22.04 / 24.04 上验证过,需要 NVIDIA GPU(建议 24GB 显存起步)和已安装 NVIDIA Container Toolkit 的 Docker。详细的 Cosmos 安装步骤见 INSTALL.md。

克隆仓库并启动容器

下面这组命令会克隆仓库、构建镜像、挂载当前目录并进入容器。之后所有命令都在容器内执行。

git clone https://gitcode.com/GitHub_Trending/cosmos7/cosmos cd cosmos docker build -t cosmos . docker run -d --name cosmos_container --gpus all --ipc=host -it -v $(pwd):/workspace cosmos docker attach cosmos_container

登录 Hugging Face 并下载模型

模型权重托管在 Hugging Face。先去官网创建访问令牌(权限选 Read),然后在容器里登录。Video2World 的提示上采样依赖 Pixtral-12B,需要到该模型的 HF 页面点"Agree and access repository"授权一次。

huggingface-cli login # 第一次只下 7B Text2World,体积最小,跑通后再补 Video2World PYTHONPATH=$(pwd) python cosmos1/scripts/download_diffusion.py \ --model_sizes 7B \ --model_types Text2World

下载完成后,checkpoints/下应该出现Cosmos-1.0-Diffusion-7B-Text2WorldCosmos-1.0-Tokenizer-CV8x8x8Cosmos-1.0-Guardrail等目录。看到这些目录,说明环境就绪。

🎬 跑通第一个视频:Text2World 文本生成世界

现在生成第一个物理世界视频。命令里只有四个必要参数:权重目录、模型名、提示词、输出文件名。

PROMPT="A sleek, humanoid robot stands in a vast warehouse filled with neatly stacked cardboard boxes. The camera remains static." PYTHONPATH=$(pwd) python cosmos1/models/diffusion/inference/text2world.py \ --checkpoint_dir checkpoints \ --diffusion_transformer_dir Cosmos-1.0-Diffusion-7B-Text2World \ --prompt "$PROMPT" \ --offload_prompt_upsampler \ --video_save_name my_first_cosmos_video

--offload_prompt_upsampler表示用完后把上采样器从显存卸掉,H100 上跑 7B 时官方建议加上。跑完之后到outputs/目录看my_first_cosmos_video.mp4——这就是你的第一个物理世界视频。H100 上生成本身约需 6~7 分钟,另加几分钟模型加载时间。

写提示词有三条经验,来自官方提示指南:聚焦单一场景(多镜头会引发不必要的切换)、控制在 120 词左右、少写相机运动指令(模型对这类控制支持有限)。完整参数表见 cosmos1/models/diffusion/README.md。

🚀 换一种输入再试:Video2World 图片转视频

换个输入方式:给一张图,让它把图"续写"成视频。输入素材就用仓库自带的这条公路图片。

先补下 Video2World 的 7B 权重,再运行推理:

PYTHONPATH=$(pwd) python cosmos1/scripts/download_diffusion.py \ --model_sizes 7B \ --model_types Video2World PYTHONPATH=$(pwd) python cosmos1/models/diffusion/inference/video2world.py \ --checkpoint_dir checkpoints \ --diffusion_transformer_dir Cosmos-1.0-Diffusion-7B-Video2World \ --input_image_or_video_path cosmos1/models/diffusion/assets/v1p0/video2world_input0.jpg \ --num_input_frames 1 \ --video_save_name my_video2world_demo \ --offload_prompt_upsampler

注意这里没有传--prompt:Video2World 的提示上采样器默认开启,会基于 Pixtral 直接从图片生成描述。如果你想自己控制文字,加--disable_prompt_upsampler并手动传--prompt--num_input_frames只接受 1 或 9,视频输入时给 9 能保留更多前文信息。产物在outputs/my_video2world_demo.mp4

⚙️ 调优与常见坑:24GB 显存怎么跑,三个坑别踩

显存不够就全量 offload

24GB 的 RTX 3090/4090 直接全量卸载五个组件即可跑 7B 模型,官方实测峰值显存约 24.4GB:

PYTHONPATH=$(pwd) python cosmos1/models/diffusion/inference/text2world.py \ --checkpoint_dir checkpoints \ --diffusion_transformer_dir Cosmos-1.0-Diffusion-7B-Text2World \ --prompt "$PROMPT" \ --video_save_name low_vram_demo \ --offload_tokenizer \ --offload_diffusion_transformer \ --offload_text_encoder_model \ --offload_prompt_upsampler \ --offload_guardrail_models

各档位参考:只卸载上采样器约 74GB;加护栏约 57GB;再卸载 T5 约 38.5GB;全卸载 24.4GB(7B Text2World)。大显存卡按官方表格从少到多选。代价是批量生成会变慢。

三个高频坑

  1. 人脸会被自动打码。内置 Guardrail 强制生效、不可禁用,人脸生成会被模糊,所以别惊讶于视频里"没人脸"。护栏机制见 cosmos1/models/guardrail/README.md。
  2. 帧数和分辨率有硬限制。当前版本固定 121 帧;宽高比支持 1:1(960x960)、4:3(960x704)、16:9(1280x704)等;帧率 12~40fps 可调,对应参数是--height--width--fps
  3. 上采样器可能改写你的意图。它偶尔会加戏,加进你没要求的细节。遇到就加--disable_prompt_upsampler用原始提示词,手动把提示词写到 120 词左右。

其他常用参数:--num_steps(默认 35,步数越多质量越高越慢)、--guidance(默认 7.0)、--seed(固定可复现)。

🧭 模型选型与进阶:什么时候换自回归

模型家族怎么选

  • Diffusion 7B / 14B:14B 质量更高,单视频约 590 秒(H100);7B 约 380 秒。起步用 7B。
  • Autoregressive 4B / 12B:推理更快(4B 约 62 秒),基于视频词元生成未来,适合流式、长时程的模拟场景,详见 cosmos1/models/autoregressive/README.md。
  • Autoregressive 5B / 13B Video2World:视频+文本输入的版本。下图是它的输入示例。

往下走的两条路

  • 后训练:用自己的领域数据微调预训练模型,脚本基于 NeMo 框架,见 cosmos1/models/POST_TRAINING.md 和 扩散后训练脚本。
  • 多 GPU 推理:14B 或批量生产时,参考 cosmos1/models/diffusion/nemo/inference/README.md。

Tokenizer 是整条链路的压缩核心(最高 2048 倍压缩率),也可以独立拿来压缩自己的数据集,性能对比如下,入口文档见 cosmos1/models/tokenizer/README.md。

下一步行动清单

  1. 在 Ubuntu + NVIDIA GPU 机器上按 INSTALL.md 完成容器构建,huggingface-cli login后先只下 7B Text2World。
  2. 跑通 Text2World,确认outputs/里有 mp4,再下载 7B Video2World 权重,用一张自己的图片重跑 Video2World。
  3. 24GB 显存卡加齐五个--offload_*参数;显存紧张时优先卸载 prompt upsampler 和 guardrail。
  4. 提示词写到 120 词、单场景;结果被上采样器"加戏"时改用--disable_prompt_upsampler
  5. 需要更高吞吐时,再升级到 14B 或多 GPU 推理;有领域数据时看 POST_TRAINING.md 微调。

【免费下载链接】cosmosNVIDIA 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.项目地址: https://gitcode.com/GitHub_Trending/cosmos7/cosmos

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 21:57:12

数据中心微网两阶段鲁棒优化与Matlab实现

1. 数据中心微网规划的核心挑战在数字化转型浪潮下,数据中心作为算力基础设施正面临前所未有的能耗挑战。一个中型数据中心的年耗电量相当于5万户家庭的用电量,而电力成本占其运营支出的40%以上。传统规划方法往往基于确定性假设,但实际运行中…

作者头像 李华
网站建设 2026/9/14 19:59:37

C语言数据类型与位运算实战技巧

1. C语言基础概念解析C语言作为一门接近硬件层面的编程语言,其数据类型系统直接映射计算机的存储结构。理解数据类型是掌握C语言的基础,这就像盖房子前必须了解砖块的种类和特性一样。在32位系统中,int类型通常占4字节(32位&#…

作者头像 李华
网站建设 2026/9/15 21:57:18

深入理解AbortController:前端请求取消与超时控制实战

最近在做一个内部后台系统时,遇到一个非常典型的问题:用户在搜索框里输入关键字,每敲一个字母都会发一次请求。防抖加了,可当我快速切换筛选条件时,上一次较慢的请求仍然可能后返回,把新数据直接覆盖掉。为…

作者头像 李华