Load Image
The node almost every workflow starts with
- IMAGE
- MASK
You can spot a ComfyUI beginner by their first img2img attempt: they try to drag a PNG onto the canvas, and nothing happens, because images don't enter the graph by dragging - they enter through Load Image. It's the front door for every image you want to work with: reference images, img2img sources, ControlNet condition images, inpainting bases. If an image is going to influence a workflow, it almost certainly passes through this node first.
What it is
One input - image, a dropdown of every image file in your input folder, with an upload button built in. Two outputs:
IMAGE- the image as a float tensor in[batch, H, W, 3]format, values 0–1. This is the universal currency of the image side of ComfyUI; anything that accepts an IMAGE can take this.MASK- derived from the image's alpha channel, computed as1 - alpha, so transparent areas become white. No alpha in the file? You get an all-zeros mask (black = nothing to regenerate), which is a safe default rather than an error.
Dropping a file into the dropdown or using the upload button copies it into ComfyUI/input/, which is where the picker reads from. From there the node loads it, EXIF-transposes it (so phone photos don't come in sideways), converts to RGB, and normalizes to 0–1 floats.
The details that quietly matter
Three behaviors aren't obvious from the dropdown but shape how you use the node:
- It handles multi-frame images. Animated WebP and multi-frame images get loaded as a batch - every frame becomes an entry in the batch dimension of the IMAGE output. That's how you'd feed a multi-frame reference into a video workflow, and it's also a surprise for people who expect a single frame and get 30.
- It's change-aware. The node hashes the file contents to decide whether it's "changed," so if you edit the image on disk (or re-upload over it), the node re-triggers - this is what makes iterative workflows where you tweak a reference and re-queue work without manually resetting anything.
- The filename is everything. The dropdown lists filenames, not thumbnails-plus-names, so a folder of
img_001.pngthroughimg_200.pngis as navigable as a folder of descriptive names - name your inputs or you'll spend your life guessing.
Getting it and where it goes wrong
Load Image is a founding-era node in ComfyUI's nodes.py - it's been there since the start, no install, no model files. The classic stumbles:
- "Where did my image go?" - it's in
ComfyUI/input/, not inoutput/. The upload button and the picker both operate on input, and that's also why the node shows files you don't remember adding. - The mask output is not a mask you painted. It's alpha-derived, inverted, and often all zeros. If you need a real mask from a file, use Load Image (as Mask) and pick the channel.
- Thinking the IMAGE output is a picture you can save. It's a tensor; wire it into Save Image or Preview Image to see it as a file.
One node, two outputs, and it's the connective tissue between your files and everything downstream. Load Image is the first thing beginners reach for and the last thing they stop noticing - which is exactly what a good foundation node should be.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| image | COMBO | 1 options: example.png |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |
| MASK | MASK | — |