Nodes/ComfyUI Ino Nodes/Ino Update Model Config
ComfyUI Node

Ino Update Model Config

Tweak a model config without ever touching the JSON

By nobandegani·Created about a year ago·Updated 2 months ago· 6
Ino Update Model Config
    • old_config
    • new_config
    enabledtrue
    config
    use_dual_clip
    use_flux_encoder
    use_flux_guidance
    guidance-1.00
    use_negative_prompt
    use_cfg
    cfg-1.00
    sampler_name
    scheduler_name
    steps-1
    denoise-1.00

    There are two ways to change the sampler settings in a model config JSON: hand-edit the string, or wire in a node that overrides specific fields and hands you back the updated JSON. Ino Update Model Config is the second way, and once you've rebuilt a workflow after mangling a bracket, you'll appreciate it. It's the editing counterpart to InoShowModelConfig: same family, opposite direction.

    You'd reach for it when you want one workflow to serve multiple sampling presets - say, same Flux model, but 20 steps with euler/simple for previews and 40 steps with dpmpp_2m/karras for finals. Instead of maintaining two JSON blobs, keep one and override the differences here.

    The inputs that matter

    • config - the model config JSON you're editing.
    • steps, denoise, cfg, guidance - numeric overrides, each defaulting to -1.
    • sampler_name, scheduler_name - dropdowns pre-filled with ComfyUI's sampler and scheduler lists.
    • use_dual_clip, use_flux_encoder, use_flux_guidance, use_negative_prompt, use_cfg - boolean toggles as unset / true / false combos.

    Here's the clever bit, and the thing to understand before touching anything: -1 and unset mean "leave it alone." Every override is a sentinel. Set steps to -1 and the config keeps its existing steps. That's what makes this node safe to use as a passthrough - you only change what you actually set. Want to deliberately unset a boolean? You can't from this node, because false and "unchanged" both exist and unset is the only way to say "skip it." That's a minor limitation, not a bug.

    How it works

    It parses config, applies each non-sentinel override onto the dict, serializes back to JSON, and returns both versions: old_config and new_config. Having the old string on a wire is genuinely useful - log it, compare it, or route on whether anything actually changed. The enabled toggle works like everywhere else in the pack: off means empty outputs and no edits.

    The companion flow to know about: this node edits configs, InoShowModelConfig dissects them, and InoLoadSamplerModels / InoGetSamplerConfig consume them. Typical chain - pull a model config, run it through an update here to override steps, hand the result to a sampler loader.

    Installing Ino Nodes

    One pack install covers all of it. In ComfyUI Manager, search "ComfyUI Ino Nodes", install, restart. Terminal route:

    cd ComfyUI/custom_nodes
    git clone https://github.com/nobandegani/ComfyUI-InoNodes.git
    cd comfyui_ino_nodes
    pip install -r requirements.txt
    

    V3-schema pack, needs its inopyutils dependency in the same Python environment as ComfyUI, no model downloads. The usual suspects.

    Where people get burned

    The -1 sentinel trips everyone once. If your override "isn't working," check whether you left the field at -1 - that's "unchanged," not "zero." And because combos default to unset, you can run the node with nothing set and it's a no-op passthrough; that's correct behavior, just surprising the first time.

    CategoryInoSamplerHelper

    Inputs (13)

    NameTypeDefaultDescription
    enabledBOOLEANtrue
    configSTRING
    use_dual_clipoptCOMBO3 options: unset, true, false
    use_flux_encoderoptCOMBO3 options: unset, true, false
    use_flux_guidanceoptCOMBO3 options: unset, true, false
    guidanceoptFLOAT-1.00-1–100
    use_negative_promptoptCOMBO3 options: unset, true, false
    use_cfgoptCOMBO3 options: unset, true, false
    cfgoptFLOAT-1.00-1–100
    sampler_nameoptCOMBO45 options: unset, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39
    scheduler_nameoptCOMBO10 options: unset, simple, sgm_uniform, karras, exponential, ddim_uniform, +4
    stepsoptINT-1-1–100
    denoiseoptFLOAT-1.00-1–1

    Outputs (2)

    NameTypeDescription
    old_configSTRING
    new_configSTRING