ComfyUI Node

VRGDG RefMod Image Picker

Pick your reference images once and feed both the RefMod and the describer

By vrgamegirl19·Created about a year ago·Updated about 23 hours ago· 819
VRGDG RefMod Image Picker
    • refs
    • count
    ◄image_paths[]►
    ◄max_edge1024►

    ComfyUI's built-in Load Image nodes work on one file at a time and pull from the input folder. That's fine for img2img and useless for building a character reference, where the whole idea is six pictures of the same person from different angles, sitting wherever you keep your reference library.

    VRGDG RefMod Image Picker is the node that solves this specific annoyance: multi-select images from anywhere on disk, return them as a list.

    Two required widgets. image_paths is a multiline string that accepts either a JSON list or one path per line - and there's a Browse images button on the node that opens a native file dialog with multi-select on, then fills the field for you. On Windows that dialog comes from PowerShell's System.Windows.Forms file picker, with a tkinter fallback; on other platforms it's tkinter. If neither is available in your environment you get an explicit error naming both failures, which is more than most nodes manage.

    max_edge defaults to 1024 and only ever scales down - longest edge in pixels, smaller images left alone. This is the resolution your RefMod gets built from, so it's worth understanding rather than leaving at default: raise it if your references are genuinely high-detail (a costume with fine trim, a face with distinguishing marks) and drop it if you're building a big library and care about file size and encode time. The refs output goes to the refs_bundle input of Create H3 RefMod and to VRGDG RefMod Describe, which is why picking once and wiring twice beats two separate loaders that can drift apart.

    Second output is count, an INT. Slightly underrated - you can branch on it, log it, or just read it to confirm the picker found what you thought it did before you spend an hour encoding.

    How many images, and which ones

    Two or three references is a mood board. Six to twelve is a character. The technique only works because the model sees evidence - the same face from front, three-quarter and profile, in different light - so near-duplicates waste slots and one good image anchors worse than six consistent ones.

    Order matters, and there's a specific reason here: the describer spreads its image selection evenly across your list but, for identity, always keeps the first three as-is. Put your three cleanest close-ups at the top of the list and they're guaranteed to be sent to the vision model regardless of how many you selected. The rest can be the outfit shots and full-body angles, which the RefMod itself still uses even if the describer samples them sparsely.

    Install

    ComfyUI Manager → search vrgamedev, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl
    

    Restart ComfyUI and hard-refresh the browser tab. No models, no pip dependencies for this node - it's PIL and a file dialog. The pack's requirements.txt is for its Builder, audio splitting, training and TTS tooling (demucs, stable-ts, torchcodec, transformers, llama-cpp-python); install it only if you want those too, and expect llama-cpp-python to potentially need a C++ toolchain and CMake on Windows.

    What goes wrong

    "No images selected." The field is empty or the button didn't populate it. Click Browse images again, or paste absolute paths one per line.

    FileNotFoundError naming a path. One of your lines points at a file that moved or was renamed. The error lists the missing paths, which is the good version of this failure. Quotes and stray whitespace around a path are stripped for you, so pasting from Explorer is fine - but if you hand-write a JSON list on Windows, escape the backslashes. A \t inside a path is a tab as far as JSON is concerned, the whole parse fails, and you get one long "missing file" instead of six short ones.

    Stale results after you edit an image. The node hashes each file's size and mtime plus max_edge into its cache key, so replacing a reference image does invalidate. Reordering paths changes the key too. If you're swapping files in place with identical sizes and timestamps you deserve what you get.

    Non-image files. It checks that each path exists but doesn't pre-validate that it's a decodable image, so a .psd in the list fails at load time rather than up front. Keep the folder clean.

    One last habit worth forming: references are inputs to a render you can't reproduce later. Keep the image files somewhere stable, not in a temp folder you clean out, because a saved workflow stores the paths, not the pixels. Move the folder and yesterday's graph is a row of red nodes.

    CategoryVRGDG/RefMod

    Inputs (2)

    NameTypeDefaultDescription
    image_pathsSTRING[]JSON list or one path per line. Use the Browse images button to fill it.
    max_edgeINT1024256–4096Longest edge in px. Larger images are scaled down, smaller ones are kept as they are.

    Outputs (2)

    NameTypeDescription
    refsH3_REF_LIST—
    countINT—