Nodes/ComfyUI-ZMongo/08 Dynamic Preset Outputs
ComfyUI Node

08 Dynamic Preset Outputs

Turn a saved preset back into 64 live wires, automatically

By CentralFloridaAttorney·Created 5 months ago·Updated 2 months ago· 1
08 Dynamic Preset Outputs
    • out_00
    • out_01
    • out_02
    • out_03
    • out_04
    • out_05
    • out_06
    • out_07
    • out_08
    • out_09
    • out_10
    • out_11
    • out_12
    • out_13
    • out_14
    • out_15
    • out_16
    • out_17
    • out_18
    • out_19
    • out_20
    • out_21
    • out_22
    • out_23
    • out_24
    • out_25
    • out_26
    • out_27
    • out_28
    • out_29
    • out_30
    • out_31
    • out_32
    • out_33
    • out_34
    • out_35
    • out_36
    • out_37
    • out_38
    • out_39
    • out_40
    • out_41
    • out_42
    • out_43
    • out_44
    • out_45
    • out_46
    • out_47
    • out_48
    • out_49
    • out_50
    • out_51
    • out_52
    • out_53
    • out_54
    • out_55
    • out_56
    • out_57
    • out_58
    • out_59
    • out_60
    • out_61
    • out_62
    • out_63
    preset_json{}
    strict_combo_validationtrue

    This is the payoff node of the ZMongo preset system. The pitch behind "08 Presets" is that you stop hardcoding seeds, steps, samplers, and CFG values all over your graph and store them in the database instead. "08 Save Preset By Node ID" captures a target node's entire state, "08 Load Preset" retrieves it as JSON - and "08 Dynamic Preset Outputs" is what re-hydrates that JSON back into individual output sockets you can wire onto a fresh node. It's an automated pin factory: give it a preset, get out up to 64 typed-looking outputs named out_00 through out_63.

    How it works

    The single required input is preset_json - the tooltip says it plainly: "Preset JSON from ZMongo Load Preset." The node parses the preset's fields array and walks it in order, filling each out_XX socket with the corresponding field's value. A field that came from a slider lands in one output; a combo/dropdown value lands in another; each output is * (wildcard), so it can plug into whatever typed socket it's destined for.

    The one toggle, strict_combo_validation (default true), is worth understanding: when on, dropdown values are validated against the saved option snapshot before being emitted. That catches the classic failure where a saved preset says "sampler: dpmpp_2m" but the target node's dropdown no longer offers that option (sampler lists change between ComfyUI versions all the time). Strict mode makes that mismatch loud instead of silently emitting a dead value. Flip it off if you'd rather take the raw value and let the target node cope.

    This node is deliberately stateless - no session needed, no DB connection. It's pure JSON-in, sockets-out. The database work happened in Save/Load Preset; this is just the adapter that makes the loaded data usable on the canvas.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/CentralFloridaAttorney/ComfyUI-ZMongo
    

    Restart ComfyUI, or install "ComfyUI-ZMongo" via ComfyUI Manager.

    Where people get burned

    The 64-output limit is real and fixed. A preset with more than 64 fields simply stops at out_63 - the rest of the fields are dropped silently. If you're saving a huge node's state and values mysteriously don't arrive, count your fields.

    Second, ordering is positional, not by name. out_00 is the first field in the preset's fields array, not "the field named seed." If you rebuild a preset or save from a different node, the wiring can shift meaning even though every socket is connected. That's inherent to the dynamic-pin design, but it means: save from a stable target node and don't casually reorder inputs between saves.

    Third, strict_combo_validation in the default on position will block values that no longer exist in a dropdown - which is exactly what you want until the day it blocks a legitimate value and you spend ten minutes wondering why the output is empty. If a formerly-working preset suddenly outputs nothing for a combo field, check whether your ComfyUI version changed that widget's options before you suspect the DB.

    CategoryZMongo/08 Presets

    Inputs (2)

    NameTypeDefaultDescription
    preset_jsonSTRING{}Preset JSON from ZMongo Load Preset.
    strict_combo_validationBOOLEANtrueValidate dropdown values against the saved option snapshot.

    Outputs (64)

    NameTypeDescription
    out_00*
    out_01*
    out_02*
    out_03*
    out_04*
    out_05*
    out_06*
    out_07*
    out_08*
    out_09*
    out_10*
    out_11*
    out_12*
    out_13*
    out_14*
    out_15*
    out_16*
    out_17*
    out_18*
    out_19*
    out_20*
    out_21*
    out_22*
    out_23*
    out_24*
    out_25*
    out_26*
    out_27*
    out_28*
    out_29*
    out_30*
    out_31*
    out_32*
    out_33*
    out_34*
    out_35*
    out_36*
    out_37*
    out_38*
    out_39*
    out_40*
    out_41*
    out_42*
    out_43*
    out_44*
    out_45*
    out_46*
    out_47*
    out_48*
    out_49*
    out_50*
    out_51*
    out_52*
    out_53*
    out_54*
    out_55*
    out_56*
    out_57*
    out_58*
    out_59*
    out_60*
    out_61*
    out_62*
    out_63*