前言
最近攒的阿里云灵构的灵豆已经消耗完了, 于是想着看看有没别的免费算力可以薅一薅,结果找来了魔搭(Modelscope)平台
怎么说呢, 虽然只有免费的36个小时显卡算力, 但蚊子也是肉, 凑合着用吧
下面分享如何使用它家的实例进行ComfyUI+MinMax-H3的部署
注册魔搭账号
新用户赠送一台36小时8核+32GB+显存24G的实例外加一台8核+32GB的长期实例


官网注册入口: 点击进入
要用来跑MinMax-H3模型的话必须使用高显存+高内存的实例, 光基础模型体积都有几十GB, 配置不够的话完全没法玩
拿到实例后我们启动它, 使用默认镜像即可:

启动后我们会进入到类似于vscode编辑器的WebIDE:

接下来我们利用终端来下载模型以及安装部署的ComfyUI
安装ComfyUI
下载
ComfyUI1
2# 在Notebook终端中运行如下命令,将官方的ComfyUI的仓库克隆下来:
git clone https://github.com/comfyanonymous/ComfyUI.git或者
1
2
3
4# 若上面代码块无法正常克隆Comfyui,则使用此命令
git config --global http.version HTTP/1.1
git clone https://github.com/comfyanonymous/ComfyUI.git
git config --global http.version HTTP/2创建虚拟环境
1
2
3
4
5
6# 进入工作目录
cd ComfyUI
#创建虚拟环境
python3 -m venv path/to/venv
source path/to/venv/bin/activate实例每次重启后, 除了工作目录以外的文件和目录都会重置, 为了避免每次启动实例都要重新安装一遍依赖, 我们需要先创建独立
python环境, 所有安装包文件都放在工作区,后面每次重启实力只需要执行
source path/to/venv/bin/activate进入虚拟环境, 即可立马使用安装
ComfyUI依赖1
2# 使用pip安装运行ComfyUI服务所需的环境依赖
python3 -m pip install -r requirements.txt安装
comfyui-manager1
2# 方便解决工作流节点缺失的问题
python3 -m pip install comfyui-manager启动
ComfyUI1
2
3
4
5
6
7
8python3 main.py \
--listen 0.0.0.0 \
--port 8188 \
--enable-manager \
--disable-pinned-memory \
--fast-disk \
--preview-method none \
--reserve-vram 0 \
参数说明:
--enable-manager:启用 ComfyUI Manager(装自定义节点要用)--preview-method none:生成时的实时预览也吃显存,低配建议关--reserve-vram 1.5:给系统留 1.5GB 余量,用来躲开容器 85% 红线-disable-pinned-memory: 禁用页面锁定内存--fast-disk: 优先从磁盘流式加载
拆分 UNet 权重按需加载--reserve-vram 0:压榨显存空间, 比如原本显卡默认预留1G左右headroom余量, 现在压到800M左右, 多出几百兆显存
注: --disable-pinned-memory 和--fast-disk这两个参数不能少, 目的是减轻内存的占用, 魔搭容器有内存阈值预警, 内容占用超过85%以上就会自动Kill进程
如果你想一步到位, 那就使用一体化脚本, 从下载到安装启动一条龙, python脚本如下:
1 | #!/usr/bin/env python3 |
下载模型
下载方案一:
总共至少下载五个模型, 分别是:
minimax_h3_fl2va_pruned_int8_convrot.safetensors直接复制以下指令到终端下载, 支持断点续传, 下面几个模型如法炮制:
1
2
3
4
5
6
7
8
9
10cd /home/admin/workspace/ComfyUI/models/diffusion_models/ && \
EXPECT=15687142551 && \
F=minimax_h3_fl2va_pruned_int8_convrot.safetensors && \
URL="https://modelscope.cn/models/Comfy-Org/MiniMax-H3/resolve/master/diffusion_models/$F" && \
for i in $(seq 1 30); do
curl -L -C - --retry 5 --retry-delay 3 --retry-all-errors -o "$F" "$URL"
SZ=$(stat -c%s "$F" 2>/dev/null || echo 0)
if [ "$SZ" -ge "$EXPECT" ]; then echo "✅ 完成: $SZ bytes"; break; fi
echo "⚠️ 第$i次仅 $SZ/$EXPECT, 3秒后续传..."; sleep 3
doneqwen3vl_32b_minimax_h3_nvfp4_awq.safetensors1
2
3
4
5
6
7
8
9
10cd /home/admin/workspace/ComfyUI/models/text_encoders/ && \
EXPECT=15687142551 && \
F=qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors && \
URL="https://modelscope.cn/models/Comfy-Org/MiniMax-H3/resolve/master/text_encoders/$F" && \
for i in $(seq 1 30); do
curl -L -C - --retry 5 --retry-delay 3 --retry-all-errors -o "$F" "$URL"
SZ=$(stat -c%s "$F" 2>/dev/null || echo 0)
if [ "$SZ" -ge "$EXPECT" ]; then echo "✅ 完成: $SZ bytes"; break; fi
echo "⚠️ 第$i次仅 $SZ/$EXPECT, 3秒后续传..."; sleep 3
doneminimax_h3_video_vae_fp16.safetensors1
2
3
4
5
6
7
8
9
10cd /home/admin/workspace/ComfyUI/models/vae/ && \
EXPECT=15687142551 && \
F=minimax_h3_video_vae_fp16.safetensors && \
URL="https://modelscope.cn/models/Comfy-Org/MiniMax-H3/resolve/master/vae/$F" && \
for i in $(seq 1 30); do
curl -L -C - --retry 5 --retry-delay 3 --retry-all-errors -o "$F" "$URL"
SZ=$(stat -c%s "$F" 2>/dev/null || echo 0)
if [ "$SZ" -ge "$EXPECT" ]; then echo "✅ 完成: $SZ bytes"; break; fi
echo "⚠️ 第$i次仅 $SZ/$EXPECT, 3秒后续传..."; sleep 3
doneminimax_h3_audio_vae_fp32.safetensors1
2
3
4
5
6
7
8
9
10cd /home/admin/workspace/ComfyUI/models/vae/ && \
EXPECT=15687142551 && \
F=minimax_h3_audio_vae_fp32.safetensors && \
URL="https://modelscope.cn/models/Comfy-Org/MiniMax-H3/resolve/master/vae/$F" && \
for i in $(seq 1 30); do
curl -L -C - --retry 5 --retry-delay 3 --retry-all-errors -o "$F" "$URL"
SZ=$(stat -c%s "$F" 2>/dev/null || echo 0)
if [ "$SZ" -ge "$EXPECT" ]; then echo "✅ 完成: $SZ bytes"; break; fi
echo "⚠️ 第$i次仅 $SZ/$EXPECT, 3秒后续传..."; sleep 3
doneminimax_h3_fl2v_turbo_4step_v1.0_768p_comfyui_bf16.safetensors1
2
3
4
5
6
7
8
9
10cd /home/admin/workspace/ComfyUI/models/loras/ && \
EXPECT=15687142551 && \
F=minimax_h3_fl2v_turbo_4step_v1.0_768p_comfyui_bf16.safetensors && \
URL="https://modelscope.cn/models/Comfy-Org/MiniMax-H3/resolve/master/loras/$F" && \
for i in $(seq 1 30); do
curl -L -C - --retry 5 --retry-delay 3 --retry-all-errors -o "$F" "$URL"
SZ=$(stat -c%s "$F" 2>/dev/null || echo 0)
if [ "$SZ" -ge "$EXPECT" ]; then echo "✅ 完成: $SZ bytes"; break; fi
echo "⚠️ 第$i次仅 $SZ/$EXPECT, 3秒后续传..."; sleep 3
done
下载方案二
使用官方的下载方式:
安装
ModelScope1
pip3 install modelscope
下载指定模型到目录
同样复制下面命令行到终端执行:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19modelscope download --model Comfy-Org/MiniMax-H3 \
--include 'diffusion_models/minimax_h3_fl2va_pruned_int8_convrot.safetensors' \
--local_dir '/home/admin/workspace/ComfyUI/models'
modelscope download --model Comfy-Org/MiniMax-H3 \
--include 'text_encoders/qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors' \
--local_dir '/home/admin/workspace/ComfyUI/models'
modelscope download --model Comfy-Org/MiniMax-H3 \
--include 'vae/minimax_h3_audio_vae_fp32.safetensors' \
--local_dir '/home/admin/workspace/ComfyUI/models'
modelscope download --model Comfy-Org/MiniMax-H3 \
--include 'vae/minimax_h3_video_vae_fp16.safetensors' \
--local_dir '/home/admin/workspace/ComfyUI/models'
modelscope download --model Comfy-Org/MiniMax-H3 \
--include 'loras/minimax_h3_fl2v_turbo_4step_v1.0_768p_comfyui_bf16.safetensors' \
--local_dir '/home/admin/workspace/ComfyUI/models'
如果你不着急的话, 可以直接一行代码全量下载MiniMax-H3所有模型:
1 | modelscope download --model Comfy-Org/MiniMax-H3 |
下载方案三(推荐)
由于模型数量过多, 建议直接使用脚本批量下载, 带进度条 + 日志 + 断点续传 + 重试功能, 方便管理和复用:
1 | #!/usr/bin/env python3 |
创建minmax-h3.py文件, 将上面代码拷贝到文件中保存, 然后在同级目录下运行以下指令开启下载:
1 | python3 minmax-h3.py |
搭建内网穿透隧道
魔搭给的外网链接如果访问不了, 就需要部署内网穿透, 你可以Cloudflare或者ngrok, 或者其他的穿透工具, 这里我选择ngrok
首先需要去ngrok官网注册获取TOKEN密钥, 使用邮箱注册:

注册登录后, 在主页面拿到你的Authtoken:


复制该Authtoken, 然后在终端中运行以下指令安装ngrok, 记得替换你的Token:
1 | pip3 install pyngrok |
或者运行下面的代码一样的效果:
1 | pip3 install pyngrok |
同样的我们还有更完善的脚本启动ngrok方案, 根据自己的需求选择即可:
1 | #!/usr/bin/env python3 |
创建ngrok.py文件, 将上面复制到文件中, 然后执行以下代码启动隧道:
1 | export NGROK_AUTHTOKEN='你的token' |
隧道启动后如下:

将公网地址粘贴到浏览器上打开就能直接访问了:

总结
由于模型体积比较大, 所以我们可以一边下载模型的同时一边安装ComfyUI, 多线同步进行, 考虑到挨个复制粘贴太过麻烦, 于是决定将这三条线整合成一个终极的脚本文件, 这样, 我们只需要一个指令, 就能实现ComfyUI安装部署+模型自动并行下载+内网隧道启动三个任务全自动化完成:
终极脚本代码如下:
1 | #!/usr/bin/env python3 |
用法:
在魔搭实例中创建名为setup_all.py 的文件, 然后将上面的代码复制到该文件中, 并替换代码中的NGROK_TOKEN 值, 最后执行以下代码:
1 | python3 setup_all.py # 全自动 |
不想用 ngrok 就不填——脚本会自动跳过建隧道,你用平台自带代理访问即可。
经验之谈
- 经本人实测, 在使用该实例生成视频时,设置1056x608分辨率能得到较稳定的生成速度, 如果超过这个值, 显卡性能可能会报异常
API自动化工作流模式
假如你生成视频的工作流是一次性串联生成多个视频, 那么内存占用会随着视频的生成而逐步递增, 比如第一个生成第一视频张勇30%, 到了第三个时直接飙到80%, 因为内存中还保存前两个视频的数据, 如次一来, 最后程序崩溃终止是必然的结局
要解决这个问题, 很简单, 我们可以采用API循环调用单段工作流模板的方式来处理, 也就是单段视频生成工作流+API循环调用+ffmpeg外部拼接
这种模式的好处有:
- 内存占用的大幅减少: 使得小内存机器也能跑长视频, 不会出现越跑越高的情况
- 得到清爽简洁的工作流,: 有时候为了改一个节点参数, 满画布挨个找重复节点修改, 节点数量多的情况下,瞬间看得头皮发麻
- 流程可控, 可实现视频生成的随意断点续生, 也就是任意中间片段向后接力: 长视频生成过程难免会因为某些节点bug或者设备性能问题而中断, 此时我们要从已经生成的视频开始继续生成而不是从头开始, 原生的做法就是拆换节点, 而如今只需要改个参数就行
- 配置化: 常用的参数, 比如剧本提示词种子镜头参数分辨率模型切换等, 全部写在配置文件中, 实现面向配置文件创作, 不需要碰
ComyfUI画布 - 纯终端即可运行: 该模式下通过纯代码操作, 只需要一个终端即可, 意味着无需
WebUI, 省去折腾内网穿透, 可以应对各种厂商的镜像服务
该模式项目目录结构如下:
1 | mini_h3_story/ |
执行流程图如下:
1 | ┌─── ① 启动配置 ────────────────────┐ |
唯一的问题, 就是有技术门槛, 不懂编程的话, 流程出了错解决起来比较麻烦
关于自动化工作流的项目模板, 我也一同放到网盘, 供大家参考使用:
ComfyUI-AI自动化工作流项目: 点击进入下载(访问密码: 312306)
本文为作者原创 转载时请注明出处 谢谢
