Extensions/comfyui-plugins
ComfyUI Extension

comfyui-plugins

Starter scaffold for developing ComfyUI custom nodes.

By HDembinski·Created 3 months ago·Updated 3 months ago· 0
HDembinski/comfyui_plugins
Nodes3
On cloudLocal install
Categoryimage/resolution, advanced/conditioning
Stars0
Updated3 months ago
Readme

ComfyUI Plugins

Starter infrastructure for developing custom ComfyUI nodes in this repository.

What is included

  • ComfyUI plugin entrypoint in __init__.py
  • Node modules under nodes/
  • Native image sizes node in nodes/native_image_sizes.py
  • Python project metadata in pyproject.toml
  • Development dependency file in requirements-dev.txt
  • VS Code Python + Ruff defaults in .vscode/
  • Windows helper script to link this repo into ComfyUI: scripts/link_to_comfyui.ps1

Quick start

  1. Create and activate a Python virtual environment.

  2. Install development dependencies:

    pip install -r requirements-dev.txt
    
  3. Link this repo into your local ComfyUI installation:

    .\scripts\link_to_comfyui.ps1 -ComfyUIPath "C:\path\to\ComfyUI"
    

    If a target already exists, replace it with:

    .\scripts\link_to_comfyui.ps1 -ComfyUIPath "C:\path\to\ComfyUI" -Force
    
  4. Start ComfyUI and search for the node named "NativeImageSizes" in category "image/resolution".

Repository layout

.
├── __init__.py
├── nodes/
│   └── native_image_sizes.py
├── scripts/
│   └── link_to_comfyui.ps1
├── pyproject.toml
└── requirements-dev.txt

Running lint

ruff check .
ty check nodes

Add a new node

  1. Create a new module in nodes/, for example nodes/image_nodes.py.
  2. Define the node implementation in that module.
  3. Register node classes in top-level comfy_entrypoint() by returning them from PluginExtension.get_node_list() in __init__.py.
  4. Use define_schema() on io.ComfyNode classes to set node_id, category, inputs, and outputs.

Notes

  • The link helper script attempts a symbolic link first, then falls back to a junction on Windows.
  • This repository is intentionally minimal and ready for expansion into multiple node modules.