Nodes Browser

ComfyDeploy: How ComfyUI-Classifier works in ComfyUI?

What is ComfyUI-Classifier?

ComfyUI-Classifier is a custom node for ComfyUI that uses a zero-shot classification model to classify text inputs based on a set of candidate labels. This node leverages the power of Hugging Face Transformers to provide accurate and flexible text classification.

How to install it in ComfyDeploy?

Head over to the machine page

  1. Click on the "Create a new machine" button
  2. Select the Edit build steps
  3. Add a new step -> Custom Node
  4. Search for ComfyUI-Classifier and select it
  5. Close the build step dialig and then click on the "Save" button to rebuild the machine

ComfyUI-Classifier

ComfyUI-Classifier is a custom node for ComfyUI that uses a zero-shot classification model to classify text inputs based on a set of candidate labels. This node leverages the power of Hugging Face Transformers to provide accurate and flexible text classification.

ComfyUI-Classifier

Features

  • Text Classification: Classify text inputs using zero-shot classification.
  • Customizable Labels: Provide your own set of candidate labels for classification.
  • Flexible Output: Choose between JSON or plain text output formats.
  • Score Inclusion: Option to include classification scores in the output.

Installation

  1. Clone the Repository: Clone this repository into your custom_nodes folder in ComfyUI.

    git clone https://github.com/fexploit/ComfyUI-Classifier custom_nodes/ComfyUI-Classifier
    
  2. Install Dependencies: Navigate to the cloned folder and install the required dependencies.

    cd custom_nodes/ComfyUI-Classifier
    pip install -r requirements.txt
    

Usage

Adding the Node

  1. Start ComfyUI.
  2. Add the ClassifierNode from the custom nodes list.
  3. Connect a text input and configure the parameters as needed.

Parameters

  • text_input (required): The input text to be classified.
  • candidate_labels_json (required): A JSON string containing the candidate labels and their initial scores.
  • num_labels (optional): Number of labels to select (default: 10).
  • include_scores (optional): Boolean flag to include scores in the output (default: True).
  • output_format (optional): The output format, can be "json" or "text" (default: "json").

Example

# Example usage in a script
text_input = "Dune is the best movie ever."
candidate_labels_json = '''
[
  {"tag": "CINEMA", "score": 0.9},
  {"tag": "ART", "score": 0.1},
  {"tag": "MUSIC", "score": 0.05}
]
'''

classifier_node = ClassifierNode()
output = classifier_node.classify(text_input, candidate_labels_json, num_labels=3, include_scores=True, output_format="json")
print(output)

Contributing

Contributions are welcome! If you have any improvements, bug fixes, or new features to suggest, please feel free to open an issue or submit a pull request with your changes. Make sure to follow the project's code style and add tests for any new functionality.

License

This project is licensed under the MIT License. See the LICENSE file for more details.

Acknowledgements

Contact

For any inquiries, suggestions, or issues, please open an issue on the GitHub repository.