507 Commits
Author SHA1 Message Date
Dariusz L 8ae6efcc82 Update pyproject.toml v1.0.3 2026-07-12 23:42:34 +02:00
Dariusz L 44153d9d7a Make download cancellation workflow-scoped and prevent stale progress from reviving cancelled downloads
- Introduce workflow-scoped download state keys so active downloads and progress are isolated per workflow tab/route.
- Add a transient 'cancelling' status path and a finalizeCancelledDownloadFrontend helper to avoid flicker and prevent stale progress responses from recreating completed/cancelled UI state.
- Guard active-download lookups by current workflow scope to reduce cross-workflow interference.
2026-07-12 23:28:42 +02:00
Dariusz L 6ed34b6a92 Preserve active download local matches and clean up cancelled downloads
Keep path-specific Local Matches for active downloads during refreshes,
URN search, and missing-model display so late hash-only lookups do not
overwrite them.

Remove cancelled download matches from missing-model UI and cached
analysis when a download is cancelled.
2026-07-12 22:04:53 +02:00
Dariusz L 64fdb7bd87 Import build_search_result in civitai source module 2026-07-12 21:20:46 +02:00
Dariusz L 572b948b92 Add Tripo and Hunyuan3D base models and refresh HuggingFace author index cache 2026-07-12 21:10:12 +02:00
Dariusz L 8cd3a2968b Use indented JSON when writing HuggingFace author index cache 2026-07-12 21:04:04 +02:00
Dariusz L 6451d9bcf4 Improve model path matching and refresh HuggingFace author index
core/path_templates.py: allow model alias tokens to match when suffixed
with a version string or plural form, reducing false negatives in
single-folder path resolution.

metadata/huggingface-author-index.json: update Comfy-Org index timestamp
and repository ordering.
2026-07-12 21:00:18 +02:00
Dariusz L 8baf3871d0 Update ComfyUIdownloads.yml 2026-07-07 18:49:15 +02:00
Dariusz L e0997ed9fd Refactor workflow dependency marker sizing to use fixed bounds and compact oversized nodes 2026-07-07 02:40:55 +02:00
Dariusz L 6f9aa9cc55 Improve Model Resolver dependency marker node compatibility and rendering
- Adopt ComfyUI's ComfyExtension/comfy_entrypoint API in __init__.py when
  available, falling back to legacy NODE_CLASS_MAPPINGS/DISPLAY_NAME_MAPPINGS
  on older runtimes so the node loads across ComfyUI versions.
- Hook into beforeRegisterNodeDef, loadedGraphNode, and afterConfigureGraph
  in web/resolver.js so marker nodes are patched during registration, graph
  load, and initial render.
- Teach model_resolver.js to recognise the marker node by every known class
  property shape, patch its type on creation, enforce a minimum size with
  setSize() when present, and dirty the canvas so changes are reflected.
2026-07-06 21:59:30 +02:00
Dariusz L c40cbafc00 Add Model Resolver Opener dependency marker node 2026-07-06 21:36:31 +02:00
Dariusz L f4a049eca9 feat(core, web): embed workflow model hash metadata and prefer hash-based matching 2026-07-06 18:09:31 +02:00
Dariusz L 5d5aa6ae76 Update pyproject.toml v1.0.2 2026-07-06 16:18:52 +02:00
Dariusz L 7962ab2050 Update publish.yml 2026-07-06 16:12:03 +02:00
Dariusz L 488f9512c8 Update pyproject.toml 2026-07-06 16:08:18 +02:00
Dariusz L 0cecfab2a0 Switch default log level from DEBUG to ERROR across backend, frontend, and options defaults 2026-07-06 16:05:50 +02:00
Dariusz L b27572d84f Suppress noisy no-op metadata build log when all models were skipped 2026-07-06 15:23:54 +02:00
Dariusz L 23c0f79444 Add paginated show-more behavior to metadata build history 2026-07-06 14:57:44 +02:00
Dariusz L 8f525044e8 feat(options): make metadata panels collapsible and add summary icons 2026-07-06 14:51:15 +02:00
Dariusz L 5a9e81cc70 refactor(options): use visibility-based transitions for metadata build panels and defer history rendering 2026-07-06 13:58:31 +02:00
Dariusz L f3c0024d46 Replace metadata build history select with custom action filter menu 2026-07-05 22:47:07 +02:00
Dariusz L 39943d5e17 Make metadata history filterable and full-length, and stabilize build progress UI 2026-07-05 22:25:01 +02:00
Dariusz L b9f364e3e4 Add Local Metadata Builder UI and backend API
This change introduces a complete Local Metadata Builder feature in the resolver
options panel. It allows users to scan local model files, create or update
.metadata.json sidecars, fill missing SHA256 hashes from safetensors headers or
file hashing, and review run history with cancel/error handling.

Changes include:
- backend API: /model_resolver/metadata-build/{capabilities,start,progress/{id},cancel}
- backend worker: core/metadata_builder.py with parallel metadata generation
- frontend section: Local Metadata Builder tab in Options
- frontend polling UI: progress, worker breakdown, history table, status/notifications
2026-07-05 21:52:57 +02:00
Dariusz L de6b7738e1 Reorganize options sidebar into Tools and System sections
Move Metadata Sizes into a dedicated Tools group and Maintenance into a System group to improve navigation clarity in the resolver options panel.
2026-07-05 20:59:14 +02:00
Dariusz L 85bbbef06d Add metadata size audit for model sidecar metadata 2026-07-05 18:03:29 +02:00
Dariusz L 6c1e940203 refactor(sources): centralize search result construction and shared helpers
Move MODEL_TITLE_MATCH_THRESHOLD to core/matcher.py.

Add shared helpers to core/type_utils.py:
- normalize_lora_manager_type
- normalize_model_file_info
- build_search_result

Refactor civarchive, civitai, lora_manager_archive, and huggingface
sources to use centralized helpers, removing duplicated inline dict
construction, type normalization, username extraction, and search
query wrappers.
2026-07-05 06:34:16 +02:00
Dariusz L e386930936 Improve base model matching and subfolder suggestion UX 2026-07-05 05:57:54 +02:00
Dariusz L f691af6387 annotate active downloads in local matches 2026-07-05 05:16:20 +02:00
Dariusz L 629bc791a6 feat: extract richer local metadata from safetensors headers, improve base-model inference, and preserve local data when remote lookups fail 2026-07-05 04:22:25 +02:00
Dariusz L a079733130 Extract SHA256 from safetensors header and track hash source 2026-07-05 03:00:07 +02:00
Dariusz L 3f54bd4979 Restrict file access to configured model roots and sanitize download filenames 2026-07-04 23:56:50 +02:00
Dariusz L 683eb6dfef Translate Polish workflow output and docstrings to English 2026-07-04 20:42:46 +02:00
Dariusz L 7d3c966a9e Update README.md 2026-07-04 20:26:19 +02:00
GitHub Action ce4fc1d5e7 Create or update Model Resolver downloads badge 2026-07-04 18:21:09 +00:00
Dariusz L ef63dbd564 Update ComfyUIdownloads.yml 2026-07-04 20:19:09 +02:00
Dariusz L c244eeec77 Delete badges/DOWNLOADS.md 2026-07-04 20:17:49 +02:00
GitHub Action a558cff2b8 Create Model Resolver badge 2026-07-04 18:10:02 +00:00
Dariusz L 9b177fdd20 chore(CI): update checkout versions and migrate publishing workflow to comfy-cli 2026-07-04 20:09:11 +02:00
Dariusz L cc8fdda32c chore: add pyproject metadata, CI workflows, and reorganize clone badge into badges/ v1.0.0 2026-07-04 19:59:03 +02:00
Dariusz L 03a284a34b Update README.md 2026-07-04 19:19:50 +02:00
Dariusz L 4d9b1e70d7 Update README.md 2026-07-04 19:12:32 +02:00
Dariusz L 8d4b8d879f docs(README): clarify Aria2 setup, path templates, and downloader settings 2026-07-04 19:09:41 +02:00
Dariusz L f75f6878a2 Add unet_gguf category support and bad-folder warnings 2026-07-04 18:24:44 +02:00
Dariusz L 724579a607 fix(civitai): recognize civitai.red URLs in parse_civitai_url
The URL parser previously required the hostname to contain "civitai.com",
so CivitAI download links using the "civitai.red" domain were treated as
non-CivitAI URLs and rejected.

This extracts the host check into _is_civitai_host() and accepts both
"civitai.com" and "civitai.red" base domains, so resolve/parse flows
handle all CivitAI download links correctly.
2026-07-04 18:05:30 +02:00
Dariusz L 44f539ce49 Refactor frontend apply path for auto-resolve and queue selections 2026-07-04 17:45:17 +02:00
Dariusz L 245bf79800 fix: deduplicate missing models by category+filename and expand per-node resolutions
Previously, identify_missing_models grouped missing entries only by filename,
which could merge unrelated models from different categories that happen to
share a filename. This change deduplicates by (category, filename) and tracks
all_node_refs with a reference_count so the frontend can preserve one
resolution per node reference instead of collapsing duplicates.

Frontend changes in resolve_download_methods.js iterate over all_node_refs,
and missing_browser_methods.js now shows '+ N refs' in the missing-model
label and clarifies the locate tooltip when multiple workflow references
share the same missing model.
2026-07-04 17:26:35 +02:00
Dariusz L d9dacc2016 refactor: centralize Model Resolver button activation with fallback click handling 2026-07-04 04:40:00 +02:00
Dariusz L b57412f5cd Switch Model Resolver shortcut to native ComfyUI commands/keybindings with dynamic tooltip and exclude non-model categories 2026-07-04 04:34:34 +02:00
Dariusz L 1e22b2ba73 refactor: centralize repeated route logic into shared helpers 2026-07-04 01:23:46 +02:00
Dariusz L 546784e68a refactor: simplify aria2 status route and remove wrapper functions
- Merge GET and POST aria2 status handlers into one route
- Remove redundant calculate_file_sha256 wrapper and use path_utils directly
- Remove redundant _normalize_archive_image, _normalize_filename, and _similarity wrappers
- Replace urllib with requests for remote JSON fetching in model_list
- Update metadata timestamps
2026-07-04 01:03:00 +02:00