ComfyUI Node

RedNode Shelf

A Load Image that finally gives pictures back

By RedNodeAI·Created 2 months ago·Updated about 19 hours ago· 5
RedNode Shelf
    • image
    ◄config{}►
    ◄resize0►

    ComfyUI has a one-way street in it. Core's Load Image takes a drop - drag a PNG onto the node and it's yours. It never gives one back. So moving a picture around means right-click, copy, switch tabs, find the slot, paste. Four steps and a scroll for something that feels like it should be one drag.

    RedNode Shelf is that drag. Drop pictures on it, drag them off onto any gallery, onto the Paint pane, another shelf, or straight into a folder on your desktop. Plus it has a right-click "send to" for the Workspace tabs, and the picture you've got picked on it comes out of an image socket, so it doubles as a Load Image you can pull from.

    What it actually holds

    The Shelf isn't a folder or a file dialog. It holds pointers - the same name.png [output] entries the pack's galleries use, naming a file plus the folder it lives in (input/, output/, temp/). Drop a picture that already exists and it costs you no disk at all. Drag in a new file from your desktop and it goes through ComfyUI's /upload/image endpoint, so it lands in ComfyUI/input/ like any other upload.

    The node's own state lives in the config widget - a JSON blob holding the list of pictures, which one is picked, and five named stacks. Only the stack on show is what a run reads, so the four you aren't looking at cost nothing. You don't type in config. The panel writes it.

    When it runs, pick() resolves the picked entry, loads it, runs it through EXIF orientation, forces RGB, optionally resizes, and hands back a float tensor [1,H,W,3] in 0..1 - exactly what every other image node in ComfyUI expects.

    The inputs that matter

    • config (STRING, multiline). The shelf's own state. Leave it alone; if you hand-edit it into broken JSON you get an empty shelf, quietly.
    • resize (INT, 0–8192, step 64, default 0). The long edge for the picture on the socket; 0 hands it over at its own size, which is what most people want. Set it and the picture is scaled to that long edge, aspect kept, both dimensions rounded to multiples of 8 - latent-friendly, and it scales up just as happily as down.

    The one output is image (IMAGE). Wire it into anything that wants a picture - VAE Encode for an img2img pass, an upscaler, a ControlNet preprocessor, an IPAdapter. Anything downstream reads whatever is picked, so a shelf sitting beside your graph becomes the "current picture" dial for the whole workflow.

    The Override switch

    There's one more trick, and it's a panel switch rather than an input (it rides in the same config blob, so you won't find it in the socket list). With Override on, the picture picked on the shelf becomes the one the Workspace's ticked tabs render from, in place of whatever their galleries hold. It starts ticked to Img2Img and the Editor source - the two "picture I'm working on" slots - with Subject, Scene and Moodboard as opt-ins. Nothing is written into the Workspace, so flipping Override off hands every tab its own picture back, untouched. Only one shelf can hold it: turning it on somewhere switches it off everywhere else.

    Install

    Search RedNode Studio in ComfyUI Manager, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/RedNodeAI/ComfyUI-RedNodeStudio.git ComfyUI-RedNodeStudio
    

    Restart ComfyUI. The pack's "no pip dependencies" claim holds up - there's no requirements.txt, and the pyproject.toml declares no dependencies, just requires-python >=3.10. The requires-comfyui >=0.26.0 note is about the Krea 2 nodes specifically; the Shelf isn't one of them, so any model and any reasonably current core will do. The README's advice, if you want the whole studio rather than just the Shelf, is to open the RedNode Start Here Install template and let Manager fill in the rest.

    One licensing thing worth knowing before you build a business on it: the pack is PolyForm Noncommercial 1.0.0. Personal, hobby and research use is fine; commercial use needs the author's permission.

    Where people get tripped up

    Nothing happens when you hit queue. The most likely cause is an empty shelf. An empty shelf doesn't error - it hands the socket an ExecutionBlocker, which is core's way of saying "nothing this run", so everything wired downstream is skipped and the run finishes without drawing anything. Same story if the picked file was deleted or renamed: you get a console line and a dark socket, not a red node.

    "The image is not in the ComfyUI output folder any more." That's the pointer thing biting. The shelf stored the file's name and folder, not a copy. Move or rename the file and the entry is dead until you re-add it.

    Your input/ folder is filling up. Anything you dropped in from outside ComfyUI (or pasted with Ctrl+V) was uploaded into ComfyUI/input/. Hitting Delete takes the picture off the shelf; it does not delete the file. The shelf holds names.

    Dragging out doesn't remove it. By design - a drag out is a copy, so a misfired drag never loses a picture. It also means the shelf never clears itself; you take things off by hand.

    CategoryRedNode/Tools

    Inputs (2)

    NameTypeDefaultDescription
    configSTRING{}The shelf's own state: the pictures on it and which one is picked. The panel writes this; there is nothing to type here.
    resizeoptINT00–8192Long edge for the picture on the image socket. 0 hands it over at its own size.

    Outputs (1)

    NameTypeDescription
    imageIMAGE—