当海光官方方案要求单卡144GB显存时,我用64GB的K100_AI硬生生跑通了10秒音视频生成。这不是奇迹,是踩了6个坑之后的必然。
一、引言
在视频后期编辑,每天都在与“音画同步”这个看似简单实则极耗精力的问题打交道。传统视频制作流程中,视频画面和音频往往是两条独立的流水线:剪辑师先处理画面,音频师再配乐、配音、做音效,最后在时间线上反复对齐、微调。一个5秒钟的镜头,画面和声音对不上零点几秒,观众就能明显感觉到“别扭”。更不用说那些需要动态音效跟随画面运动的场景,调整起来简直是噩梦。
直到MiniMax H3的出现,让我看到了另一种可能。H3是一个通用全模态生成模型,它能在同一次扩散过程中同时生成视频和音频:不是先出画面再配音,而是两条流在同一组采样步里共同去噪。这意味着音画同步来自生成过程本身,不依赖后期对齐。H3支持文本到音视频(T2VA)、首/末帧到音视频(FL2VA)以及参考内容到音视频(Ref2VA)三种任务,最高可生成15秒、2K分辨率的音视频。
然而,将这样一个核心DiT(扩散Transformer)参数量为33B参数的大模型部署到实际工作中并非易事。海光官方给出的部署方案是单卡144G显存的BW1100搭配SGLang推理框架(官方部署参考链接:ModelZoo / MiniMax-H3 · GitLab),而我的设备是单卡64G显存的K100_AI。显存不到一半,官方方案走不通。经过反复尝试,我最终采用ComfyUI框架配合INT8量化模型,成功在K100_AI单卡上跑通了H3的全流程。本文将完整记录这次部署的全过程,包括环境配置、模型下载、工作流导入以及踩坑避坑经验,希望能为同样受限于显存资源的同行提供一条可行的路径。
二、方案设计
2.1 硬件选型与挑战
本次部署使用的硬件为海光K100_AI DCU显卡,显存容量64GB GDDR6,BF16/FP16算力约192 TFLOPS,显存带宽896GB/s。这个配置在国产AI加速卡中属于中端定位,适合显存密集型推理任务。
海光官方推荐的MiniMax H3部署方案是使用SGLang推理框架配合单卡144GB显存的BW1100。64GB显存的K100_AI无法直接套用官方方案,必须在模型量化和推理框架两个层面做出调整。
官方方案与本文方案对比
| 对比维度 | 海光官方推荐方案 | 本文方案(K100_AI + ComfyUI) |
|---|---|---|
| 加速卡型号 | 海光DCU BW1100 | 海光DCU K100_AI |
| 单卡显存容量 | 144GB HBM | 64GB GDDR6 |
| 单卡FP16算力 | 376 TFLOPS(预估) | 196 TFLOPS |
| 推理框架 | SGLang | ComfyUI |
| 模型精度 | BF16 全精度 | INT8 剪枝量化 |
| 显存优化策略 | 依赖大显存原生加载 | 按层offload + adaLN预计算释放 |
| 部署复杂度 | 较高(需配置SGLang推理服务) | 较低(ComfyUI开箱即用 + 官方工作流模板) |
| 硬件门槛 | 128GB以上显存(推荐BW1100) | 64GB显存即可运行 |
2.2 技术选型
推理框架:选择ComfyUI而非SGLang。ComfyUI对H3提供了原生支持,海光信息、ComfyUI社区等在H3开源当日即完成了适配。更重要的是,ComfyUI支持动态显存卸载和按层offload,这对显存受限的场景至关重要。
模型量化:采用Comfy-Org提供的INT8剪枝版本(minimax_h3_fl2va_pruned_int8.safetensors),而非BF16全精度版本。INT8量化后模型体积大幅缩减,配合ComfyUI的按层offload机制,可在64GB显存内稳定运行。
部署架构:容器化部署,使用海光官方提供的DTK26.04 Docker镜像,确保驱动和底层库的兼容性。
1、整体架构如下图所示:

2、数据流如下图所示:
3、时序图如下图所示:

2.3 关键技术决策原理解析
(1)为什么选择ComfyUI而非SGLang?
SGLang是专为大模型推理设计的高性能框架,其核心优势在于RadixAttention和连续批处理,适合高吞吐在线服务场景。但SGLang对显存的管理策略相对"直接"——它假设模型权重可以完整驻留显存。对于33B的H3 BF16模型(约66GB权重 + KV Cache + 激活),显存需求轻松突破100GB。
ComfyUI则不同。它的设计初衷是面向Stable Diffusion等扩散模型的图形化工作流编排,天然支持按节点动态加载和卸载。H3的DiT主干在推理时,adaLN分支(约13B参数)的输入仅与时间步长相关,可以在所有采样步中预先计算并释放。ComfyUI的H3插件正是利用这一特性,在adaLN计算后立即释放这13B权重,使常驻显存从66GB降至约40GB,刚好卡在64GB的边界之内。
结论:SGLang适合"显存管够"的生产环境,ComfyUI适合"显存紧张"的探索场景。
(2)为什么选择INT8量化而非BF16全精度?
H3的BF16全精度模型权重约66GB(33B × 2 bytes)。即便使用ComfyUI的按层offload,常驻约40GB,加上视频VAE(约5GB)、音频VAE(约3GB)、Qwen3-VL编码器(约8GB)以及激活内存(约10-15GB),峰值显存仍可能突破64GB。
INT8量化将权重从2 bytes压缩到1 byte,33B × 1 byte ≈ 33GB。配合按层offload,常驻可降至约20GB,为激活和KV Cache留出充足空间。MiniMax官方提供的剪枝版本(pruned variants)并非简单量化,而是结构化剪枝 + INT8量化的组合,在精度损失控制在3-5%的前提下,体积减少超过50%。
结论:对于显存受限场景,INT8量化不是"可选项",而是"必选项"。
(3)按层offload的工作原理是什么?
H3的DiT主干包含两类参数:
-
adaLN分支(约13B):输入为时间步长t,输出为每层的scale和shift系数。这部分计算可以在采样开始前一次性完成,之后权重不再需要。
-
主干网络(约20B):每个采样步都需要参与计算,必须常驻显存。
ComfyUI的H3插件执行以下流程:
Step 1: 加载完整DiT到显存(33B)
Step 2: 用时间步长t计算adaLN,得到各层scale/shift
Step 3: 从显存中释放adaLN分支权重(释放13B)
Step 4: 后续采样步仅保留主干网络(20B)+ 预计算的scale/shift
这一步操作使峰值显存需求降低了约40%,是K100_AI 64GB得以成功运行的关键。
2.4 方案优势
-
显存友好:INT8量化 + 按层offload,单卡64GB可稳定运行
-
开箱即用:ComfyUI提供官方工作流模板,无需手写推理代码
-
全模态支持:同时支持T2V、I2V、R2V三种任务模式
-
国产化适配:基于海光DTK26.04生态,完全国产化部署
三、部署实施步骤
3.1 环境准备
步骤1:拉取Docker镜像
docker pull harbor.sourcefind.cn:5443/dcu/admin/base/custom:vllm0.15.1-ubuntu22.04-dtk26.04-0130-py3.10-20260220
该镜像已集成vLLM 0.15.1、PyTorch 2.9.0+DTK26.04以及海光DCU驱动环境。
步骤2:创建容器
docker run -itd \
--shm-size 200g \
--network=host \
--name MiniMax-H3 \
--privileged \
--device=/dev/kfd \
--device=/dev/dri \
--device=/dev/mkfd \
--group-add video \
--cap-add=SYS_PTRACE \
--security-opt seccomp=unconfined \
-u root \
-v /opt/hyhal/:/opt/hyhal/:ro \
-v /opt/models/:/home/models/ \
harbor.sourcefind.cn:5443/dcu/admin/base/custom:vllm0.15.1-ubuntu22.04-dtk26.04-0130-py3.10-20260220 bash
关键参数说明:
-
--shm-size 200g:共享内存设置为200GB,满足大模型加载需求 -
--device=/dev/kfd --device=/dev/dri --device=/dev/mkfd:挂载DCU设备 -
-v /opt/models/:/home/models/:挂载模型目录,避免容器内重复下载
步骤3:进入容器
docker exec -it MiniMax-H3 bash
步骤4:安装python依赖库,以下是安装好的模块列表,注意列表里面的dtk专用模块。
pip list
Package Version Editable project location
------------------------------------------ -------------------------------------------------- -----------------------------------------------------
accelerate 1.12.0
addict 2.4.0
aiofiles 24.1.0
aiohappyeyeballs 2.6.1
aiohttp 3.13.3
aiohttp-cors 0.8.1
aiohttp_socks 0.11.0
aiosignal 1.4.0
alembic 1.18.4
aliyun-python-sdk-core 2.16.0
aliyun-python-sdk-kms 2.16.5
amdsmi 24.5.3+02cbffb.dirty
annotated-doc 0.0.5
annotated-types 0.7.0
anthropic 0.83.0
antlr4-python3-runtime 4.9.3
anyio 4.14.2
astor 0.8.1
async-timeout 5.0.1
attrs 25.4.0
audioread 3.1.0
av 17.0.1
babel 2.18.0
backports.asyncio.runner 1.2.0
beautifulsoup4 4.15.0
blake3 1.0.8
blinker 1.9.0
blis 1.3.3
boto3 1.42.53
botocore 1.42.53
brotli 1.2.0
cache_dit 1.3.5
cachetools 7.0.1
catalogue 2.0.10
cbor2 5.8.0
certifi 2026.7.22
cffi 2.1.1
chardet 7.5.1
charset-normalizer 3.4.9
click 8.4.2
cloudpathlib 0.24.0
cloudpickle 3.1.2
cmake 3.29.0
colorama 0.4.6
colorful 0.5.8
comfy-aimdo 0.4.13
comfy-angle 0.1.0
comfy-kitchen 0.2.27
comfyui-embedded-docs 0.5.9
comfyui_frontend_package 1.48.6
comfyui-manager 4.2.2
comfyui_workflow_templates 0.11.31
comfyui-workflow-templates-core 0.3.295
comfyui-workflow-templates-json 0.1.30
comfyui-workflow-templates-media-api 0.3.84
comfyui-workflow-templates-media-assets-01 0.1.19
comfyui-workflow-templates-media-image 0.3.160
comfyui-workflow-templates-media-other 0.3.229
comfyui-workflow-templates-media-video 0.3.101
compressed-tensors 0.13.0
confection 1.3.3
contourpy 1.3.2
controlnet_aux 0.0.10
crcmod 1.7
cryptography 50.0.0
cstr 0.1.0
csvw 4.1.0
cuda-pathfinder 1.3.4
cupy 12.3.0
cupy-cuda12x 14.0.1
curated-tokenizers 0.0.9
curated-transformers 0.1.1
cycler 0.12.1
cymem 2.0.13
dashscope 1.25.17
datasets 4.5.0
dbus-python 1.2.18
decorator 4.4.2
decord 0.6.0
depyf 0.20.0
diffusers 0.38.0.dev0 /home/models/ernie-image_pytorch-main/diffusers
dill 0.4.0
diskcache 5.6.3
distlib 0.4.0
distro 1.7.0
DistVAE 0.0.0b5
dlinfo 2.0.0
dnspython 2.8.0
docopt 0.6.2
docstring_parser 0.17.0
easydict 1.13
eft 0.0.7
einops 0.8.2
email-validator 2.3.0
espeakng-loader 0.2.4
exceptiongroup 1.3.1
fairscale 0.4.13
fast_hadamard_transform 1.0.4.post1 /home/models/EffectiveKernels/fast-hadamard-transform
fastapi 0.129.0
fastapi-cli 0.0.23
fastapi-cloud-cli 0.13.0
fastar 0.8.0
fastrlock 0.8.3
ffmpeg-python 0.2.0
ffmpy 0.3.0
filelock 3.32.2
flash_attn 2.6.1+das.opt1.dtk2604.torch291.20260210.g7808665e
flash_mla 1.0.0
Flask 3.1.3
flask-cors 6.0.5
fonttools 4.61.1
frozenlist 1.8.0
fsspec 2026.7.0
ftfy 6.3.1
future 1.0.0
gguf 0.17.1
gitdb 4.0.12
GitPython 3.1.58
glfw 2.10.0
google-ai-generativelanguage 0.6.15
google-api-core 2.30.0
google-api-python-client 2.194.0
google-auth 2.48.0
google-auth-httplib2 0.3.1
google-cloud-core 2.5.0
google-cloud-storage 3.9.0
google-crc32c 1.8.0
google-generativeai 0.8.6
google-resumable-media 2.8.0
googleapis-common-protos 1.72.0
gradio 6.13.0
gradio_client 2.5.0
greenlet 3.3.1
groovy 0.1.2
grpcio 1.78.1
grpcio-reflection 1.78.1
grpcio-status 1.71.2
grpcio-tools 1.78.1
h11 0.16.0
h2 4.3.0
hf-gradio 0.4.1
hf-xet 1.6.0
hiredis 3.3.0
hpack 4.1.0
httpcore 1.0.9
httplib2 0.20.2
httptools 0.7.1
httpx 0.28.1
httpx-sse 0.4.3
huggingface_hub 1.26.1
humanize 4.15.0
Hypercorn 0.18.0
hyperframe 6.1.0
hypothesis 5.35.1
idna 3.18
ijson 3.4.0.post0
ImageIO 2.37.3
imageio-ffmpeg 0.6.0
img2texture 1.0.6
importlib_metadata 8.7.1
iniconfig 2.3.0
interegular 0.3.3
isodate 0.7.2
itsdangerous 2.2.0
jeepney 0.7.1
Jinja2 3.1.6
jiter 0.13.0
jmespath 0.10.0
joblib 1.5.3
jsonschema 4.26.0
jsonschema-specifications 2025.9.1
keyring 23.5.0
kiwisolver 1.4.9
kornia 0.8.2
kornia_rs 0.1.10
language-tags 1.3.1
lark 1.2.2
launchpadlib 1.10.16
lazr.restfulclient 0.14.4
lazr.uri 1.0.6
lazy-loader 0.5
libnacl 2.1.0
librosa 0.11.0
lightop 0.6.0+das.dtk2604.torch291.20260211.g1fdc3ed2
llguidance 1.3.0
llvmlite 0.44.0
lm-format-enforcer 0.11.3
lmslim 0.4.0+das.opt1.dtk2604.torch290
loguru 0.7.3
Mako 1.3.11
Markdown 3.10.2
markdown-it-py 4.2.0
MarkupSafe 3.0.3
matplotlib 3.10.8
matrix-nio 0.25.2
mcp 1.26.0
mdurl 0.1.2
misaki 0.9.4
mistral_common 1.11.2
model-hosting-container-standards 0.1.13
model-index 0.1.11
modelscope 1.36.1
more-itertools 8.10.0
moviepy 1.0.3
mpmath 1.3.0
msgpack 1.1.2
msgspec 0.20.0
multidict 6.7.1
multiprocess 0.70.18
murmurhash 1.0.15
networkx 3.4.2
ninja 1.11.1
num2words 0.5.14
numa 1.4.6
numba 0.61.2
numpy 1.26.4
oauthlib 3.2.0
omegaconf 2.3.1
open_clip_torch 3.3.0
openai 2.21.0
openai-harmony 0.0.8
opencensus 0.11.4
opencensus-context 0.1.3
opencv-python 4.13.0.92
opencv-python-headless 5.0.0.93
opendatalab 0.0.10
openmim 0.3.9
opentelemetry-api 1.39.1
opentelemetry-exporter-prometheus 0.60b1
opentelemetry-proto 1.39.1
opentelemetry-sdk 1.39.1
opentelemetry-semantic-conventions 0.60b1
openxlab 0.1.3
optimum-quanto 0.2.6
ordered-set 4.1.0
orjson 3.11.8
oss2 2.17.0
outlines_core 0.2.11
packaging 26.3
pandas 2.3.3
partial-json-parser 0.2.1.1.post7
peft 0.18.1
phonemizer 3.3.0
phonemizer-fork 3.3.2
pilgram 2.0.0
pillow 12.1.1
pip 26.2.1
platformdirs 4.9.2
playwright 1.60.0
pluggy 1.6.0
pooch 1.9.0
preshed 3.0.13
priority 2.0.0
proglog 0.1.12
prometheus_client 0.24.1
prometheus-fastapi-instrumentator 7.1.0
propcache 0.4.1
proto-plus 1.27.1
protobuf 6.33.6
psutil 7.2.2
py-cpuinfo 9.0.0
py-spy 0.4.1
pyarrow 23.0.1
pyasn1 0.6.2
pyasn1_modules 0.4.2
pybase64 1.4.3
pycountry 26.2.16
pycparser 3.0
pycryptodome 3.23.0
pydantic 2.12.5
pydantic_core 2.41.5
pydantic-extra-types 2.11.0
pydantic-settings 2.13.1
pydub 0.25.1
pyee 13.0.1
PyGithub 2.9.1
Pygments 2.20.0
PyGObject 3.42.1
PyHive 0.7.0
PyJWT 2.13.0
pyloudnorm 0.2.0
PyMatting 1.1.15
PyMySQL 1.1.2
PyNaCl 1.6.2
PyOpenGL 3.1.10
pyparsing 3.3.2
pytest 9.0.2
pytest-asyncio 1.3.0
python-apt 2.4.0+ubuntu4
python-dateutil 2.9.0.post0
python-dotenv 1.2.1
python-json-logger 4.0.0
python-multipart 0.0.22
python-socks 2.8.1
pytz 2023.4
PyYAML 6.0.3
pyzmq 27.1.0
Quart 0.20.0
ray 2.48.0
rdflib 7.6.0
redis 7.2.0
referencing 0.37.0
regex 2026.7.19
rembg 2.0.69
requests 2.34.2
rfc3986 1.5.0
rich 15.0.0
rich-toolkit 0.19.4
rignore 0.7.6
rpds-py 0.30.0
rsa 4.9.1
runai-model-streamer 0.15.3
runai-model-streamer-gcs 0.15.3
runai-model-streamer-s3 0.15.3
s3transfer 0.16.0
safehttpx 0.1.7
safetensors 0.8.0
scenedetect 0.7.1
scikit-image 0.25.2
scikit-learn 1.7.2
scipy 1.15.3
SecretStorage 3.3.1
segments 2.4.0
semantic-version 2.10.0
sentencepiece 0.2.1
sentry-sdk 2.53.0
setproctitle 1.3.7
setuptools 79.0.1
setuptools-scm 9.2.2
shellingham 1.5.4
simpleeval 1.0.7
six 1.17.0
smart_open 7.5.0
smmap 5.0.3
sniffio 1.3.1
sortedcontainers 2.4.0
soundfile 0.13.1
soupsieve 2.9.1
soxr 1.1.0
spacy 3.8.14
spacy-curated-transformers 0.3.1
spacy-legacy 3.0.12
spacy-loggers 1.0.5
spandrel 0.4.2
SQLAlchemy 2.0.46
srsly 2.5.3
sse-starlette 3.2.0
starlette 0.52.1
supervisor 4.3.0
sympy 1.14.0
tabulate 0.10.0
taskgroup 0.2.2
tensorboardX 2.6.4
tensorizer 2.10.1
termcolor 3.3.0
thinc 8.3.13
threadpoolctl 3.6.0
tifffile 2025.5.10
tiktoken 0.12.0
timm 1.0.24
tokenizers 0.22.2
toml 0.10.2
tomli 2.4.0
tomlkit 0.14.0
torch 2.9.0+das.opt1.dtk2604.20260206.g275d08c2
torchaudio 2.9.0+das.opt1.dtk2604.20260305.geaa9e4e4
torchdata 0.8.0
torchsde 0.2.6
torchvision 0.24.0+das.opt1.dtk2604.20260210.gf0277aff
tqdm 4.70.0
trampoline 0.1.2
transformers 5.14.1
triton 3.3.0+das.opt2.dtk2604.torch291.20260210.g1329924c
typer 0.27.1
typer-slim 0.24.0
typing_extensions 4.16.0
typing-inspection 0.4.2
tzdata 2025.3
unpaddedbase64 2.1.0
uritemplate 4.2.0
urllib3 2.7.0
uv 0.12.2
uvicorn 0.41.0
uvloop 0.22.1
virtualenv 20.38.0
vllm 0.15.1+das.opt1.alpha.dtk2604
wadllib 1.3.6
wasabi 1.1.3
watchfiles 1.1.1
wcwidth 0.7.0
weasel 1.0.0
websocket-client 1.9.0
websockets 16.0
Werkzeug 3.1.6
wheel 0.37.1
wrapt 2.1.1
wsproto 1.3.2
xformers 0.0.33+das.opt1.dtk2604.torch251
xfuser 0.4.5
xgrammar 0.1.29
xxhash 3.6.0
yarl 1.22.0
yunchang 0.6.4
zipp 3.23.0
3.2 安装ComfyUI
步骤1:克隆ComfyUI主程序
cd /home/models/
git clone https://github.com/Comfy-Org/ComfyUI.git ComfyUI-master
步骤2:安装ComfyUI-Manager
cd ComfyUI-master/custom_nodes/
git clone https://github.com/Comfy-Org/ComfyUI-Manager.git
ComfyUI-Manager是ComfyUI的插件管理器,后续可通过它搜索安装H3相关的自定义节点。
3.3 下载模型
1、使用ModelScope下载H3模型
cd /home/models/ComfyUI-master/
pip install modelscope
modelscope download --model Comfy-Org/MiniMax-H3 --local_dir ./models
2、H3模型仓库包含以下核心文件:
diffusion_models/minimax_h3_fl2va_pruned_int8.safetensors — INT8剪枝主模型(推荐)
text_encoders/qwen3_vl_nvfp4.safetensors — Qwen3-VL文本编码器
vae/video_vae.safetensors — 视频VAE
vae/audio_vae.safetensors — 音频VAE
注意:模型文件较大,下载需要一定时间,建议保持网络稳定。
3.4 配置工作流
步骤1:下载官方工作流
H3官方提供了三种工作流模板:
cd /home/models/ComfyUI-master/
# 文生视频工作流
wget https://github.com/Comfy-Org/workflow_templates/blob/main/templates/video_minimax_h3_t2v.json -O workflows/t2v.json
# 图生视频工作流
wget https://github.com/Comfy-Org/workflow_templates/blob/main/templates/video_minimax_h3_i2v.json -O workflows/i2v.json
# 参考生视频工作流
wget https://github.com/Comfy-Org/workflow_templates/blob/main/templates/video_minimax_h3_r2v.json -O workflows/r2v.json
步骤2:启动ComfyUI
cd /home/models/ComfyUI-master/
python main.py --listen 0.0.0.0 --port 7681
通过浏览器访问 http://服务器IP:7681 即可进入ComfyUI界面。
步骤3:加载工作流并生成视频
在ComfyUI界面中,点击“Load”加载下载的JSON工作流文件,确保模型路径指向已下载的H3模型文件,输入提示词后点击“Queue Prompt”开始生成。
1、以文生视频为例,ComfyUI界面如下:

2、官方提供的文生视频工作流(video_minimax_h3_t2v.json):
{
"id": "e3f2b845-8f2c-4b5a-9caf-eac1029d3e7e",
"revision": 0,
"last_node_id": 118,
"last_link_id": 227,
"nodes": [
{
"id": 92,
"type": "SaveVideo",
"pos": [
-660,
4840
],
"size": [
1070,
126
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "video",
"type": "VIDEO",
"link": 194
}
],
"outputs": [
{
"name": "video",
"type": "VIDEO",
"links": null
}
],
"properties": {},
"widgets_values": [
"video/MiniMax_H3",
"auto",
"auto"
]
},
{
"id": 115,
"type": "ResolutionSelector",
"pos": [
-1550,
5220
],
"size": [
270,
170
],
"flags": {},
"order": 0,
"mode": 0,
"showAdvanced": true,
"inputs": [],
"outputs": [
{
"name": "width",
"type": "INT",
"links": [
219
]
},
{
"name": "height",
"type": "INT",
"links": [
220
]
}
],
"properties": {
"Node name for S&R": "ResolutionSelector"
},
"widgets_values": [
"16:9 (Widescreen)",
0.4,
32
]
},
{
"id": 105,
"type": "4c314f31-ecda-4b08-ae98-faaba1bf613f",
"pos": [
-1180,
4840
],
"size": [
480,
630
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [
{
"name": "first_frame",
"shape": 7,
"type": "IMAGE",
"link": null
},
{
"name": "last_frame",
"shape": 7,
"type": "IMAGE",
"link": null
},
{
"name": "width",
"type": "INT",
"widget": {
"name": "width"
},
"link": 219
},
{
"name": "height",
"type": "INT",
"widget": {
"name": "height"
},
"link": 220
},
{
"label": "duration",
"name": "value_1",
"type": "FLOAT",
"widget": {
"name": "value_1"
},
"link": null
},
{
"label": "audio_vae",
"name": "vae_name_1",
"type": "COMBO",
"widget": {
"name": "vae_name_1"
},
"link": null
}
],
"outputs": [
{
"name": "VIDEO",
"type": "VIDEO",
"links": [
194
]
}
],
"properties": {
"previewExposures": []
},
"widgets_values": [
"Realistic live-action cinematic look, action movie trailer: practical film photography style, a post-rain dusk metropolis, anamorphic lens, shallow depth of field, film grain, city volumetric fog, flying-car traffic between the towers, restrained grading for a premium feel, powerful natural movement.\n\nScene overview: at dusk on a cluster of skyscrapers, the protagonist is being chased, sprinting and leaping across rooftops, jumping from one building's roof to the next with pursuers closing in behind. This is the escape sequence of an action movie trailer: every leap is life-or-death, thrilling and fluid.\n\nStoryboard (each shot a separate scene, rapid cuts, all landing on the musical beats):\n[0s-1.5s] Shot 1: high side angle: the protagonist sprinting at the roof edge, pursuers appearing in the rooftop doorway behind him, wind catching his coat.\n[1s-2.5s] Shot 2: the protagonist leaps across the gap between buildings, body stretching mid-air, towers and flying-car light trails behind him, a slight slow-motion feel.\n[2.5s-4s] Shot 3: he lands, rolls and rises, low-angle shot, tower shadows and fog behind him, he keeps running.\n[4s-5s] Shot 4: freeze: the instant he hits the edge of the next roof and launches into the jump, silhouette, holding.\n\nCamera: each shot its own angle, cuts clean and hard, no dissolves, a slight frame jitter on the jumps.\n\nAudio: wind, rapid footsteps, city ambience, low score underneath, an accent hit on each leap, the score bursting at 4s, closing the last 1s.\n\nNo text, subtitles, logos or watermarks of any kind, no animation or cartoon rendering, no overly-CG look, keep the live-action texture.",
1344,
768,
5,
556589502035082,
"minimax_h3_fl2va_pruned_int8_convrot.safetensors",
"qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors",
"minimax_h3_video_vae_fp16.safetensors",
"minimax_h3_audio_vae_fp32.safetensors"
]
},
{
"id": 116,
"type": "MarkdownNote",
"pos": [
-2080,
4840
],
"size": [
450,
740
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [],
"title": "Note: MiniMax H3",
"properties": {},
"widgets_values": [
"## MiniMax H3\n\n[MiniMax H3](https://www.minimax.io/blog/minimax-h3) is MiniMax's general-purpose, omni-modal generation model. It jointly understands text, image, video, and audio, and generates video with **native stereo audio**: voice, sound effects, and music are modeled jointly in a single forward pass, not layered on afterward. Output is up to 2K resolution, 24fps, and up to about 15 seconds.\n\n## ComfyUI links\n- [ComfyUI#15224](https://github.com/Comfy-Org/ComfyUI/pull/15224)\n- [🤗 Comfy-Org/MiniMax-H3](https://huggingface.co/Comfy-Org/MiniMax-H3)\n\n## About this workflow\n\n**Key inputs**\n\n- **prompt**: describe the shots, camera moves, and the accompanying audio (dialogue, SFX, music) in one block\n- **width / height**: set via Resolution Selector. H3's native canvas is a 768px short edge, capped at 768x1344 pixels, rounded to a multiple of 32\n- **duration (seconds)**: converted to a valid frame `length` by the Math Expression node, snapping up to the model's 17-frame-per-block (17k+5) grid at 24fps\n"
],
"color": "#222",
"bgcolor": "#000"
},
{
"id": 117,
"type": "MarkdownNote",
"pos": [
-2550,
4840
],
"size": [
440,
740
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [],
"outputs": [],
"title": "Note: Model Links",
"properties": {},
"widgets_values": [
"## Model Links\n\n**vae**\n\n- [minimax_h3_video_vae_fp16.safetensors](https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/vae/minimax_h3_video_vae_fp16.safetensors)\n- [minimax_h3_audio_vae_fp32.safetensors](https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/vae/minimax_h3_audio_vae_fp32.safetensors)\n\n**diffusion_models**\n\n- [minimax_h3_fl2va_pruned_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/diffusion_models/minimax_h3_fl2va_pruned_int8_convrot.safetensors)\n\n**text_encoders**\n\n- [qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors](https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/text_encoders/qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors)\n\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 vae/\n│ │ ├── minimax_h3_video_vae_fp16.safetensors\n│ │ └── minimax_h3_audio_vae_fp32.safetensors\n│ ├── 📂 diffusion_models/\n│ │ └── minimax_h3_fl2va_pruned_int8_convrot.safetensors\n│ └── 📂 text_encoders/\n│ └── qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors\n```\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n"
],
"color": "#222",
"bgcolor": "#000"
},
{
"id": 118,
"type": "MarkdownNote",
"pos": [
-1570,
5460
],
"size": [
300,
520
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [],
"outputs": [],
"title": "Note: Size Settings Reference",
"properties": {},
"widgets_values": [
"| megapixels | Aspect | Output (multiple=32) |\n|---|---|---|\n| 0.2 | 16:9 | 608 x 352 |\n| 0.3 | 16:9 | 736 x 416 |\n| 0.4 | 16:9 | 864 x 480 |\n| 0.5 | 16:9 | 960 x 544 |\n| 0.6 | 16:9 | 1056 x 608 |\n| 0.7 | 16:9 | 1152 x 640 |\n| 0.8 | 16:9 | 1216 x 672 |\n| 0.9 | 16:9 | 1280 x 736 |\n| 0.98 | 16:9 | 1344 x 768 |\n| 1.0 | 16:9 | 1376 x 768 |\n| 1.2 | 16:9 | 1504 x 832 |\n| 1.5 | 16:9 | 1664 x 928 |\n| 1.8 | 16:9 | 1824 x 1024 |\n| 2.0 | 16:9 | 1920 x 1088 |\n"
],
"color": "#222",
"bgcolor": "#000"
}
],
"links": [
[
194,
105,
0,
92,
0,
"VIDEO"
],
[
219,
115,
0,
105,
2,
"INT"
],
[
220,
115,
1,
105,
3,
"INT"
]
],
"groups": [],
"definitions": {
"subgraphs": [
{
"id": "4c314f31-ecda-4b08-ae98-faaba1bf613f",
"version": 1,
"state": {
"lastGroupId": 4,
"lastNodeId": 118,
"lastLinkId": 227,
"lastRerouteId": 0
},
"revision": 0,
"config": {},
"name": "Image to Video (MiniMax H3)",
"inputNode": {
"id": -10,
"bounding": [
-2560,
4720,
128,
268
]
},
"outputNode": {
"id": -20,
"bounding": [
670,
4780,
128,
68
]
},
"inputs": [
{
"id": "d6eaa195-2266-4016-b7ed-b2d17a3e53c2",
"name": "first_frame",
"type": "IMAGE",
"linkIds": [
195
],
"pos": [
-2456,
4744
]
},
{
"id": "03b95567-f496-4279-9d38-989dd34fa882",
"name": "last_frame",
"type": "IMAGE",
"linkIds": [
196
],
"pos": [
-2456,
4764
]
},
{
"id": "d7302ca7-24ed-44c4-8ac9-736540dab7fb",
"name": "prompt",
"type": "STRING",
"linkIds": [
197
],
"pos": [
-2456,
4784
]
},
{
"id": "709e2d94-3172-496f-ad86-7d672f3df568",
"name": "width",
"type": "INT",
"linkIds": [
200
],
"pos": [
-2456,
4804
]
},
{
"id": "8205b85b-19bb-47f6-8418-89cd42940c1d",
"name": "height",
"type": "INT",
"linkIds": [
201
],
"pos": [
-2456,
4824
]
},
{
"id": "a40e5e96-4307-4a8e-a4f8-13a27d4bc9d3",
"name": "value_1",
"type": "FLOAT",
"linkIds": [
206
],
"label": "duration",
"pos": [
-2456,
4844
]
},
{
"id": "9f8734bc-c2b3-43b0-911e-e89560e8b777",
"name": "noise_seed",
"type": "INT",
"linkIds": [
207
],
"pos": [
-2456,
4864
]
},
{
"id": "9a6d2811-673c-47e0-aa94-dda7c83621e4",
"name": "unet_name",
"type": "COMBO",
"linkIds": [
221
],
"pos": [
-2456,
4884
]
},
{
"id": "7100a787-5536-4002-840b-1d2fd071010a",
"name": "clip_name",
"type": "COMBO",
"linkIds": [
227
],
"pos": [
-2456,
4904
]
},
{
"id": "d40632fd-e0ae-4319-b85d-5479db4d6e11",
"name": "vae_name",
"type": "COMBO",
"linkIds": [
223
],
"pos": [
-2456,
4924
]
},
{
"id": "2992852c-4b20-439a-8771-c866ec1996e6",
"name": "vae_name_1",
"type": "COMBO",
"linkIds": [
224
],
"label": "audio_vae",
"pos": [
-2456,
4944
]
}
],
"outputs": [
{
"id": "adb2611c-e490-4fca-8067-b718c992f8cc",
"name": "VIDEO",
"type": "VIDEO",
"linkIds": [
168
],
"localized_name": "VIDEO",
"pos": [
694,
4804
]
}
],
"widgets": [],
"nodes": [
{
"id": 11,
"type": "VAELoader",
"pos": [
-2020,
4970
],
"size": [
640,
70
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [
{
"localized_name": "vae_name",
"name": "vae_name",
"type": "COMBO",
"widget": {
"name": "vae_name"
},
"link": 223
}
],
"outputs": [
{
"localized_name": "VAE",
"name": "VAE",
"type": "VAE",
"links": [
8,
190
]
}
],
"properties": {
"Node name for S&R": "VAELoader",
"models": [
{
"name": "minimax_h3_video_vae_fp16.safetensors",
"url": "https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/vae/minimax_h3_video_vae_fp16.safetensors",
"directory": "vae"
}
]
},
"widgets_values": [
"minimax_h3_video_vae_fp16.safetensors"
]
},
{
"id": 24,
"type": "VAELoader",
"pos": [
-2020,
5100
],
"size": [
650,
70
],
"flags": {},
"order": 10,
"mode": 0,
"inputs": [
{
"localized_name": "vae_name",
"name": "vae_name",
"type": "COMBO",
"widget": {
"name": "vae_name"
},
"link": 224
}
],
"outputs": [
{
"localized_name": "VAE",
"name": "VAE",
"type": "VAE",
"links": [
23
]
}
],
"properties": {
"Node name for S&R": "VAELoader",
"models": [
{
"name": "minimax_h3_audio_vae_fp32.safetensors",
"url": "https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/vae/minimax_h3_audio_vae_fp32.safetensors",
"directory": "vae"
}
]
},
"widgets_values": [
"minimax_h3_audio_vae_fp32.safetensors"
]
},
{
"id": 23,
"type": "VAEDecodeAudio",
"pos": [
-50,
4880
],
"size": [
230,
60
],
"flags": {
"collapsed": false
},
"order": 9,
"mode": 0,
"inputs": [
{
"localized_name": "samples",
"name": "samples",
"type": "LATENT",
"link": 226
},
{
"localized_name": "vae",
"name": "vae",
"type": "VAE",
"link": 23
}
],
"outputs": [
{
"localized_name": "AUDIO",
"name": "AUDIO",
"type": "AUDIO",
"links": [
166
]
}
],
"properties": {
"Node name for S&R": "VAEDecodeAudio"
},
"widgets_values": []
},
{
"id": 10,
"type": "VAEDecode",
"pos": [
-50,
4760
],
"size": [
230,
60
],
"flags": {
"collapsed": false
},
"order": 3,
"mode": 0,
"inputs": [
{
"localized_name": "samples",
"name": "samples",
"type": "LATENT",
"link": 225
},
{
"localized_name": "vae",
"name": "vae",
"type": "VAE",
"link": 8
}
],
"outputs": [
{
"localized_name": "IMAGE",
"name": "IMAGE",
"type": "IMAGE",
"links": [
167
]
}
],
"properties": {
"Node name for S&R": "VAEDecode"
},
"widgets_values": []
},
{
"id": 17,
"type": "KSamplerSelect",
"pos": [
-790,
4910
],
"size": [
370,
70
],
"flags": {},
"order": 0,
"mode": 0,
"inputs": [],
"outputs": [
{
"localized_name": "SAMPLER",
"name": "SAMPLER",
"type": "SAMPLER",
"links": [
16
]
}
],
"properties": {
"Node name for S&R": "KSamplerSelect"
},
"widgets_values": [
"res_multistep"
]
},
{
"id": 9,
"type": "BasicScheduler",
"pos": [
-790,
5030
],
"size": [
370,
130
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [
{
"localized_name": "model",
"name": "model",
"type": "MODEL",
"link": 5
}
],
"outputs": [
{
"localized_name": "SIGMAS",
"name": "SIGMAS",
"type": "SIGMAS",
"links": [
18
]
}
],
"properties": {
"Node name for S&R": "BasicScheduler"
},
"widgets_values": [
"simple",
20,
1
]
},
{
"id": 14,
"type": "SamplerCustomAdvanced",
"pos": [
-360,
4820
],
"size": [
230,
140
],
"flags": {},
"order": 6,
"mode": 0,
"inputs": [
{
"localized_name": "noise",
"name": "noise",
"type": "NOISE",
"link": 40
},
{
"localized_name": "guider",
"name": "guider",
"type": "GUIDER",
"link": 12
},
{
"localized_name": "sampler",
"name": "sampler",
"type": "SAMPLER",
"link": 16
},
{
"localized_name": "sigmas",
"name": "sigmas",
"type": "SIGMAS",
"link": 18
},
{
"localized_name": "latent_image",
"name": "latent_image",
"type": "LATENT",
"link": 188
}
],
"outputs": [
{
"localized_name": "output",
"name": "output",
"type": "LATENT",
"links": [
225,
226
]
},
{
"localized_name": "denoised_output",
"name": "denoised_output",
"type": "LATENT",
"links": null
}
],
"properties": {
"Node name for S&R": "SamplerCustomAdvanced"
},
"widgets_values": []
},
{
"id": 16,
"type": "BasicGuider",
"pos": [
-790,
4800
],
"size": [
360,
60
],
"flags": {},
"order": 8,
"mode": 0,
"inputs": [
{
"localized_name": "model",
"name": "model",
"type": "MODEL",
"link": 193
},
{
"localized_name": "conditioning",
"name": "conditioning",
"type": "CONDITIONING",
"link": 187
}
],
"outputs": [
{
"localized_name": "GUIDER",
"name": "GUIDER",
"type": "GUIDER",
"links": [
12
]
}
],
"properties": {
"Node name for S&R": "BasicGuider"
},
"widgets_values": []
},
{
"id": 6,
"type": "UNETLoader",
"pos": [
-2020,
4630
],
"size": [
640,
90
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [
{
"localized_name": "unet_name",
"name": "unet_name",
"type": "COMBO",
"widget": {
"name": "unet_name"
},
"link": 221
}
],
"outputs": [
{
"localized_name": "MODEL",
"name": "MODEL",
"type": "MODEL",
"links": [
5,
193
]
}
],
"properties": {
"Node name for S&R": "UNETLoader",
"models": [
{
"name": "minimax_h3_fl2va_pruned_int8_convrot.safetensors",
"url": "https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/diffusion_models/minimax_h3_fl2va_pruned_int8_convrot.safetensors",
"directory": "diffusion_models"
}
]
},
"widgets_values": [
"minimax_h3_fl2va_pruned_int8_convrot.safetensors",
"default"
]
},
{
"id": 13,
"type": "CLIPLoader",
"pos": [
-2020,
4780
],
"size": [
640,
120
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"localized_name": "clip_name",
"name": "clip_name",
"type": "COMBO",
"widget": {
"name": "clip_name"
},
"link": 227
}
],
"outputs": [
{
"localized_name": "CLIP",
"name": "CLIP",
"type": "CLIP",
"links": [
189
]
}
],
"properties": {
"Node name for S&R": "CLIPLoader",
"models": [
{
"name": "qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors",
"url": "https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/text_encoders/qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors",
"directory": "text_encoders"
}
]
},
"widgets_values": [
"qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors",
"minimax",
"default"
]
},
{
"id": 15,
"type": "RandomNoise",
"pos": [
-790,
4660
],
"size": [
360,
90
],
"flags": {},
"order": 7,
"mode": 0,
"inputs": [
{
"localized_name": "noise_seed",
"name": "noise_seed",
"type": "INT",
"widget": {
"name": "noise_seed"
},
"link": 207
}
],
"outputs": [
{
"localized_name": "NOISE",
"name": "NOISE",
"type": "NOISE",
"links": [
40
]
}
],
"properties": {
"Node name for S&R": "RandomNoise"
},
"widgets_values": [
1,
"randomize"
]
},
{
"id": 91,
"type": "CreateVideo",
"pos": [
260,
4790
],
"size": [
270,
110
],
"flags": {},
"order": 11,
"mode": 0,
"inputs": [
{
"localized_name": "images",
"name": "images",
"type": "IMAGE",
"link": 167
},
{
"localized_name": "audio",
"name": "audio",
"shape": 7,
"type": "AUDIO",
"link": 166
}
],
"outputs": [
{
"localized_name": "VIDEO",
"name": "VIDEO",
"type": "VIDEO",
"links": [
168
]
}
],
"properties": {
"Node name for S&R": "CreateVideo"
},
"widgets_values": [
24,
8
]
},
{
"id": 104,
"type": "MiniMaxH3ImageToVideo",
"pos": [
-1290,
4650
],
"size": [
410,
510
],
"flags": {},
"order": 12,
"mode": 0,
"inputs": [
{
"localized_name": "clip",
"name": "clip",
"type": "CLIP",
"link": 189
},
{
"localized_name": "vae",
"name": "vae",
"type": "VAE",
"link": 190
},
{
"localized_name": "first_frame",
"name": "first_frame",
"shape": 7,
"type": "IMAGE",
"link": 195
},
{
"localized_name": "last_frame",
"name": "last_frame",
"shape": 7,
"type": "IMAGE",
"link": 196
},
{
"localized_name": "prompt",
"name": "prompt",
"type": "STRING",
"widget": {
"name": "prompt"
},
"link": 197
},
{
"localized_name": "width",
"name": "width",
"type": "INT",
"widget": {
"name": "width"
},
"link": 200
},
{
"localized_name": "height",
"name": "height",
"type": "INT",
"widget": {
"name": "height"
},
"link": 201
},
{
"localized_name": "length",
"name": "length",
"type": "INT",
"widget": {
"name": "length"
},
"link": 199
}
],
"outputs": [
{
"localized_name": "positive",
"name": "positive",
"type": "CONDITIONING",
"links": [
187
]
},
{
"localized_name": "LATENT",
"name": "LATENT",
"type": "LATENT",
"links": [
188
]
}
],
"properties": {
"Node name for S&R": "MiniMaxH3ImageToVideo"
},
"widgets_values": [
"Vaporwave title sequence look: pink and blue gradient palette, VHS tracking artifacts, Greek statue motifs, chrome palm trees, RGB chromatic aberration, lo-fi retro atmosphere, mood languid and nostalgic.\n\nTimeline:\n[0s-1s] VHS static opens the frame, the title \"COMFYUI\" appears with RGB split and a slight horizontal jitter.\n[1s-2.5s] Hard cut, a Greek plaster bust close-up, pink-purple gradient sky, a pixelated sun.\n[2.5s-4s] Clean \"STARRING\" credits appear, \"LATENT\" and \"CONTROLNET\" each shown exactly once.\n[4s-5s] Final card \"DIRECTED BY COMFYUI\" holds, one VHS tracking glitch settling into stability.\n\nHard cuts only, transitions landing with tape jumps, no push-ins, no dissolves.\n\nAudio: lo-fi vaporwave score, slow drum machine with soft bass, VHS tape-noise sample joins at 2.5s, melody fading for the last 1s.\n\nAll text must be clearly legible, do not misspell English, no Chinese characters, do not repeat names or job titles, no soft dissolves, no subtitle bars.",
1344,
768,
73
]
},
{
"id": 107,
"type": "ComfyMathExpression",
"pos": [
-1710,
5300
],
"size": [
360,
160
],
"flags": {
"collapsed": false
},
"order": 13,
"mode": 0,
"inputs": [
{
"label": "a",
"localized_name": "values.a",
"name": "values.a",
"type": "FLOAT,INT,BOOLEAN",
"link": 205
},
{
"label": "b",
"localized_name": "values.b",
"name": "values.b",
"shape": 7,
"type": "FLOAT,INT,BOOLEAN",
"link": null
}
],
"outputs": [
{
"localized_name": "FLOAT",
"name": "FLOAT",
"type": "FLOAT",
"links": null
},
{
"localized_name": "INT",
"name": "INT",
"type": "INT",
"links": [
199
]
},
{
"localized_name": "BOOL",
"name": "BOOL",
"type": "BOOLEAN",
"links": null
}
],
"properties": {
"Node name for S&R": "ComfyMathExpression"
},
"widgets_values": [
"max(5, round(a * 24)) + (5 - (max(5, round(a * 24)) % 17)) % 17"
]
},
{
"id": 111,
"type": "PrimitiveFloat",
"pos": [
-2020,
5300
],
"size": [
270,
70
],
"flags": {},
"order": 14,
"mode": 0,
"inputs": [
{
"localized_name": "value",
"name": "value",
"type": "FLOAT",
"widget": {
"name": "value"
},
"link": 206
}
],
"outputs": [
{
"localized_name": "FLOAT",
"name": "FLOAT",
"type": "FLOAT",
"links": [
205
]
}
],
"title": "Float (duration)",
"properties": {
"Node name for S&R": "PrimitiveFloat"
},
"widgets_values": [
2
]
}
],
"groups": [
{
"id": 1,
"title": "Models",
"bounding": [
-2050,
4540,
700,
670
],
"color": "#3f789e",
"flags": {}
},
{
"id": 2,
"title": "Sampling",
"bounding": [
-810,
4540,
690,
670
],
"color": "#3f789e",
"flags": {}
},
{
"id": 3,
"title": "Conditioning",
"bounding": [
-1320,
4540,
480,
670
],
"color": "#3f789e",
"flags": {}
},
{
"id": 4,
"title": "Decoding and create video",
"bounding": [
-90,
4540,
670,
670
],
"color": "#3f789e",
"flags": {}
}
],
"links": [
{
"id": 23,
"origin_id": 24,
"origin_slot": 0,
"target_id": 23,
"target_slot": 1,
"type": "VAE"
},
{
"id": 8,
"origin_id": 11,
"origin_slot": 0,
"target_id": 10,
"target_slot": 1,
"type": "VAE"
},
{
"id": 5,
"origin_id": 6,
"origin_slot": 0,
"target_id": 9,
"target_slot": 0,
"type": "MODEL"
},
{
"id": 40,
"origin_id": 15,
"origin_slot": 0,
"target_id": 14,
"target_slot": 0,
"type": "NOISE"
},
{
"id": 12,
"origin_id": 16,
"origin_slot": 0,
"target_id": 14,
"target_slot": 1,
"type": "GUIDER"
},
{
"id": 16,
"origin_id": 17,
"origin_slot": 0,
"target_id": 14,
"target_slot": 2,
"type": "SAMPLER"
},
{
"id": 18,
"origin_id": 9,
"origin_slot": 0,
"target_id": 14,
"target_slot": 3,
"type": "SIGMAS"
},
{
"id": 188,
"origin_id": 104,
"origin_slot": 1,
"target_id": 14,
"target_slot": 4,
"type": "LATENT"
},
{
"id": 193,
"origin_id": 6,
"origin_slot": 0,
"target_id": 16,
"target_slot": 0,
"type": "MODEL"
},
{
"id": 187,
"origin_id": 104,
"origin_slot": 0,
"target_id": 16,
"target_slot": 1,
"type": "CONDITIONING"
},
{
"id": 167,
"origin_id": 10,
"origin_slot": 0,
"target_id": 91,
"target_slot": 0,
"type": "IMAGE"
},
{
"id": 166,
"origin_id": 23,
"origin_slot": 0,
"target_id": 91,
"target_slot": 1,
"type": "AUDIO"
},
{
"id": 189,
"origin_id": 13,
"origin_slot": 0,
"target_id": 104,
"target_slot": 0,
"type": "CLIP"
},
{
"id": 190,
"origin_id": 11,
"origin_slot": 0,
"target_id": 104,
"target_slot": 1,
"type": "VAE"
},
{
"id": 168,
"origin_id": 91,
"origin_slot": 0,
"target_id": -20,
"target_slot": 0,
"type": "VIDEO"
},
{
"id": 195,
"origin_id": -10,
"origin_slot": 0,
"target_id": 104,
"target_slot": 2,
"type": "IMAGE"
},
{
"id": 196,
"origin_id": -10,
"origin_slot": 1,
"target_id": 104,
"target_slot": 3,
"type": "IMAGE"
},
{
"id": 197,
"origin_id": -10,
"origin_slot": 2,
"target_id": 104,
"target_slot": 4,
"type": "STRING"
},
{
"id": 199,
"origin_id": 107,
"origin_slot": 1,
"target_id": 104,
"target_slot": 7,
"type": "INT"
},
{
"id": 200,
"origin_id": -10,
"origin_slot": 3,
"target_id": 104,
"target_slot": 5,
"type": "INT"
},
{
"id": 201,
"origin_id": -10,
"origin_slot": 4,
"target_id": 104,
"target_slot": 6,
"type": "INT"
},
{
"id": 205,
"origin_id": 111,
"origin_slot": 0,
"target_id": 107,
"target_slot": 0,
"type": "FLOAT"
},
{
"id": 206,
"origin_id": -10,
"origin_slot": 5,
"target_id": 111,
"target_slot": 0,
"type": "FLOAT"
},
{
"id": 207,
"origin_id": -10,
"origin_slot": 6,
"target_id": 15,
"target_slot": 0,
"type": "INT"
},
{
"id": 221,
"origin_id": -10,
"origin_slot": 7,
"target_id": 6,
"target_slot": 0,
"type": "COMBO"
},
{
"id": 223,
"origin_id": -10,
"origin_slot": 9,
"target_id": 11,
"target_slot": 0,
"type": "COMBO"
},
{
"id": 224,
"origin_id": -10,
"origin_slot": 10,
"target_id": 24,
"target_slot": 0,
"type": "COMBO"
},
{
"id": 225,
"origin_id": 14,
"origin_slot": 0,
"target_id": 10,
"target_slot": 0,
"type": "LATENT"
},
{
"id": 226,
"origin_id": 14,
"origin_slot": 0,
"target_id": 23,
"target_slot": 0,
"type": "LATENT"
},
{
"id": 227,
"origin_id": -10,
"origin_slot": 8,
"target_id": 13,
"target_slot": 0,
"type": "COMBO"
}
],
"extra": {}
}
]
},
"config": {},
"extra": {
"frontendVersion": "1.47.11",
"VHS_latentpreview": false,
"VHS_latentpreviewrate": 0,
"VHS_MetadataImage": true,
"VHS_KeepIntermediate": true,
"ds": {
"scale": 0.5603112840466928,
"offset": [
2335.3467480944532,
-4102.867472659601
]
}
},
"version": 0.4
}
3、实测用到的文生视频提示词(生成火把节狂欢夜场景的视频):
integrated_multimodal_description:
[0.0s-3.0s] Wide aerial drone shot, slow push-in over a 4.8-kilometer-long avenue in Xichang, Liangshan Yi Autonomous Prefecture, at night. 88 massive bonfires are burning intensely along both sides of the street, illuminating the crowd of over 200,000 people. Tens of thousands of participants are holding lit torches high above their heads, forming a winding "fire dragon" that stretches as far as the eye can see. Warm orange and red firelight flickers across countless smiling faces. Fireworks burst in the dark sky above. Ambient sound: roaring flames, crackling fire, distant cheers and laughter, festive彝族 music playing in the background.
[3.0s-6.5s] Mid-shot tracking along the crowd. Yi ethnic men and women in ornate traditional costumes — women wearing elaborate silver headpieces and embroidered pleated skirts, men in dark blue jackets with silver buttons — are dancing in large circles around a central bonfire. Their movements are lively and rhythmic, performing the traditional "Da Ti Wu" (达体舞) folk dance. Colorful skirts swirl as dancers spin, silver ornaments jingling with each step. Hands are joined across generations and ethnicities. The firelight casts dramatic dancing shadows on the ground. Sound: rhythmic folk music with彝族 suona and percussion, footsteps synchronizing with the beat, laughter and chanting of "Du Ze Mu Sa!" (火把节快乐).
[6.5s-10.0s] Slow pan across the avenue revealing the full spectacle. A procession of Yi women in vibrant costumes walks gracefully with yellow oil-paper umbrellas, performing the "Duo Le He" (朵乐荷) traditional dance. Behind them, a synchronized drone light show paints shifting patterns of torches and ethnic motifs across the night sky, complementing the sea of fire below. The camera gradually pulls back to an elevated wide shot, capturing the entire 4.8-kilometer avenue transformed into a river of fire and light. Firelight, starlight, and drone lights merge into one radiant tapestry. Sound: celebratory music swells to a climax, crowd roars with excitement, drums beating, the festive atmosphere reaching its peak.
overall_soundscape:
A rich festive soundscape blending the crackling and roaring of thousands of bonfires and torches, lively Yi ethnic folk music with suona, drums, and percussion, rhythmic footsteps of thousands dancing the Da Ti Wu in unison, jingling silver ornaments from traditional costumes, joyful laughter and excited chatter of the crowd, occasional fireworks exploding overhead, and the collective chant of "Du Ze Mu Sa!" (Happy Torch Festival) rising in waves throughout the night.
non_diegetic_music:
Uplifting, rhythmic Yi ethnic festival music with traditional suona melody, driving percussion, and festive brass instrumentation. The tempo builds gradually from the opening, peaks during the dance sequence around 4-6 seconds, and resolves into a grand, celebratory finale accompanying the drone light show in the final seconds. Energetic, joyful, and majestic in tone.
4、ComfyUI启动日志如下:
[INFO] setup plugin alembic.autogenerate.schemas
[INFO] setup plugin alembic.autogenerate.tables
[INFO] setup plugin alembic.autogenerate.types
[INFO] setup plugin alembic.autogenerate.constraints
[INFO] setup plugin alembic.autogenerate.defaults
[INFO] setup plugin alembic.autogenerate.comments
[WARNING] Could not autodetect AIMDO implementation, assuming Nvidia
[START] Security scan
[INFO] [ComfyUI-Manager] Using `uv` as Python module for pip operations.
Using Python 3.10.12 environment at: /usr
[DONE] Security scan
## ComfyUI-Manager: installing dependencies done.
** ComfyUI startup time: 2026-08-07 15:50:43.837
** Platform: Linux
** Python version: 3.10.12 (main, Jun 22 2026, 18:55:27) [GCC 11.4.0]
** Python executable: /usr/bin/python
** ComfyUI Path: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master
** ComfyUI Base Folder Path: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master
** User directory: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/user
** ComfyUI-Manager config path: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/user/__manager/config.ini
** Log path: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/user/comfyui.log
Using Python 3.10.12 environment at: /usr
Using Python 3.10.12 environment at: /usr
[INFO]
Prestartup times for custom nodes:
[INFO] 0.0 seconds: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/custom_nodes/rgthree-comfy
[INFO] 0.0 seconds: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/custom_nodes/ComfyUI-Easy-Use-main
[INFO] 1.0 seconds: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/custom_nodes/ComfyUI-Manager
[INFO]
[INFO] Found comfy_kitchen backend hip: {'available': False, 'disabled': False, 'unavailable_reason': 'Failed to load HIP extension: libamdhip64.so.7: cannot open shared object file: No such file or directory', 'capabilities': []}
[INFO] Found comfy_kitchen backend triton: {'available': True, 'disabled': True, 'unavailable_reason': None, 'capabilities': ['adaln', 'apply_rope', 'apply_rope1', 'apply_rope1_', 'apply_rope_', 'apply_rope_split_half', 'apply_rope_split_half1', 'apply_rope_split_half1_', 'apply_rope_split_half_', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'int8_linear', 'quantize_and_rotate_rowwise', 'quantize_int8_rowwise', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8', 'rms_adaln', 'rms_rope', 'rms_rope1', 'rms_rope1_', 'rms_rope_', 'rms_rope_split_half', 'rms_rope_split_half1', 'rms_rope_split_half1_', 'rms_rope_split_half_', 'w4a8_int8_linear']}
[INFO] Found comfy_kitchen backend eager: {'available': True, 'disabled': False, 'unavailable_reason': None, 'capabilities': ['adaln', 'apply_rope', 'apply_rope1', 'apply_rope1_', 'apply_rope_', 'apply_rope_split_half', 'apply_rope_split_half1', 'apply_rope_split_half1_', 'apply_rope_split_half_', 'convrot_w4a4_linear', 'dequantize_convrot_w4a4_weight', 'dequantize_int8_convrot_weight', 'dequantize_int8_convrot_weight_dtype', 'dequantize_int8_embedding', 'dequantize_int8_simple', 'dequantize_int8_simple_dtype', 'dequantize_mxfp8', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'dequantize_w4a8_int8_weight', 'gemv_awq_w4a16', 'int8_linear', 'prepare_int4_weight_for_int8_linear', 'quantize_and_rotate_rowwise', 'quantize_convrot_w4a4_weight', 'quantize_int8_convrot_weight', 'quantize_int8_rowwise', 'quantize_int8_tensorwise', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8', 'quantize_svdquant_w4a4', 'quantize_w4a8_int8_weight', 'rms_adaln', 'rms_rope', 'rms_rope1', 'rms_rope1_', 'rms_rope_', 'rms_rope_split_half', 'rms_rope_split_half1', 'rms_rope_split_half1_', 'rms_rope_split_half_', 'rotate_int8_convrot_weight', 'scaled_mm_mxfp8', 'scaled_mm_nvfp4', 'scaled_mm_svdquant_w4a4', 'stochastic_rounding_fp8', 'w4a8_int8_linear']}
[INFO] Found comfy_kitchen backend cuda: {'available': True, 'disabled': True, 'unavailable_reason': None, 'capabilities': ['adaln', 'apply_rope', 'apply_rope1', 'apply_rope1_', 'apply_rope_', 'apply_rope_split_half', 'apply_rope_split_half1', 'apply_rope_split_half1_', 'apply_rope_split_half_', 'convrot_w4a4_linear', 'dequantize_convrot_w4a4_weight', 'dequantize_int8_convrot_weight', 'dequantize_int8_convrot_weight_dtype', 'dequantize_int8_simple', 'dequantize_int8_simple_dtype', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'dequantize_w4a8_int8_weight', 'gemv_awq_w4a16', 'prepare_int4_weight_for_int8_linear', 'quantize_and_rotate_rowwise', 'quantize_convrot_w4a4_weight', 'quantize_int8_convrot_weight', 'quantize_int8_rowwise', 'quantize_int8_tensorwise', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8', 'quantize_svdquant_w4a4', 'quantize_w4a8_int8_weight', 'rms_adaln', 'rms_rope', 'rms_rope1', 'rms_rope1_', 'rms_rope_', 'rms_rope_split_half', 'rms_rope_split_half1', 'rms_rope_split_half1_', 'rms_rope_split_half_', 'rotate_int8_convrot_weight', 'scaled_mm_svdquant_w4a4', 'stochastic_rounding_fp8', 'w4a8_int8_linear']}
[INFO] Checkpoint files will always be loaded safely.
[INFO] Total VRAM 65520 MB, total RAM 515687 MB
[INFO] pytorch version: 2.9.0
[INFO] xformers version: 0.0.33
[INFO] Set: torch.backends.cudnn.enabled = False for better AMD performance.
[INFO] AMD arch: gfx928
[INFO] ROCm version: (6, 3)
[INFO] Set vram state to: NORMAL_VRAM
[INFO] Device: cuda:0 K100_AI : native
[INFO] Device: cuda:1 K100_AI : native
[INFO] Device: cuda:2 K100_AI : native
[INFO] Device: cuda:3 K100_AI : native
[INFO] Device: cuda:4 K100_AI : native
[INFO] Device: cuda:5 K100_AI : native
[INFO] Device: cuda:6 K100_AI : native
[INFO] Device: cuda:7 K100_AI : native
[INFO] Using async weight offloading with 2 streams
[INFO] Enabled pinned memory 464118.0
[INFO] Using sub quadratic optimization for attention, if you have memory or speed issues try using: --use-split-cross-attention
[INFO] Python version: 3.10.12 (main, Jun 22 2026, 18:55:27) [GCC 11.4.0]
[INFO] ComfyUI version: 0.30.0
[INFO] comfy-aimdo version: 0.4.13
[INFO] comfy-kitchen version: 0.2.27
[INFO] comfyui-frontend-package version: 1.48.6
[INFO] comfyui-workflow-templates version: 0.11.31
[INFO] comfyui-embedded-docs version: 0.5.9
[INFO] [Prompt Server] web root: /usr/local/lib/python3.10/dist-packages/comfyui_frontend_package/static
[INFO] Asset seeder disabled
[INFO] No OpenGL_accelerate module loaded: No module named 'OpenGL_accelerate'
[rgthree-comfy] Loaded 48 magnificent nodes.
[rgthree-comfy] ComfyUI's new Node 2.0 rendering may be incompatible with some rgthree-comfy nodes and features, breaking some rendering as well as losing the ability to access a node's properties (a vital part of many nodes). It also appears to run MUCH more slowly spiking CPU usage and causing jankiness and unresponsiveness, especially with large workflows. Personally I am not planning to use the new Nodes 2.0 and, unfortunately, am not able to invest the time to investigate and overhaul rgthree-comfy where needed. If you have issues when Nodes 2.0 is enabled, I'd urge you to switch it off as well and join me in hoping ComfyUI is not planning to deprecate the existing, stable canvas rendering all together.
WAS Node Suite: OpenCV Python FFMPEG support is enabled
WAS Node Suite Warning: `ffmpeg_bin_path` is not set in `/home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/custom_nodes/was-node-suite-comfyui/was_suite_config.json` config file. Will attempt to use system ffmpeg binaries if available.
WAS Node Suite: Finished. Loaded 220 nodes successfully.
"The harder I work, the luckier I get." - Samuel Goldwyn
[INFO] ### Loading: ComfyUI-Manager (V3.41)
[INFO] [ComfyUI-Manager] network_mode: public
[INFO] [ComfyUI-Manager] ComfyUI per-queue preview override detected (PR #11261). Manager's preview method feature is disabled. Use ComfyUI's --preview-method CLI option or 'Settings > Execution > Live preview method'.
[INFO] ### ComfyUI Version: v0.30.0-22-g2340099d9 | Released on '2026-08-07'
[INFO] [ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/alter-list.json
[INFO] [ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/model-list.json
[ComfyUI-Easy-Use] server: v1.3.7 Loaded
[ComfyUI-Easy-Use] web root: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/custom_nodes/ComfyUI-Easy-Use-main/web_version/v2 Loaded
USDU batch patches applied successfully.
[INFO] USDU batch patches applied successfully.
[INFO]
Import times for custom nodes:
[INFO] 0.0 seconds: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/custom_nodes/websocket_image_save.py
[INFO] 0.0 seconds: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/custom_nodes/ComfyUI-TiledDiffusion
[INFO] 0.0 seconds: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/custom_nodes/ComfyUI-RuiquNodes
[INFO] 0.0 seconds: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/custom_nodes/comfyui-post-processing-nodes
[INFO] 0.0 seconds: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/custom_nodes/comfyui-yaser-nodes
[INFO] 0.0 seconds: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/custom_nodes/pseudocomfy
[INFO] 0.0 seconds: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/custom_nodes/comfyui_ultimatesdupscale
[INFO] 0.0 seconds: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/custom_nodes/rgthree-comfy
[INFO] 0.1 seconds: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/custom_nodes/comfyui-firered-trent
[INFO] 0.1 seconds: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/custom_nodes/ComfyUI-Manager
[INFO] 1.1 seconds: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/custom_nodes/ComfyUI-Easy-Use-main
[INFO] 1.9 seconds: /home/models/FireRed-Image-Edit-1.1-ComfyUI/ComfyUI-master/custom_nodes/was-node-suite-comfyui
[INFO]
[INFO] Context impl SQLiteImpl.
[INFO] Will assume non-transactional DDL.
[INFO] Using RAM pressure cache.
[INFO] Starting server
[INFO] To see the GUI go to: http://0.0.0.0:7681
[INFO] [ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/github-stats.json
[INFO] [ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/extension-node-map.json
[INFO] [ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/custom-node-list.json
[WARNING] [DEPRECATION WARNING] Detected import of deprecated legacy API: /scripts/ui.js. This is likely caused by a custom node extension using outdated APIs. Please update your extensions or contact the extension author for an updated version.
[WARNING] [DEPRECATION WARNING] Detected import of deprecated legacy API: /extensions/core/groupNode.js. This is likely caused by a custom node extension using outdated APIs. Please update your extensions or contact the extension author for an updated version.
[WARNING] [DEPRECATION WARNING] Detected import of deprecated legacy API: /scripts/ui/components/buttonGroup.js. This is likely caused by a custom node extension using outdated APIs. Please update your extensions or contact the extension author for an updated version.
[WARNING] [DEPRECATION WARNING] Detected import of deprecated legacy API: /scripts/ui/components/button.js. This is likely caused by a custom node extension using outdated APIs. Please update your extensions or contact the extension author for an updated version.
[INFO] got prompt
[INFO] VAE load device: cuda:0, offload device: cpu, dtype: torch.float32
[INFO] VAE load device: cuda:0, offload device: cpu, dtype: torch.float16
[INFO] Found quantization metadata version 1
[INFO] Using MixedPrecisionOps for text encoder
[INFO] CLIP/text encoder model load device: cuda:0, offload device: cpu, current: cpu, dtype: torch.float16
[INFO] Requested to load MiniMaxH3TEModel_
[INFO] loaded completely; 63466.80 MB usable, 14960.20 MB loaded, full load: True
[INFO] Found quantization metadata version 1
[INFO] Detected mixed precision quantization
[INFO] Using mixed precision operations
[INFO] Native ops: convrot_w4a4, int8_tensorwise , emulated ops: mxfp8, nvfp4, float8_e5m2, float8_e4m3fn
[INFO] model weight dtype torch.bfloat16, manual cast: torch.bfloat16
[INFO] model_type FLOW_AV
[INFO] Requested to load MiniMaxH3
[INFO] loaded completely; 36995.94 MB usable, 19996.14 MB loaded, full load: True
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [04:45<00:00, 14.28s/it]
[INFO] Requested to load MiniMaxH3AudioVAE
[INFO] loaded completely; 27333.45 MB usable, 577.08 MB loaded, full load: True
[INFO] Requested to load MiniMaxH3VideoVAE
[INFO] loaded completely; 26588.51 MB usable, 4966.19 MB loaded, full load: True
FETCH ComfyRegistry Data [DONE]
[INFO] [ComfyUI-Manager] default cache updated: https://api.comfy.org/nodes
FETCH DATA from: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/custom-node-list.json[INFO] Prompt executed in 338.67 seconds
[DONE]
[INFO] [ComfyUI-Manager] All startup tasks have been completed.
[INFO] got prompt
[INFO] Unloaded partially: 497.07 MB freed, 80.04 MB remains loaded, 152.01 MB buffer reserved, lowvram patches: 0
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [05:07<00:00, 15.36s/it]
[INFO] loaded completely; 22244.65 MB usable, 577.08 MB loaded, full load: True
[INFO] Prompt executed in 334.57 seconds
[INFO] got prompt
[INFO] 0 models unloaded.
60%|████████████████████████████████████████████████████████████████████████████████████████▊ | 12/20 [2:12:37<1:28:24, 663.08s/it]
3.5 实测验证
以文生视频为例,使用以下提示词生成10秒视频(提示词内容为火把节狂欢夜场景描述),在K100_AI单卡上实测生成耗时约4小时。生成过程中显存占用稳定在50GB左右,系统内存占用约39GB。
1、显存使用率如下(8卡只用到了一张卡):
rocm-smi
================================= System Management Interface ==================================
================================================================================================
HCU Temp AvgPwr Perf PwrCap VRAM% HCU% Mode
0 79.0C 271.0W auto 400.0W 79% 100.0% Normal
1 50.0C 103.0W auto 400.0W 0% 0.0% Normal
2 49.0C 105.0W auto 400.0W 0% 0.0% Normal
3 48.0C 108.0W auto 400.0W 0% 0.0% Normal
4 48.0C 102.0W auto 400.0W 0% 0.0% Normal
5 49.0C 105.0W auto 400.0W 0% 0.0% Normal
6 50.0C 104.0W auto 400.0W 0% 0.0% Normal
7 51.0C 102.0W auto 400.0W 0% 0.0% Normal
================================================================================================
======================================== End of SMI Log ========================================
2、内存使用率如下:
free -h
total used free shared buff/cache available
Mem: 503Gi 39Gi 80Gi 7.0Mi 383Gi 461Gi
Swap: 8.0Gi 5.0Mi 8.0Gi
3、文生视频效果如下(以10秒火把节狂欢夜视频为例):
MiniMax_H3文生视频效果(火把节狂欢夜10秒)
四、踩坑与避坑指南
坑点1:INT8模型加载报错“KeyError: 'time_conditioning'”
问题现象:使用minimax_h3_fl2va_pruned_int8.safetensors加载时,报错提示找不到time_conditioning相关键值。
原因分析:剪枝版本(pruned variants)使用了不同的时间条件层(time-conditioning layer),与某些社区节点的预期结构不匹配。
解决方案:确保ComfyUI版本为v0.30.0或更高。如使用Turbo LoRA加速,需确认节点版本已支持pruned base自动检测。
坑点2:生成结果全是噪点(纯噪声输出)
问题现象:推理完成后输出的是纯噪声视频和音频,完全看不出画面内容。
原因分析:使用--use-sage-attention参数时,SageAttention库对H3的注意力机制执行了低精度矩阵乘法优化(FP8或INT8)。然而H3的DiT在特定层对注意力分数精度敏感,低精度计算会导致梯度消失或爆炸,最终输出完全退化。这是精度敏感性问题,而非bug——H3在训练时使用全精度,推理时降精度会破坏已习得的分布。
解决方案:在ComfyUI启动时移除--use-sage-attention参数,或在代码层面确保优化注意力函数正确调用。如果必须使用SageAttention加速,需等待官方修复补丁。
坑点3:Turbo LoRA 4步生成出现严重爆音
问题现象:使用MiniMax-H3 Turbo LoRA进行4步采样时,生成的音频出现严重爆音、削波、噪声化。
原因分析:H3的视频和音频两条生成流使用不同的调度策略——视频流shift=12(适合高分辨率稳定扩散),音频流shift=3(适合波形细节快速收敛)。Turbo LoRA将总步数从20步压缩到4步时,等效于对音频流施加了更激进的截断。由于音频信号对早期去噪过程中的误差累积更敏感(人耳对削波和爆音的容忍度极低),4步采样不足以让音频流充分收敛,导致时域波形出现削波和相位失真。这在扩散模型领域是一个典型的多模态调度不匹配问题。
解决方案:使用专门解决此问题的双时钟采样器节点(Dual-clock Euler sampler),该节点为音视频联合生成提供双时钟Euler积分。或暂时不使用Turbo LoRA,采用标准20步采样以保证音频质量。
使用Turbo LoRA时,必须使用完整(未剪枝)的FL2VA主模型,如 minimax_h3_fl2va_bf16.safetensors 或 minimax_h3_fl2va_int8_convrot.safetensors。
绝对不能选择名称中带 pruned 的版本(目前使用的 minimax_h3_fl2va_pruned_int8.safetensors),因为剪枝版本移除了部分AdaLN层结构,而Turbo LoRA正是针对完整的AdaLN层训练的。
坑点4:VAE参数设备不匹配导致前向传播失败
问题现象:VAE解码时报错,提示nn.Parameter设备不在输入设备上。
原因分析:H3的视频和音频VAE在forward()中直接访问多个nn.Parameter,绕过了标准设备转换机制。
解决方案:升级ComfyUI到最新版本(至少包含PR #15268的修复),该修复在使用站点通过comfy.ops.cast_to_input(...)进行设备转换。
坑点5:分辨率不是32的倍数导致生成失败
问题现象:设置非32倍数的分辨率时,推理报错或生成画面异常。
原因分析:H3的DiT模型对输入分辨率有严格的对齐要求,必须是32的倍数。
解决方案:所有分辨率参数必须保持为32的倍数。推荐使用864×480(抽卡)、1056×608(质量确认)或1344×768(成片)等标准分辨率。
-
抽卡验证:864×480(5秒约2分钟)
-
质量确认:1056×608
-
成片输出:1344×768
这些分辨率均为32的倍数,且经过社区大量实测验证,可直接作为工作流的默认配置。
坑点6:显存不足(OOM)问题
问题现象:推理过程中报错CUDA out of memory。
原因分析:BF16全精度模型在64GB显存下无法完整加载,或INT8模型配合大分辨率时激活显存超限。
解决方案:
-
使用INT8剪枝模型:
minimax_h3_fl2va_pruned_int8.safetensors而非BF16版本 -
启用按层offload:ComfyUI的H3插件默认开启DiT自动按层offload,adaLN预计算后释放约40%的DiT权重
-
降低分辨率:先用864×480抽卡验证效果,确认后再用1344×768生成成片
-
减少生成时长:5秒视频比10秒视频显存占用显著降低
坑点7:文本编码器加载卡死(--disable-mmap 参数问题)
问题现象:执行工作流后,日志停在 Requested to load MiniMaxH3TEModel_...,之后长时间无响应。观察进程发现CPU system使用率约100%、minflt/s超过30万,但磁盘读取为0 KB/s、RSS基本不变、显存基本不变——说明进程并非正常读取模型,而是大量消耗在内核态的page fault / mmap处理上。
原因分析:ComfyUI在加载Qwen3-VL文本编码器(约32B参数)时,默认使用mmap内存映射方式读取模型文件。但在某些文件系统或内核配置下,mmap对大文件的随机访问会触发大量的缺页中断,导致进程卡死。这本质上是内存映射机制与大型权重文件加载的兼容性问题,而非模型本身的bug。
解决方案:在ComfyUI启动参数中加入 --disable-mmap
坑点8:INT8矩阵乘法回退CPU导致推理极慢
问题现象:模型加载成功,但推理速度异常缓慢,显存占用正常但GPU利用率极低。
原因分析:INT8量化的DiT模型依赖硬件加速的INT8矩阵乘法内核。在某些国产加速卡或特定PyTorch版本下,torch._int_mm 等INT8线性算子可能没有对应的硬件实现,导致eager backend错误地将INT8运算回退到CPU执行。具体表现为:eager backend 虽然宣称支持 int8_linear,但实际调用的 fast_int8_mm 没有对应设备的kernel,只能降级到CPU。
解决方案:
-
检查后端支持:确认当前PyTorch + DTK组合是否支持INT8硬件加速。海光DTK26.04搭配PyTorch 2.9.0已包含INT8 ConvRot硬件反量化路径。
-
升级comfy-kitchen:确保
comfy-kitchen版本 >= 0.2.26,该版本修复了部分INT8算子回退问题。 -
环境变量强制:在某些环境下,可尝试设置
TORCH_LOGS="+dynamo"查看算子派发日志,确认INT8计算是否真正在DCU上执行。
坑点9:许可证地域限制(法律合规坑)
问题现象:无技术报错,但模型使用可能涉及合规风险。
原因分析:MiniMax H3的开源协议明确排除美、欧、英、韩地区使用。这意味着在上述地区部署或使用H3模型,即使技术上跑通,也违反开源协议条款。
解决方案:
-
自查部署地域:确认服务器所在物理位置不在排除名单内。
-
商用/出海前审慎:如有商用计划或跨境部署需求,建议仔细阅读MiniMax H3的官方开源协议原文,评估合规风险。
-
文末提示:在技术文章中加一句提示,提醒读者注意协议限制,体现技术博主的合规意识。
五、总结与展望
5.1 总结
本文详细记录了在海光K100_AI(64GB显存)单卡上部署MiniMax-H3通用全模态生成模型的全过程。通过采用ComfyUI推理框架配合INT8量化模型,成功绕过了官方SGLang方案对144GB显存的硬性要求,实现了在受限硬件资源下的稳定推理。
关键经验:
-
量化是显存受限场景的核心突破口:INT8剪枝版本配合按层offload,让64GB显存成为可能
-
框架选择影响部署成败:ComfyUI的动态显存管理机制比SGLang更适合单卡低显存场景
-
版本一致性至关重要:ComfyUI版本、模型版本、插件版本必须严格匹配
-
分辨率策略决定生产效率:抽卡用小分辨率、成片用大分辨率的“两阶段策略”可大幅提升工作效率
5.2 未来展望
随着国产AI算力生态的快速发展,MiniMax H3的部署门槛正在持续降低:
推理加速:社区已涌现出TE-Speed、SageAttention、TeaCache等多种加速方案,未来H3的推理速度有望提升2-3倍。
显存优化:NF4量化、GGUF量化等更极致的压缩方案正在适配中,未来可能在32GB甚至16GB显存上流畅运行H3。
生态完善:海光信息、ComfyUI社区等已在H3开源首日完成适配,随着更多开发者的加入,部署工具链将更加成熟、开箱即用。
应用场景拓展:H3的全模态生成能力将深刻改变短视频创作、广告制作、游戏开发等领域的工作流程——编辑不再需要分别处理画面和声音,一次生成即可获得音画同步的成品素材。
国产大模型的本地化部署正在从“能不能跑”走向“跑得好不好”,而K100_AI + ComfyUI + MiniMax H3的组合,无疑为这条道路提供了一个可行且高效的参考方案。
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/pla88888888/article/details/163570600





