Nodes/ComfyUI Preset Switcher/Preset Switcher (LoRA)
ComfyUI Node

Preset Switcher (LoRA)

Your whole LoRA stack, saved and flipped as one preset

By MosnowLab·Created 4 months ago·Updated 4 months ago· 0
Preset Switcher (LoRA)
    • current_preset
    preset_trigger

    Multi-LoRA setups are where preset switching earns its keep. You've stacked three LoRAs with tuned weights until the look is right, and recreating that exact stack from memory two weeks later is hopeless. Preset Switcher (LoRA) snapshots your checkpoint, as many Comfyroll CR LoRA Stack nodes as you care to bind, and your positive and negative prompts - then replays the whole thing from one dropdown.

    It's the sibling of Preset Switcher (Style) in the same MosnowLab ComfyUI-Preset-Switcher pack, with one big difference: it's built around Comfyroll's CR LoRA Stack node. The README says "integrated Comfyroll LoRA Stack," and that soft dependency is real - the stack half of this node only has anything to list if you also have ComfyUI_Comfyroll_CustomNodes installed. Install both, or the LoRA Stack button opens an empty manager.

    How it works

    Same architecture as its twin: the Python class is a stub that returns an empty string, and the real logic lives in the pack's JavaScript talking to small backend routes. The LoRA Stack button opens a manager that lists every CR LoRA Stack node in your graph - pick one or several. Save Current Config then reads each stack's three slots (switch, lora name, model weight, clip weight) plus the bound checkpoint and prompts, and writes a JSON preset into the pack's presets/ folder. Switching writes those values back into the stack nodes' widgets. Again, nothing real flows through the wires: preset_trigger and current_preset are vestigial (the JS never touches the input; the output is always empty). The widgets are the interface.

    One backend difference worth a line: the LoRA version resolves the current workflow name server-side, matching the graph id against your saved workflows, instead of reading it in the browser. Day to day you won't notice - but the preset files are prefixed [lora] (the Style switcher uses [效率]), which is how the two node types keep their presets separate even though they share a folder.

    Install

    cd ComfyUI/custom_nodes/
    git clone https://github.com/MosnowLab/ComfyUI-Preset-Switcher.git
    

    Restart ComfyUI. Or use ComfyUI Manager and search Preset Switcher. No extra Python dependencies, no model downloads - this pack only orchestrates values. Then, separately, install Comfyroll (ComfyUI_Comfyroll_CustomNodes) if you want the stack feature to work at all.

    Where people get burned

    Presets are scoped per workflow - the filename embeds the workflow name, so "Hero" in one workflow and "Hero" in another are separate files, and a preset won't follow you into a fresh graph. Bindings are stored by node ID, so if you rebuild part of the graph the switcher can't find its targets and you have to re-pick them. It also checks that the saved checkpoint still exists in the loader's list and warns if a model file was renamed or deleted. And a couple of honest rough edges: the apply summary alert is hardcoded Chinese even on an English UI (the buttons are bilingual, the alert isn't), and the pack is young - a single commit, no community footprint to speak of. Treat it as a tidy personal convenience: presets are plain JSON in the pack folder, so back them up with your custom_nodes, not with the workflow PNG.

    CategoryPreset

    Inputs (1)

    NameTypeDefaultDescription
    preset_triggeroptSTRING

    Outputs (1)

    NameTypeDescription
    current_presetSTRING