ComfyUI_ProfilerX

ComfyUI_ProfilerX
★ 78

性能分析内存监控节点耗时历史趋势
实时监控ComfyUI工作流,统计节点执行时间、VRAM/RAM占用、缓存命中与历史趋势,快速定位性能瓶颈
💡 用于发现工作流中的性能瓶颈并监测资源使用情况。
🍴 9 Forks💻 Python🔄 2026-02-08
📦
网盘下载
复制链接后前往夸克网盘下载
https://pan.quark.cn/s/a1f1f564f19c
📦 requirements.txt
psutil>=5.9.0
📄 README

ComfyUI ProfilerX

v2.0 — Fully rewritten for modern ComfyUI! The old version broke when ComfyUI moved to async execution. This rewrite uses ComfyUI’s official ProgressHandler API instead of monkey-patching, so it’s stable and forward-compatible. If you tried ProfilerX before and hit crashes, update and try again — it works now.

A performance profiling suite for ComfyUI that automatically tracks execution time, memory usage, and cache performance of your workflows.

Features

  • 🔄 Real-time monitoring of workflow execution
  • 📊 Memory usage tracking (VRAM and RAM)
  • ⚡ Node execution time breakdown
  • 💾 Cache hit/miss statistics
  • 📈 Historical data tracking and analysis with standard deviation
  • 🎯 Zero configuration required
  • 📱 Responsive UI that integrates with ComfyUI’s interface
  • ⚙️ Time-range filtering for analytics
  • 🔍 Sortable performance tables
  • 🍎 Apple Silicon (MPS) support
  • Requirements

  • ComfyUI (latest version)
  • Python 3.8+
  • GPU for VRAM monitoring (CUDA or Apple Silicon MPS; CPU-only systems track RAM only)
  • Modern web browser
  • Installation

    Option 1: ComfyUI Manager (Recommended)

  • Install ComfyUI Manager
  • Use the Manager’s interface to install “ComfyUI ProfilerX”
  • Restart ComfyUI
  • Option 2: Manual Installation

  • Clone this repository into your custom_nodes directory:
  • cd ComfyUI/custom_nodes
    git clone https://github.com/ryanontheinside/ComfyUI_ProfilerX

  • Install the required Python package:
  • cd ComfyUI_ProfilerX
    pip install -r requirements.txt

  • Restart ComfyUI
  • Usage

    The profiler integrates directly into ComfyUI’s interface:

  • After installation, you’ll see a chart icon button in the top menu bar
  • Run your workflows as normal
  • Click the icon to open the dashboard, which shows:
  • Total execution time with average and standard deviation
  • Peak memory usage (VRAM and RAM)
  • Cache performance metrics (hits/misses)
  • Per-node execution time breakdown
  • Historical performance trends
  • Node analytics with stddev across runs
  • The profiler runs automatically in the background, collecting data for every workflow execution. No additional configuration is needed.

    Features in Detail

    Latest Run

  • Per-node execution time, VRAM delta, RAM delta
  • Cache hit/miss status per node
  • Workflow totals with averages and ±stddev
  • Node Analytics

  • Average execution time and VRAM per node type
  • Standard deviation columns for time and VRAM
  • Cache hit rate per node type
  • Time-range filtering
  • Sortable columns
  • Historical Trends

  • Recent workflow runs with duration, VRAM peak, cache rate
  • Time-range filtering (1h, 6h, 24h, 7d, all)
  • Overall workflow averages
  • Data Management

  • Automatic history tracking (up to 10,000 runs)
  • Data persistence between sessions
  • Archive create/load/delete from the Settings tab
  • Auto-archive when history limit is reached
  • How it Works

    ProfilerX uses ComfyUI’s official ProgressHandler API to collect performance metrics with minimal overhead:

  • A single small patch re-injects the profiler handler when ComfyUI resets progress state for each execution
  • start_handler / finish_handler callbacks measure per-node timing and memory
  • Cache hits are detected automatically (nodes that receive finish without start)
  • VRAM is tracked via torch.cuda (NVIDIA) or torch.mps (Apple Silicon), RAM via psutil
  • Standard deviation is computed incrementally using Welford’s online algorithm
  • Historical data is stored locally in data/profiling_history.json
  • REST API

    ProfilerX exposes endpoints for the frontend (also usable by scripts):

  • GET /profilerx/stats — latest run, history, node averages, workflow averages
  • GET /profilerx/archives — list archive files
  • POST /profilerx/archive — archive current history
  • POST /profilerx/archive/{filename}/load — load an archive
  • DELETE /profilerx/archive/{filename} — delete an archive
  • Other Projects by RyanOnTheInside

    Check out my other ComfyUI custom nodes:

  • ComfyUI_RyanOnTheInside – Everything Reactivity
  • ComfyUI_RealTimeNodes – Real-Time ComfyUI Use Cases
  • Contributing

    Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

    License

    MIT License – feel free to use this in your own projects!