👁️ ComfyUI Watch Point

Dual preview system for ComfyUI workflows

Watch Point provides two simultaneous preview methods:

  • 🖥️ Monitor Preview: External Tkinter window on any monitor
  • 🖼️ Floating Preview: ComfyUI's built-in preview system

Features

Monitor Preview (Tkinter)

  • 🎯 Display on any connected monitor
  • 🔍 Zoom/Pan controls with mouse
  • ⌨️ Keyboard shortcuts
  • 💾 Save images directly from preview
  • 📋 Copy to clipboard
  • ⚙️ Customizable settings

Floating Preview (JavaScript)

  • 📌 Uses ComfyUI's native preview system
  • 🎨 Works with existing preview extensions
  • 🔄 Auto-updates during workflow execution

Installation

  1. Clone into your ComfyUI custom_nodes directory:
cd ComfyUI/custom_nodes
git clone https://github.com/yourusername/ComfyUI-WatchPoint.git
  1. Install dependencies (if needed):
pip install pillow screeninfo
  1. Restart ComfyUI

Usage

  1. Add Watch Point node to your workflow
  2. Connect image input from any node
  3. Enable/disable previews:
    • floating_preview: Enable ComfyUI's built-in preview
    • monitor_preview: Enable external monitor window
  4. Select target monitor from dropdown
  5. Connect output to next node (pass-through)

Example Workflow

[Load Image] → [Watch Point] → [Upscale] → [Save Image]
                     ↓
              (Dual Preview)

Controls (Monitor Preview)

Mouse

  • Scroll wheel: Zoom in/out
  • Left click + drag: Pan image
  • Right click: Context menu

Keyboard

  • R: Reset zoom and pan
  • T: Toggle toolbar
  • 1: Zoom 1:1 (100% actual size)
  • ESC: Close window

Toolbar Buttons

  • ↻ Reset: Reset zoom and pan
  • ⊕ Zoom In: Increase zoom level
  • ⊖ Zoom Out: Decrease zoom level
  • 1:1 (100%): View image at actual size
  • Window Size: Quick resize presets
  • ⛶ Fullscreen: Toggle fullscreen mode
  • ⚙ Settings: Open settings dialog

Settings

Access settings via the ⚙ Settings button in the toolbar.

Window Size

  • Fixed sizes: 800x600, 1024x768, 1280x720, 1920x1080
  • Dynamic sizes:
    • Half Vertical: Half screen width, full height
    • Half Horizontal: Full width, half screen height
    • Quarter: Half width, half height

Window Position

  • Set exact X, Y coordinates for window placement
  • Leave empty for automatic positioning
  • Example: X=0, Y=0 for top-left corner

Save Options

  • Default format: PNG, JPEG, or WebP
  • JPEG quality slider (10-100)

UI Options

  • Show/hide toolbar by default

All settings are saved to watchpoint_settings.json

Configuration File

Edit watchpoint_settings.json to customize defaults:

{
  "window_width": 800,
  "window_height": 600,
  "window_x": null,
  "window_y": null,
  "window_size_mode": "fixed",
  "show_toolbar": true,
  "save_format": "png",
  "jpeg_quality": 90
}

Settings Explained

  • window_x, window_y: Window position (null = auto)
  • window_size_mode: "fixed", "Half Vertical", "Half Horizontal", or "Quarter"
  • show_toolbar: Show toolbar on startup
  • save_format: Default save format ("png", "jpeg", "webp")
  • jpeg_quality: JPEG compression quality (10-100)

Use Cases

Dual Monitor Setup

Perfect for users with multiple monitors:

  • Work on ComfyUI on main monitor
  • View live preview on secondary monitor
  • No need to switch windows or tabs

Quality Control

Use 1:1 zoom to inspect:

  • Image quality at pixel level
  • Upscaling artifacts
  • Detail preservation

Live Monitoring

Watch your workflow progress in real-time:

  • Both previews update simultaneously
  • Choose the view that works best for your setup
  • Keep an eye on intermediate results

Requirements

  • Python 3.7+
  • tkinter (usually included with Python)
  • PIL/Pillow
  • screeninfo (optional, for multi-monitor detection)

Optional Dependencies

For clipboard support (Windows):

pip install pywin32

Troubleshooting

Window doesn't appear

  • Check if monitor_preview is enabled (True)
  • Try different monitor selection
  • Check console for error messages

Window appears in wrong location

  • Set explicit X, Y coordinates in settings
  • Use window_x: 0, window_y: 0 for top-left

Image not updating

  • Ensure workflow is executing
  • Check that image is connected to Watch Point input
  • Try disabling/re-enabling monitor preview

Floating preview not working

  • Ensure floating_preview is enabled (True)
  • Check if other preview extensions are conflicting
  • Restart ComfyUI

Credits

Created for ComfyUI by [Your Name]

License

MIT License - Feel free to use and modify!

S
Description
No description provided
Readme MIT
5 MiB
Languages
Python 69.8%
JavaScript 30.2%