Nodes/comfyui_image_io_helpers/ImageLoadFromBase64(ImageIOHelpers)
ComfyUI Node

ImageLoadFromBase64(ImageIOHelpers)

Feed a base64 image into a workflow — the name is a lie, no API, no key

By Ryuukeisyou·Created 57 years ago·Updated 57 years ago· 0
ImageLoadFromBase64(ImageIOHelpers)
    • IMAGE
    • MASK
    base64_string

    The name makes it sound like it phones home to some service. It doesn't. ImageLoadFromBase64(ImageIOHelpers) takes a base64 string and decodes it into an image, right there on your machine - no API, no key, no internet involved. Base64 is just a way of writing binary data as text, and this node is a decoder with ComfyUI sockets on it.

    Why would you want that? Because images travel as text all the time in automation. Another tool hands you a base64 blob instead of a file path. A webhook, a script, a service that returns data:image/png;base64,... - that string can't be fed to core Load Image, which only knows folders. This node is the seam that turns a text blob into an IMAGE tensor your graph can use.

    Inputs and outputs

    • base64_string - a STRING. The encoded image, pasted or wired in.
    • Outputs: IMAGE and MASK, same pair as the pack's ImageLoadByPath. IMAGE goes anywhere an image goes (VAE Encode, reference setups, compositing). MASK is the alpha-channel mask, same convention as core Load Image - ignore it for images without transparency.

    It pairs naturally with the pack's ImageSaveAsBase64, which does the reverse. Together they're how you move an image through a text channel: encode, paste into a notes file or a message, decode it back later.

    How to install it

    cd ComfyUI/custom_nodes
    git clone https://github.com/Ryuukeisyou/comfyui_image_io_helpers
    

    Restart ComfyUI and it shows up under ImageIOHelpers, or install via ComfyUI Manager (search "comfyui_image_io_helpers"). No models, no dependencies beyond what ComfyUI already ships. The pack is a tiny five-node utility set and the GitHub repo has been 404ing lately, so if the clone fails that's the known cause - it's not a bad command.

    Where people get burned

    Base64 is unforgiving, and nearly every failure is one of three things:

    • A data: URI prefix left in the string. data:image/png;base64,... - strip the data:image/png;base64, part and keep only the encoded payload. Most decode helpers choke on the prefix.
    • Whitespace. The string must be one clean blob. Newlines from copied text or a wrapped output break the decode; if your paste has line breaks, that's your error.
    • A truncated string. If the padding at the end is wrong or the string is cut off, you get a decode error, not a blank image. Grab the full output.

    One practical warning: a full-resolution PNG as base64 is enormous - megabytes of text. Don't paste a 4K render into this node by hand and expect the UI to feel snappy; it's a plumbing node for automation, not a daily driver. If you're mostly just importing an image you can see on disk, use ImageLoadByPath and skip the text dance entirely.

    Categoryimage_io_helpers

    Inputs (1)

    NameTypeDefaultDescription
    base64_stringSTRING

    Outputs (2)

    NameTypeDescription
    IMAGEIMAGE
    MASKMASK