Nodes/ComfyUI-JNodes/Vae Selector + String
ComfyUI Node

Vae Selector + String

Pick a VAE by hand, by seed, or by index

By JaredTherriault·Created 3 years ago·Updated about a month ago· 91
Vae Selector + String
    • vae_name
    • STRING
    vae_name
    mode
    seed0

    This is a VAE dropdown with a trick up its sleeve. A standard ComfyUI VAELoader just gives you a fixed dropdown of files in models/vae - you pick one, that's it. This node is one of JNodes' "Selector" family, and per the README those are all built to be randomizable by seed, so instead of hand-picking a VAE every time, you can let the node roll one for you based on a seed value. Handy if you're batch-testing which VAE a checkpoint actually likes, or doing generation sweeps where you want the VAE choice itself to vary run to run.

    Why the VAE choice even matters

    Worth a quick reminder if you're newer to this: the VAE is the codec between the compressed space where diffusion actually happens and the pixels you see on screen. On old SD 1.5 checkpoints picking the wrong (or no) VAE gave you washed-out colors - the classic fix was bolting on the 840k VAE. Modern checkpoints have mostly flipped this: they usually bake a matching VAE in already, so attaching the wrong external one is now the more common mistake, not skipping one. The safe move is "Baked VAE" (use whatever's already in the checkpoint) unless you have a specific reason to swap - different architectures use incompatible latent formats, so pairing a VAE with a model it wasn't trained against tends to produce noise or flat color rather than a subtly-off image.

    Inputs and outputs

    • vae_name - the dropdown of available VAE choices, including Baked VAE as an option to fall back to whatever's built into your checkpoint rather than loading a separate file.
    • mode - one of select, seed, or index. select just uses whatever you picked in vae_name manually. seed and index hand the choice off to randomization instead - seed derives the pick from the seed value below, index presumably steps through the list by position (useful for deterministic sweeps rather than pure randomness).
    • seed - an integer, defaults to 0, only relevant when mode is set to seed.

    Two outputs come out the other end:

    • vae_name - the resolved selection in its native type, meant to be wired directly into a standard VAE-consuming node the same way you'd wire a normal VAELoader's dropdown.
    • STRING - the same resolved value as plain text, useful for logging, filenames, or feeding into JNodes' metadata nodes so you can tell after the fact which VAE actually got used on a given run.

    One thing to keep in mind: this node picks a name, it doesn't load the VAE itself. You still need a loader downstream that actually reads the file into memory.

    Installing it

    Standard pack install, no extra dependency specific to this node:

    • ComfyUI Manager - search "JNodes", install, restart.
    • Manual - cd ComfyUI/custom_nodes && git clone https://github.com/JaredTherriault/ComfyUI-JNodes, then pip install -r requirements.txt, then restart ComfyUI.

    Your VAE files themselves aren't something this pack fetches for you - they still need to already be sitting in models/vae (or baked into your checkpoint) for the dropdown to have anything real to offer.

    Common issues

    If vae_name only shows Baked VAE and nothing else, that's not a bug - it means ComfyUI didn't find any files in models/vae, so drop a .safetensors VAE in there and refresh the node (or restart) to populate the list. If you switch mode to seed or index and the output doesn't seem to match what you'd expect from vae_name, remember those modes override your manual dropdown pick entirely - set mode back to select if you want your choice respected exactly as shown. And the usual VAE trap still applies regardless of how you picked it: loading a VAE from a different model family than your checkpoint (say, an SDXL-era VAE against a newer 16-channel-latent model) tends to produce visible noise or flat color rather than a subtle quality difference, so if output looks broken right after adding this node, check that the VAE you selected actually matches your checkpoint's architecture before debugging anything else.

    Categorysd

    Inputs (3)

    NameTypeDefaultDescription
    vae_nameCOMBO1 options: Baked VAE
    modeCOMBO3 options: select, seed, index
    seedINT0

    Outputs (2)

    NameTypeDescription
    vae_name
    STRINGSTRING