ComfyUI Node

Browser Load Image

Load Image with a thumbnail browser you can actually see

By flashcol·Created about a month ago·Updated about a month ago· 1
Browser Load Image
    • image
    • mask
    imageexample.png

    If you've got more than a dozen images in ComfyUI's input folder, the built-in Load Image node turns into a guessing game: a dropdown of filenames with no previews, and you're trying to remember which one ref_v3_final_REAL2.png actually is. BrowserLoadImage is the fix. It's the same loader, plus a visual thumbnail browser that shows you what you're picking.

    The whole pitch is "drop-in." Same one input, same IMAGE and MASK outputs, same upload widget as ComfyUI's core Load Image - every existing workflow keeps working if you swap it in. What you get on top is a 浏览图片 (Browse Images) button under the dropdown.

    How it works

    The node itself is a standard custom node - image input, IMAGE/MASK out - and the browser is a frontend extension layered on it. Some JavaScript registers a Browse button and opens a draggable, resizable modal listing everything in your input folder as thumbnails. Hover any thumbnail for a large preview with the filename and original dimensions. There's real-time search by filename, arrow-key navigation, ESC to close, and the modal remembers its position and size in localStorage if you tick 记住窗口.

    Backend is plain PIL with no extra dependencies. It runs exif_transpose so phone photos come out the right way up, converts to a float 0–1 tensor with a leading batch dimension, and builds the mask from the image's alpha channel.

    Inputs and outputs

    Only one input matters: image, an enum of every supported file (jpg, png, webp, bmp, tiff, gif) sitting directly in ComfyUI/input. Click the Browse button to pick visually; the filename lands in the dropdown.

    The two outputs are exactly what core Load Image gives you:

    • image - an IMAGE tensor, ready for VAE Encode, image processing, or just a preview.
    • mask - a MASK tensor. For an opaque PNG or any JPEG this is all zeros, which is ComfyUI's "no masked region" signal. For a PNG with transparency it's 1 − alpha, so transparent areas come out white - exactly what you want feeding an inpaint or outpaint step.

    Installing

    ComfyUI Manager: search ComfyUI_BrowserLoadImage, install, restart. Or by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/flashcol/ComfyUI_BrowserLoadImage.git
    cd ComfyUI_BrowserLoadImage
    pip install -r requirements.txt
    

    Restart ComfyUI after. This node itself needs nothing beyond Pillow, which ships with ComfyUI - but the pack's requirements.txt installs opencv-python for its two video siblings. If you only want the image node, you can skip the pip step and it still loads fine.

    Common issues

    • Empty dropdown. The node only lists files directly in ComfyUI/input - nothing in subfolders. Drop files in the top level.
    • Node missing from the list. The pack silently hides its video nodes when opencv can't import, but BrowserLoadImage loads regardless. If the whole pack is absent, check the clone landed in custom_nodes and restart.
    • Text in Chinese. The modal is partly in Chinese - 浏览图片 is "Browse Images," 记住窗口 is "remember window." Not a bug.
    • It re-runs when you change a file. IS_CHANGED keys on the file's modified time, so swapping a PNG on disk re-triggers the node on the next run. Usually a feature, occasionally a surprise if you're editing in place.

    Is it a must-install? No - if you live on two reference images, core Load Image is fine. But the moment your input folder grows into the dozens, this browser saves you more time in a week than the install cost in a month.

    Categoryimage

    Inputs (1)

    NameTypeDefaultDescription
    imageCOMBOexample.png1 options: example.png

    Outputs (2)

    NameTypeDescription
    imageIMAGE
    maskMASK