ComfyUI MiniMax H3 参考视频
用途
ComfyUI MiniMax H3 是由「管理后台 → 供应商」中的 ComfyUI 服务实例驱动的视频模型。项目初始化会同时创建 MiniMax H3 Text to Video 与 MiniMax H3 Reference to Video 两个内置模型、价格、工作流及默认绑定。前者只接受提示词,后者还可在 Canvas 视频节点中结合参考图片、视频和音频。用户无需也无法接触 ComfyUI 服务地址或 API Key。
配图占位
- 页面:管理后台模型目录的 MiniMax H3 编辑抽屉
- 状态:执行模式选择为「代码动态工作流」
- 重点区域:执行模式与动态工作流说明
- 脱敏要求:隐藏供应商密钥、邮箱和个人信息
配图占位
- 页面:Canvas 视频节点的 ComfyUI H3 模型选择
- 状态:同时展示纯文本与参考素材两个内置模型
- 脱敏要求:隐藏项目内容、参考素材、任务标识和供应商凭据
理解 ComfyUI 集成需要区分两个概念:
- 供应商类型(provider type):协议族标签,全局只有
comfyui一种(与runninghub平级)。决定走哪套代码路径(src/lib/providers/comfyui/*vssrc/lib/providers/runninghub/*)。 - 供应商实例(provider instance):实际部署的一个 ComfyUI 服务。在「管理后台 → 供应商」里以一行
AiProvider记录存在。同一个type=comfyui可挂 N 行(如:A 同事的本地实例 + B 同事的局域网实例 + C 共享的 RunningHub 自部署)。
管理员在 UI 看到的「类型」= provider type,配置的「名称 / baseUrl / API Key」= 某个 instance。普通用户在选择器看到的是模型(comfyui::minimax-h3-reference-to-video),不直接看到 instance;运行时由 findUserComfyUiConfig(userId) 按 sortOrder 取第一个 enabled。
使用前准备
| 维度 | RunningHub (type=runninghub) | ComfyUI (type=comfyui) |
|---|---|---|
| Workflow JSON 模板 | src/lib/providers/runninghub/minimax-h3-workflow.json | src/lib/providers/comfyui/workflows/minimax-h3-reference-to-video.json |
| 服务实例数 | 单实例(env 配置) | 多实例(每个 AiProvider 行 = 一个 ComfyUI 服务) |
| 协议族 | 云端网关 HTTP | comfyui-official(本地 HTTP)或 runninghub(云端网关) |
| External ID | RUNNINGHUB:VIDEO:taskId | COMFYUI:VIDEO:{prompt_id}(本地)或 COMFYUI:VIDEO:taskId(网关) |
| 异步轮询 | /openapi/v2/query(env 配置) | /history/{prompt_id} 或 /openapi/v2/query(按 DB 行) |
两条路径完全独立:删除 ComfyUI 不会影响 RunningHub;新增 ComfyUI 也不要求 RunningHub 部署。
启用 ComfyUI MiniMax H3 之前,先在管理后台完成以下准备:
- 管理员在「管理后台 → 供应商」新建 type=
comfyui的实例:- 本地 ComfyUI:
protocolMode=comfyui-official、baseUrl=http://localhost:8188、apiKey留空 - RunningHub 云端:
protocolMode=runninghub、baseUrl=https://www.runninghub.ai、apiKey填入 API Key。平台工作流 ID(workflowId)不在供应商表单填写——它存在 ComfyUI 工作流(comfyui workflow)行的runninghubWorkflowId字段:minimax-h3 行由初始化数据 seed(scripts/seed-comfyui-workflows.ts)预置2086743729407733762,并可在「管理后台 → ComfyUI 工作流」选中该行后用同一 workflowId「刷新 JSON」同步 RunningHub 平台最新模板;新增 RunningHub 工作流时在该页选 RunningHub 模式贴 workflowId 拉取 JSON 保存即可。 - 双源 key 迁移桥:RunningHub 云端实例若尚未保存 API Key,启用(拨开关 / 保存)时会自动检测运行环境
.env的RUNNINGHUB_API_KEY并加密写入该行(一次性迁移,此后 DB 为准);也可直接在编辑表单填写 API Key(DB 优先)。两处都没有时才会提示需要密钥。历史type=runninghub行同理。
- 本地 ComfyUI:
- 同一个
type=comfyui可以挂多行(A 同事本地、B 同事局域网、C 共享 RunningHub),用户选择器显示「ComfyUI / MiniMax H3 Reference to Video (Workflow JSON)」按 sortOrder 取第一个 enabled - 部署时运行
npm run project:init;命令会幂等创建两个 H3 模型的默认价格、ComfyUI 工作流和模型绑定。重复执行不会覆盖管理员已有的工作流绑定。 - 默认价格按生成时长计费:480p / 720p / 1K / 2K 每秒分别为 50 / 100 / 150 / 200 积分;管理员后续发布的新价格修订优先生效。
- 本地 ComfyUI 必须确保对应 workflow 的所有模型权重(VAE / LoRA / UNET / CLIP,见模板节点 4/47/63/65)已下载并放置在 ComfyUI 标准模型目录
配图占位
- 页面:ComfyUI MiniMax H3 参考视频总览
- 状态:已配置 ComfyUI 实例、已启用
comfyui::minimax-h3-reference-to-video模型- 重点区域:供应商实例列表、协议模式、API Key 编辑、ComfyUI 工作流列表、模型启用开关
- 脱敏要求:隐藏 baseUrl、API Key、模型权重路径、RunningHub workflowId、供应商实例名
操作步骤
-
在自由 Canvas 视频节点或现有视频生成流程中选择 ComfyUI / MiniMax H3 Text to Video (Workflow JSON) 或 ComfyUI / MiniMax H3 Reference to Video (Workflow JSON)。
-
节点配置分辨率与画幅。纯文本模型必须填写提示词;参考模型可选择图片、视频或音频,存在参考素材时提示词可选。
-
服务端先校验输入,再上传本次实际使用的参考资产到对应 ComfyUI 实例的
/upload/image(本地)或/openapi/v2/media/upload/binary(网关),动态构建仅包含这些资产节点的 MiniMax H3 workflow。 -
提交到
/prompt(本地,拿到prompt_id)或/task/openapi/create(网关,拿到taskId);任务进入异步处理。 -
Worker 通过
pollAsyncTask('COMFYUI:VIDEO:<id>', userId)走异步轮询:本地走/history/{prompt_id},网关走/openapi/v2/query。 -
MP4 输出回传到管理存储,附带给当前任务。
管理员应在模型目录把 MiniMax H3 设为「代码动态工作流」。此模式不绑定固定 JSON;每次请求构建出的完整 workflow 会直接提交。本地 ComfyUI 直接接收该 JSON,RunningHub 则同时使用平台 workflowId 定位远端执行环境。
协议族分发
findUserComfyUiConfig(userId)启动时按 sortOrder + createdAt 取第一个 enabled 的 comfyui providerConfigId 作为轮询目标。- 多实例场景下(同一用户挂多个本地 ComfyUI),需要在后续 Canvas 服务选择器 backlog 中给 externalId 编码
providerConfigId;本期按 single-active 走。 protocolMode在新建供应商表单的「协议模式」下拉选择,对应src/lib/model-catalog/openai-compat-types.ts中的comfyui-official或runninghub。
结果与状态
任务提交后状态按提交目标分发:
- 本地 comfyui-official 实例:
/prompt提交成功后会立即返回prompt_id,Worker 通过/history/{prompt_id}异步轮询;超过保留窗口后/history/<prompt_id>返回空对象,Worker 会按 transient pending 重试到宽限期结束,再按COMFYUI_ASSET_POLL_TIMEOUT报错。 - RunningHub 网关实例:
/task/openapi/create提交后返回taskId,Worker 通过/openapi/v2/query异步轮询,完成后 MP4 输出回传到管理存储并附带给当前任务。 - 同一 workflow 完成后,模型选择器始终显示「ComfyUI / MiniMax H3 Reference to Video (Workflow JSON)」并按
sortOrder解析首个 enabled 实例;runninghubWorkflowId与 JSON 落盘后,用同一 workflowId 再次「刷新 JSON」可同步 RunningHub 平台最新模板。 - 本地 ComfyUI 任务结果保留时间有限,超出后历史查询返回空对象;RunningHub 实例按平台侧保留策略决定可访问时长。
权限和限制
- ComfyUI 是部署方 / 用户配置驱动的 Provider:实例配置保存在数据库 AiProvider 行,API Key 由管理员维护,不暴露给普通用户。
- 应用和 Worker 共享同一个 AiProvider 数据视图;轮询时按
findFirstEnabledProviderByType(userId, 'comfyui')取实例。 - Workflow JSON 文件位于
src/lib/providers/comfyui/workflows/*.json,随构建打包发布;npm run seed:comfyui-workflows还会把内置模板写入工作流表并建立缺失的默认模型绑定。 - 不同 workflow 对应不同 modelId:当前已注册
minimax-h3-reference-to-video/minimax-h3-text-to-video/krea2-t2i-2048x1536。新增 workflow 时必须同步模型目录、加载器、工作流 seed 和价格;npm run check:comfyui-workflow-init与 pre-commit hook 会校验这组联动。 - 不读取、覆盖或清除管理员已编辑的 AiProvider / ModelRevision 配置。
- 双来源模式:「管理后台 → ComfyUI 工作流」支持本地 comfyui-official(拖拽 JSON + 立即 validate)与 RunningHub 贴 workflowId 自动同步两种来源;前者要求
modelId必须是 GlobalModel.key 形态(带::前缀),后者放宽白名单与主采样器到 warning。 - 工作流卡片将名称与
modelId分行显示,长模型键不会遮挡右侧编辑区。 - 去硬编码原则:所有 RunningHub 平台
workflowId都放在初始化数据(scripts/seed-comfyui-workflows.ts的SEED_WORKFLOWS[].runninghubWorkflowId),不允许在代码或.env中硬编码;运行库 dispatcher(readRunningHubWorkflowId)只读 DB,不做文件 fallback。同一 modelId 已有 enabled 行后再次「启用为模型」会按 modelKey 幂等命中,不会重复创建。
常见问题
提交后立即返回 400 / 节点错误?
通常是 workflow JSON 引用了不存在的模型(VAE / LoRA / UNET / CLIP)。检查本地 ComfyUI 实例的 models/ 目录是否覆盖了模板节点 4、47、63、65 引用的全部权重。
轮询返回 “task-not-found”?
本地 ComfyUI 任务结果保留时间有限,超过保留窗口后 /history/<prompt_id> 返回空对象。Worker 会按 transient pending 重试到宽限期结束,然后按 COMFYUI_ASSET_POLL_TIMEOUT 报错。
想把本地实例切换到另一个端口?
直接在「管理后台 → 供应商」编辑 baseUrl 字段;后续任务立即生效,无需重启应用。