Extensions/ComfyUI YOLOv8 Object Detection Node
ComfyUI Extension

ComfyUI YOLOv8 Object Detection Node

A powerful ComfyUI custom node that performs object detection using YOLOv8 and outputs individual images for each detected object. Perfect for automatic mask generation,…

By mangobyed·Created 12 months ago·Updated 12 months ago· 1
mangobyed/ComfyUI_Detection_List
Nodes1
On cloudLocal install
Categoryimage/object_detection
Stars1
Updated12 months ago
Readme

ComfyUI YOLOv8 Object Detection Node

License: MIT Python 3.8+ ComfyUI

A powerful ComfyUI custom node that performs object detection using YOLOv8 and outputs individual images for each detected object. Perfect for automatic mask generation, object isolation, and batch processing workflows.

✨ Features

  • Object Detection: Uses YOLOv8 models for accurate object detection
  • Multiple Outputs: Generates separate images for each detected object
  • Batch Processing: Outputs a batch of images containing all detected objects
  • Customizable Parameters: Adjustable confidence threshold, IoU threshold, and padding
  • Model Selection: Choose from different YOLOv8 model sizes (nano to extra-large)
  • Custom Models: Support for custom trained YOLOv8 models

🚀 Quick Start

Automatic Installation

  1. Clone the repository into your ComfyUI custom nodes directory:

    cd ComfyUI/custom_nodes/
    git clone https://github.com/mangobyed/ComfyUI_Detection_List.git
    cd ComfyUI_Detection_List
    
  2. Run the installation script:

    Linux/Mac:

    chmod +x install.sh
    ./install.sh
    

    Windows:

    install.bat
    
  3. Restart ComfyUI to load the new node.

Manual Installation

  1. Install Dependencies:

    pip install -r requirements.txt
    
  2. Copy Files: Place this folder in your ComfyUI custom_nodes directory:

    ComfyUI/custom_nodes/ComfyUI_Detection_List/
    
  3. Restart ComfyUI: Restart ComfyUI to load the new node.

Usage

Node Inputs

  • image: Input image for object detection
  • model_name: YOLOv8 model to use (yolov8n.pt, yolov8s.pt, yolov8m.pt, yolov8l.pt, yolov8x.pt)
  • confidence_threshold: Minimum confidence score for detections (0.0 - 1.0)
  • iou_threshold: IoU threshold for non-maximum suppression (0.0 - 1.0)
  • padding: Pixels to add around detected objects when cropping (0 - 100)
  • custom_model_path (optional): Path to custom YOLOv8 model file

Node Outputs

  • detected_objects: Batch of images containing cropped detected objects
  • object_count: Number of objects detected
  • class_names: Comma-separated list of detected object classes
  • detection_info: Detailed information about each detection

Example Workflow

  1. Load an image using an image loader node
  2. Connect the image to the YOLOv8 Object Detection node
  3. Adjust detection parameters as needed
  4. Connect the outputs to:
    • Image preview nodes to see detected objects
    • Save image nodes to export results
    • Other processing nodes for further manipulation

Model Information

Default Models

  • yolov8n.pt: Nano - Fastest, smallest, lowest accuracy
  • yolov8s.pt: Small - Good balance of speed and accuracy
  • yolov8m.pt: Medium - Better accuracy, moderate speed
  • yolov8l.pt: Large - High accuracy, slower
  • yolov8x.pt: Extra Large - Highest accuracy, slowest

Custom Models

You can use custom trained YOLOv8 models by providing the path in the custom_model_path input.

Parameters Guide

  • Confidence Threshold: Lower values detect more objects but may include false positives
  • IoU Threshold: Controls overlap tolerance for duplicate detections
  • Padding: Adds context around detected objects in cropped images

Troubleshooting

  1. Model Loading Issues: Ensure ultralytics is properly installed
  2. GPU Memory: Use smaller models (nano/small) for limited GPU memory
  3. No Detections: Try lowering the confidence threshold
  4. Too Many False Positives: Increase the confidence threshold

Requirements

  • ComfyUI
  • PyTorch
  • ultralytics
  • OpenCV
  • Pillow
  • NumPy

See requirements.txt for specific version requirements.

🤝 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.

Development Setup

  1. Fork the repository
  2. Clone your fork: git clone https://github.com/yourusername/ComfyUI_Detection_List.git
  3. Create a feature branch: git checkout -b feature/amazing-feature
  4. Make your changes and test them
  5. Commit your changes: git commit -m 'Add amazing feature'
  6. Push to the branch: git push origin feature/amazing-feature
  7. Open a Pull Request

📝 Changelog

v1.0.0

  • Initial release
  • YOLOv8 object detection support
  • Batch image output functionality
  • Configurable detection parameters
  • Support for custom models

🐛 Known Issues

  • Model loading may take some time on first use
  • GPU memory usage depends on model size and image resolution
  • Some custom models may require additional dependencies

💬 Support

If you encounter any issues or have questions:

  1. Check the Issues page
  2. Create a new issue with detailed information about your problem
  3. Include your ComfyUI version, Python version, and error logs

🙏 Acknowledgments

  • Ultralytics for the YOLOv8 implementation
  • ComfyUI for the amazing framework
  • The open-source community for continuous support and contributions

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

Note: YOLOv8 models are subject to their respective licenses from Ultralytics.