Nodes/MD Nodes/MD: PingPong Lite (Classic)
ComfyUI Node

MD: PingPong Lite (Classic)

The full-control sampler for hyper-detailed final renders

By MDMAchine·Created about a year ago·Updated 3 months ago· 15
MD: PingPong Lite (Classic)
  • scheduler
  • SAMPLER
noise_behaviorDefault (Raw)
step_random_modeblock
step_size4
seed0
first_ancestral_step0
last_ancestral_step-1
start_sigma_index0
end_sigma_index-1
enable_clamp_outputfalse
blend_modelerp
enable_restartsfalse
ancestral_strength1.00
noise_coherence0.00
debug_mode0
enable_profilingfalse
restart_modebalanced
yaml_settings_str

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), and blend_mode decides how the ping/pong paths combine - lerp and slerp are the sane defaults, with cosine, cubic, add, or just outputting one side (a_only/b_only) if you want to peek at a single path.
  • Restarts ("boomerang"). enable_restarts briefly 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 on block at 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.

CategoryMD_Nodes/Samplers

Inputs (18)

NameTypeDefaultDescription
noise_behaviorCOMBODefault (Raw)NOISE BEHAVIOR
step_random_modeCOMBOblockSTEP RANDOMIZATION
step_sizeINT4STEP SIZE
seedINT00–9007199254740991SEED
first_ancestral_stepINT0FIRST STEP
last_ancestral_stepINT-1LAST STEP
start_sigma_indexINT0START IDX
end_sigma_indexINT-1END IDX
enable_clamp_outputBOOLEANfalseCLAMP
blend_modeCOMBOlerpBLEND
enable_restartsBOOLEANfalseRESTARTS
schedulerSCHEDULERSCHEDULER
ancestral_strengthoptFLOAT1.00STRENGTH
noise_coherenceoptFLOAT0.00COHERENCE
debug_modeoptINT0DEBUG
enable_profilingoptBOOLEANfalsePROFILE
restart_modeoptCOMBObalancedRESTART MODE
yaml_settings_stroptSTRINGYAML

Outputs (1)

NameTypeDescription
SAMPLERSAMPLER