2024-07-08 10:07:36 +08:00

95 lines
2.4 KiB
Python

import os
import torch
import folder_paths
from .constant import T5_PATH
from .dit import load_checkpoint, load_vae
from .clip import CLIP
class DiffusersCheckpointLoader:
def __init__(self):
self.tmp_dir = folder_paths.get_temp_directory()
self.dtype = torch.float32
@classmethod
def INPUT_TYPES(s):
return {"required": {
"model_name": (folder_paths.get_filename_list("checkpoints"),), }}
RETURN_TYPES = ("MODEL", )
FUNCTION = "load_checkpoint"
CATEGORY = "HunYuan"
def load_checkpoint(self, model_name):
MODEL_PATH = folder_paths.get_full_path("checkpoints", model_name)
out = load_checkpoint(MODEL_PATH)
return out
class DiffusersVAELoader:
def __init__(self):
self.tmp_dir = folder_paths.get_temp_directory()
self.dtype = torch.float32
@classmethod
def INPUT_TYPES(s):
return {"required": {
"model_name": (folder_paths.get_filename_list("vae"),), }}
RETURN_TYPES = ("VAE", )
FUNCTION = "load_vae"
CATEGORY = "HunYuan"
def load_vae(self, model_name):
MODEL_PATH = folder_paths.get_full_path("vae", model_name)
out = load_vae(MODEL_PATH)
return out
class DiffusersCLIPLoader:
def __init__(self):
self.tmp_dir = folder_paths.get_temp_directory()
self.dtype = torch.float32
@classmethod
def INPUT_TYPES(s):
return {"required": {
"text_encoder_path": (folder_paths.get_filename_list("clip"),),
"t5_text_encoder_path": (os.listdir(T5_PATH),), }}
RETURN_TYPES = ("CLIP", )
FUNCTION = "load_clip"
CATEGORY = "HunYuan"
def load_clip(self, text_encoder_path, t5_text_encoder_path):
CLIP_PATH = folder_paths.get_full_path("clip", text_encoder_path)
t5_file = os.path.join(T5_PATH, t5_text_encoder_path)
root = None
out = CLIP(root, CLIP_PATH, t5_file)
return (out,)
NODE_CLASS_MAPPINGS = {
"DiffusersCheckpointLoader": DiffusersCheckpointLoader,
"DiffusersVAELoader": DiffusersVAELoader,
"DiffusersCLIPLoader": DiffusersCLIPLoader,
}
NODE_DISPLAY_NAME_MAPPINGS = {
"DiffusersCheckpointLoader": "HunYuan Checkpoint Loader",
"DiffusersVAELoader": "HunYuan VAE Loader",
"DiffusersCLIPLoader": "HunYuan CLIP Loader",
}