Nodes/ComfyUI-Arisu-Nodes/Load Image (Browse)
ComfyUI Node

Load Image (Browse)

Stop copying your references into ComfyUI's input folder

By swqa7697·Created 10 days ago·Updated about 10 hours ago· 8
Load Image (Browse)
    • image
    path
    crop
    rootinput

    The problem it solves

    Stock Load Image shows you the top level of ComfyUI/input/ and that's it. Anything else gets there one way: hit choose file to upload, and ComfyUI copies the image into input/. If your references live on a second drive, a NAS, or in a folder of 4,000 photos, that's a copy step you redo for every image, forever. The alternative - a text node holding a path feeding a loader - means picking images blind.

    Load Image (Browse) is the boring fix: a real directory browser with thumbnails over folders you've explicitly allowed, remembering the pick in the workflow and reading the file in place. Nothing is uploaded, nothing is copied.

    One thing before you dig in: the pack is new. Both Common nodes landed on 9 September 2026 and it's on patch 1.1.2, so there's no long community trail to check against - which is why the notes below lean on the source.

    How it works

    The node itself is small: it takes a root ID plus a path relative to that root, resolves it with read-only containment checks, decodes it with Pillow, and returns the pixels. A crop string applies left,top,width,height in pixels of the upright (post-EXIF) image.

    The browser is a frontend script talking to two HTTP routes the pack registers on load, /arisu/browse and /arisu/view. Absolute paths, ~, .., drive/UNC paths and symlinks escaping the selected root are rejected both in the routes and at execution, and no physical path leaks into a response. Previews stream the original file, exactly like stock Load Image; only the browser thumbnails are resized.

    The pack is pure V3 API (comfy_entrypoint + io.Schema, no NODE_CLASS_MAPPINGS), so don't panic if the old registration dictionary isn't there - that's the newer authoring API, not a broken install.

    The fields that matter

    • root - which allowed directory you're browsing: input, output, or a root you configured. Defaults to input. Hidden, socketless, and set by the browser.
    • path - the file relative to that root, e.g. portraits/a.png. Also hidden and socketless; Browse writes it. You can't type or wire it in the UI, which is deliberate.
    • crop - optional, blank means whole image. The crop… button fills it in and the frontend hides the field; a box running past an edge gets clipped.
    • image out - one IMAGE, a batch of one, cropped if a crop is set. Wire it into any IMAGE input; in the H3 workflows it's first_frame / last_frame / ref_image_* on MiniMax H3 Hybrid to Video.

    No mask output and no Open in MaskEditor entry. If you're inpainting, keep a copy under input/ and use the stock node.

    External folders

    Edit user/__arisu_nodes/config.arisu.jsonc under your ComfyUI install, then restart:

    {
      // Root IDs become the names you see in Browse.
      "roots": {"photos": "/data/photos", "references": "/mnt/library/references"}
    }
    

    Root IDs are lowercase, max 64 chars; input and output are reserved. Values must be existing absolute directories - not filesystem roots like / or C:/, and on Windows use "D:/Photos". The file takes // comments but no trailing commas. A missing file becomes an empty template, and bad config just disables external roots and logs why, so check the server log rather than blaming the browser.

    Read this bit twice: configuring a directory lets any client of this server browse it and load its images. Only allow directories you're happy to share.

    The older pack-local arisu_paths.json is no longer read. Copy its roots entries into the new file by hand and restart.

    Install

    No dependencies to install - the pack declares none (pillow is the only entry in its pyproject.toml, and ComfyUI already ships it). Search ComfyUI-Arisu-Nodes in ComfyUI-Manager, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/swqa7697/ComfyUI-Arisu-Nodes.git
    

    Restart, then look under Add Node → Arisu Nodes → Common. It wants ComfyUI ≥ 0.30.0. If the nodes don't show up, check the console for an import error rather than reinstalling the world.

    Where people get burned

    Your selection vanishes. Reopening a saved workflow, refreshing, switching tabs and undo/redo preserve your pick. Importing a workflow JSON/PNG, pasting or duplicating a node, inserting a workflow or duplicating one does not - image, crop and root reset to input, silently. Reselect with Browse. Workflows carrying old absolute paths (pre-1.1.1 behaviour) land in the same bucket; legacy bookmarks aren't imported either.

    File types. Static PNG, JPEG, WebP, BMP and AVIF only. Animated PNG/WebP/AVIF aren't even listed, and TIFF, GIF and SVG are neither listed nor loaded. AVIF wants Pillow ≥ 11.2.

    No preview under Nodes 2.0. In the classic canvas the image shows on the node. In the Vue renderer the buttons and dialogs work but there's no preview - the same frontend friction that made rgthree-comfy tell people to stay on the legacy canvas. Check the browser console if buttons go missing.

    That's the pitch, really: nothing uploaded, nothing copied. Moving pixels between folders is a job you get to stop doing.

    CategoryArisu Nodes/Common

    Inputs (3)

    NameTypeDefaultDescription
    pathSTRINGThe image file relative to the selected configured root ('sub/a.png'), stored by Browse. Select images with Browse; manual input and wiring are unavailable in the UI. Nothing is uploaded or copied.
    cropSTRINGAn optional crop as left,top,width,height in pixels of the upright image; blank loads the whole image. The crop button fills it in and the frontend hides it. A box reaching past the image is cut to it.
    rootoptCOMBOinputThe image directory selected inside Browse. External roots are set in config.arisu.jsonc.

    Outputs (1)

    NameTypeDescription
    imageIMAGEThe image, cropped when a crop is set, as a batch of one.