41 lines
2.1 KiB
Python
41 lines
2.1 KiB
Python
# Copyright (c) 2026 — ComfyUI-BerniniR. Apache-2.0.
|
|
"""ComfyUI-BerniniR — soporte para ByteDance/Bernini-R (Wan2.2-T2V-A14B
|
|
con source-id RoPE + guía APG multi-condición) en ComfyUI."""
|
|
|
|
# ComfyUI SIEMPRE importa este paquete con contexto de paquete (`__package__`
|
|
# definido), así que el import relativo funciona en producción. Cuando se importa
|
|
# fuera de ese contexto —p.ej. pytest recolectando el árbol del repo, que tiene
|
|
# este __init__.py en la raíz— el import relativo lanzaría "attempted relative
|
|
# import with no known parent package". Lo evitamos sin enmascarar errores reales
|
|
# (que sí ocurren cuando `__package__` está definido y el import se ejecuta).
|
|
if __package__:
|
|
from .nodes import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS
|
|
# Backend nativo (v0.4): añade los loaders que esquivan el crash de load_torch_file
|
|
# con fp8 e4m3 en torch 2.8/Windows. Tolerante a fallos: si algo va mal, el paquete
|
|
# sigue funcionando con los nodos diffusers.
|
|
try:
|
|
from .bernini.native_nodes import (
|
|
NODE_CLASS_MAPPINGS as _NCM_NATIVE,
|
|
NODE_DISPLAY_NAME_MAPPINGS as _NDN_NATIVE,
|
|
)
|
|
NODE_CLASS_MAPPINGS.update(_NCM_NATIVE)
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(_NDN_NATIVE)
|
|
except Exception as _e: # pragma: no cover
|
|
print(f"[BerniniR] aviso: nodos nativos (v0.4) no cargados: {_e}")
|
|
# M3b: guider de Bernini (APG + CFG encadenada) para SamplerCustomAdvanced.
|
|
try:
|
|
from .bernini.native_guider import (
|
|
NODE_CLASS_MAPPINGS as _NCM_GUIDER,
|
|
NODE_DISPLAY_NAME_MAPPINGS as _NDN_GUIDER,
|
|
)
|
|
NODE_CLASS_MAPPINGS.update(_NCM_GUIDER)
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(_NDN_GUIDER)
|
|
except Exception as _e: # pragma: no cover
|
|
print(f"[BerniniR] aviso: guider nativo (M3b) no cargado: {_e}")
|
|
else: # pragma: no cover - solo en import standalone (tests/herramientas)
|
|
NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS = {}, {}
|
|
|
|
# Frontend: preview + carga de vídeo para BerniniRLoadVideo (web/berninir.js).
|
|
WEB_DIRECTORY = "./web"
|
|
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS", "WEB_DIRECTORY"]
|