pyproject.toml
Specifications
The pyproject.toml
file contains two main sections for ComfyUI custom nodes: [project]
and [tool.comfy]
. Below are the specifications for each section.
[project] Section
name (required)
The node id uniquely identifies the custom node and will be used in URLs from the registry. Users can install the node by referencing this name:
Requirements:
- Must be less than 100 characters
- Can only contain alphanumeric characters, hyphens, underscores, and periods
- Cannot have consecutive special characters
- Cannot start with a number or special character
- Case-insensitive comparison
Best Practices:
- Use a short, descriptive name
- Don’t include “ComfyUI” in the name
- Make it memorable and easy to type
Examples:
See the official python documentation for more details.
version (required)
Uses semantic versioning with a three-digit version number X.Y.Z:
- X (MAJOR): Breaking changes
- Y (MINOR): New features (backwards compatible)
- Z (PATCH): Bug fixes
Examples:
license (optional)
Specifies the license for your custom node. Can be specified in two ways:
- File Reference:
- License Name:
Common licenses: MIT, GPL, Apache
description (recommended)
A brief description of what your custom node does.
urls (recommended)
Links to related resources:
requires-python (recommended)
Specifies the Python versions that your node supports:
classifiers (recommended)
Use classifiers to specify operating system compatibility and other metadata. The most relevant classifiers for operating systems are:
Common Combinations:
See the full list of valid classifiers on PyPI.
[tool.comfy] Section
PublisherId (required)
Your unique publisher identifier, typically matching your GitHub username.
Examples:
DisplayName (optional)
A user-friendly name for your custom node.
Icon (optional)
URL to your custom node’s icon.
Requirements:
- File types: SVG, PNG, JPG, or GIF
- Maximum resolution: 800px × 400px