Nodes/Workflow Iterator/WI Parameter (Combo)
ComfyUI Node

WI Parameter (Combo)

Finally answer 'which sampler is best on my setup' without 40 manual queues

By jason-n-tran·Created 5 months ago·Updated 5 months ago· 2
WI Parameter (Combo)
  • param_stack_in
  • param_stack
parameter_namesampler_name
valueseuler, euler_ancestral, dpmpp_2m
target_node_titleKSampler
target_widget_namesampler_name
enabledtrue

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.

CategoryWorkflow Iterator/Parameters

Inputs (6)

NameTypeDefaultDescription
parameter_nameSTRINGsampler_name
valuesSTRINGeuler, euler_ancestral, dpmpp_2m
target_node_titleSTRINGKSampler
target_widget_nameSTRINGsampler_name
enabledBOOLEANtrue
param_stack_inoptWI_PARAM_STACK

Outputs (1)

NameTypeDescription
param_stackWI_PARAM_STACK