EvoLink MiniMax Hailuo 2.3 (Official)
The MiniMax motion model — strong acting, decent price, one knob to watch
- first_frame
- video
- task_id
- status_info
- result_urls
- response_json
MiniMax's Hailuo built its reputation on one thing: motion that actually looks motivated. Characters don't just drift - they react, gesture, and move like they have intent, which is exactly the quality most text-to-video models fumble. EvoLink_Hailuo23 brings Hailuo 2.3 into ComfyUI, and it does double duty as both text-to-video and image-to-video in a single node: leave first_frame unplugged and it's pure text-to-video; connect a Load Image and it switches to image-to-video automatically. No separate node, no mode switch.
Clips run 6 or 10 seconds at up to 1080p. It's not the cheapest video in this pack, but for motion expressiveness it's one of the stronger values.
The inputs that matter
prompt(required) - shot and motion description, including camera movement; Chinese works.first_frame- optional IMAGE input. Connect it and the node becomes image-to-video.duration-6(default) or10seconds.quality-768p(default) or1080p.prompt_optimizer- the knob to watch. It defaults toon, and it rewrites your prompt before sending it to the model. If you've crafted a careful prompt and the output is doing something you didn't ask for, this is the first suspect - turn it off for precise control.fast_pretreatment- default off; enables a faster preprocessing path that shortens the optimization phase. Handy for drafts.
Then the pack-standard api_key and timeout_seconds (default 1200).
How it works
Same machinery as every node in the pack: reference images (if any) go up through EvoLink's official file channel - auto-deleted after 72 hours, no third-party host - then the job submits to POST /v1/videos/generations and the pack polls until the clip finishes, downloading it as a VIDEO object. Connect video to a native Save Video node to keep it. The full output set is video, task_id, status_info, result_urls (24h expiry), response_json. The raw links expire, which is why the node downloads the clip for you.
One historical note if you've seen MiniMax H3 talked about: that's the open-weight Hailuo 3.0 release, licensed in a way that excludes the US/EU/UK/Korea. This node calls the closed Hailuo 2.3 service through EvoLink, so it's a different door entirely - no licensing geography drama, just metered API calls.
Installing
No GPU, no model downloads - only requests:
cd ComfyUI/custom_nodes
git clone https://github.com/deeplearning-goethe/comfyui-evolink.git
then fully restart ComfyUI, or search EvoLink in ComfyUI Manager.
Troubleshooting
401 key, 402 balance, 403 access, 429 rate limit - pack standard. VPN users should whitelist api.evolink.ai and files-api.evolink.ai. The genuinely Hailuo-specific gotcha is prompt_optimizer: leave it on and the model rewrites your words, which is usually good for motion but occasionally terrible for exact control. If your video is doing something you never wrote, flip it off and rerun - it'll hit ComfyUI's cache logic so the rerun behaves predictably.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | 镜头/画面描述(含运镜指令),支持中文。 | |
| qualityopt | COMBO | 768p | 分辨率 |
| durationopt | COMBO | 6 | 视频时长(秒) |
| prompt_optimizeropt | BOOLEAN | true | 自动优化 prompt;要精确控制时关闭 |
| fast_pretreatmentopt | BOOLEAN | false | 快速预处理,缩短优化耗时 |
| first_frameopt | IMAGE | 首帧图(可选,接上即图生视频) | |
| api_keyopt | STRING | EvoLink API Key(sk- 开头)。首次填写后自动保存到本机配置,之后可留空。分享工作流前请清空此框。获取:evolink.ai/dashboard/keys | |
| timeout_secondsopt | INT | 120060–3600 | 最长等待时间;生成失败或审核拦截的任务不扣费 |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | 生成结果(已下载落地,可直连保存节点) |
| task_id | STRING | EvoLink 任务 ID,可到 evolink.ai/zh/dashboard/logs 查询 |
| status_info | STRING | 人读状态摘要(模型/用时/消耗 credits) |
| result_urls | STRING | 结果原始链接,每行一个(24 小时过期) |
| response_json | STRING | 平台 GET /v1/tasks/{id} 的完整 JSON 响应(status/usage/results 等),供下游节点解析 |