Flux Load Video (Ace Data Cloud)
Pulling a cloud clip back in as a real VIDEO (mind the 128 MiB)
- video
You paid for a video on Ace Data Cloud, it returned a CDN link, and now you want to keep working on it locally - resample it, cut it, save it somewhere permanent. Flux Load Video takes that link and gives you a native ComfyUI VIDEO. Like its image sibling it needs no API key: it's a downloader wearing a Flux badge.
What it is
One media_url string in, one video output of type VIDEO - the native ComfyUI video type, not an image batch. That distinction matters more than it sounds: the newer video nodes (SaveVideo, the video preview nodes, anything that takes VIDEO) will accept it directly, while older frame-based nodes that expect IMAGE batches will not. If your target node wants frames, you need to decode first; nothing in this pack does that for you.
One thing you might go hunting for and won't find: there is no AceFluxLoadAudio class. The pack defines image and video loaders only, even though its media module has audio-decoding code in it. Video with a soundtrack comes back as a video, so it's a non-issue in practice - just don't expect a matching audio node.
How it works
The download path is shared with the image loader (media.py), and it's strict by design:
- HTTPS and an allowlist. Only
cdn.acedata.cloud,cdn.acedata2.cloud,platform.cdn.acedata.cloudandplatform2.cdn.acedata.cloud. No redirects, no plain HTTP, no other hosts. - 128 MiB hard cap, enforced during streaming as well as against the advertised length. A 10-second 1080p clip is comfortably inside that. A long UHD one is not, and you'll get a clean "exceeds the 128 MiB limit" error rather than a mystery crasher.
- Three tries with backoff, then it gives up.
- Decode: the bytes go into an in-memory buffer and are handed to
VideoFromFile, which is why the whole file is held in RAM before you ever see a frame.
That last point is the reason this node needs ComfyUI 0.39.0 or newer, as the README states. VideoFromFile comes from comfy_api.latest; on older builds the import fails and the node dies on load. If you're on a long-lived custom build or an older portable, update before blaming the pack.
Where the URL comes from
Flux Retrieve Task → first_media_url → media_url. For a batch, Flux Retrieve Tasks gives you every URL from the set in media_urls_json, but first_media_url is only ever the first one - check the JSON if you queued several.
Install
Manager route: search Flux, check the publisher is acedatacloud and the package is Flux by Ace Data Cloud, install, restart. Manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/AceDataCloud/FluxComfyUI
python -m pip install -r requirements.txt
Restart ComfyUI afterwards. requests and jsonschema are the only dependencies, and there's no model to fetch - the "no local model, no GPU" line in the README holds here. It does not, however, mean no local ComfyUI video support, which is the 0.39.0 point above.
Common issues
"Task is pending; retrieve the same task ID again." media_url was empty. The video job hadn't finished when the loader ran. Re-query the task ID - video takes longer than an image, so if your retrieve node's wait_seconds timed out at pending, this is the error you'll see next.
Node fails to load / import error on startup. ComfyUI older than 0.39.0. The image loader is unaffected; the video type isn't.
"Media URL must be an Ace Data Cloud HTTPS CDN link." Wrong host or a plain-HTTP link. Job-result links from the API are fine; a link you copied from somewhere else is not.
"Media exceeds the 128 MiB limit." Request a lower resolution or shorter duration on the video node, or download that particular file yourself outside ComfyUI.
Only the first clip of a batch arrived. Expected. first_media_url is a scalar; that's what you wired in.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| media_url | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |