410 Commits
Author SHA1 Message Date
Alexander Puzynia 498e9cd47e fix: create queue list with an id prop so setup no longer throws (#8) (#9)
ComfyUI's $el splits its selector on "." only and passes the rest to
document.createElement, so $el("div#queue-list.mr-queue-list") threw
InvalidCharacterError during setup and the Resolver sidebar tab was never
registered (#4, #8). Pass the id as a prop instead.

Add a test that every $el selector under web/ starts with a plain tag name.
2026-11-09 20:57:44 +01:00
Dariusz L 3237a46ab3 fix: prevent infinite recursion in rgthree Power Lora Loader adapter (#7)
- Remove node.widgets.splice monkey-patching in rgthree Power Lora Loader adapter to avoid infinite recursion with Vue 3 reactive array proxies on modern ComfyUI frontend.

- Rely on setDirtyCanvas to trigger inspection updates.

- Update test suite to verify no widgets.splice wrapping occurs and reactive proxies do not recurse.
2026-11-08 23:36:19 +01:00
Dariusz L f9d9fe65d6 fix: preserve user queue, selections, and detail state during workflow refreshes and prevent open reload flicker 2026-11-02 23:59:54 +01:00
Dariusz L b68bf311a4 feat: isolate multi-category transfer targets, add node locator, and expand image metadata formats 2026-11-02 22:59:15 +01:00
Dariusz L 721b4b6e78 fix: support multi-target downloads, graceful completed pause, and folder context lookup 2026-11-02 02:54:55 +01:00
Dariusz L 85165379e6 feat: sync search hash matches with local matches and auto-remove on row deletion 2026-11-02 01:27:02 +01:00
Dariusz L 9227ca2c45 fix: purge bad download snapshots from UI store and make corrupted file deletion idempotent 2026-11-01 17:41:52 +01:00
Dariusz L 3ece5d7bbf feat: add trash button and backend endpoint to delete corrupted .badsha downloads 2026-11-01 16:49:35 +01:00
Dariusz L d0d706f1cf feat: show live SHA-256 verification progress and surface mismatches in UI for aria2 downloads 2026-11-01 16:06:59 +01:00
Dariusz L 22f454b67f Support .txt workflow inspection and unify prompt comparison text field colors 2026-10-28 00:33:34 +01:00
Dariusz L 44621b2a17 Add node toolbox icon, context menu SVG icons, and toggle settings 2026-10-28 00:14:01 +01:00
Dariusz L e667c1cf93 Resolve upstream prompt text from string nodes and preserve linked prompts in metadata view 2026-10-27 22:03:57 +01:00
Dariusz L 0094c4ae84 Prevent non-model files from appearing as fuzzy match candidates
- Filter non-model files in scanner when folder_paths category extensions are empty
- Skip candidates with known non-model extensions in find_matches
- Add .engine, .patch, and .tflite to MODEL_EXTENSIONS
- Add unit tests for empty extension directory scanning and matcher candidate filtering
2026-10-27 21:11:11 +01:00
Dariusz L f7dfe3d8e5 Enhance download resilience with HTTP 416 recovery, stall detection, and network guard
- Recover completed .part files on HTTP 416 without deleting and redownloading
- Add stream stall detection and automatic reconnect for interrupted socket reads
- Implement persistent download state store and pause/resume lifecycle controls
- Add RateLimitCoordinator and ConnectivityGuard circuit breaker for requests
- Support proxy_url configuration and validate aria2 proxy settings
- Add unit tests for 416 recovery, stall reconnect, state store, and network guard
2026-10-26 19:26:50 +01:00
Dariusz L d9286b53d5 Retain interrupted download progress cards and add in-place retry action
- Keep failed or interrupted downloads in active downloads queue instead of dismissing immediately
- Present interrupted state with error tooltip, distinct status chip, and progress percentage
- Add in-place Retry download play action that resumes downloading from existing partial files
- Support dismissing interrupted downloads via cancel button
- Update CSS styling and unit tests for download action handlers and progress states
2026-10-26 16:42:56 +01:00
Dariusz L c62edd755c Improve aria2 and Python download robustness and retry handling
- Drain aria2 daemon stderr in a background thread to prevent Windows pipe buffer saturation and deadlock
- Promote critical disk write and permission errors from aria2 stderr to warnings
- Automatically refresh expired signed CDN URLs and resume downloads via aria2 continue=true
- Shield addUri against mid-registration cancellations to prevent orphaned downloads
- Retry Range requests directly on target URL when redirects drop the Range header in Python downloads
- Add auto-reconnect stream loop on transient socket disruptions with seamless partial-hash resumption
- Increase default download chunk size to 4MB for improved I/O throughput
- Parse HTTP 429 Retry-After headers for informative rate limit reporting
- Add unit test suite covering new aria2 and Python downloader resilience behaviors
2026-10-26 15:33:13 +01:00
Dariusz L 59bc928f8e Verify aria2 download SHA256 in background to avoid blocking at 100%
- Omit blocking checksum and check-integrity options from aria2 transfers to prevent long pauses at 100% on large models
- Run SHA-256 integrity verification asynchronously in a background thread via Python hashlib
- Update download progress and metadata sidecars upon background verification completion or mismatch
- Add unit tests for aria2 option omission and background verification
2026-10-26 14:27:44 +01:00
Dariusz L 55197621eb Support Smart Model Loader Nova [SML2] nodes (#6)
Add custom node adapter for ComfyUI_SmartModelLoader_Nova suite:
- Support 'Smart Model Loader [SML2]', 'CLIP Loader [SML2]', and 'LoRA Stack [SML2]'
- Parse and serialize canonical JSON configuration widget
- Extract diffusion models, VAE, CLIP text encoders, and LoRAs with strengths
- Enable model resolution by hash using per-resource SHA256 stored in the node
- Update model paths and SHA256 checksums in canonical JSON format during relinking
- Add unit and end-to-end integration tests
2026-10-25 18:55:24 +01:00
Dariusz L 3af7036551 Support resuming partial downloads and preserve temporary files on network errors 2026-10-25 18:05:29 +01:00
Dariusz L 794083b212 Support clipboard pasting in Metadata tab and resolve Civitai model filenames
- Add paste handler (Ctrl+V) in Metadata tab for workflow JSON, images, and Civitai image URLs/HTML
- Resolve authentic .safetensors filenames and local ComfyUI model paths via Civitai modelVersionId
- Normalize prompt <lora:...> tags to authentic filenames and enrich transfer/loaded chip labels
2026-10-16 22:57:04 +02:00
Dariusz L 7705cfc688 Make metadata inspector sections collapsible and normalize spacing 2026-10-16 18:26:07 +02:00
Dariusz L 1cdee997d1 Add multi-selection and copying for model chips in Loaded Models and Metadata
- Enable multi-selection on model chips with click, Ctrl+click (toggle/add), Shift+click (range from anchor), and Ctrl+Shift+click.
- Add keyboard shortcuts: Ctrl+C to copy selected model tokens to clipboard with feedback, Ctrl+A to select all visible chips, and Escape to clear selection.
- Add a subtle green outline and background highlight for selected chips (.is-selected).
- Add a 'Selected' mode button to the copy toolbar that dynamically appears when chips are selected and syncs token count and preview text.
- Stop click event propagation on chips and clean up prior selection instances during tab switching and re-rendering to prevent ghost listeners and bubbling conflicts between tabs.
- Add comprehensive Node test suite covering selection operations, keyboard shortcuts, DOM rendering, and tab transitions.
2026-10-16 15:54:46 +02:00
Dariusz L f5fbf5c542 Add searchable base model path mapping picker 2026-10-05 20:05:19 +02:00
Dariusz L 22f4cbcdee Add configurable download sound and improve cancellation retries 2026-10-05 19:49:23 +02:00
Dariusz L 53a97e8a5b Refresh metadata prompt previews when workflow text changes 2026-10-05 18:27:20 +02:00
Dariusz L b0b466cfc0 Add removable model search results and restore re-added links 2026-10-05 17:57:22 +02:00
Dariusz L a1935b89e4 Support linked models from Civitai image URLs with page fallback 2026-10-05 17:41:13 +02:00
Dariusz L 67b7e4a454 Add copy and resize controls to prompt previews 2026-10-05 16:11:05 +02:00
Dariusz L 3829f95960 Improve image metadata transfer guidance and prompt candidate ordering 2026-09-17 00:48:00 +02:00
Dariusz L 2d6394be5c Add image metadata prompt transfer and keep transfer nodes selectable 2026-09-17 00:05:43 +02:00
Dariusz L 4054be2a04 Prefer HuggingFace direct download URLs and preserve them through selection 2026-09-16 20:14:43 +02:00
Dariusz L dca6bc93fb Improve filename confidence and HuggingFace partial matching
Use order-insensitive token comparison in calculate_filename_confidence
so variant names with reordered tokens (e.g., int8_convrot vs convrot_int8)
score higher. Replace first-match partial matching in HuggingFace source with
best-match selection based on filename confidence, and surface confidence in
search results.
2026-09-16 19:55:09 +02:00
Dariusz L 9c9f2f5482 Show spinner while applying queued model 2026-09-14 15:59:44 +02:00
Dariusz L 5d6ac6c451 Show queue counts on toggle icon 2026-09-14 15:35:38 +02:00
Dariusz L ababf330bc Show metadata transfer apply progress 2026-09-14 15:24:52 +02:00
Dariusz L bbe9c5485e Prevent metadata transfer UI flicker 2026-09-14 01:42:01 +02:00
Dariusz L aa6c1fdc3d Add metadata transfer undo 2026-09-14 01:25:10 +02:00
Dariusz L 5b86cffe60 Improve metadata action button contrast 2026-09-14 00:58:13 +02:00
Dariusz L b5a2209854 Prevent model tooltip preview flicker 2026-09-14 00:42:48 +02:00
Dariusz L 346f93f1d6 Prevent workflow refresh flicker in model tabs 2026-09-14 00:25:07 +02:00
Dariusz L 1672460801 Refresh metadata targets with live workflow changes 2026-09-14 00:13:54 +02:00
Dariusz L 552ef683da Unify metadata workflow cache and category handling 2026-09-13 23:09:22 +02:00
Dariusz L 21245569c7 Fix transfer model actions for unselected nodes 2026-09-13 22:18:10 +02:00
Dariusz L d1812fa46f Add metadata workflow model transfer 2026-09-13 21:38:52 +02:00
Dariusz L 3a106e8d67 feat: add workflow metadata transfer preview 2026-09-13 16:10:58 +02:00
Dariusz L 18ef647c83 Extract Civitai metadata from image EXIF and improve subgraph widget resolution 2026-09-12 18:34:02 +02:00
Dariusz L 74e4b190a9 Add image metadata tab and backend workflow normalization 2026-09-12 16:50:40 +02:00
Dariusz L 50b157e72b Fix publish command invocation
Run node publishing directly through the Comfy CLI without the external environment wrapper, and update the workflow test to prevent regressions.
2026-09-12 13:58:11 +02:00
Dariusz L 62c04ab3ac fix(search): exclude CLIP and VAE from LoRA workflow fallback base model detection 2026-09-10 15:02:06 +02:00
Dariusz L cf5c73c2c8 Make batch source search sequential per source and independent across sources
Refactor searchMissingBatch to schedule each source independently via a
per-source promise chain (scheduleSource) instead of processing all targets
in a single serial loop. This keeps source ordering intact while allowing
different sources to advance in parallel across models.

Also update searchOnline to accept scheduleSource and emit a pending UI
state for queued searches, split pending/running source colors in CSS, and
add tests covering independent batch source progression plus error/cancel
survival.
2026-09-10 14:49:28 +02:00