Seedream Load Image (Ace Data Cloud)
Your Seedream render came back as a URL. This node turns it into an IMAGE
- image
Here's the thing nobody tells you before your first API-backed image node: the model doesn't hand ComfyUI a picture. It hands you a URL. The graph runs, the log says the image was generated, you can click the link and see a great render - and the Save Image node downstream is empty, because a STRING full of https://cdn.… is not an IMAGE tensor. That mismatch is the single most common complaint in threads about Seedream-in-ComfyUI, and it's exactly what this node exists to fix.
AceSeedreamLoadImage is the only node in the SeedreamComfyUI pack that never phones home. No API key, no credits, no request to Ace Data Cloud's API - it just downloads a finished image from their CDN and decodes it into the type ComfyUI's samplers, upscalers and Save Image nodes actually understand. It's the bridge at the end of the workflow.
What it does, mechanically
You paste a media URL into the one widget. The node checks it: it has to be https://, it has to be on an Ace Data Cloud CDN host, and it can't carry credentials in the URL. Anything else and it refuses before a byte moves - that's a deliberate lockdown, not a bug, so you can't accidentally point it at arbitrary web content.
Then it streams the file down with a 128 MiB ceiling, retrying up to three times with a short backoff if the connection drops. The bytes go through Pillow, get forced to RGB, get divided by 255 into float32, and come out as a [1, H, W, 3] tensor - the standard ComfyUI image format. Whatever resolution the service returned is what you get; there's no resizing or padding here, so plan on a separate resize node if you need a specific canvas.
Two consequences worth knowing up front. First, alpha is gone: the decode step converts to RGB, so a transparent PNG from the pack's layer-decomposition workflow comes in with its transparency dropped (those areas land as black). Second, the download is a normal node execution, so re-running with the same URL is cached like anything else in ComfyUI - you aren't paying for a re-download, and you aren't paying for anything else either.
The input and the output
One input, media_url (STRING). One output, image (IMAGE). That's the whole node. Wire image into Save Image, Preview Image, an upscaler, or a second-pass detailer - anywhere a normal Load Image would go. Since it isn't an output node itself, it won't run at all unless something downstream asks for it, which is why a floating Load Image node in your graph will sit there doing nothing.
Practically, the URL you want is first_media_url from one of the pack's tool nodes, or from Seedream Retrieve Task after it reports succeeded. If you generated more than one image, first_media_url is only the first - pull the rest out of media_urls_json and drive one loader per link.
Installing
The pack's canonical upstream is AceDataCloud/SeedreamComfyUI, and the README's route is ComfyUI Manager: search Seedream, confirm the publisher is acedatacloud and the package is Seedream by Ace Data Cloud, install, restart.
cd ComfyUI/custom_nodes
git clone https://github.com/AceDataCloud/SeedreamComfyUI
cd SeedreamComfyUI && python -m pip install -r requirements.txt
# restart ComfyUI
Don't expect a heavyweight install. The requirements are requests and jsonschema - no torch, no model files, no ffmpeg. If you're used to GPU-node installs, the emptiness is correct. One note from the README: the pack's native media loaders want ComfyUI 0.39.0 or newer, which is about the core image/audio/video types, not about anything this node downloads.
Where it goes wrong
Task is pending; retrieve the same task ID again. - that's this node's error when media_url arrives empty, which almost always means you wired it to a node whose job hasn't finished yet. The retrieve nodes return an empty first_media_url while status is pending. Go query the task again; don't touch the loader.
Media URL must be an Ace Data Cloud HTTPS CDN link. - the host allowlist is short, and http:// links, redirects and your own web host all fail it. Use the URL the API gave you, unedited.
Expired or refused link - CDN links come and go and the packaged downloader won't follow a redirect to a new one. Query the task again (read-only, free, doesn't create a new paid job) and use the fresh URL.
Finally, the honest caveat about the pack itself: Ace Data Cloud has close to zero footprint in community discussion, so there's no crowd of users to tell you whether their CDN behaves. This node needs no key of its own, but the pack it ships in does - read it before you run it, and keep the key out of workflow JSON.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| media_url | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |