MD: PingPong Lite (Classic)
The full-control sampler for hyper-detailed final renders
- scheduler
- SAMPLER
PingPong is the sampler family MD Nodes is most proud of, and Lite is the version that hands you every knob. The name isn't marketing fluff: instead of one latent trajectory marching from noise to image, the core runs the denoising in a bidirectional "ping/pong" scheme with feedback guidance, blending two paths together. The pitch is that it rescues hyper-detailed textures - fine micro-structures in images, complex harmonics in audio - that standard samplers smear into mush. The README credits blepping with the original PingPong/APG concepts, so this is a lineage with real community roots, reimplemented and extended here.
For the record, the pack itself treats the FBG variant as its primary production sampler for ACE-Step audio. Lite is the one to use when you want to understand and control what's happening rather than trust a preset.
How it works
It's a SAMPLER object node: connect a sigma schedule to scheduler, wire the output into a standard KSampler's sampler input, and the custom sampling core takes over. The two high-level ideas:
- Ancestral noise with blending. The sampler can add noise across steps (
first_ancestral_step/last_ancestral_step,ancestral_strength,noise_coherence), andblend_modedecides how the ping/pong paths combine -lerpandslerpare the sane defaults, withcosine,cubic,add, or just outputting one side (a_only/b_only) if you want to peek at a single path. - Restarts ("boomerang").
enable_restartsbriefly raises the noise level mid-generation so the model gets a second chance to fix detail mistakes. It costs render time but genuinely helps high-detail outputs;restart_mode(balanced / aggressive / conservative / detail_focus) tunes the behavior.
The inputs that matter
The full list is long, so here's what you actually touch:
noise_behavior- six presets (Default Raw, Dynamic, Smooth, Textured Grain, Soft, Custom) that map to ancestral noise generation. Start with Default.step_random_mode+step_size- how the seed evolves per step (off/block/reset/step) and the block size. Leave onblockat default 4 until you have a reason.enable_restarts+restart_mode- the boomerang; flip on for final high-res renders.start_sigma_index/end_sigma_index- slice the schedule to denoise only part of it (img2img territory).enable_clamp_output- clamp latent values; handy for keeping things stable on spicy models.
Optional inputs include ancestral_strength, noise_coherence, debug_mode, enable_profiling, and yaml_settings_str - that last one is where MD_YAML_Generator presets plug in, letting a file drive all these settings.
Where it fits
This is a finish sampler, not a draft sampler. For quick seed hunts, use something fast and boring; Lite is for the final pass where you're chasing micro-texture. It's also the educational option - every knob maps to a real sampling concept, and poking blend_mode teaches you more about ancestral sampling than any tutorial. Budget for restarts adding time.
Installing
It's in MD Nodes:
cd path/to/ComfyUI/custom_nodes
git clone https://github.com/MDMAchine/ComfyUI_MD_Nodes.git
cd ComfyUI_MD_Nodes && pip install -r requirements.txt
Or via ComfyUI Manager (search MD Nodes), then restart. The pack's requirements are broad - audio libs, matplotlib, pynvml - so expect a heavy install even if you're only here for the sampler. And yes, this pack's footprint in the community is small, so treat the wilder claims (FBG "resolving harmonics standard samplers turn to mush") as things to verify on your own data, not gospel.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| noise_behavior | COMBO | Default (Raw) | NOISE BEHAVIOR |
| step_random_mode | COMBO | block | STEP RANDOMIZATION |
| step_size | INT | 4 | STEP SIZE |
| seed | INT | 00–9007199254740991 | SEED |
| first_ancestral_step | INT | 0 | FIRST STEP |
| last_ancestral_step | INT | -1 | LAST STEP |
| start_sigma_index | INT | 0 | START IDX |
| end_sigma_index | INT | -1 | END IDX |
| enable_clamp_output | BOOLEAN | false | CLAMP |
| blend_mode | COMBO | lerp | BLEND |
| enable_restarts | BOOLEAN | false | RESTARTS |
| scheduler | SCHEDULER | SCHEDULER | |
| ancestral_strengthopt | FLOAT | 1.00 | STRENGTH |
| noise_coherenceopt | FLOAT | 0.00 | COHERENCE |
| debug_modeopt | INT | 0 | DEBUG |
| enable_profilingopt | BOOLEAN | false | PROFILE |
| restart_modeopt | COMBO | balanced | RESTART MODE |
| yaml_settings_stropt | STRING | YAML |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SAMPLER | SAMPLER | — |