Nodes/msch-comfyui-nodes/marioslideshow - Load Images
ComfyUI Node

marioslideshow - Load Images

Get your photos into the MSCH slideshow without wrecking their aspect ratios

By mariobilly·Created a day ago·Updated a day ago· 0
marioslideshow - Load Images
    • photos
    • contact_sheet
    • image_count
    directory
    max_images100
    order

    "Marioslideshow - Load Images" is the front door of this pack's slideshow workflow. Point it at a folder of photos (or upload them in the browser) and it hands your whole collection to the renderer and subject framer downstream - while keeping each photo's original aspect ratio intact. That last bit is the whole point, and it's the thing that makes this node different from a plain Load Image.

    Here's why that matters. ComfyUI image batches are rectangular grids - load ten mixed portrait/landscape photos into a stock loader and something has to give, usually by center-cropping everything to one size. But an animated slideshow needs the real geometry: the Director plans panels and camera moves around each photo, and the renderer's "Smart fit"/"Contain" framing decisions only make sense if they know the photo is a tall 9:16 or a wide 3:2. Crop decisions belong to the planning stage, not the loader. So Load Images preserves the source and lets the rest of the pack do the cropping.

    How it works

    The node reads a folder and returns a private MARIO_IMAGES object - effectively an ordered list of file paths, not decoded pixels. The renderer opens each photo lazily when it's needed, which keeps RAM sane even for 200-image promos. IS_CHANGED fingerprints the folder contents, so the node re-triggers when you drop new files in.

    directory takes an absolute path, or a path relative to ComfyUI/input. Don't want to fuss with paths? The pack's web extension adds an Upload images button right on the node: pick photos, they upload through ComfyUI's /upload/image endpoint, and the returned input subfolder is written into the directory field for you. That's the workflow the example JSONs assume.

    The only other inputs are easy:

    • max_images (default 100, max 200) - bounds how many photos you'll pull. Cheap insurance.
    • order - Natural sorts by filename; Newest first sorts by file modification time, which is what you want when you dump a phone's camera folder and don't want the pictures scrambled.

    Outputs and what to do with them

    Three sockets, and they serve different jobs:

    • photos (MARIO_IMAGES) - the real payload. It only plugs into the pack's own nodes (the renderer, subject framer, Director), because it's a private type.
    • contact_sheet (IMAGE) - a dark-grid preview of up to 12 thumbnails so you can eyeball the order without opening a folder. It's a preview, not your source - don't wire it into the render expecting your actual photos.
    • image_count (INT) - the count of loaded photos, which feeds the Director companion node so it knows how many shots to plan.

    Worth saying plainly: because MARIO_IMAGES is pack-private, this is not the node for pulling a folder into ComfyUI for general image work. If you need a plain IMAGE batch of your photos for anything outside this pack, use a normal image loader. Load Images exists to feed the MSCH slideshow machinery, full stop.

    Installing it

    cd ComfyUI/custom_nodes
    git clone https://github.com/mariobilly/msch-slideshow.git
    cd msch-slideshow
    python -m pip install -r requirements.txt
    

    Then restart ComfyUI and hard-refresh your browser - the browser refresh matters, because the Upload button is injected by the pack's web/ frontend extension and won't appear on a stale page. Windows portable users run pip with .\python_embeded\python.exe. ComfyUI Manager may not show the pack yet (its Registry verification is still pending), so git install is the safe path.

    Heads-up from the README: this standalone repo is being folded into the unified MSCH Nodes pack. It works fine as-is - just don't install both or you'll get duplicate node registrations.

    Where people get burned

    The common failure is the folder path: if ComfyUI can't find it you'll get a path error immediately. Use an absolute path or one relative to ComfyUI/input, and remember that browser uploads create their own subfolder under input - don't go hunting for your files at the repo root. And if the upload button never shows up, it's the missing browser refresh, not a broken install.

    Categorymarioslideshow

    Inputs (3)

    NameTypeDefaultDescription
    directorySTRINGAbsolute folder path, or a path inside ComfyUI/input.
    max_imagesINT1001–200
    orderCOMBO2 options: Natural, Newest first

    Outputs (3)

    NameTypeDescription
    photosMARIO_IMAGES
    contact_sheetIMAGE
    image_countINT