Nodes/A8R8 ComfyUI Nodes/Base64Image Input Node
ComfyUI Node

Base64Image Input Node

Feed ComfyUI an image without uploading a file

By ramyma·Created 3 years ago·Updated 2 years ago· 74
Base64Image Input Node
    • IMAGE
    base64_image

    This one isn't really built for clicking around in the ComfyUI editor - it's for when something else is talking to ComfyUI over the API and needs to hand it an image without going through the normal upload step. Instead of a file path, it takes a base64-encoded string and decodes it straight to pixels.

    Why this exists

    This pack backs A8R8, a separate canvas-based frontend by the same author (ramyma) that runs A1111, Forge, or ComfyUI as a backend and does painting, layers, and regional prompting from one browser UI. A8R8's canvas doesn't save what you've painted to ComfyUI's input folder before generating - it POSTs the pixel data as a base64 string embedded directly in the API call. Base64ImageInput is the receiving end of that: it decodes whatever base64 payload lands in its one field into a normal IMAGE tensor, same as LoadImage would give you from a file.

    That's a genuinely useful pattern outside of A8R8 too. If you're calling a ComfyUI-compatible API directly - rather than clicking through the browser UI - and want to embed your input image straight in the workflow JSON payload, this node (and its Base64ImageOutput sibling) let you skip a separate upload round-trip entirely.

    The one input, and the output

    • base64_image (STRING, default empty, single-line) - the raw base64 payload. The schema doesn't document whether it strips a data:image/png;base64, prefix for you, so don't assume it does - if you're pulling straight from a browser's canvas.toDataURL(), strip that header yourself before it goes in.
    • Output: IMAGE - a decoded image tensor. Wire it anywhere a LoadImage output would go: VAE Encode, a ControlNet preprocessor, an image-to-image chain.

    Installing it

    Search "A8R8 ComfyUI Nodes" in ComfyUI Manager, or by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ramyma/A8R8_ComfyUI_nodes
    

    Restart ComfyUI. No extra dependencies - decoding base64 to an image is stock Python (base64 + Pillow), both of which ComfyUI already needs, and there's nothing to download.

    Common issues

    Decode errors or a blank output. Almost always the string itself: a data:image/...;base64, prefix that didn't get stripped, whitespace or line breaks introduced by whatever copied it in, or a truncated paste. Validate the string is clean base64 before it hits this node.

    It's awkward to use by hand in the editor. The field is a single-line STRING widget, and a real image easily runs to tens of thousands of characters of base64 - not something you're meant to type or comfortably eyeball. That's not an oversight, it's the point: this node is built to be filled programmatically by an API call, not edited by a human in the UI. If you're just testing a workflow visually, use a regular LoadImage node instead and swap this in once you're wiring up the actual API integration.

    CategoryA8R8

    Inputs (1)

    NameTypeDefaultDescription
    base64_imageSTRING

    Outputs (1)

    NameTypeDescription
    IMAGEIMAGE