Nodes/ComfyUI-vlo/vlo Memory Load Image
ComfyUI Node

vlo Memory Load Image

Feed ComfyUI an image that was never written to your input folder

By PxTicks·Created 4 months ago·Updated 10 days ago· 0
vlo Memory Load Image
    • IMAGE
    • MASK
    image
    disable_in_memoryfalse

    The boring way to get an image into ComfyUI is to drop it in ComfyUI/input and load it with the standard Load Image node. That works great until the thing feeding your graph is another app generating dozens of short-lived images per run - and then your input folder is a graveyard of one-use files. vlo Memory Load Image is the fix for that: it loads an image straight out of an in-memory registry by id, so the file never touches disk at all.

    It exists for vlo, the local open-source video editor this pack bridges to. vlo is a timeline-based editor with ComfyUI as its generation backend - you cut, mask, and arrange in the editor, and it hands frames to ComfyUI over the wire. The memory loaders are the "receiving end" of that handshake: vlo uploads the image into the registry via a small HTTP route, and this node pulls it back by its registry id. Nothing written to input, no cleanup, no orphan files.

    What you actually touch

    The interface is two inputs:

    • image - a dropdown. When connected to vlo, it lists media ids currently held in the registry (the web extension behind this pack swaps that list in live). The dropdown's refresh button re-pulls it.
    • disable_in_memory (boolean, default false) - the escape hatch. Flip it and the dropdown switches to listing real files from your normal ComfyUI/input directory. This is how you test the same workflow by hand, without vlo running at all.

    Outputs match the standard Load Image: IMAGE (the pixels) and MASK (the alpha channel as a mask, when the image has one). Wire them wherever you'd wire any Load Image.

    How it behaves under the hood

    The registry is exactly as simple as it sounds: a dict of id → bytes with a size cap (512 MB per item, 2 GB total) and a TTL. Unread items live two hours; once ComfyUI has accessed an item, it lingers only ten minutes. The node also fingerprints its input so ComfyUI's cache doesn't skip re-runs when the media actually changes - that's a class of bug ("I replaced the image but nothing updated") you never see with this node.

    The gotchas

    • Expired id errors. If a run says "Unknown media id," the item aged out of the registry - re-send it from vlo. It's not a disk problem, so checking your files won't help.
    • The registry dies with ComfyUI. It's in-memory, so a restart wipes it. Any workflow that references old ids fails until vlo re-uploads.
    • Keep disable_in_memory off in production runs and use it only for hand-testing - that's literally what it's for.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/PxTicks/ComfyUI-vlo.git
    

    Restart ComfyUI (or install via ComfyUI Manager as "ComfyUI-vlo"). The web extension registers itself, no models to download, nothing extra to pip install on a current ComfyUI.

    Categoryimage

    Inputs (2)

    NameTypeDefaultDescription
    imageCOMBO1 options: example.png
    disable_in_memoryBOOLEANfalseWhen true, load the selected image from ComfyUI's normal input directory instead of the vlo in-memory registry.

    Outputs (2)

    NameTypeDescription
    IMAGEIMAGE
    MASKMASK