An open API service indexing awesome lists of open source software.

https://github.com/comfy-org/cookiecutter-comfy-extension

A cookiecutter template for writing a ComfyUI custom node extension
https://github.com/comfy-org/cookiecutter-comfy-extension

Last synced: 8 months ago
JSON representation

A cookiecutter template for writing a ComfyUI custom node extension

Awesome Lists containing this project

README

          

# cookiecutter-comfy-extension

## Get started writing custom nodes in one step without setting up a ton of Python project config.

An opinionated way to develop ComfyUI custom nodes. Uses cookiecutter to scaffold a python project.

This template helps you

## Usage

- First install `cookiecutter`:

```bash
# pipx is strongly recommended
pipx install cookiecutter

# if pipx is not an option, you can install cookiecutter in your Python user directory.
python -m pip install --user cookiecutter
```

- Run `cookiecutter` with this template:

```bash
# if you installed cookiecutter with pipx
pipx run cookiecutter gh:comfy-org/cookiecutter-comfy-extension

# if you installed cookiecutter with pip
cookiecutter gh:comfy-org/cookiecutter-comfy-extension

# initialize git repo in your new project
cd
git init
```
- Run `cookiecutter` with this as local template:
```bash
git clone https://github.com/Comfy-Org/cookiecutter-comfy-extension
cd cookiecutter-comfy-extension
git submodule update --init --recursive
cookiecutter .
```

## Features

The resulting ComfyUI node extension project will automatically come with a few neat features:

- Support for Ruff linter and various recommended rules
- A pre-commit hook for the Ruff linter
- An optional `web` directory if your extension will include custom javascript
- If selected, `web` will also be added to the project's `MANIFEST.in` to ensure that any non-python code in `web` will also be correctly installed
- Testing via PyTest (check the `tests/` directory)
- A Github Action that will automatically run any unit tests as part of Pull Requests made against your project
- A Github Action to diff your changes for backwards incompatible changes: (node-diff)[https://github.com/Comfy-Org/node-diff]
- A Github Action to publish to the Comfy Registry