The Viewer depended on ComfyUI-Moser for two things the clean build no longer had: live sampler previews (POSTed to /api/comfy-live/frame) and the auto-retry toggle. Both now live here, so the Viewer needs exactly one pack installed. Viewer endpoints are unchanged. Auto-retry registers /api/rm-autoretry/* as canonical and keeps /api/moser-autoretry/* as an alias so no Viewer change is needed yet; both prefixes share state. Route registration is per-path so a co-installed ComfyUI-Moser owning the moser-* paths cannot prevent the rm-* ones from registering, and the live preview hook checks both _rm_patched and _moser_patched so the two never double-send. Dropped auto_retry runtime pip install of websocket-client: this venv is uv-managed and has no pip, so the fallback could never succeed and hid the real cause. Declared in requirements.txt instead. MOSER_* environment variables still work as a fallback for the live preview settings. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012uM7Ru1JYn48n6c5Rzwd99
10 lines
594 B
Plaintext
10 lines
594 B
Plaintext
# Third-party dependencies not supplied by ComfyUI core.
|
|
# Deliberately omits torch/torchvision/numpy/Pillow/requests/tqdm/aiohttp: those come from
|
|
# ComfyUI's own requirements, and declaring torch here risks a resolver pulling a CPU-only
|
|
# build over the CUDA one.
|
|
|
|
opencv-python # nodes/face_detailer.py, nodes/multi_detect_crop.py
|
|
ultralytics # YOLO detection in face_detailer.py / multi_detect_crop.py (lazy import)
|
|
imageio-ffmpeg # nodes/video_combine.py encoder discovery (lazy import)
|
|
websocket-client # nodes/auto_retry.py listens to ComfyUI's /ws for execution_error
|