MiniMax H3 Load Video (Ace Data Cloud)
The node that finally makes the URL useful
- video
A finished MiniMax H3 render is just a URL. You can watch it in a browser, and that's about it - no frame extraction, no upscaling, no interpolation, no save node that will touch it. This node is the adapter: it pulls the file down from Ace's CDN and hands your graph a native ComfyUI VIDEO, at which point the clip behaves like anything else on the canvas.
That last point is why this node exists at all, and it's the piece people skip when they talk about API nodes. The interesting part of running a hosted model isn't the call - it's that the output rejoins your local pipeline, next to the tools you already trust.
One input, one output
media_url - a string. In practice you never type it: wire first_media_url from MiniMax H3 Retrieve Task, Generate Video, List Tasks or Retrieve Tasks straight into it.
video - the output, typed VIDEO, which is ComfyUI's newer native media type. From here you can upscale it (the temporal upscalers like SeedVR2 are the ones people actually reach for on generated footage), interpolate it, sample frames out of it as images, or feed it to whatever save/preview node you have downstream. Note that this node isn't an output node: nothing is written to disk until you wire a saver. A surprising number of "where did my video go" posts are this.
What it's actually doing under the hood
It downloads the file with requests, in memory, from an allowlisted set of Ace CDN hosts over HTTPS - cdn.acedata.cloud, cdn.acedata2.cloud, platform.cdn.acedata.cloud and platform2.cdn.acedata.cloud. Redirects are not followed, and the download is capped at 128 MiB. A dropped connection is retried up to three times with a short backoff. Then the bytes get wrapped in ComfyUI's VideoFromFile from comfy_api.latest, which is why the README's fine print about ComfyUI 0.39.0 or newer isn't optional - on an older build, this node can't construct the type at all.
Nothing here is a paid operation. Downloading your own finished render costs nothing and creates no task, which is why the loader is safe to leave in a graph you run repeatedly.
Install
cd ComfyUI/custom_nodes && git clone https://github.com/AceDataCloud/MiniMaxH3ComfyUI
python -m pip install -r requirements.txt
Restart. Manager route: search MiniMax H3, confirm publisher acedatacloud (registry ace-minimax-h3), install, restart. Two dependencies, requests and jsonschema; there are no model files to download and no GPU work to do - the whole pack is a hosted-API client. The ACEDATACLOUD_API_KEY environment variable only matters for the nodes that talk to the service; this loader alone will happily run without it.
Where people get burned
- Wrong URL host. Only Ace's own CDN links are accepted. A Google Drive share link, a self-hosted file, a URL you ran through a proxy of your own - all rejected with "Media URL must be an Ace Data Cloud HTTPS CDN link." If you need a foreign file in the graph, download it yourself and use a normal local video loader. The allowlist is a security decision, not an oversight.
- Empty string. If you run the loader before the render finished, you get "Task is pending; retrieve the same task ID again." That's the pack talking to you across nodes: go poll the task, then come back.
- Big outputs bounce off the 128 MiB ceiling. Long, high-resolution, audio-included clips are the ones that hit it. If you're near the line, keep renders shorter and stitch afterwards.
- Re-running re-downloads. Each execution fetches the file again. ComfyUI's caching usually saves you, but if you're slipping the same clip through a dozen variants, a local copy plus a plain local loader is the less annoying shape - and keeps working after you delete the task on the provider side.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| media_url | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |