🔧 Sampler Debug (Boyo)
See What Sampler Object Is Actually Flowing Through Your Graph
- sampler
- sampler
Ever load a workflow that someone posted, get it running, and realize you have no idea what sampler object is actually sitting on the wire? KSamplerSelect gives you a stock sampler, sure - but modern packs like RES4LYF hand you custom sampler objects, and some meta-nodes wrap them in their own classes. When your render comes out weird and you can't tell whether you're even running the sampler you think you are, that's exactly the moment to grab BoyoDebugSampler.
It's the simplest node in the Boyonodes pack: one SAMPLER in, the same SAMPLER out, unchanged. In between it dumps everything it can learn about that object to the ComfyUI console - the Python type, the full list of its attributes (everything in dir() that isn't a dunder), its __dict__, and then a probe of common attribute names like sampler_function, sample, func, and call. You wire it in between whatever produces your sampler and whatever consumes it, run once, and read the terminal.
============================================================
BOYO SAMPLER DEBUG
============================================================
Type : <class 'comfy.samplers.KSAMPLER'>
Dir : ['__call__', 'inner_model', 'model', ...]
__dict__ : {...}
.sampler_function : NOT FOUND
.sample : <bound method KSampler.sample of ...>
============================================================
That output is the whole point: you get the actual class name and a map of the object's internals, which is how you learn that "KSamplerSelect" isn't always handing you what you assumed. Because the node is a pure passthrough, you can leave it in the graph while you debug and remove it when you're done - it has no side effect beyond the print and a tiny bit of console spam. Nothing changes about your generation.
The inputs couldn't be simpler: just sampler, type SAMPLER. The output is sampler, the identical object, ready to plug into SamplerCustomAdvanced, KSamplerSelect, or another meta-sampler. There are no options to mis-set because there are no options.
Installing it
This is the Boyonodes pack, a big kitchen-sink repo that covers audio/TTS, video, LoRA tooling, and semantic image editing. Install it once and you get all seven families at once. In ComfyUI Manager, search for Boyonodes and hit install; or clone it manually:
cd ComfyUI/custom_nodes
git clone https://github.com/DragonDiffusionbyBoyo/Boyonodes
Restart ComfyUI. The debug nodes need nothing extra - they're just torch and print(). The pack's requirements.txt is long, but most of it (chatterbox-tts, funasr, seed-vc) serves the audio corners; you don't need any of it for the debug/experimental/text nodes.
Gotchas
- The output lands in the console, not the UI. If you're on Windows you'll be scrolling a terminal window; there's no on-canvas panel. Run a single step so you can actually find the print.
- It's a passthrough, so if you forget it's in the graph it'll just keep printing every run. Harmless, but noisy.
- The one genuine failure mode: if the whole pack never appears in your node list after install, it's usually one of the heavier audio/video modules failing to import and taking the entire
__init__.pydown with it - check the first traceback in the console, pip-install whatever it names, restart.
For a five-minute sanity check on "am I actually running the sampler I selected," there's no cheaper tool in the pack.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| sampler | SAMPLER | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| sampler | SAMPLER | — |