WI Parameter (Combo)
Finally answer 'which sampler is best on my setup' without 40 manual queues
- param_stack_in
- param_stack
WI Parameter (Combo) is the dropdown-flavored parameter node in the Workflow Iterator pack, and it's the one people actually get excited about, because its default target is the classic nerd-snipe: the sampler dropdown on a KSampler. Comparing samplers by hand is a rite of passage - the community has been hand-rolling this exact grid for years, and the "there has to be a better way" posts keep coming (thread 1twjl1k, +96, where someone built a whole matrix node for precisely this). This node lets you run the comparison as a proper experiment instead of a memory test.
Mechanically it's identical to the other parameter nodes: you name it, point it at a node title and a widget name, and feed it comma-separated values. The pack's queue-time handler then rewrites that widget's value for each combination and queues a prompt per row. What's different is the type discipline - combo values are strings that get dropped straight into a dropdown widget, so they have to be valid option names, spelled exactly.
That's the single biggest beginner trap in the whole pack. euler_ancestral works; euler ancestral or Euler a will either not match a real sampler or land on something you didn't intend. The node can't know what options the target widget offers - it just writes the string. So the practical workflow is: open your KSampler, look at the actual dropdown entries, and copy them into values verbatim.
euler, euler_ancestral, dpmpp_2m, dpmpp_sde
Same inputs as its siblings: parameter_name (label for axes and filenames), target_node_title (default KSampler), target_widget_name (default sampler_name), enabled, and param_stack_in for chaining. Schedulers are the other obvious target - swap target_widget_name to scheduler and you're comparing normal, karras, exponential with zero re-wiring.
How to run it honestly
The temptation is to just let matrix mode loose and compare every sampler against every scheduler. Resist it - that's the road to a 90-render batch where you can't remember why you queued half of it. The cleaner pattern: one combo parameter (samplers), one WI Parameter (Int) for steps, and one seed held fixed, in linear mode. Fixed seed is non-negotiable for a fair sampler comparison - different seeds change the image so much they swamp the sampler signal. Then read the output with WI Grid Compositor, which lays it out as a labeled grid and saves you squinting at a wall of output thumbnails.
Install and caveats
Same story as every node in this pack - ComfyUI Manager, search "Workflow Iterator", or git clone https://github.com/jason-n-tran/comfyui-workflow-iterator into custom_nodes, restart. Dependency list is just Pillow>=9.0.0. It's a young project (v1.0.0, MIT) with zero community footprint yet - you're early, which means the README's warnings are your best documentation. The title-matching rule applies here too: target_node_title is matched case-insensitively as a substring against canvas titles, so a KSampler you renamed to "Main Sampler" needs that exact text, or the combo value silently never applies. Check the log for "Could not find node" before you burn a batch.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| parameter_name | STRING | sampler_name | — |
| values | STRING | euler, euler_ancestral, dpmpp_2m | — |
| target_node_title | STRING | KSampler | — |
| target_widget_name | STRING | sampler_name | — |
| enabled | BOOLEAN | true | — |
| param_stack_inopt | WI_PARAM_STACK | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| param_stack | WI_PARAM_STACK | — |