> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.

# pyproject.toml

> Especificación de pyproject.toml en Nodos personalizados de ComfyUI: secciones [project] y [tool.comfy], campos requeridos, versionado y un ejemplo completo.

# Especificaciones

El archivo `pyproject.toml` contiene dos secciones principales para los nodos personalizados de ComfyUI: `[project]` y `[tool.comfy]`. A continuación encontrarás las especificaciones de cada sección.

## Sección \[project]

### name (requerido)

El id del nodo identifica de forma única el nodo personalizado y se usará en las URL del registro. Los usuarios pueden instalar el nodo haciendo referencia a este nombre:

```bash theme={null}
comfy node install <node-id>
```

**Requisitos:**

* Debe tener menos de 100 caracteres
* Solo puede contener caracteres alfanuméricos, guiones, guiones bajos y puntos
* No puede tener caracteres especiales consecutivos
* No puede empezar por un número ni por un carácter especial
* La comparación no distingue entre mayúsculas y minúsculas

**Prácticas recomendadas:**

* Usa un nombre corto y descriptivo
* No incluyas "ComfyUI" en el nombre
* Haz que sea fácil de recordar y de escribir

**Ejemplos:**

```toml theme={null}
name = "image-processor"      # ✅ Good: Simple and clear
name = "super-resolution"     # ✅ Good: Describes functionality
name = "ComfyUI-enhancer"    # ❌ Bad: Includes ComfyUI
name = "123-tool"            # ❌ Bad: Starts with number
```

Consulta la [documentación oficial de Python](https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#name) para obtener más detalles.

### version (requerido)

Usa el [versionado semántico](https://semver.org/) con un número de versión de tres dígitos X.Y.Z:

* X (**MAJOR**): cambios que rompen la compatibilidad
* Y (**MINOR**): nuevas funcionalidades (compatibles hacia atrás)
* Z (**PATCH**): correcciones de errores

**Ejemplos:**

```toml theme={null}
version = "1.0.0"    # Initial release
version = "1.1.0"    # Added new features
version = "1.1.1"    # Bug fix
version = "2.0.0"    # Breaking changes
```

### license (opcional)

Especifica la licencia de tu nodo personalizado. Se puede indicar de dos formas:

1. **Referencia a un archivo:**

```toml theme={null}
license = { file = "LICENSE" }     # ✅ Points to LICENSE file
license = { file = "LICENSE.txt" } # ✅ Points to LICENSE.txt
license = "LICENSE"                # ❌ Incorrect format
```

2. **Nombre de la licencia:**

```toml theme={null}
license = { text = "MIT License" }  # ✅ Correct format
license = { text = "Apache-2.0" }   # ✅ Correct format
license = "MIT LICENSE"             # ❌ Incorrect format
```

Licencias comunes: [MIT](https://opensource.org/license/mit), [GPL](https://www.gnu.org/licenses/gpl-3.0.en.html), [Apache](https://www.apache.org/licenses/LICENSE-2.0)

### description (recomendado)

Una descripción breve de lo que hace tu nodo personalizado.

```toml theme={null}
description = "A super resolution node for enhancing image quality"
```

### repository (requerido)

Enlaces a recursos relacionados:

```toml theme={null}
[project.urls]
Repository = "https://github.com/username/repository"
```

### urls (recomendado)

Enlaces a recursos relacionados:

```toml theme={null}
[project.urls]
Documentation = "https://github.com/username/repository/wiki"
"Bug Tracker" = "https://github.com/username/repository/issues"
```

### requires-python (recomendado)

Especifica las versiones de Python que admite tu nodo:

```toml theme={null}
requires-python = ">=3.8"        # Python 3.8 or higher
requires-python = ">=3.8,<3.11"  # Python 3.8 up to (but not including) 3.11
```

### Compatibilidad de versión del frontend (opcional)

Si tu nodo tiene requisitos específicos sobre qué versiones del frontend de ComfyUI admite, puedes indicarlo con la dependencia `comfyui-frontend-package`. Este paquete se publica en [PyPI](https://pypi.org/project/comfyui-frontend-package/).

Por ejemplo, usa este campo cuando:

* Tu nodo personalizado usa API del frontend introducidas en una versión concreta
* Has identificado incompatibilidades entre tu nodo y determinadas versiones del frontend
* Tu nodo requiere funciones de interfaz específicas que solo están disponibles en versiones más recientes del frontend

```toml theme={null}
[project]
dependencies = [
    "comfyui-frontend-package>=1.20.0"       # Requires frontend 1.20.0 or newer
    "comfyui-frontend-package<=1.21.6"       # Restricts to frontend versions up to 1.21.6
    "comfyui-frontend-package>=1.19,<1.22"   # Works with frontend 1.19 to 1.21.x
    "comfyui-frontend-package~=1.20.0"       # Compatible with 1.20.x but not 1.21.0
    "comfyui-frontend-package!=1.21.3"       # Works with any version except 1.21.3
]
```

### classifiers (recomendado)

Usa los classifiers para especificar la compatibilidad con el sistema operativo y con los aceleradores de GPU. Esta información ayuda a los usuarios a encontrar el nodo adecuado para su sistema.

```toml theme={null}
[project]
classifiers = [
    # For OS-independent nodes (works on all operating systems)
    "Operating System :: OS Independent",

    # OR for OS-specific nodes, specify the supported systems:
    "Operating System :: Microsoft :: Windows",  # Windows specific
    "Operating System :: POSIX :: Linux",  # Linux specific
    "Operating System :: MacOS",  # macOS specific
    
    # GPU Accelerator support
    "Environment :: GPU :: NVIDIA CUDA",    # NVIDIA CUDA support
    "Environment :: GPU :: AMD ROCm",       # AMD ROCm support
    "Environment :: GPU :: Intel Arc",      # Intel Arc support
    "Environment :: NPU :: Huawei Ascend",  # Huawei Ascend support
    "Environment :: GPU :: Apple Metal",    # Apple Metal support
]
```

## Sección \[tool.comfy]

### PublisherId (requerido)

Tu identificador único de editor, que normalmente coincide con tu nombre de usuario de GitHub.

**Ejemplos:**

```toml theme={null}
PublisherId = "john-doe"        # ✅ Coincide con el nombre de usuario de GitHub
PublisherId = "image-wizard"    # ✅ Identificador único
```

### DisplayName (opcional)

Un nombre fácil de reconocer para tu nodo personalizado.

```toml theme={null}
DisplayName = "Super Resolution Node"
```

### Icon (opcional)

URL del icono de tu nodo personalizado que se mostrará en ComfyUI Registry y ComfyUI-Manager.

**Requisitos:**

* Tipos de archivo: SVG, PNG, JPG o GIF
* Resolución máxima: 400px × 400px
* La relación de aspecto debe ser cuadrada

```toml theme={null}
Icon = "https://raw.githubusercontent.com/username/repo/main/icon.png"
```

### Banner (opcional)

URL de una imagen de banner más grande que se mostrará en ComfyUI Registry y ComfyUI-Manager.

**Requisitos:**

* Tipos de archivo: SVG, PNG, JPG o GIF
* Relación de aspecto: 21:9

```toml theme={null}
Banner = "https://raw.githubusercontent.com/username/repo/main/banner.png"
```

### requires-comfyui (opcional)

Especifica con qué versión de ComfyUI es compatible tu nodo. Esto ayuda a los usuarios a asegurarse de que tengan instalada la versión correcta de ComfyUI.

**Operadores admitidos:** `<`, `>`, `<=`, `>=`, `~=`, `<>`, `!=` y rangos

```toml theme={null}
requires-comfyui = ">=1.0.0"        # ComfyUI 1.0.0 o superior
requires-comfyui = ">=1.0.0,<2.0.0"  # ComfyUI 1.0.0 hasta (sin incluir) 2.0.0
requires-comfyui = "~=1.0.0"         # Versión compatible: 1.0.0 o posterior, pero no la 2.0.0
requires-comfyui = "!=1.2.3"         # Cualquier versión excepto la 1.2.3
requires-comfyui = ">0.1.3,<1.0.0"   # Mayor que 0.1.3 y menor que 1.0.0
```

### includes (opcional)

Especifica si deseas forzar la inclusión de ciertas carpetas específicas. En algunas situaciones, como los nodos personalizados en proyectos de frontend, la carpeta de salida final empaquetada puede estar incluida en .gitignore. En esos casos, debemos forzar su inclusión para poder usarla en el registro.

```toml theme={null}
includes = ['dist']
```

> [!TIP]
>
> Para excluir archivos del paquete publicado (lo inverso de `includes`), consulta [`.comfyignore`](https://docs.comfy.org/es/registry/publishing#excluir-archivos-con-comfyignore) en la página de publicación.

## Ejemplo completo

```toml theme={null}
[project]
name = "super-resolution-node"
version = "1.0.0"
description = "Enhance image quality using advanced super resolution techniques"
license = { file = "LICENSE" }
requires-python = ">=3.8"
dependencies = [
    "comfyui-frontend-package<=1.21.6"  # Frontend version compatibility
]
classifiers = [
    "Operating System :: OS Independent"  # Works on all operating systems
]
dynamic = ["dependencies"]

[tool.setuptools.dynamic]
dependencies = {file = ["requirements.txt"]}

[project.urls]
Repository = "https://github.com/username/super-resolution-node"
Documentation = "https://github.com/username/super-resolution-node/wiki"
"Bug Tracker" = "https://github.com/username/super-resolution-node/issues"

[tool.comfy]
PublisherId = "image-wizard"
DisplayName = "Super Resolution Node"
Icon = "https://raw.githubusercontent.com/username/super-resolution-node/main/icon.png"
Banner = "https://raw.githubusercontent.com/username/super-resolution-node/main/banner.png"
requires-comfyui = ">=1.0.0"  # ComfyUI version compatibility
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.