# 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/` 下,同时已下载到发起这次会话的本地机器)。 --- ## 接入 ```bash 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 装依赖) ```bash 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/`(`/` 平铺,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/ 路径不一致是同一种情况) | ## 启动命令 ```bash 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` 要不要迁过来,看画质 验证结果再决定值不值得投入)。