Replace the custom mode/value/start/end/counter machinery with ComfyUI's
native per-widget control_after_generate on the role combo. Set it to
'increment wrap' to advance one role per generation (wrapping), or
'randomize' for a random role; 'fixed' holds the selection. The frontend
steps the combo, so the role visibly updates on the node, and no internal
index, seed, modulo, or NaN re-run logic is needed. Outputs unchanged:
system_prompt, role_name, resolved_index. Dual-API preserved; V3 passes
control_after_generate inside try/except TypeError for older comfy_api.
increment now steps to the next role alphabetically on its own (per-node
counter, wraps start..end) and random picks fresh each generation. Removes
the value INT and its control_after_generate, which made increment behave
randomly because the companion widget defaults to randomize. Mode now drives
selection directly; increment/random force a re-run via NaN fingerprint while
fixed still caches on file mtime. Per-node state keyed by hidden unique_id.
The node exposed two stepping INT inputs, index (increment mode) and seed
(random mode), each with its own auto-generated control_after_generate
widget. Only one was ever read per mode, so the other widget could advance
every run with no effect, which was confusing.
Collapse them into one `value` INT with a single control_after_generate:
increment mode uses it as the wrapping position, random mode uses it as the
seed. Updates pick_index/select/select_fingerprint signatures, both the V1
and V3 node schemas, tooltips, README, and tests. Also fixes a stale shipped-
role test that referenced the pre-photo_ prefix label.
The combo control_after_generate approach did not step on the user's
ComfyUI frontend: IS_CHANGED was stable so the node cached after the first
run and the Run button had no further effect. Restore the mode/index/seed/
start/end node whose seed/index change each generation (via
control_after_generate), forcing a re-run and cycling roles. Outputs
system_prompt, role_name, resolved_index. 25 tests pass.
Replace the custom mode/index/seed/start/end machinery with ComfyUI's native
per-widget control_after_generate on the role dropdown. The frontend steps the
combo itself: increment-wrap cycles roles 0->1->0 (verified ComfyUI_frontend
valueControl.ts), randomize picks one, fixed holds. Number-widget increment
clamps and never wraps, which is why the old INT index showed huge values and
never returned to 0; a combo wraps cleanly and shows role names.
Outputs reduced to system_prompt + role_name. Bump 1.0.0 -> 1.1.0. 15 tests pass.