Commit Graph
417 Commits
Author SHA1 Message Date
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 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 22f4cbcdee Add configurable download sound and improve cancellation retries 2026-10-05 19:49:23 +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 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 552ef683da Unify metadata workflow cache and category handling 2026-09-13 23:09:22 +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 9f537eaef0 Optimize CivitAI lookups by caching model data and skipping unnecessary version requests
Reuse model metadata across _find_civitai_file_in_model calls within a single search, avoid resolve_urn when modelVersions already contains usable file lists, and add tests for request-count behavior.
2026-09-10 02:24:24 +02:00
Dariusz L 63050819fe fix: match workflow hashes by model path instead of widget position 2026-09-10 02:12:36 +02:00
Dariusz L 248ccea2ec Save metadata on SHA256-mismatched downloads and verify reused hash behavior 2026-09-10 00:58:35 +02:00
Dariusz L 27ce316c67 perf: optimize hash cache building with in-memory dir entries and thread pool 2026-09-08 18:43:51 +02:00
Dariusz L 1eb3af32be Ignore stale embedded model metadata when a node exposes an explicit model widget 2026-08-25 03:07:41 +02:00
Dariusz L ddde0ac3ce feat: add CivitAI title-based search fallback for filename mismatches 2026-08-25 02:35:15 +02:00
Dariusz L 7627c61450 Fix CivitAI filename matching false positives for short generic prefixes 2026-08-25 02:17:22 +02:00
Dariusz L 9c24d92151 feat: support HuggingFace string identifiers, convrot variants, and mixed/scaled precision tokens
- Preserve HuggingFace textual model/version IDs in download metadata instead of coercing to integers
- Add convrot as a recognized model variant suffix
- Recognize numeric precision tokens with optional mixed/scaled suffixes (e.g. int8mixed, fp8scaled)
- Report partial batch search failures as informational notifications rather than errors
2026-08-25 02:05:45 +02:00
Dariusz L ddc5333bd2 refactor: unify model data contracts 2026-08-21 23:10:26 +02:00
Dariusz L 026ba97c5b Fix model download directory alias resolution 2026-08-11 14:58:13 +02:00
Dariusz L eeeb939b9a refactor shared metadata source payload 2026-08-09 00:16:50 +02:00
Dariusz L 593a85062a refactor provider status message contract 2026-08-09 00:14:20 +02:00
Dariusz L 551dae9df7 refactor: centralize progress ID generation 2026-08-08 22:33:41 +02:00
Dariusz L eb2e17f75b refactor: unify file size extraction details 2026-08-08 22:29:31 +02:00
Dariusz L a9d43f0358 refactor: unify project version fetching 2026-08-08 21:20:01 +02:00
Dariusz L 669bf02c76 refactor: centralize request SHA256 extraction 2026-08-08 19:07:47 +02:00
Dariusz L 4f7d59666a refactor: share workflow cache helpers 2026-08-08 19:05:14 +02:00
Dariusz L cfeb333546 refactor: centralize model cache invalidation 2026-08-08 19:03:16 +02:00
Dariusz L adc409404a refactor: unify optional JSON object payload parsing 2026-08-07 17:24:53 +02:00
Dariusz L 3755a1cc46 Use shared helper for credential routes 2026-08-07 16:04:20 +02:00
Dariusz L 9aad01fb63 Unify metadata SHA256 selection 2026-08-07 16:02:30 +02:00
Dariusz L 5bfa698282 Unify path identity fallbacks 2026-08-07 15:58:28 +02:00
Dariusz L 689d98aead refactor shared CivArchive size aliases 2026-08-07 04:14:46 +02:00
Dariusz L c168157727 refactor shared sidecar file identity 2026-08-07 04:08:49 +02:00
Dariusz L 6c97742244 refactor: share metadata count aggregation 2026-08-07 03:41:31 +02:00
Dariusz L 2d0576546f refactor: unify SHA256 extraction paths 2026-08-07 03:36:06 +02:00
Dariusz L f451d0df92 refactor: centralize preview download configuration 2026-08-07 03:01:13 +02:00
Dariusz L b95d48170c refactor: centralize partial file cleanup 2026-08-07 02:58:46 +02:00
Dariusz L 28af2d9e61 refactor: centralize CivitAI sidecar persistence 2026-08-07 02:54:02 +02:00
Dariusz L 431fb89dd2 refactor: centralize CivitAI enum fetching 2026-08-07 01:24:06 +02:00
Dariusz L e21672196d refactor: share model path root validation 2026-08-07 01:20:14 +02:00
Dariusz L 1bba061a29 refactor: centralize filename extraction callsites 2026-08-07 01:15:45 +02:00
Dariusz L 16fd31e6c7 refactor: centralize base model token collection 2026-08-07 00:30:41 +02:00
Dariusz L 3f294d38d3 refactor: unify remote size probing 2026-08-06 23:48:34 +02:00
Dariusz L 497e6d0658 refactor: unify LoRA archive query skeleton 2026-08-06 23:09:13 +02:00