FL KSampler Settings
One dashboard node for two-pass sampling params
- WIDTH
- HEIGHT
- BATCH_SIZE
- Pass_1_steps
- Pass_2_steps
- Pass_1_CFG
- Pass_2_CFG
- Pass_2_denoise
- SCALE
- SAMPLER
- SCHEDULER
This one doesn't sample anything. Read that twice, because the name is misleading - FL_KsamplerSettings is a config node. It's a single box where you set all the knobs for a two-pass (generate-then-hires-fix) workflow, and it spits those values out as wires you plug into your actual samplers and latent nodes. Think of it as a control panel: instead of ten sliders scattered across five nodes, you tune everything in one place and route it out.
Why bother? Because a hires-fix graph in ComfyUI is a mess of duplicated numbers. Your first KSampler has steps/CFG/sampler/scheduler; your upscale needs a scale factor; your second KSampler has its own steps/CFG plus a denoise. Change your mind about the sampler and you're editing it in two spots and hoping they match. This node makes that one edit. It's the same instinct behind Efficiency Nodes and rgthree's Context nodes - the ecosystem keeps reinventing "put the settings in one tidy place" because big graphs get unreadable fast.
What it outputs, and how you wire it
The interesting side is the outputs, since that's what does the work. It emits WIDTH and HEIGHT (from the aspect-ratio preset), BATCH_SIZE, Pass_1_steps, Pass_2_steps, Pass_1_CFG, Pass_2_CFG, Pass_2_denoise, SCALE, and a proper SAMPLER and SCHEDULER output typed to feed a KSampler directly. WIDTH/HEIGHT/BATCH_SIZE go to your Empty Latent. The two sets of steps/CFG go to your two samplers. SCALE feeds your upscale node. Pass_2_denoise is the denoise on your second sampler.
The inputs that matter for a beginner:
Aspect_Ratio- a big dropdown of 30 presets grouped by model family (SD 512, XL 1024, SVD, etc.), so you pick "1:1 XL 1024x1024" instead of typing dimensions. Pair it withrotation(landscape/portrait) to flip the preset without doing the math.Pass_1_steps/Pass_2_stepsandPass_1_CFG/Pass_2_CFG- your two passes. The defaults (25 steps, CFG 6) are reasonable for SDXL.Pass_2_denoise(default 0.5) - the single most important hires-fix number. Too high and the upscale hallucinates new content; 0.4–0.55 adds detail without redrawing the image.scale_factor(default 1.5) - how much the upscale multiplies your base resolution.
A note on the sampler/scheduler choices: this node exposes the full stock list, but the right pick depends on your model. DPM++ 2M Karras is still fine for SD 1.5 and SDXL, but if you're on a flow-matching model (Flux, Z-Image), Karras and exponential schedules actively hurt - use a balanced scheduler like beta or simple there. This node won't stop you picking a bad combo; it just routes whatever you choose.
Installing it
It's part of ComfyUI_Fill-Nodes. In ComfyUI Manager, search Fill-Nodes, install, restart. Or clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI_Fill-Nodes
and restart. No model downloads for this node - it's pure parameter plumbing, so nothing to fetch.
Honest take
It's a taste thing. If you like consolidating your settings and reuse the same two-pass skeleton constantly, it's a clean way to work. If your graphs are small, it's an extra node that adds indirection - you now have to trace a wire to see what your step count actually is. And it's opinionated toward a specific two-pass shape; if your workflow isn't generate-then-upscale, most of the outputs go unused. Reach for it when the hires-fix boilerplate is genuinely annoying you, not before.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| Aspect_Ratio | COMBO | 1:1___XL 1024x1024 | 30 options: 1:1___SD 512x512, 4:3___SD 682x512, 3:2___SD 768x512, 16:9__SD 910x512, 1:85:1 SD 952x512, 2:1___SD 1024x512, +24 |
| rotation | COMBO | 2 options: landscape, portrait | |
| batchopt | INT | 11–10000 | — |
| Pass_1_stepsopt | INT | 251–10000 | — |
| Pass_2_stepsopt | INT | 251–10000 | — |
| Pass_1_CFGopt | FLOAT | 6.0-10–100 | — |
| Pass_2_CFGopt | FLOAT | 6.0-10–100 | — |
| Pass_2_denoiseopt | FLOAT | 0.500-10–100 | — |
| scale_factoropt | FLOAT | 1.51–10 | — |
| sampleropt | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| scheduleropt | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 |
Outputs (11)
| Name | Type | Description |
|---|---|---|
| WIDTH | INT | — |
| HEIGHT | INT | — |
| BATCH_SIZE | INT | — |
| Pass_1_steps | INT | — |
| Pass_2_steps | INT | — |
| Pass_1_CFG | FLOAT | — |
| Pass_2_CFG | FLOAT | — |
| Pass_2_denoise | FLOAT | — |
| SCALE | FLOAT | — |
| SAMPLER | euler,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 | — |
| SCHEDULER | simple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimal | — |