Organize ComfyUI workflows for production from a built-in panel: - General: folder browser (navigation, multi-select, context menu, drag & drop), open in canvas, import, transfer from ComfyUI's folder. - Projects: exportable internal DB; virtual (tags) or folder-backed; subfolders, exclusivity + optional multi-link, move/duplicate/export. - Git: per-project (studio/dedicated/local), with a safety guard so it never touches ComfyUI's own repo. - Bulk export to .zip; configurable workflows root; bilingual EN/ES. Python stdlib only. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
37 lines
1.8 KiB
Python
37 lines
1.8 KiB
Python
# SPDX-License-Identifier: GPL-3.0-only
|
|
# Copyright (C) 2026 Enob-Studio S.L. and Juan Gea
|
|
"""BS ComfyUI Workflow Manager — custom node de ComfyUI.
|
|
|
|
Gestor de workflows para producción, en una interfaz propia (pestaña en la barra lateral, dentro
|
|
de un iframe servido por este mismo add-on, para no depender del sistema de nodos y sobrevivir a
|
|
Nodes 2.0). Dos formas de organizar los mismos workflows:
|
|
|
|
1. General — explorador de carpetas sobre la carpeta de workflows de ComfyUI (configurable):
|
|
abrir, mover, renombrar, duplicar, borrar, exportar.
|
|
2. Proyectos — capa propia (base de datos interna exportable) que vincula workflows a proyectos
|
|
y subcarpetas, independiente de su ubicación en disco. Opción de carpeta vinculada
|
|
por proyecto y versionado Git (local o con remoto / GitHub vía `gh`).
|
|
|
|
Instalación: copia esta carpeta en ComfyUI/custom_nodes/ y reinicia ComfyUI. Solo stdlib;
|
|
las funciones Git usan el `git`/`gh` del sistema si están instalados (nunca los instalamos).
|
|
"""
|
|
import logging
|
|
|
|
# La UI se carga vía WEB_DIRECTORY (solo comfy_ext.js). La app real la sirve el backend.
|
|
WEB_DIRECTORY = "./web"
|
|
|
|
# No añadimos nodos al grafo: toda la funcionalidad vive en la interfaz propia.
|
|
NODE_CLASS_MAPPINGS = {}
|
|
NODE_DISPLAY_NAME_MAPPINGS = {}
|
|
|
|
# Registrar las rutas HTTP. Protegido para no tumbar ComfyUI si algo falla (p.ej. al testear
|
|
# este paquete fuera de ComfyUI, donde no existen `server`/`folder_paths`).
|
|
try:
|
|
from .bswm import routes # noqa: F401 (importar = registrar las rutas)
|
|
except Exception as exc: # pragma: no cover
|
|
logging.getLogger("BS_Workflow_Manager").warning(
|
|
"[BS Workflow Manager] No se pudieron registrar las rutas HTTP: %s", exc
|
|
)
|
|
|
|
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS", "WEB_DIRECTORY"]
|