Files
Scorpinaus-ComfyUI-Diffuser…/combined_diffusers_loader.py
T

46 lines
1.9 KiB
Python

# combined_diffusers_loader.py
from .utils import DiffusersUtils
from .unet_loader import DiffusersUNETLoader
from .clip_loader import DiffusersClipLoader
from .vae_loader import DiffusersVAELoader
from .base_loader import DiffusersLoaderBase
import os
class CombinedDiffusersLoader:
@classmethod
def INPUT_TYPES(cls):
base_path = DiffusersUtils.get_base_path()
model_directories = DiffusersUtils.get_model_directories(base_path)
return {
"required": {
"sub_directory": (model_directories,),
"clip_type": (["stable_diffusion", "stable_cascade", "sd3", "stable_audio", "sdxl", "flux"],),
"transformer_parts": (["all", "part_1", "part_2", "part_3"],),
"vae_type": (["default", "taesd", "taesdxl", "taesd3", "taef1"],),
"weight_dtype": (["default", "fp8_e4m3fn", "fp8_e5m2"],)
}
}
RETURN_TYPES = ("MODEL", "CLIP", "VAE")
FUNCTION = "load_models"
CATEGORY = "DiffusersLoader/Combined"
@classmethod
def load_models(cls, sub_directory, clip_type="stable_diffusion", transformer_parts="all", vae_type="default", weight_dtype="default"):
base_path = DiffusersUtils.get_base_path()
sub_dir_path = os.path.join(base_path, sub_directory)
model_type = DiffusersLoaderBase.detect_model_type(sub_dir_path)
print(f"Detected model type: {model_type}")
unet_model = DiffusersUNETLoader.load_model(sub_directory, transformer_parts, weight_dtype)
clip_model = DiffusersClipLoader.load_model(sub_directory, clip_type)
vae_model = DiffusersVAELoader.load_model(sub_directory, vae_type)
return unet_model, clip_model, vae_model
# Ensure the node is registered properly
NODE_CLASS_MAPPINGS = {"CombinedDiffusersLoader": CombinedDiffusersLoader}
NODE_DISPLAY_NAME_MAPPINGS = {"CombinedDiffusersLoader": "Combined Diffusers Loader"}