ComfyUI Node

550W Image Result

Turning the service's JSON into pixels your graph can use

By sunshinehu·Created 21 days ago·Updated 21 days ago· 1
550W Image Result
    • image
    ◄result_json—►

    One input, one output, no settings

    550W Image Result is the end of the eraser chain, and it's the smallest node in the pack on purpose. You give it the JSON from a finished 550W image task; it gives you a normal ComfyUI IMAGE tensor. That last part is the whole value: once the pixels are a tensor, the erase stops being a special case. Upscale it, inpaint the corner the watermark used to occupy, save it, batch it, whatever - it's just an image like any other now.

    Wire it like this:

    Image Task Query (result_json) → Image Result (image) → Preview Image / Save Image
    

    What it checks before it will give you anything

    The node parses the JSON and demands three things: a top-level code of 200, a data.status of exactly success, and a data.resultUrl that is HTTPS on the host i.550wai.cn, no explicit port, no embedded username or password. Anything else and you get a ValueError reading "Supply JSON from a completed 550W image task; pending tasks are not image results".

    That message is the whole troubleshooting guide for this node. Nine times out of ten the JSON came from a submission node instead of the query node - a receipt, not a result.

    The URL guard looks fussy until you notice what it's protecting against: this is JSON you might have pasted from anywhere, and a checked host means a doctored resultUrl pointing at some other server just gets refused instead of fetched.

    The download is deliberately credential-free

    The fetch that follows is a plain streaming GET with no account headers at all, redirects disabled, capped at 50 MiB. If the host answers with a redirect, you get "Image download failed; query the existing task or use its result URL" and no follow happens. That's a good design decision: your API key is never sent to a URL that came out of a JSON string, and a mistyped or re-hosted link can't turn into a credential leak. It also means the download doesn't need your account to work - the result URL is just a URL, so you can also open it in a browser.

    Then Pillow takes over: decompression-bomb warnings are promoted to errors, anything over 40 megapixels is refused, EXIF rotation is applied, the image is converted to RGB and scaled to 0–1 float32, and you get a [1, H, W, 3] tensor. Standard ComfyUI plumbing.

    Two consequences worth knowing before you complain. Alpha is dropped - 4-channel results come back as plain RGB, so if the erase returned a cutout with transparency, that's gone. And it's an 8-bit round trip: what lands on disk on the service side and comes back through PNG is quantized, so extremely smooth gradients can band slightly. Neither matters for the usual "strip a logo off a stock photo" job.

    Install

    Same pack as the rest of the 550W nodes, so if the erase nodes show up in your menu, this one is already there. Otherwise, ComfyUI Manager → search 550W Watermark & Text Eraser → install → restart, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/sunshinehu/comfyui-550w-media
    cd comfyui-550w-media
    python -m pip install -r requirements.txt
    

    Only requests, requests-toolbelt and keyring come in. Nothing downloads a model, and this node in particular does no GPU work at all - it's a download and a decode.

    Snags

    The input is a forced socket. result_json is declared as a multiline string input that must be connected, so you cannot type or paste a URL into it. If you just want to grab a picture, use a browser; the node insists on a wire.

    Re-queueing is not the fix for a failed download. If the download times out or is refused, the task itself already succeeded and you were already charged. Bypass the node or query the task again - do not resubmit the erase. That's the exact advice the node's error strings give you, and they mean it.

    And the metadata story, briefly. The image you get back is a fresh file produced by the service - no ComfyUI graph inside it, no prompt, no seed, nothing. Which is the honest trade of this whole category: the round trip through a remote service strips provenance along with the watermark. When you Save Image on the other side, you write a brand-new PNG with your graph embedded, which is what you actually want for a workflow you'll share.

    Category550W

    Inputs (1)

    NameTypeDefaultDescription
    result_jsonSTRING—

    Outputs (1)

    NameTypeDescription
    imageIMAGE—