Nodes/AK Pack/AK KSampler Settings Out
ComfyUI Node

AK KSampler Settings Out

Unpack sampler settings wherever a KSampler actually lives

By akawana·Created 9 months ago·Updated 7 days ago· 2
AK KSampler Settings Out
    • seed
    • steps
    • cfg
    • sampler_name
    • scheduler
    • denoise
    • xz_steps
    sampler_settings

    AK KSampler Settings Out is the receiving end of the pack's "define sampler settings once, use them everywhere" trick. AK KSampler Settings packs seed, steps, cfg, sampler, scheduler, denoise and xz_steps into one string; this node takes that string and unpacks it into the seven typed outputs a KSampler actually wants to see. You put the Settings node anywhere convenient, and you put as many Out nodes as you need near the samplers that should follow it.

    Why bother with a string in the middle instead of just dragging wires? Because in a big graph the value isn't the wire - it's that one Settings node becomes a single source of truth. Change cfg there and every Out node downstream reflects it. And if you pair it with the pack's AK Base node, the flow gets genuinely nice: AK Base's gallery can push settings into the string, and Out turns them into real inputs, so clicking a variation in the gallery re-tunes your samplers.

    The one input. sampler_settings, a STRING. It's marked forceInput, so you wire it from AK KSampler Settings - it's not a field you type into. That input is the only knob the node has.

    The seven outputs. Straight into a KSampler's matching sockets:

    • seed (INT), steps (INT), cfg (FLOAT), denoise (FLOAT)
    • sampler_name - the full 44-entry ComfyUI sampler list, so it plugs directly into the KSampler's enum input.
    • scheduler - the 9 ComfyUI scheduler options.
    • xz_steps (INT) - the XZ-Axis field from the Settings node; ignore it unless you run that pack.

    The output types are proper typed enums, not strings, so KSampler wiring just works. The node also validates on parse: if a sampler or scheduler name somehow doesn't match ComfyUI's lists it falls back to euler / simple rather than erroring, and values get clamped to sensible ranges. Garbage in doesn't crash the graph; it silently gives you defaults.

    How to install. Same as the whole pack - ComfyUI Manager (search "AK Pack") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/akawana/ComfyUI-Utils-extra
    

    Restart ComfyUI. No dependencies or model downloads.

    Where people get burned. The most common confusion is thinking this node and AK KSampler Settings are interchangeable. They're not: Settings is where you edit, Out is read-only. If you only drop an Out node into a workflow, you have an empty input and nothing to unpack - you need the Settings node somewhere in the graph (or another source that produces its exact JSON format). Also remember the fallback behavior cuts both ways: if you miswire a plain text string into it, you won't get an error, you'll get a sampler silently running at euler/simple/20 steps/CFG 7 - which can be genuinely confusing when nothing you set seems to apply. When in doubt, confirm the string actually came from an AK KSampler Settings node.

    CategoryAK/sampling

    Inputs (1)

    NameTypeDefaultDescription
    sampler_settingsSTRING

    Outputs (7)

    NameTypeDescription
    seedINT
    stepsINT
    cfgFLOAT
    sampler_nameeuler,euler_cfg_pp,euler_ancestral,euler_ancestral_cfg_pp,heun,heunpp2,exp_heun_2_x0,exp_heun_2_x0_sde,dpm_2,dpm_2_ancestral,lms,dpm_fast,dpm_adaptive,dpmpp_2s_ancestral,dpmpp_2s_ancestral_cfg_pp,dpmpp_sde,dpmpp_sde_gpu,dpmpp_2m,dpmpp_2m_cfg_pp,dpmpp_2m_sde,dpmpp_2m_sde_gpu,dpmpp_2m_sde_heun,dpmpp_2m_sde_heun_gpu,dpmpp_3m_sde,dpmpp_3m_sde_gpu,ddpm,lcm,ipndm,ipndm_v,deis,res_multistep,res_multistep_cfg_pp,res_multistep_ancestral,res_multistep_ancestral_cfg_pp,gradient_estimation,gradient_estimation_cfg_pp,er_sde,seeds_2,seeds_3,sa_solver,sa_solver_pece,ddim,uni_pc,uni_pc_bh2
    schedulersimple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimal
    denoiseFLOAT
    xz_stepsINT