MiniMax H3:云端视频生成
SkillMediaUse a remote SeetaCloud or AutoDL ComfyUI GPU instance to generate MiniMax H3 videos. Connects over SSH, discovers the current H3 workflows, helps choose U03/U06/U02, uploads references, submits a job, and downloads the result. MiniMax H3 supports 5, 15 seconds per generation; choose the duration from the user's request and the scene instead of assuming a fixed default. Use when the user asks for MiniMax H3, ComfyUI, SeetaCloud, AutoDL video generation, text-to-video, image-to-video, or reference-guided video. When the target is an AutoDL application instance, use autodl-app-instance as the lifecycle wrapper: boot once before an H3 batch and power off after all jobs finish.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the MiniMax H3:云端视频生成 skill
What this skill tells your AI
The instructions your AI receives, as published by mini-yifan/open-source-video-gen-skill in skills/minimax-h3/SKILL.md and read by ahel’s review.
本技能负责使用远程 GPU 上的 MiniMax H3 / ComfyUI 生成视频。它提供连接、工作流发现、参数选择、素材上传、任务提交、轮询和下载能力,不替用户做不必要的导演决策。
MiniMax H3 单次生成时长为 5–15 秒。如果用户指定时长,严格使用用户的时长;如果用户没有指定,Agent 根据动作数量、对白长度、节奏和目标用途自行选择一个 5–15 秒的时长,并在提交前说明选择结果。不要因为技能示例、脚本默认值或过去的任务而固定使用 10 秒或 15 秒。
分工
- 本技能:连接云端机器、发现当前工作流、选择生成路径、准备上传、提交任务、轮询和下载。
h3-prompt-writing:编写 H3 提示词正文。本技能只整理 brief,不在这里发明提示词格式。autodl-app-instance:当用户使用 AutoDL 应用实例且没有提供 SSH 时,负责开机、等待可用和关机。
不要把 SSH 密码、AutoDL Token 或其他凭据写入仓库、提示词或技能文件。
AutoDL 组合模式(批次开始开机,批次结束关机)
当目标是 AutoDL 应用实例,或用户明确要求“开机后生成、全部完成后关机”时,本技能必须先调用 autodl-app-instance 的 boot,再进行任何 H3 连接、上传或提交。一个用户请求中包含多个视频时,把它们视为一个 H3 批次;只有 boot 返回实例已 running、COMFY_READY 且队列可访问后,才能进入 H3 流程。
组合模式的生命周期由 AutoDL 技能管理:
- 在批次开始前解析并记录实例 UUID,建立本批次的 job 清单。
- 每个批次只执行一次
boot;捕获最新SEETACLOUD_BASE_URL,在当前执行环境中显式设置。子进程里的export不会自动传回父进程。boot的面板发现走"快照 service_*_domain 并行直探",不依赖 SSH,macOS/Linux/Windows 通用(Windows 无 expect 也能跑)。 - 在同一个生命周期内完成全部 H3 job 的 brief、提示词、上传、提交、轮询、下载与落盘秒级校验。单个视频使用一次 submit/poll 脚本,不代表要重新 boot。归一化、抽帧验收、滤镜、调参重跑等本地后处理放到关机之后,不得因此推迟关机。
- 跟踪每个 job 的状态:
pending、running、succeeded、failed或cancelled。重试和用户在关机前追加的视频仍属于同一个批次。 - 所有计划 job 都进入终态、结果已下载(并通过落盘秒级校验)或明确记录失败,且没有仍在运行的 H3 任务时,立即执行一次
autodl_app.py off --uuid <uuid> --wait;不要为归一化/验收/滤镜等本地后处理推迟关机。 - 用
try/finally包住整个批次:批次成功、部分失败、超时、轮询异常或用户中断,都执行清理。只有用户明确说“保持开机/别关机”,或设置AUTODL_KEEP_ON=1时,才跳过off。
如果用户只给了一个不受 AutoDL API 管理的 SSH 服务器,不要擅自调用 AutoDL 开关机;此时直接走 SSH 模式。
不要在单个视频的完成分支里调用 AutoDL off。AutoDL 关机只能由父批次的最终清理分支触发。
最快链路(2026-08-27 实测定型,照此执行)
实例按秒计费。以下链路已用秒表实测:自身开销 ~15s,其余全是 GPU 推理。核心效率原则:先把队列填满,GPU 绝不空转;等待窗口只用来做本地活;终态即关机。
# 0) Token:推荐写 ~/.config/autodl.env(脚本自动回退读取,无需 source);
# 若只写在 ~/.zshrc,非交互 shell 常不加载——先 source
[ -f ~/.config/autodl.env ] || source ~/.zshrc
# 1) 开机(整个批次只此一次):面板并行直探无需 SSH,已运行实例发现 2–5s;冷开机一般 <1min ready
python3 ~/.zcode/skills/autodl-app-instance/scripts/autodl_app.py boot --uuid <UUID>
# → 记下输出里的 export SEETACLOUD_BASE_URL=...,后续每条命令都带上
# 2) 工作流发现(换实例必做,3s):自动选流 + 推导全部槽位键 → slot_map.json
export SEETACLOUD_BASE_URL=<面板地址>
python3 scripts/discover_workflow.py --kind u06 --out slot_map.json
# 3) 批量提交——不要生成一条等一条!逐条提交把队列填满(每条含上传 ~1s/图)
python3 scripts/submit_video.py --prompt NN.txt --slot-map slot_map.json \
--seconds <5-15> --width 1280 --height 720 --preset speed \
--image 参考图1.png --image 参考图2.png --out-json NN_task.json # × N 条
# 4) 并发轮询下载(history 优先 + 队列守卫;多任务用线程池并发 poll)
python3 scripts/poll_video.py <prompt_id> --download NN.mp4
# 生成 5s 片实测 ~112s/条(服务端推理,不可压缩);等待窗口去做本地活
#(音乐复用、素材校验、归一化脚本准备),别干等
# 5) 下载落盘即 ffprobe 秒级校验(时长/分辨率/音轨)→ 同批次全部通过立即关机
# (唯一例外:用户说保持开机 / AUTODL_KEEP_ON=1)
python3 ~/.zcode/skills/autodl-app-instance/scripts/autodl_app.py off --uuid <UUID> --wait
# 6) 关机后的本地活:归一化(H3 输出 17 帧块取整 + 32 对齐,如 720→704、5.0→5.17s)、
# 交付前 scale/pad 到目标分辨率、裁齐槽长、统一帧率,以及抽帧验收、滤镜、调参重跑——
# 全程零 GPU 占用,绝不为了做这些拖着不关机
四条铁律(违反任意一条都会浪费时间或钱):
- 不沿用旧键位——工作流/节点键每台实例都不同,必须用 slot_map(见下);
- 不留空槽——包括用不到的音频槽,空槽会读到服务器模板素材(如
p2.MP3)污染生成; - 不取运行中任务的 result 接口——只认 history;且固定种子下同提示词+同图会生成逐字节相同的视频,重提前必须改提示词或参考图。
- 下载完就关机——落盘文件过
ffprobe秒级校验即off,归一化/验收/滤镜/调参全是本地活,放到关机后做(GPU 空转照常计费,晚关一分钟多烧一分钟);验收不达标要重生成就先改提示词/参考图再重新开机,重开成本远低于空转。
换新实例/新工作流首次使用时,先按 reference.md 的"单参考图最小验证流程"跑一次 5 秒冒烟再上批量。
任意实例通用流程(细节与原理)
不同实例上的工作流名字和节点键几乎必然不同(同一用户先后遇到过 U06-…优化版X 与 U06-9图3音频-V5,提示词/秒数/步数/LoRA/音视频槽的节点号完全不一样)。因此提交前必须做槽位发现,禁止沿用上一次任务的节点键:
- 发现:
python3 scripts/discover_workflow.py --out slot_map.json(可用--kind u06/u03、--workflow-id收窄)。它会拉取本机工作流列表,按能力分(图槽数、采样器、提示词节点、秒数节点)+ 运行次数自动选出最合适的工作流,并从 workflow JSON 推导出image_keys / video_keys / audio_keys / prompt_key / seconds_key / steps_key / size_keys / lora_keys。 - 提交:
submit_video.py --slot-map slot_map.json …;不加--slot-map时脚本也会自动发现(--no-auto-discover可关闭),自动发现失败才回退到内置键位。 - 占位纪律:所有媒体槽(包括本次用不到的音频/视频槽)必须填占位文件(暗帧/1s 黑场/1s 静音)。部分实例的
LoadAudio默认指向服务器上的模板文件(如p2.MP3),不占位就会当作参考音频灌进生成,污染画面与声音。 - 轮询纪律:
poll_video.py以 history 为唯一可信结果来源;任务还在队列里时绝不调/api/workflow/result——部分部署对运行中的 prompt 会返回"最近一个已完成任务"的旧结果,导致重提后下载到旧视频。重新提交任务后,等队列空闲再收文件。 - 输出量化:H3 时长按 17 帧块取整、宽高对齐 32(如请求 720 实得 704)。交付前必须本地归一化(缩放/补边到目标分辨率、裁齐槽长、统一帧率)。
- Token:脚本报缺少
AUTODL_TOKEN时,先确认~/.config/autodl.env是否存在(推荐存储方式,脚本自动回退读取);仍缺则向用户转达申请与存储指引(autodl.com → 账号 → 设置 → 开发者 Token),source ~/.zshrc/zsh -ic只作兜底。 - 冒烟测试:新实例/新工作流首次正式生成前,先跑一次"单参考图 → 5 秒视频"最小验证(提示词用 Ref2VA 单
Picture 1,一张人设图即可);全链路(发现→提交→轮询→下载→ffprobe 核时长分辨率)通过后再上批量。完整命令见reference.md的"单参考图最小验证流程"。
基本流程
1. 连接并发现当前机器
先判断运行模式:
- AutoDL 生命周期模式:目标是 AutoDL 应用实例,或用户要求自动开关机。先执行 AutoDL
boot,记录 UUID 和新的面板地址,再打开本技能的 H3 流程。 - 直接 SSH 模式:用户只提供普通远程 GPU 服务器的 SSH 信息。直接连接,不执行 AutoDL power_on/power_off。
用户提供 SSH 主机、端口、用户名和密码时,使用当前技能目录下的 scripts/connect_server.py 连接服务器,并从服务器发现面板地址、GPU 和工作流。
如果使用 AutoDL 生命周期模式,先使用 autodl-app-instance 的 boot,得到 SEETACLOUD_BASE_URL 后再继续;不要使用旧的面板地址、SSH 端口或密码。
每次换服务器都重新查询:
GET /api/workflow/listGET /api/comfy/statusGET /api/comfy/queue-status
以当前机器返回的 workflow id 为准,不沿用旧机器的域名或 workflow id。提交前应确认 ComfyUI 已 ready;队列不可访问时先排查服务状态,不要盲目提交。
2. 根据素材和目标选择工作流
| 目标 | 常用工作流 | 说明 |
|---|---|---|
| 纯文字生成 | U03 | 没有必须锁定的参考图 |
| 多图参考生成 | U06 / U06-X | 人物、场景、道具或风格参考 |
| 从首帧到尾帧 | U02 | 第一张图和最后一张图定义变化起点与终点 |
提示词模式由实际输入决定:T2VA、Ref2VA、I2VA、FL2VA 或 L2VA。人物三视图通常是身份参考,不自动等于视频第 0 秒;只有用户明确要求 Picture 1 作为第一帧时,才使用 I2VA 逻辑。
不要为了套用某种模式强行改变用户的素材用途,也不要把多个短镜头机械拼成一条视频。是否切镜、是否一镜到底、镜头数量和动作密度,都交给用户意图和提示词决定。
3. 自由选择时长和生成参数
提交前必须明确传入一个 5–15 秒的 --seconds 值,不要依赖 submit_video.py 当前的脚本默认值。时长选择可以参考:
- 单一动作、短反应或通路测试:可以选择较短时长。
- 多个动作、较长对白或需要完整起承转合:可以选择较长时长。
- 用户指定的时长优先级最高。
分辨率、画幅、帧率、是否插帧、LoRA、采样步数和加速组件,根据用户目标、当前机器能力和工作流实际节点选择。不要默认强制使用某个画幅、某个分辨率、speed 档、Turbo LoRA、RIFE 或固定切镜方式。
用户长期默认(2026-09-04 三轮实拍对比后确认,用户明示"以后人物就按这样生成"):含人物的镜头一律用 speed 档(Turbo 4 步 LoRA)+ 1920×1088 原生分辨率(10s 约 7.3 分钟/5090)。配合 h3-prompt-writing 的皮肤锁/高光锁句式即可实现不油腻写实质感;turbo 本身不是油腻来源。用户点名要更高细节时才升级为 12 步无 LoRA 720p + 服务器 OmniSR X2 超分(约 8.8 分钟,超分脚本见项目《去油腻实验/新参考图测试/服务器超分_omnisr.sh》);草稿预览可用 1280×720 + turbo(约 4 分钟)。
工作流避坑:不要用 U03-minimax_h3_基础版 类 res_multistep 采样器的工作流跑高步数——实测 24 步在 int8 量化模型上满画面 speckle 噪点。U03 选 light2v(euler),U06 选 euler 采样器的版本(如 U06-9图版API-V5)。另:同实例同工作流的 slot map 可复用,但每次换实例必须重新 discover;U03 基础版工作流的秒数节点(PrimitiveFloat)discover 会漏,需手工补 seconds_key。
如果使用 Turbo LoRA,采样步数必须与该 LoRA 的适用步数相匹配;这是技术兼容性要求,不是创作上的默认画质选择。具体节点和文件名以当前机器的 workflow JSON 与模型目录为准。
4. 整理 brief 并交给提示词技能
brief 至少包含:
H3 prompt brief:
- workflow: U03 | U06 | U02
- prompt_mode: T2VA | Ref2VA | I2VA | FL2VA | L2VA
- duration_seconds: <chosen value from 5 to 15>
- aspect: <user choice or agent choice>
- resolution: <user choice or agent choice>
- pictures: <only the references that matter, with their intended roles>
- video_slots: <only when needed>
- audio_slots: <only when needed>
- dialogue: <original-language dialogue or none>
- cuts: <only if the user or creative intent requires it>
- constraints: <only user-requested or technically necessary constraints>
- creative: <what should happen>
把 brief 交给 h3-prompt-writing 生成 prompt.txt。不要在本技能里添加固定的 Core idea:、Camera: 等自创标签,也不要因为模板示例擅自增加镜头数量、对白或视觉禁令。
5. 上传必要素材并提交
只上传对当前生成有作用的参考图片、视频或音频。U06 类工作流的槽位数量以当前 workflow JSON 为准;不要为了填满槽位复制素材,也不要凭空添加参考内容。
如果工作流会读取未使用的默认素材,使用当前技能的占位资源填充空槽,避免模板素材污染结果或造成额外显存占用。U03 通常不需要上传参考槽位。
提交命令的结构如下,<chosen_seconds> 必须替换成 Agent 选择的 5–15 秒数值:
python3 <skill-dir>/scripts/submit_video.py \
--preset <chosen-preset> \
--seconds <chosen_seconds> \
--width <chosen-width> --height <chosen-height> \
--prompt prompt.txt \
[--workflow u03] [--image-dir ./refs] \
--out-json task_info.json
随后使用 poll_video.py 轮询并下载 MP4。任务提交、轮询和下载过程中不要把密码打印到日志中。
6. 做基本结果检查
确认结果确实是视频,并检查实际时长、分辨率、帧率、音轨和文件完整性。pending:false 且结果为空不代表成功;必要时读取 ComfyUI history 查看执行错误。
如果画面效果不好,根据实际问题调整提示词、参考素材、时长、工作流或参数后再试。不要套用固定的“必须几镜、必须几张图、必须某个速度档”的补救规则,也不要在失败结果上盲目叠加滤镜。
7. 批次结束并释放 AutoDL GPU
如果本次任务使用了 AutoDL 生命周期模式,只有全部 H3 job 结束后才能回到 autodl-app-instance 执行关机。把 UUID 和 job 状态保存在父批次上下文中,不要依赖重新匹配应用名;确认没有任务仍在运行后执行 off --wait,并等待实例进入 shutdown。清理动作必须放在整个批次的 finally/退出路径中。
重要边界
- H3 的可选生成时长是 5–15 秒,不代表每次默认 10 秒或 15 秒。
- 用户没有指定时长时,由 Agent 根据内容自行判断,并明确告诉用户实际选择的时长。
- 用户指定的画幅、分辨率、时长、镜头方式和创作风格优先于本技能的任何示例。
- 当前服务器的工作流列表和 workflow JSON 优先于旧文档中的固定 id、节点编号和参数名。
reference.md只在排查槽位、API、LoRA、显存或 OOM 等技术问题时读取;examples.md只用于 brief 结构不清楚时参考。
Signals
- GitHub stars
- 21
- Forks
- 4
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
minimax-h3- Source
- github.com/mini-yifan/open-source-video-gen-skill