Runtime44 Dynamic KSampler
Two samplers in one pass — a good idea that's still half-finished
- model
- positive
- negative
- latent_image
- LATENT
Runtime44 Dynamic KSampler is the pack's ambitious idea: use different samplers for different phases of the same diffusion run, instead of one sampler for all N steps. The pitch makes sense - people have been hand-rolling "euler for the first half, dpmpp_2m for the detail pass" chains for years, and a single node that switches mid-flight would be genuinely useful.
Here's the catch, and you should read this before installing: at the version that's actually shipping, it doesn't run. The README itself labels the node a work in progress, and the source backs that up. The sampler-switching inputs the code references - the switch step, the second sampler, the second scheduler - were never added to the node's exposed input list. The UI gives you only first_sampler and first_scheduler, and when ComfyUI executes the node it fails with a missing-argument error because those switching parameters have no defaults. The pack has been dormant since mid-2024, so this isn't a "wait a week for a fix" situation.
I'll tell you what it's supposed to do, because if upstream ever finishes it, it's a neat node. Then I'll tell you what to use instead.
The design
The code splits your total steps at a switch point. The first chunk runs common_ksampler with the first sampler/scheduler at full denoise. The second chunk runs with the second sampler/scheduler and disable_noise=True, so it's a continuation rather than a fresh generation. That's the classic "coarse then refine" pattern: a fast, exploratory sampler builds the composition, a higher-order sampler cleans up the detail.
What's actually exposed
The inputs that exist today: model, positive, negative, latent_image, seed, steps, cfg, first_sampler, first_scheduler, and denoise. Note the names - there's a latent_image, not latent, which matters if you're copying workflows. The output is a single LATENT, same as any sampler.
The honest verdict
Skip it for now. The functionality you're imagining already exists in stock ComfyUI: chain two regular KSamplers back to back - the first at full denoise for composition, the second at lower denoise to refine - and you've recreated the intended behavior with nodes that actually work. Or use a scheduler-switching setup if you're on the sampler-nerd path (the RES4LYF-style high-order solver packs are where the real sampler innovation is happening anyway).
Installing
Same as the rest of the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/runtime44/comfyui_r44_nodes
cd comfyui_r44_nodes
python -m pip install -r requirements.txt # or: uv pip install -r requirements.txt
Restart ComfyUI. The node shows up under "sampling". ComfyUI Manager users can search "Runtime44" instead. Just set your expectations: this is the one node in the pack I'd treat as a preview rather than a tool. Keep an eye on the repo - if the missing inputs ever get wired in, the idea itself is worth revisiting.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| latent_image | LATENT | — | |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 201–10000 | — |
| cfg | FLOAT | 8.00–100 | — |
| first_sampler | COMBO | 34 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +28 | |
| first_scheduler | COMBO | 9 options: normal, karras, exponential, sgm_uniform, simple, ddim_uniform, +3 | |
| denoise | FLOAT | 1.000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |