95 lines
3.0 KiB
Python
95 lines
3.0 KiB
Python
"""Top-level package for LanPaint."""
|
|
|
|
__all__ = [
|
|
"NODE_CLASS_MAPPINGS",
|
|
"NODE_DISPLAY_NAME_MAPPINGS",
|
|
"WEB_DIRECTORY",
|
|
]
|
|
|
|
__author__ = """LanPaint"""
|
|
__email__ = "czhengac@connect.ust.hk"
|
|
__version__ = "0.0.1"
|
|
|
|
|
|
def _install_lightweight_runtime_stubs() -> None:
|
|
"""Install lightweight stubs so tooling can import this package without ComfyUI.
|
|
|
|
This is used by CI tooling (e.g., comfy-org/node-diff) that imports NODE_CLASS_MAPPINGS
|
|
in an environment where ComfyUI isn't installed.
|
|
"""
|
|
import sys
|
|
import types
|
|
|
|
# `src/LanPaint/nodes.py` uses `torch.Tensor` in type annotations.
|
|
try:
|
|
import torch # noqa: F401
|
|
except ModuleNotFoundError:
|
|
torch_mod = types.ModuleType("torch")
|
|
|
|
class Tensor: # noqa: N801 (match torch naming)
|
|
pass
|
|
|
|
torch_mod.Tensor = Tensor
|
|
torch_mod.nn = types.SimpleNamespace(functional=types.SimpleNamespace())
|
|
sys.modules["torch"] = torch_mod
|
|
|
|
if "comfyui_version" not in sys.modules:
|
|
comfyui_version_mod = types.ModuleType("comfyui_version")
|
|
comfyui_version_mod.__version__ = "0.0.0"
|
|
sys.modules["comfyui_version"] = comfyui_version_mod
|
|
|
|
sys.modules.setdefault("nodes", types.ModuleType("nodes"))
|
|
sys.modules.setdefault("latent_preview", types.ModuleType("latent_preview"))
|
|
|
|
if "comfy" not in sys.modules:
|
|
comfy_mod = types.ModuleType("comfy")
|
|
comfy_mod.__path__ = []
|
|
|
|
comfy_utils_mod = types.ModuleType("comfy.utils")
|
|
|
|
def repeat_to_batch_size(tensor, batch_size): # type: ignore[no-untyped-def]
|
|
if getattr(tensor, "shape", ())[0] == batch_size:
|
|
return tensor
|
|
return tensor
|
|
|
|
comfy_utils_mod.repeat_to_batch_size = repeat_to_batch_size
|
|
|
|
comfy_samplers_mod = types.ModuleType("comfy.samplers")
|
|
|
|
class DummyKSAMPLER: # noqa: N801 (match ComfyUI naming)
|
|
pass
|
|
|
|
comfy_samplers_mod.KSAMPLER = DummyKSAMPLER
|
|
|
|
comfy_model_base_mod = types.ModuleType("comfy.model_base")
|
|
|
|
class ModelType: # noqa: N801 (match ComfyUI naming)
|
|
FLUX = "FLUX"
|
|
FLOW = "FLOW"
|
|
|
|
class WAN22: # noqa: N801 (match ComfyUI naming)
|
|
pass
|
|
|
|
comfy_model_base_mod.ModelType = ModelType
|
|
comfy_model_base_mod.WAN22 = WAN22
|
|
|
|
comfy_mod.utils = comfy_utils_mod
|
|
comfy_mod.samplers = comfy_samplers_mod
|
|
comfy_mod.model_base = comfy_model_base_mod
|
|
|
|
sys.modules["comfy"] = comfy_mod
|
|
sys.modules["comfy.utils"] = comfy_utils_mod
|
|
sys.modules["comfy.samplers"] = comfy_samplers_mod
|
|
sys.modules["comfy.model_base"] = comfy_model_base_mod
|
|
|
|
|
|
try:
|
|
from .src.LanPaint.nodes import NODE_CLASS_MAPPINGS
|
|
from .src.LanPaint.nodes import NODE_DISPLAY_NAME_MAPPINGS
|
|
except ModuleNotFoundError:
|
|
_install_lightweight_runtime_stubs()
|
|
from .src.LanPaint.nodes import NODE_CLASS_MAPPINGS
|
|
from .src.LanPaint.nodes import NODE_DISPLAY_NAME_MAPPINGS
|
|
|
|
WEB_DIRECTORY = "./web"
|