5 Commits
Author SHA1 Message Date
Ben FinkleaandClaude Opus 4.5 0b6b9066b3 Fix multiple bugs: menu button visibility, source_hint handling, tempfile security
Bug fixes:
- Fix menu button not appearing: Use app.registerExtension() for proper
  ComfyUI initialization timing. The button now appears in the top bar
  next to the Manager button.
- Fix source_hint incorrectly saved as source_url: Pattern-matched hints
  like "Lightricks/LTX-Video" are not valid URLs and should not be used
  for update checks.
- Fix deprecated tempfile.mktemp(): Use secure mkstemp() instead to avoid
  race conditions.
- Add os import for file descriptor handling in update_scheduler.py

Test improvements:
- Update Playwright tests to hover over UI to reveal ComfyUI menu
- All 26 tests now passing (17 unit + 9 UI)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:46:47 -06:00
Ben FinkleaandClaude Opus 4.5 20aa859c8e Fix scheduler to read check interval from config each cycle
Previously the scheduler used the instance variable set at initialization,
ignoring config changes. Now it reads check_interval_hours from the config
database each cycle, allowing users to change the interval without restarting.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:24:24 -06:00
Ben FinkleaandClaude Opus 4.5 69197802b6 Add smart source detection with pattern matching and HuggingFace search
When CivitAI hash lookup fails, now tries:
1. Pattern matching for known model families (Gemma, CLIP, SAM, YOLO, etc.)
2. HuggingFace API search by filename

This identifies sources for models from HuggingFace, GitHub, and other
repositories that aren't on CivitAI.

Also fixed lookup getting stuck on hint results by properly filtering
out already-checked models regardless of source_type.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 13:46:48 -06:00
Ben FinkleaandClaude Opus 4.5 261d3c598c Add CivitAI hash lookup with progressive UI feedback
- Added lookup_civitai_by_hash() to query CivitAI API by file hash
- Modified lookup-sources endpoint to process one model at a time
- UI now shows real-time progress with found/not-found counts
- Added Stop button to cancel ongoing lookup
- Computes SHA256 hashes for models that don't have them

This allows identifying models that were downloaded outside of
tracked sources and finding their CivitAI pages automatically.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 13:26:51 -06:00
Ben FinkleaandClaude Opus 4.5 9256a1c87c Initial commit: ComfyUI-ModelSync extension
A custom node extension for ComfyUI that provides:
- Model version tracking for HuggingFace and CivitAI
- Automatic model updates with configurable scheduling
- Multi-GPU synchronization with VRAM-based filtering
- Metadata management with hash verification

Features:
- SQLite database for model metadata storage
- REST API endpoints for all operations
- Web UI panel integrated into ComfyUI menu
- Background scheduler for automatic update checks
- rsync-based sync to remote machines
- VRAM estimation for model filtering

Tests:
- 17 unit tests covering all library modules
- Playwright integration tests for UI verification

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 22:57:09 -06:00