Commit Graph
318 Commits
Author SHA1 Message Date
DemonGatanjieuandClaude Opus 5.5 c8689d56e4 fix: offline scans stay offline, workshop snap dock, 400 on malformed requests
From an outside audit (same change as 32a3719 on feature/audio-engines):
- 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>
2026-09-29 15:44:04 +08:00
DemonGatanjieuandClaude Opus 5.5 3ba16e874c fix(notebooks): make UNet notes runnable and list unlabeled models
Sending a Prompt Note with a UNet main model chained its LoRAs through
LoraLoader, whose clip input nothing could feed. UNet LoRAs now use
LoraLoaderModelOnly and the editor says to connect a text encoder.

Models without a baseModel in their metadata matched no base model, so
they never appeared; base_models now reports them and
compatible_models serves them for "__unlabeled__". Both routes share
one walker and run it off the event loop.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 17:57:47 +08:00
DemonGatanjieu 4e8603b4cc fix(materials): stop apply-mode card text from overlapping
The grid used one fixed row height, so the extra apply button squeezed the
badges, date and node types on top of each other. Cards in apply mode now get
a taller row (the list is marked is-apply-mode when it renders), the apply
button sits at the bottom, and only the tag row may be clipped when space
runs out. The normal row is a little taller so a tag row fits as well.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W411Z69FC3em9CzpeQEub5
(cherry picked from commit 9e761d0705)
2026-09-26 19:32:04 +00:00
DemonGatanjieu e1ac84f6d8 fix(materials): one apply button per card, without a doubled icon
In apply mode each card rendered a second apply button (a clone meant for
the list layout's hover actions) that showed as an extra row in the grid,
and both labels prefixed another icon to a locale string that already has
one. Cards now render a single button whose text comes straight from the
locale (textContent), in grid and list layouts alike.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W411Z69FC3em9CzpeQEub5
(cherry picked from commit 01fc925bd6)
2026-09-26 19:32:03 +00:00
Claude af3bb60981 fix(perf): stop a :has() rule from slowing canvas dragging (v1.57.2)
`body:has(#…-modal[style*="display: flex"]) #…-tooltip-bubble` made the
browser re-check the whole page on every inline-style change anywhere.
ComfyUI moves every DOM widget (text boxes) on each pan/zoom frame, so every
frame paid for it, with the browser closed too, and much more with plugins
that add DOM per widget (ComfyUI Prompt Assistant).

Measured in ComfyUI (frontend 1.53.6, Chromium) panning a 300-node
workflow for 120 frames, style recalculation in total:
- no plugins 60 ms; AMB 690 ms -> 63 ms
- AMB + Prompt Assistant 2300 ms (~19 ms/frame) -> 86 ms (PA alone 80 ms)

The rule was redundant: both popups hide the tooltip when they open and
showSharedTooltip refuses while either is open (checked in the browser).
Cache-busting versions bumped so browsers load the new stylesheet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012RMuwbsWZHnx2eCWpxYqAB
2026-09-26 19:20:03 +00:00
DemonGatanjieuandClaude Opus 5.5 eabff31c1c fix(ui): show the version in the update guide instead of the sidebar footer
The footer version sat right under the tool dock and invited misclicks.
The "!" update guide now opens with the current version and a
"Check for updates / switch version" button that closes the guide and
opens the version panel.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W411Z69FC3em9CzpeQEub5
2026-09-23 14:53:49 +00:00
DemonGatanjieuandClaude Opus 5.5 61b828c716 fix(ui): move the version number to the sidebar footer
In the header it pushed the dock and close buttons out of view when the
browser is docked or the display is scaled. It now sits under the tool
dock and hides with the collapsed sidebar.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W411Z69FC3em9CzpeQEub5
2026-09-23 14:28:16 +00:00
DemonGatanjieuandClaude Opus 5.5 e622850349 feat: version panel with manual update check, switching and rollback
- api/version_manager.py: installed version (local only), published
  releases on request (GitHub API, git tag fallback), switch to a
  published tag, return to the default branch (fast-forward only), undo
  the last switch; refuses to overwrite modified tracked files
- header version chip and "Version & updates" panel; nothing goes online
  until "Check for updates" is clicked; restart via ComfyUI Manager
- zh/en strings, styles, architecture notes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W411Z69FC3em9CzpeQEub5
2026-09-23 13:42:58 +00:00
DemonGatanjieuandClaude Opus 5.5 e0776891c8 feat(gallery): turn search terms into visible, removable search blocks
Splitting the query on spaces hid how it was read and made phrases like
"cyberpunk city" impossible to search.

- ui_search_chips.js: Enter or a comma (also "," / "、" inserted by an IME)
  turns the typed text into a block; blocks keep their spaces and match as a
  phrase; hash-like and numeric blocks are labelled; × removes a block,
  Backspace in an empty box removes the last one, one button clears all; text
  still being typed joins the search after a short pause; IME composition
  never commits a block
- gallery_images accepts repeated `term` params (q still works)

Verified: tests/test_image_search.py (phrase blocks vs split query, 107 Python
tests in total) and a jsdom walkthrough of blocks, IME commas, backspace,
remove, clear and the request parameters.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W411Z69FC3em9CzpeqEub5
2026-09-23 10:00:05 +00:00
DemonGatanjieuandClaude Opus 5.5 1476fafd8a feat(gallery): search output images by prompt, model, seed and model hash
- api/image_search.py reads only the PNG text chunks before IDAT (ComfyUI
  prompt/workflow, A1111 parameters), builds one small record per image and
  caches it by mtime; all space-separated terms must match
- hex terms of 8+ characters also match SHA256 values recorded in the
  workflow (extra.anomalous_hashes) and local model files with that hash, so
  renamed models are still found; A1111 "Model hash" text matches as text
- gallery_images accepts q; the search box above the gallery debounces input,
  shows the match count, keeps paging/infinite scroll and the detail viewer on
  the filtered list, and lets a newer query supersede one still loading

On the local output (774 PNG) the first search reads ~10 MB of text chunks;
later searches use the cache.

Verified: tests/test_image_search.py (prompt, seed, AND terms, A1111, file
names, recorded and local-index hashes, cache, chunk reader), full Python suite
(106), jsdom walkthrough of the gallery search box.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W411Z69FC3em9CzpeqEub5
2026-09-23 10:00:00 +00:00
DemonGatanjieu 09b06d1dc7 fix(entry): resolve floating trigger position, boundary clamping, and refresh flicker 2026-09-21 02:02:50 +08:00
DemonGatanjieu 04b2eeff8f fix(materials, doctor, scan): polymorphic material drag, third-party prompt nodes, model resolution, and scan wizard improvements 2026-09-19 20:22:45 +08:00
DemonGatanjieu 0d1e25ade3 fix(recipes): harmonize and synchronize model readiness between cards and detail view 2026-09-19 19:04:07 +08:00
DemonGatanjieu 6411e591ca fix(recipes): fix duplicate hint icon, make hint dismissible, and enhance readiness pill contrast 2026-09-19 18:31:35 +08:00
DemonGatanjieu 23cb24c6fd feat(recipes): add canvas drag affordance, hint strip, and empty state onboarding blueprint 2026-09-19 18:20:57 +08:00
DemonGatanjieu 3e6b6e09a5 feat(materials): add empty state onboarding blueprint and canvas drag affordance 2026-09-19 16:11:43 +08:00
DemonGatanjieu bea49f08d3 feat(ui): adopt low-profile callout capsule for spotlight tour in update guide 2026-09-19 15:59:23 +08:00
DemonGatanjieu 63769026fb feat(ui): elevate spotlight tour button visibility with accent styling and breathing glow 2026-09-19 15:52:31 +08:00
DemonGatanjieu 579a8be4d3 docs(tour): refine spotlight tour wording to be concise and instructional 2026-09-19 15:41:23 +08:00
DemonGatanjieu 950990a19c feat(tour): implement interactive spotlight mask tour for key buttons and studios 2026-09-19 15:33:28 +08:00
DemonGatanjieu e4372720f8 feat(locales): emphasize material drag-to-canvas and prompt workbench assembly in update guide 2026-09-19 15:11:37 +08:00
DemonGatanjieu 8cdff4833a feat(guide): rewrite update guide to highlight milestone features over origin/main 2026-09-19 14:59:13 +08:00
DemonGatanjieu fc62523193 fix(scan): correctly unpack backend model wrapper to display factual base-model feedback 2026-09-19 14:39:43 +08:00
DemonGatanjieu 3018c17fc7 fix(scan): remove blocking alert and route model scan feedback to progress panel 2026-09-19 14:21:08 +08:00
DemonGatanjieu 25f7a10ba3 fix(scan): simplify completion feedback to be purely factual without speculative instructions 2026-09-19 14:11:13 +08:00
DemonGatanjieu f460ae916f fix(ui): correct toast text to refer to card edit button 2026-09-19 14:07:52 +08:00
DemonGatanjieu 024d0a0abd fix(ui,scan): remove misleading clickScan text and provide transparent scan feedback for non-Civitai models 2026-09-19 13:45:11 +08:00
DemonGatanjieu 14014a952c fix(sources,scan): resolve scope toggle deadlock and streamline direct model scanning 2026-09-19 13:31:22 +08:00
DemonGatanjieu 96fba93e80 fix(grid): restore card hover action buttons and one-click canvas publishing 2026-09-19 13:16:52 +08:00
DemonGatanjieu af162ef953 fix(translator): streamline compact button layout, elastic textarea flex and 460px sidebar width 2026-09-19 03:48:29 +08:00
DemonGatanjieu 79646b6d94 fix(translator): add live canvas selection sync, multi-tab graph support and Chinese widget extraction 2026-09-19 03:43:13 +08:00
DemonGatanjieu 0553f920be feat(translator): auto-load selected node prompt on open and remove read node button 2026-09-19 03:33:30 +08:00
DemonGatanjieu 1bf4946260 fix(materials): restore browse mode and shortcut 2026-09-19 03:05:23 +08:00
DemonGatanjieu b5d534df6b fix(assistant): restore model picker rendering 2026-09-19 02:50:14 +08:00
DemonGatanjieu b6acd09a1f fix(recipes): decouple modal close button to top-right and replace details with floating dropdown 2026-09-19 02:35:47 +08:00
DemonGatanjieu acbf0e39ae fix(ui): restore gallery zoom and source filtering 2026-09-19 02:19:24 +08:00
DemonGatanjieu 66fa0ae4a8 fix(sources): ignore offline Civitai sentinel links 2026-09-18 21:01:09 +08:00
DemonGatanjieu 2c992c6ca5 feat(sources): align library scope and fold components 2026-09-18 17:17:21 +08:00
DemonGatanjieu 1b2013fe69 fix(sources): include foundation components and distinguish missing links 2026-09-18 11:04:33 +08:00
DemonGatanjieu e5cba40374 fix(notebooks): remove duplicated warning triangle in delete confirmation 2026-09-18 10:19:34 +08:00
DemonGatanjieu 24aea49f3b fix(notebooks): eliminate nested gallery scrollbars and replace details with floating more popover 2026-09-18 10:14:28 +08:00
DemonGatanjieu ad71dfdf71 fix(notebooks): adapt sidebar quick jump to docked mode with icon-only view and clean duplicate labels 2026-09-18 10:05:46 +08:00
DemonGatanjieu 44d2c824bc refactor(notebooks): optimize prompt notes UX with flat layout, sticky toolbar, quick jump navigation, and complete localization 2026-09-18 09:58:50 +08:00
DemonGatanjieu a63a615514 refactor(backend): split shared utility route families 2026-09-18 01:56:10 +08:00
DemonGatanjieu 7afa7518bc refactor(notebooks): split editor and canvas creation 2026-09-18 01:32:38 +08:00
DemonGatanjieu 2951d610c5 refactor(materials): split catalog cards and detail 2026-09-18 01:30:59 +08:00
DemonGatanjieu 3e3e26d2b2 refactor(gallery): split image stage and inspector 2026-09-18 01:28:18 +08:00
DemonGatanjieu 12875f9053 refactor(detail): separate editor and model selector 2026-09-18 01:24:35 +08:00
DemonGatanjieu e6217bb557 refactor(doctor): separate assistant picker and presets 2026-09-18 01:20:42 +08:00
DemonGatanjieu e75beafd70 refactor(recipes): separate cards and dialogs 2026-09-17 16:59:30 +08:00