New styles following roles_style_format.md: digital_steampunk, plus
3d_woodcarving, 3d_balloon, 3d_knitted, 3d_sandsculpture, 3d_gummy,
3d_chrome, illustration_blueprint, illustration_tattoo,
illustration_mosaic, illustration_neonsign. Each carries the verbatim
output-contract boilerplate, a family-correct preserve/discard section,
named failure modes with a mutual-distinction guard against its nearest
sibling, banned tokens, and a fold-avoids line. Role count 111 -> 122.
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.
The 1.0.1 release tag (7578cdb) runs 'comfy --yes env'; current comfy-cli
removed --yes, so publish failed with 'No such option: --yes'. The v1 ref
(0eb6cd7) uses 'comfy --skip-prompt --no-enable-telemetry env' and works.
Pin to that commit.
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.