Files
Moser9815andClaude Opus 5 60447700e7 Port live_preview and auto_retry from ComfyUI-Moser
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
2026-08-24 14:34:55 -04:00

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