从零跑通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-Text2World、Cosmos-1.0-Tokenizer-CV8x8x8、Cosmos-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)。大显存卡按官方表格从少到多选。代价是批量生成会变慢。
三个高频坑
- 人脸会被自动打码。内置 Guardrail 强制生效、不可禁用,人脸生成会被模糊,所以别惊讶于视频里"没人脸"。护栏机制见 cosmos1/models/guardrail/README.md。
- 帧数和分辨率有硬限制。当前版本固定 121 帧;宽高比支持 1:1(960x960)、4:3(960x704)、16:9(1280x704)等;帧率 12~40fps 可调,对应参数是
--height、--width、--fps。 - 上采样器可能改写你的意图。它偶尔会加戏,加进你没要求的细节。遇到就加
--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。
下一步行动清单
- 在 Ubuntu + NVIDIA GPU 机器上按 INSTALL.md 完成容器构建,
huggingface-cli login后先只下 7B Text2World。 - 跑通 Text2World,确认
outputs/里有 mp4,再下载 7B Video2World 权重,用一张自己的图片重跑 Video2World。 - 24GB 显存卡加齐五个
--offload_*参数;显存紧张时优先卸载 prompt upsampler 和 guardrail。 - 提示词写到 120 词、单场景;结果被上采样器"加戏"时改用
--disable_prompt_upsampler。 - 需要更高吞吐时,再升级到 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),仅供参考