Nodes/ComfyUI-Rennart/🖼️ Rennart Load Image
ComfyUI Node

🖼️ Rennart Load Image

The Load Image that hands you width, height, and filename as wires

By Rennart2025·Created 4 days ago·Updated 4 days ago· 2
🖼️ Rennart Load Image
    • image
    • mask
    • width
    • height
    • filename
    image

    Rennart Load Image is ComfyUI's core Load Image, reimplemented, with three extra outputs bolted on: width, height, and filename. Same file picker, same upload flow, same mask handling - but now the image's dimensions and its filename are real wires you can route into other nodes instead of values you have to re-type. If you've ever needed to know an image's size to feed an Empty Latent or a resize step, or wanted the filename in a note or filename template without a separate metadata node, this saves you the plumbing.

    It's part of the ComfyUI-Rennart pack, under Rennart/Image.

    How it works

    The code is a near-verbatim reimplementation of ComfyUI's built-in image loading path, so the behavior is what you already expect from core: it lists image files from ComfyUI/input/ (the same directory core Load Image reads - uploading an image in the UI copies it there), opens the selected one with PIL, applies EXIF orientation transposition, and converts to an RGB float tensor normalized to 0–1.

    Two things it handles that you may not have noticed core doing: alpha channels become a mask output (inverted, so it matches ComfyUI's convention where masks are transparent-in-black), and animated formats like GIF come through as multiple frames stacked into a batched image tensor. It also overrides IS_CHANGED with a hash of the file's contents, so if you overwrite an image in input/ between runs, this node picks up the change instead of serving a cached copy - nice for iterative workflows where you edit a reference in another app and re-run.

    The inputs and outputs that matter

    The only input is image, a dropdown of the image files in your input folder with an upload button. No settings, no options - it's intentionally bare.

    Outputs:

    • image - the loaded IMAGE tensor.
    • mask - alpha/transparency as a MASK (zeros if the image has no alpha).
    • width, height - the image's dimensions as INTs. These are the headline: wire them into an Empty Latent, a resize, or any size-aware node downstream.
    • filename - the base filename without extension, as a STRING. Handy for filename templates and organization.

    Install and gotchas

    Same pack, one install:

    # ComfyUI Manager: search "ComfyUI-Rennart", or:
    cd ComfyUI/custom_nodes
    git clone https://github.com/Rennart2025/ComfyUI-Rennart
    

    Restart ComfyUI; it's under Rennart/Image. Dependencies are torch, numpy, and pillow (which ComfyUI already ships), and there are no model downloads.

    Honest take: if you don't need the extra outputs, core Load Image is fine and you shouldn't install a pack for this alone. But if you already have the pack, this is a strictly-better Load Image for workflow building, since width/height as wires removes an entire class of "I typed the wrong dimension" bugs. The one quirk to know: because it reimplements the loading path rather than wrapping core, if ComfyUI ever changes its own loader's behavior, this node won't automatically follow - though for image loading the semantics have been stable for years. Files must live in input/, which is the standard "can't find my image" gotcha for any loader, this one included.

    CategoryRennart/Image

    Inputs (1)

    NameTypeDefaultDescription
    imageCOMBO1 options: example.png

    Outputs (5)

    NameTypeDescription
    imageIMAGE
    maskMASK
    widthINT
    heightINT
    filenameSTRING