ImageLoadFromBase64(ImageIOHelpers)
Feed a base64 image into a workflow — the name is a lie, no API, no key
- IMAGE
- MASK
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:
IMAGEandMASK, same pair as the pack'sImageLoadByPath. 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 thedata: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.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| base64_string | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |
| MASK | MASK | — |