Name Last Update
..
scripts Loading commit data...
README.md Loading commit data...

README.md

MiniMax-H3 视频生成部署(RTX PRO 6000 Blackwell,单卡 96GB)

新租的 AutoDL 容器,跟 192.168.110.67(2080Ti 那台)完全独立,不共享任何环境/显存/磁盘。 起这台的直接原因:怀疑 2080Ti 上用的 NF4(4-bit)量化是画质问题的根源,这张卡显存/磁盘都 宽松,换成更高精度的量化(int8-convrot)做对照。

状态(2026-08-21 00:23):环境装好,模型下完,首次冒烟测试成功(50步全量出片, 有限性/纯色检查通过)。画质待人工确认——脚本能测出"全黑/NaN"这类硬故障,测不出 "好不好看",这一步必须人看视频。样片:t2va_20260821-002322.mp4(生成时留在服务器 outputs/ 下,同时已下载到发起这次会话的本地机器)。


接入

ssh -p 17473 root@connect.westd.seetacloud.com   # 密码 aka3QXmPlg/V

容器化实例(/.dockerenv 存在,PID1 是裸 bash 不是 init)。数据盘扩容/机器重启必须走 AutoDL 网页控制台,容器内 reboot/shutdown 没用——PID1 接不住信号,扩容不生效 (实测过:容器内重启后 df 还是旧容量,网页控制台重启后才变)。

硬件

项 值
GPU RTX PRO 6000 Blackwell,96GB(nvidia-smi 显示 97887MiB),compute cap 12.0(sm_120)
驱动/CUDA 595.58.03 / CUDA 13.2
CPU/内存 208 核 / 1TB
系统盘 30GB,容器重置就没了,别往这儿装东西
数据盘 /root/autodl-tmp,已从免费 50GB 扩到 100GB(当前用量约 75GB)
网络 ModelScope 直连(no_proxy 已含 modelscope.com);HuggingFace/GitHub 需 source /etc/network_turbo(仅限学术用途,AutoDL 自己也说"不承诺稳定性")

ModelScope 直连是这台机器上最快的下载源,实测比 hf-mirror.com(0.5MB/s)、 network_turbo 代理到 HF 官方(0.3MB/s)都快。单连接 1.5–4MB/s、aria2c 16 连接能到 5–11MB/s(多连接不是线性提升——测过两个文件各开 8 连接同时下,合计吞吐反而比一个 文件开 16 连接更低,说明限速在 ModelScope 端是整体限速,不是单连接限速)。下大文件一律 aria2c -x16 -s16 + setsid nohup 脱离 SSH 会话。

环境(uv,不用 conda 装依赖)

source /root/miniconda3/etc/profile.d/conda.sh && conda activate base   # 只为了拿到 uv 二进制
pip install -q uv                                                        # /etc/pip.conf 已配好 aliyun 源
cd /root/autodl-tmp/minimax-h3
export UV_INDEX_URL=http://mirrors.aliyun.com/pypi/simple
uv venv --python 3.12 .venv && source .venv/bin/activate
uv pip install torch torchaudio                    # torch 预装镜像自带 2.13.0+cu130,torchaudio 要单独装
uv pip install -e './DiffSynth-Studio[audio,quant]'   # 见下面"装环境的坑",两个 extras 都要

阿里云源直接镜像了 PyPI 官方的 cu130 捆绑 wheel,不需要单独配 pytorch.org 的 index。

尝试过让 uv 连 Python 解释器本身都自己管(uv python install 3.12,不借 conda 的 python3.12),但 uv 的 Python 发行版从 GitHub Releases 下,走 network_turbo 代理两次 都卡死没装成——不是关键路径,放弃了,venv 底层解释器目前还是 conda 那个 3.12.3, 不影响包管理走 uv 独立安装这个核心诉求。

精度选型:int8-convrot,不是 NF4

完整的调研过程、GGUF 为什么被排除、各精度组合的真实文件大小对比表,见 docs/todo/h3-rtxpro6000-setup.md。这里只记结论:

  • DiffSynth-Studio 官方支持 Comfy-Org 发布的 int8/fp8 量化权重(不止自家 NF4), 通过 comfy-kitchen 后端,需要 pip install "diffsynth[quant]"。
  • 用的是 Comfy-Org/MiniMax-H3 的非剪枝 int8_convrot(DiT 34GB + 文本编码器 27GB), VAE 走 MiniMax/MiniMax-H3 官方 bf16 版(video_vae 9.8GB + audio_vae 0.6GB), 合计约 71GB。
  • 不需要 NF4/bitsandbytes:int8-convrot 是完全不同的量化路径(comfy-kitchen), 比 NF4 的 4-bit 精度高一倍。
  • 全程 bf16,不是 fp32/fp16。2080Ti 那套 _force_fp32_linear/_patch_dit_residual_fp32 补丁是 Turing 无 bf16 attention kernel 逼出来的(fp16 65504 上限装不下 50 层残差累积), Blackwell 原生支持 bf16 attention + fp32 等量的动态范围,这些补丁不需要,直接照抄 DiffSynth 官方 int8-convrot 示例代码即可。
  • 不需要 CPU offload:单卡 96GB,71GB 权重常驻显存还有富余,冒烟测试峰值显存只有 33.9G。

目录与路径

用途 路径
根目录 /root/autodl-tmp/minimax-h3/
venv /root/autodl-tmp/minimax-h3/.venv/
DiffSynth 源码 /root/autodl-tmp/minimax-h3/DiffSynth-Studio/
模型权重 /root/autodl-tmp/minimax-h3/models/(<model_id>/<origin_file_pattern> 平铺,DiffSynth 自己管,.incomplete 后缀标记未下完)
日志 /root/autodl-tmp/minimax-h3/logs/
输出视频 /root/autodl-tmp/minimax-h3/outputs/
推理脚本 /root/autodl-tmp/minimax-h3/t2va-rtxpro6000.py(顶层平铺,不在 scripts/ 下——本地副本在 h3-rtxpro6000/scripts/,跟 2080Ti 那套 run.sh 顶层/本地 scripts/ 路径不一致是同一种情况)

启动命令

cd /root/autodl-tmp/minimax-h3 && source .venv/bin/activate
python t2va-rtxpro6000.py --seed 0                       # 默认 832x480x124f,50步全量,不开turbo
python t2va-rtxpro6000.py --turbo                         # 4步Turbo LoRA,未在int8-convrot权重上验证过LoRA能不能正常挂载
python t2va-rtxpro6000.py --prompt "$(cat prompt.txt)"    # prompt 含引号时从文件读,避开多层 shell 转义

首次冒烟测试(2026-08-21 00:23)

配置:832×480×124f,50 步全量(不开 Turbo),int8-convrot,seed=0。

项目 实测
权重加载 83s
生成耗时 183s(3.7s/步)
峰值显存 33.9G
视频 h264 832×480 · 24fps · 124 帧(无截断)
音频 aac 32kHz 立体声 · mean -35.6dB · max -17.9dB(非静音)
脚本内建检查 通过(无 [FAIL],退出码 0)

对比 2080Ti:fp32 50 步是 107.3s/步,这张卡 3.7s/步,快 ~29×(Blackwell 原生 bf16 tensor core/attention kernel + 不用 CPU offload 的综合结果)。

装环境踩的坑

  1. diffsynth[quant] 不够,还要 [audio]:av/torchaudio/torchcodec/librosa 是单独一个 audio extras 分组(见 DiffSynth-Studio/pyproject.toml),跟 quant (bitsandbytes/comfy-kitchen/torchao)分开。只装 [quant] 会在运行时连续炸 ModuleNotFoundError: torchaudio 然后 ModuleNotFoundError: av。正确装法: uv pip install -e './DiffSynth-Studio[audio,quant]'。
  2. SSH 命令套 expect 时,方括号会被 Tcl 当命令替换语法:pip install "pkg[extra]" 这类命令直接塞进 expect -c '...spawn ssh ... "..."' 会报 invalid command name "extra", 多层转义极易出错。稳定做法:把要跑的命令写成本地 .sh 文件,scp 上去再 ssh ... "bash script.sh" 执行,彻底绕开这层转义。
  3. AutoDL 扩容数据盘要走网页控制台重启,容器内 reboot 无效:/.dockerenv 存在、 PID1 是裸 bash,容器内跑 reboot/shutdown 接不住信号,df 容量不会变。

还没做的事

  1. 人工看画质——这是唯一悬而未决的验证。如果 int8-convrot 确实比 NF4 画质好, docs/todo/h3-rtxpro6000-setup.md 该挪到 docs/done/;如果没有明显差异,说明 docs/todo/quality-tuning-plan.md 里列的分辨率/CFG/negative prompt 才是真正瓶颈, 量化精度不是。
  2. Turbo LoRA 在 int8-convrot 权重上是否能正常挂载,还没测过。
  3. 还没封 HTTP API / console(2080Ti 那套 api.py/h3-console 要不要迁过来,看画质 验证结果再决定值不值得投入)。