Nodes/MidjourneyComfyUI/Midjourney Load Image (Ace Data Cloud)
ComfyUI Node

Midjourney Load Image (Ace Data Cloud)

Midjourney Hands You a URL, Not a Tensor — This Is the Adapter

By AceDataCloud·Created 3 days ago·Updated 2 days ago· 0
Midjourney Load Image (Ace Data Cloud)
    • image
    ◄media_url►

    What it is

    The Ace Data Cloud Midjourney nodes are API-wrapper nodes: they ship your prompt to a hosted service and hand back text. The service's actual output is an HTTPS link on an Ace CDN. ComfyUI, meanwhile, thinks in tensors - an IMAGE on a wire is a float tensor, not a URL. This node is the two-line adapter between those two worlds. Feed it the URL, get an IMAGE you can wire into anything.

    Reach for it the moment you want the Midjourney output to do something else: upscale it, run it through an IPAdapter for a consistent character, feed it into a ControlNet preprocessor, or just Save Image it somewhere local. Without it, a Midjourney Imagine run ends in a string you can only look at.

    How it works

    The one input is media_url (STRING, empty by default). The pack's downloader is deliberately boring - it parses the URL, requires https, requires the hostname to be one of cdn.acedata.cloud, cdn.acedata2.cloud, platform.cdn.acedata.cloud or platform2.cdn.acedata2.cloud, rejects credentials in the URL, streams the response with a 128 MiB ceiling, retries a connection failure three times, and refuses redirects. Then PIL opens the bytes, converts to RGB, divides by 255, and you get a [1, H, W, 3] float32 tensor out of the single image output.

    Two consequences of that pipeline are worth knowing before you spend an evening confused. First, it's a strict allowlist: this is not a general-purpose image loader and will not fetch a Civitai preview or an imgur link. Second, if media_url is an empty string, the node raises "Task is pending; retrieve the same task ID again." - the pack's own way of telling you the graph ran before the task finished.

    Inputs and outputs

    • media_url - the only input. Take it from first_media_url on a sibling node, or copy one entry out of media_urls_json when you want a specific variant rather than whichever URL the service listed first.
    • image (IMAGE) - the tensor. Wire it into Save Image, an upscaler, a face-detailer, an IPAdapter - whatever your local half of the workflow does.

    Note what a Midjourney job actually returns: usually several URLs (a grid plus upscales or variants), in no guaranteed order you should assume. first_media_url is convenience, not a promise that it's the "best" one. If you care, run media_urls_json through a JSON node and pick.

    Install

    In ComfyUI Manager, search Midjourney, confirm publisher acedatacloud and package Midjourney by Ace Data Cloud (Registry ID midjourney), install, restart. Manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/AceDataCloud/MidjourneyComfyUI
    cd MidjourneyComfyUI
    python -m pip install -r requirements.txt
    

    There is nothing to download. The only dependencies are requests and jsonschema; decoding uses the image libraries ComfyUI already has. And despite the nine tool nodes next to it in the menu, this one needs no API key at all - it never touches the authenticated API, just the CDN.

    Common issues

    "Media URL must be an Ace Data Cloud HTTPS CDN link." You gave it a URL from somewhere else, or an http:// one. That's the allowlist, not a bug. Use the core Load Image node for your own files and any other host.

    HTTP 302 or another non-200. Redirects are refused on purpose, and the loader only accepts a clean 200. If the CDN link has moved, re-retrieve the task and take a fresh URL rather than trying to patch the old one.

    "The media link does not contain a valid image." The URL resolved to something that isn't raster image data - most often a video URL from Midjourney Videos pasted into the wrong loader. Use the Video loader for those.

    It works in the preview but the graph isn't using the pixels. Remember that the tool nodes are OUTPUT_NODEs: they display status text, they don't save an image. The IMAGE only exists if you wire this node's output somewhere that consumes it.

    One broader caution that applies to every node in this pack, since you're already here: an API-wrapper node is arbitrary Python holding a credential that phones home by design. Ace Data Cloud is the vendor of the API it calls, so there's no obvious incentive mismatch - but this category has already been weaponized once in ComfyUI's history, and a link-downloader is exactly as trustworthy as the pack around it. Check the publisher name before you install.

    CategoryAce Data Cloud/Midjourney

    Inputs (1)

    NameTypeDefaultDescription
    media_urlSTRING—

    Outputs (1)

    NameTypeDescription
    imageIMAGE—