部署优化指南)
小显存也能跑 KimodoCPU 文本编码等低显存(3GB)部署优化指南【免费下载链接】kimodoOfficial implementation of Kimodo, a kinematic motion diffusion model for high-quality human(oid) motion generation.项目地址: https://gitcode.com/gh_mirrors/ki/kimodoKimodo 是 NVIDIA 开源的运动学扩散模型kinematic motion diffusion model只需一句文本提示就能生成高质量 3D 人体与机器人动作。官方默认配置需要约 17GB 显存但只需设置一个环境变量TEXT_ENCODER_DEVICEcpu即可把显存占用压到 3GB 以下。本文详解 3 套低显存部署方案让你的 4GB/8GB 小显存显卡甚至核显主机也能跑起 Kimodo 动作生成。为什么 Kimodo 默认要 17GB 显存先搞清楚瓶颈在哪Kimodo 的推理由两部分组成组件作用显存占用文本编码器LLM2Vec把文本提示变成嵌入向量约 16GB大头动作扩散模型去噪生成关节运动序列很小关键在于文本编码器基于一个8B 参数的大语言模型Meta-Llama-3-8B-Instruct 架构的 LLM2Vec以 bfloat16 精度加载时权重就占了约 16GB 显存。也就是说17GB 的需求几乎全部来自文本编码这一步——而这一步并不依赖 GPU。因此低显存部署的思路非常直接把文本编码器从显存里搬走只把轻量的扩散模型留在 GPU 上。官方文档明确给出了结论设置TEXT_ENCODER_DEVICEcpu后This is slightly slower but reduces VRAM usage to3 GB略慢但显存降到 3GB 以下。相关依据可参考 CHANGELOG.md 中 2026-04-24 的更新记录better support for small VRAM GPUs viaTEXT_ENCODER_DEVICEcpu以及 docs/source/getting_started/quick_start.md。方案一一行环境变量把文本编码放到 CPU最推荐这是官方推荐的低显存用法零代码改动对 CLI 和交互 Demo 都生效命令行生成CLITEXT_ENCODER_DEVICEcpu kimodo_gen A person walks forward. \ --model Kimodo-SOMA-RP-v1 \ --duration 5.0 \ --output output启动交互式 DemoTEXT_ENCODER_DEVICEcpu kimodo_demo打开浏览器访问http://127.0.0.1:7860即可在时间轴上编辑文本提示与约束实时预览生成结果。效果与代价显存占用从 ~17GB 降到3GB4GB 级小卡直接可用速度损失较小官方描述为 a fairly small speed hit因为文本编码只占推理的一小部分注意编码器权重仍需下载约 16GB 磁盘空间CPU 推理时也需要相应的系统内存建议 16GB RAM。该变量的读取逻辑位于 kimodo/model/llm2vec/llm2vec_wrapper.py未设置时默认auto有 GPU 就用 GPU设为cpu后强制编码器驻留 CPU编码完成的嵌入向量再送进扩散模型所在设备见 kimodo/model/kimodo_model.py。方案二独立部署文本编码服务显卡分工协作 ️如果你经常批量生成动作比如跑 benchmark、离线生成数据集更省的做法是只加载一次大型编码器让多个生成请求共享它——这就是官方的文本编码服务。第一步启动文本编码服务可放在任意机器上kimodo_textencoder它是一个 Gradio 服务默认监听http://127.0.0.1:9550/首次启动会自动下载嵌入模型。Docker 环境下可用docker compose up text-encoder启动。第二步让生成端连接它。模型加载逻辑见 kimodo/model/load_model.py支持以下环境变量变量默认值作用TEXT_ENCODER_MODEautoauto先探测 API 服务不可达自动回退本地编码器api强制走远程local强制本地加载TEXT_ENCODER_URLhttp://127.0.0.1:9550/远程文本编码服务地址auto是默认模式所以只要服务在跑生成命令无需任何额外配置。此时GPU 上只剩扩散模型显存 3GB即使服务没启动auto模式也会自动回退到本地编码配合方案一的TEXT_ENCODER_DEVICEcpu依然低显存。进阶玩法编码与生成分机。把服务部署在一台有大显存/大内存的机器上生成端只需把地址指过去TEXT_ENCODER_URLhttp://192.168.1.100:9550/ kimodo_gen A person waves. --duration 5.0 --output wave服务端的实现位于 kimodo/scripts/run_text_encoder_server.py客户端为 kimodo/model/text_encoder_api.py。若服务机本身显存也紧张记得给它加上TEXT_ENCODER_DEVICEcpu kimodo_textencoder。方案三配套小优化让低显存部署更快更稳 ⚡本地缓存模型权重省时间省带宽设置CHECKPOINT_DIR指向已下载的本地检查点目录配合LOCAL_CACHEtrue可只读本地缓存、跳过在线检查实现见 kimodo/model/load_model.py。编码器模型目录也可用TEXT_ENCODERS_DIR指定本地路径。保持 bfloat16别开 fp32文本编码器默认 bfloat16 加载服务端的--fp32参数会让权重体积翻倍小显存/小内存机器请避开。减少去噪步数提速--diffusion_steps调到 50~100 可明显加快生成质量损失很小详见 docs/source/user_guide/configuration.md批量对比时把--num_samples设为 1。装完源码版后按需运行若需源码安装/二次开发克隆仓库git clone https://gitcode.com/gh_mirrors/ki/kimodo后按文档配置虚拟环境即可部署参数与上表完全一致。三种低显存部署方案对比部署方案生成端显存速度适用场景全 GPU 运行默认~17GB最快RTX 3090/4090/A100 等大卡方案一TEXT_ENCODER_DEVICEcpu3GB略降偶尔生成、小卡单机最省事方案二独立文本编码服务3GB接近全 GPU批量生成、多请求复用、多机分工结语小显存跑 Kimodo 的完整清单单机小卡TEXT_ENCODER_DEVICEcpukimodo_gen/kimodo_demo一条命令解决高频使用加一个kimodo_textencoder服务编码器只加载一次auto模式自动接管进阶调优CHECKPOINT_DIRLOCAL_CACHEtrue走本地权重--diffusion_steps调低提速。掌握以上 3 套方案后一张 4GB 的入门显卡就能体验完整的文本生成 3D 动作流程生成结果还可以导出 NPZ/CSV/BVH 格式直接接入 MuJoCo 仿真与下游机器人管线如 G1 机器人动作。【免费下载链接】kimodoOfficial implementation of Kimodo, a kinematic motion diffusion model for high-quality human(oid) motion generation.项目地址: https://gitcode.com/gh_mirrors/ki/kimodo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考