ComfyUI Extension: Timer-Node-Comfyui
A custom ComfyUI node that displays live processing time in a red digital countdown clock format, perfect for monitoring image generation times and tracking performance between workflow nodes.
Custom Nodes (0)
README
⏱️ PromptWaffle Timer Node
A custom ComfyUI node that displays live processing time in a red digital countdown clock format. Perfect for monitoring image generation times and tracking performance between workflow nodes.
Part of the PromptWaffle suite of ComfyUI nodes - All PromptWaffle nodes are organized under the promptwaffle/ category for easy access.
🌟 Features
- Live Timer Display: Shows real-time processing duration with millisecond precision
- Red Digital Clock: Eye-catching red LED-style digital clock display with glowing effects
- Passthrough Design: Can be inserted anywhere in your workflow without breaking connections
- Multiple Time Formats: Display with or without milliseconds
- Custom Labels: Add descriptive labels to different timer nodes
- Performance Tracking: Measure processing time between any nodes in your workflow
📦 Installation
Method 1: ComfyUI Manager (Recommended)
- Open ComfyUI Manager
- Search for "PromptWaffle Timer"
- Click Install
Method 2: Manual Installation
-
Navigate to your ComfyUI custom nodes directory:
cd ComfyUI/custom_nodes/ -
Clone this repository:
git clone https://github.com/yourusername/Timer-Node-Comfyui.git -
Restart ComfyUI
🚀 Usage
Basic Usage
-
Add Timer Node: Right-click in ComfyUI →
Add Node→promptwaffle/timing→⏱️ PromptWaffle Timer -
Connect to Workflow: Connect any output to the timer node's input, and connect the timer's passthrough output to the next node
-
Run Workflow: The timer will display the processing time in real-time with a red digital clock
Example Workflows
Measure Image Generation Time
Load Image → Timer Node → Image Processing → Save Image
Track Processing Steps
Prompt → CLIP → Timer Node → KSampler → Timer Node → VAE Decode → Save
Multiple Timers
Start → Timer (Total) → Process A → Timer (Step 1) → Process B → Timer (Step 2) → End
Node Inputs
| Input | Type | Required | Description | |-------|------|----------|-------------| | input | Any (*) | Optional | Connect any output - will be passed through | | label | String | Optional | Custom label for the timer (default: "Processing Time") | | show_milliseconds | Boolean | Optional | Show milliseconds in display (default: true) |
Node Outputs
| Output | Type | Description | |--------|------|-------------| | passthrough | Any (*) | Original input passed through unchanged | | formatted_time | String | Formatted time string (e.g., "00:12.345") | | elapsed_seconds | Float | Total elapsed time in seconds | | timestamp | String | Completion timestamp |
🎨 Display Features
Red Digital Clock Display
The timer features a stunning red LED-style digital clock with:
- Glowing red numbers with pulsing animation
- Dark background with red border
- Shadow effects for depth and realism
- Status indicator (Ready/Running/Completed)
- Millisecond precision (optional)
Display States
- Ready: Initial state before execution
- Running...: Active processing with fast-pulsing glow
- Completed: Final time display after processing
💡 Use Cases
- Performance Monitoring: Track how long each step of your workflow takes
- Optimization: Identify bottlenecks in complex workflows
- Benchmarking: Compare processing times between different models or settings
- Time Tracking: Monitor total generation time for billing or reporting
- Debugging: Detect slow or stuck nodes in your workflow
🔧 Configuration
Custom Labels
Set descriptive labels for different stages:
Timer 1: label = "Image Loading"
Timer 2: label = "Model Inference"
Timer 3: label = "Post Processing"
Timer 4: label = "Total Time"
Time Format
Toggle milliseconds based on your needs:
- With milliseconds:
00:12.345- Precise timing for optimization - Without milliseconds:
00:12- Cleaner display for long processes
📊 Technical Details
Time Measurement
- Uses Python's
time.time()for precise timing - Measures actual node execution time
- Updates live during processing (50ms refresh rate)
- Continues to display final time after completion
Performance Impact
- Minimal overhead: ~1-5ms per node execution
- Efficient updates: JavaScript updates only during execution
- No background processes: Clean shutdown after completion
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Development Setup
- Clone the repository
- Make your changes
- Test in ComfyUI
- Submit a PR with description of changes
📝 License
MIT License - feel free to use in your projects!
🐛 Troubleshooting
Timer Not Displaying
- Ensure ComfyUI is restarted after installation
- Check browser console for JavaScript errors
- Verify node appears in
promptwaffle/timingcategory
Incorrect Timing
- Timer measures node execution only, not queue time
- Network delays are not included in measurement
- Multiple executions show cumulative time
Visual Issues
- Clear browser cache and reload
- Check for CSS conflicts with other custom nodes
- Ensure you're using a modern browser (Chrome/Firefox/Edge)
📞 Support
For issues, questions, or feature requests:
- Open an issue on GitHub
- Check existing issues for solutions
- Join the ComfyUI Discord community
🙏 Acknowledgments
- ComfyUI team for the amazing framework
- Community contributors and testers
- Digital clock design inspired by classic LED displays
Enjoy tracking your workflow performance with style! ⏱️✨