One module, prompt_boxes.js, now decides which boxes of a live node take a
prompt and whether each is positive or negative. A prompt box is a
multiline STRING input by the node's ComfyUI definition, not a widget
whose name looks right; its role is its own name (positive / negative) or
the wiring down to a sampler's positive / negative input, not the title.
- Material drops, Prompt Studio, the translator and recipe capture use it;
their name regexes and fallbacks ("any string widget") are gone.
- Prompt Studio's role detection read graph.links[id], which is a Map in
current ComfyUI, so it never followed a link; it uses the module now.
- Material writes call onWidgetChanged(name, ...) as ComfyUI expects.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From an outside audit:
- The scan wizard's offline mode still sent the greyed-out rename and
overwrite options, and scraper.py fetched Civitai model pages and preview
media for models whose .info held a Civitai id. Offline now implies no
media and no model page; the folder scan and scan_all refuse a missing or
non-object body instead of defaulting to an online scan.
- The Prompt Workshop's snap dock referenced leftSearch from the source deck
module (ReferenceError on click); the deck now exposes focusSearch().
- translate, delete_model, delete_gallery_image and the image-material
routes answer malformed bodies with 400 instead of 500.
- Removed six unused imports in ui_doctor.js and 16 duplicate locale keys
per language (the later, effective entry is kept, so nothing changes on
screen).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>