🛠AGSoft KSampler options_single
A 20-seed sweep on one queue press
- options
- current_str
- status
🛠AGSoft KSampler options_single is the batch-test node: a little grid of rows where each row changes one sampling parameter, and the whole list runs through 🧩AGSoft KSampler as either one long queue run or one item per run.
Why bother? Because "which sampler/scheduler/steps is best on this new model" is a real question with a real answer, and it's not the one you had for the last architecture you downloaded. The most systematic community work on this is a 62-sampler × 16-scheduler sweep on Z-Image Turbo, roughly a thousand images, which concluded that on flow-matching models Karras and exponential schedules are the ones that fail rather than the ones that save you. You can copy someone else's table, or you can spend one evening generating your own. This node is the second option.
How it works
Each enabled row declares a param and a value, and the node coerces the value by type before handing it over: seed and steps become ints, cfg becomes a float, sampler and scheduler are validated against ComfyUI's own lists (a typo raises Unknown sampler 'xyz' at queue time, which is a feature), and sigmas is parsed from a comma- or newline-separated string and needs at least two numbers. Rows with an empty value are skipped, and the enabled toggle drops a row without deleting it.
Then output_mode decides the shape of what comes out:
- series (the default) - the node emits a list of override dicts. AGSoft KSampler sees a list and loops internally, decoding each item and concatenating the images into one batch. One press of Queue, twenty images.
- current - it emits a single override dict, picked by a server-side counter, and you run it repeatedly. That's one item per queue run, so you need Auto-Queue or you'll be clicking.
modechooses increment or fixed-by-index,loopwraps back to the first item at the end, and the node forces itself to re-evaluate every run in increment mode so the counter actually advances.
Your rows are also the caption source. current_str gives you one line per item in the form steps = 12, cfg = 4.5, sampler = euler - wire it into Contact Sheet and the grid tells you which image is which. status is a short human line like series: 6 items / one queue, handy on a Show Any node.
The inputs you'll actually set
output_mode, then per row: param_N, value_N, enabled_N. The rest - active_rows, index, mode, loop - are the series control widgets; active_rows is driven by the node's + Add / – Remove buttons and _sampler_list / _scheduler_list are hidden templates that exist so the UI can populate its dropdowns. You never type in those two.
Thirty rows max, and outputs are options, current_str, status.
Wire-up
options → AGSoft KSampler's options input. Everything else stays as it was; the KSampler's own widgets are the baseline and the overrides win.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Art-xmaster/comfyui-AGSoft
# restart ComfyUI
Or Manager → search comfyui-AGSoft. No extra downloads for this node.
Where people get burned
Comparing seeds instead of settings. If the point is "which sampler suits this model," the seed has to be constant across the sweep - otherwise you're comparing noise, not samplers. The KSampler's seed widget is the one in charge, so set its post-generate control to fixed (or switch the global widget control mode from After to Before, so the number you see is the number that ran). This is the single most common way a careful sweep turns into noise.
Running 30 items in series and then wanting to stop. Series mode is one queue run; the only exit is the interrupt. Start with 6 rows, look at the contact sheet, then expand. current mode exists precisely for poking at a series one image at a time.
A long series that restarts at item 1. In current mode the position is keyed to the row signature, so editing any value resets the counter to the start. That's usually what you want; it just looks like a bug the first time.
Expecting the KSampler's output labels to be per-item. The KSampler's options output is the last item only - if you want the whole series logged, take current_str from this node.
Inputs (97)
| Name | Type | Default | Description |
|---|---|---|---|
| output_mode | COMBO | series | series: whole series in ONE queue run (KSampler loops, images batched). current: one item per queue run (server counter, use Auto-Queue). --- series: вся серия за ОДИН прогон (KSampler крутит сам, картинки батчем). current: один элемент за прогон (серверный счётчик, нужен Auto-Queue). |
| active_rows | INT | 21–30 | Internal: row count, controlled by + Add / – Remove (widget hidden). --- Служебный: число строк, управляется + Add / – Remove (виджет скрыт). |
| index | INT | 11–30 | current mode: start/manual position (1-based). Ignored in series. --- current: стартовая/ручная позиция (с 1). В series игнорируется. |
| mode | COMBO | current mode only: increment advances per queue run; fixed uses index. --- Только current: increment двигает элемент каждый прогон; fixed использует index. | |
| loop | BOOLEAN | true | current mode: wrap to first item at series end. --- current: переходить к первому элементу в конце серии. |
| _sampler_list | COMBO | Internal template: sampler list for UI dropdowns (hidden). --- Служебный шаблон: список сэмплеров для dropdown в UI (скрыт). | |
| _scheduler_list | COMBO | Internal template: scheduler list for UI dropdowns (hidden). --- Служебный шаблон: список планировщиков для dropdown в UI (скрыт). | |
| enabled_1 | BOOLEAN | true | Row 1: enable/disable this test value. Строка 1: включить/выключить это тестовое значение. |
| param_1 | COMBO | steps | Row 1: which sampling parameter this value tests. Строка 1: какой параметр семплинга тестирует значение. |
| value_1 | STRING | Row 1: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 1: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_2 | BOOLEAN | true | Row 2: enable/disable this test value. Строка 2: включить/выключить это тестовое значение. |
| param_2 | COMBO | steps | Row 2: which sampling parameter this value tests. Строка 2: какой параметр семплинга тестирует значение. |
| value_2 | STRING | Row 2: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 2: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_3 | BOOLEAN | true | Row 3: enable/disable this test value. Строка 3: включить/выключить это тестовое значение. |
| param_3 | COMBO | steps | Row 3: which sampling parameter this value tests. Строка 3: какой параметр семплинга тестирует значение. |
| value_3 | STRING | Row 3: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 3: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_4 | BOOLEAN | true | Row 4: enable/disable this test value. Строка 4: включить/выключить это тестовое значение. |
| param_4 | COMBO | steps | Row 4: which sampling parameter this value tests. Строка 4: какой параметр семплинга тестирует значение. |
| value_4 | STRING | Row 4: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 4: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_5 | BOOLEAN | true | Row 5: enable/disable this test value. Строка 5: включить/выключить это тестовое значение. |
| param_5 | COMBO | steps | Row 5: which sampling parameter this value tests. Строка 5: какой параметр семплинга тестирует значение. |
| value_5 | STRING | Row 5: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 5: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_6 | BOOLEAN | true | Row 6: enable/disable this test value. Строка 6: включить/выключить это тестовое значение. |
| param_6 | COMBO | steps | Row 6: which sampling parameter this value tests. Строка 6: какой параметр семплинга тестирует значение. |
| value_6 | STRING | Row 6: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 6: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_7 | BOOLEAN | true | Row 7: enable/disable this test value. Строка 7: включить/выключить это тестовое значение. |
| param_7 | COMBO | steps | Row 7: which sampling parameter this value tests. Строка 7: какой параметр семплинга тестирует значение. |
| value_7 | STRING | Row 7: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 7: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_8 | BOOLEAN | true | Row 8: enable/disable this test value. Строка 8: включить/выключить это тестовое значение. |
| param_8 | COMBO | steps | Row 8: which sampling parameter this value tests. Строка 8: какой параметр семплинга тестирует значение. |
| value_8 | STRING | Row 8: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 8: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_9 | BOOLEAN | true | Row 9: enable/disable this test value. Строка 9: включить/выключить это тестовое значение. |
| param_9 | COMBO | steps | Row 9: which sampling parameter this value tests. Строка 9: какой параметр семплинга тестирует значение. |
| value_9 | STRING | Row 9: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 9: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_10 | BOOLEAN | true | Row 10: enable/disable this test value. Строка 10: включить/выключить это тестовое значение. |
| param_10 | COMBO | steps | Row 10: which sampling parameter this value tests. Строка 10: какой параметр семплинга тестирует значение. |
| value_10 | STRING | Row 10: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 10: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_11 | BOOLEAN | true | Row 11: enable/disable this test value. Строка 11: включить/выключить это тестовое значение. |
| param_11 | COMBO | steps | Row 11: which sampling parameter this value tests. Строка 11: какой параметр семплинга тестирует значение. |
| value_11 | STRING | Row 11: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 11: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_12 | BOOLEAN | true | Row 12: enable/disable this test value. Строка 12: включить/выключить это тестовое значение. |
| param_12 | COMBO | steps | Row 12: which sampling parameter this value tests. Строка 12: какой параметр семплинга тестирует значение. |
| value_12 | STRING | Row 12: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 12: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_13 | BOOLEAN | true | Row 13: enable/disable this test value. Строка 13: включить/выключить это тестовое значение. |
| param_13 | COMBO | steps | Row 13: which sampling parameter this value tests. Строка 13: какой параметр семплинга тестирует значение. |
| value_13 | STRING | Row 13: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 13: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_14 | BOOLEAN | true | Row 14: enable/disable this test value. Строка 14: включить/выключить это тестовое значение. |
| param_14 | COMBO | steps | Row 14: which sampling parameter this value tests. Строка 14: какой параметр семплинга тестирует значение. |
| value_14 | STRING | Row 14: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 14: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_15 | BOOLEAN | true | Row 15: enable/disable this test value. Строка 15: включить/выключить это тестовое значение. |
| param_15 | COMBO | steps | Row 15: which sampling parameter this value tests. Строка 15: какой параметр семплинга тестирует значение. |
| value_15 | STRING | Row 15: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 15: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_16 | BOOLEAN | true | Row 16: enable/disable this test value. Строка 16: включить/выключить это тестовое значение. |
| param_16 | COMBO | steps | Row 16: which sampling parameter this value tests. Строка 16: какой параметр семплинга тестирует значение. |
| value_16 | STRING | Row 16: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 16: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_17 | BOOLEAN | true | Row 17: enable/disable this test value. Строка 17: включить/выключить это тестовое значение. |
| param_17 | COMBO | steps | Row 17: which sampling parameter this value tests. Строка 17: какой параметр семплинга тестирует значение. |
| value_17 | STRING | Row 17: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 17: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_18 | BOOLEAN | true | Row 18: enable/disable this test value. Строка 18: включить/выключить это тестовое значение. |
| param_18 | COMBO | steps | Row 18: which sampling parameter this value tests. Строка 18: какой параметр семплинга тестирует значение. |
| value_18 | STRING | Row 18: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 18: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_19 | BOOLEAN | true | Row 19: enable/disable this test value. Строка 19: включить/выключить это тестовое значение. |
| param_19 | COMBO | steps | Row 19: which sampling parameter this value tests. Строка 19: какой параметр семплинга тестирует значение. |
| value_19 | STRING | Row 19: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 19: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_20 | BOOLEAN | true | Row 20: enable/disable this test value. Строка 20: включить/выключить это тестовое значение. |
| param_20 | COMBO | steps | Row 20: which sampling parameter this value tests. Строка 20: какой параметр семплинга тестирует значение. |
| value_20 | STRING | Row 20: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 20: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_21 | BOOLEAN | true | Row 21: enable/disable this test value. Строка 21: включить/выключить это тестовое значение. |
| param_21 | COMBO | steps | Row 21: which sampling parameter this value tests. Строка 21: какой параметр семплинга тестирует значение. |
| value_21 | STRING | Row 21: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 21: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_22 | BOOLEAN | true | Row 22: enable/disable this test value. Строка 22: включить/выключить это тестовое значение. |
| param_22 | COMBO | steps | Row 22: which sampling parameter this value tests. Строка 22: какой параметр семплинга тестирует значение. |
| value_22 | STRING | Row 22: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 22: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_23 | BOOLEAN | true | Row 23: enable/disable this test value. Строка 23: включить/выключить это тестовое значение. |
| param_23 | COMBO | steps | Row 23: which sampling parameter this value tests. Строка 23: какой параметр семплинга тестирует значение. |
| value_23 | STRING | Row 23: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 23: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_24 | BOOLEAN | true | Row 24: enable/disable this test value. Строка 24: включить/выключить это тестовое значение. |
| param_24 | COMBO | steps | Row 24: which sampling parameter this value tests. Строка 24: какой параметр семплинга тестирует значение. |
| value_24 | STRING | Row 24: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 24: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_25 | BOOLEAN | true | Row 25: enable/disable this test value. Строка 25: включить/выключить это тестовое значение. |
| param_25 | COMBO | steps | Row 25: which sampling parameter this value tests. Строка 25: какой параметр семплинга тестирует значение. |
| value_25 | STRING | Row 25: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 25: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_26 | BOOLEAN | true | Row 26: enable/disable this test value. Строка 26: включить/выключить это тестовое значение. |
| param_26 | COMBO | steps | Row 26: which sampling parameter this value tests. Строка 26: какой параметр семплинга тестирует значение. |
| value_26 | STRING | Row 26: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 26: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_27 | BOOLEAN | true | Row 27: enable/disable this test value. Строка 27: включить/выключить это тестовое значение. |
| param_27 | COMBO | steps | Row 27: which sampling parameter this value tests. Строка 27: какой параметр семплинга тестирует значение. |
| value_27 | STRING | Row 27: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 27: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_28 | BOOLEAN | true | Row 28: enable/disable this test value. Строка 28: включить/выключить это тестовое значение. |
| param_28 | COMBO | steps | Row 28: which sampling parameter this value tests. Строка 28: какой параметр семплинга тестирует значение. |
| value_28 | STRING | Row 28: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 28: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_29 | BOOLEAN | true | Row 29: enable/disable this test value. Строка 29: включить/выключить это тестовое значение. |
| param_29 | COMBO | steps | Row 29: which sampling parameter this value tests. Строка 29: какой параметр семплинга тестирует значение. |
| value_29 | STRING | Row 29: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 29: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. | |
| enabled_30 | BOOLEAN | true | Row 30: enable/disable this test value. Строка 30: включить/выключить это тестовое значение. |
| param_30 | COMBO | steps | Row 30: which sampling parameter this value tests. Строка 30: какой параметр семплинга тестирует значение. |
| value_30 | STRING | Row 30: test value (number, sampler/scheduler name or sigmas list). Edited by the UI. Строка 30: тестовое значение (число, имя sampler/scheduler или список sigmas). Редактируется через UI. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| options | KSAMPLER_OPTIONS | Override dict (current) or list of override dicts (series) for AGSoft KSampler. Словарь переопределений (current) или список словарей (series) для AGSoft KSampler. |
| current_str | STRING | Current test value(s) as 'param = value' (one line per series item). Текущее значение(я) в виде 'param = value' (по строке на элемент серии). |
| status | STRING | Progress status. Статус прогресса. |