JasonSmithSO's picture
Upload 578 files
8866644 verified
import os
import folder_paths
import comfy.sd
import comfy.diffusers_load
from .tokenizer import MiaoBiTokenizer
class MiaoBiCLIPLoader:
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"clip_name": (folder_paths.get_filename_list("clip"),),
}
}
RETURN_TYPES = ("CLIP",)
FUNCTION = "load_mbclip"
CATEGORY = "ExtraModels/MiaoBi"
TITLE = "MiaoBi CLIP Loader"
def load_mbclip(self, clip_name):
clip_type = comfy.sd.CLIPType.STABLE_DIFFUSION
clip_path = folder_paths.get_full_path("clip", clip_name)
clip = comfy.sd.load_clip(
ckpt_paths=[clip_path],
embedding_directory=folder_paths.get_folder_paths("embeddings"),
clip_type=clip_type
)
# override tokenizer
clip.tokenizer.clip_l = MiaoBiTokenizer()
return (clip,)
class MiaoBiDiffusersLoader:
@classmethod
def INPUT_TYPES(cls):
paths = []
for search_path in folder_paths.get_folder_paths("diffusers"):
if os.path.exists(search_path):
for root, subdir, files in os.walk(search_path, followlinks=True):
if "model_index.json" in files:
paths.append(os.path.relpath(root, start=search_path))
return {
"required": {
"model_path": (paths,),
}
}
RETURN_TYPES = ("MODEL", "CLIP", "VAE")
FUNCTION = "load_mbcheckpoint"
CATEGORY = "ExtraModels/MiaoBi"
TITLE = "MiaoBi Checkpoint Loader (Diffusers)"
def load_mbcheckpoint(self, model_path, output_vae=True, output_clip=True):
for search_path in folder_paths.get_folder_paths("diffusers"):
if os.path.exists(search_path):
path = os.path.join(search_path, model_path)
if os.path.exists(path):
model_path = path
break
unet, clip, vae = comfy.diffusers_load.load_diffusers(
model_path,
output_vae = output_vae,
output_clip = output_clip,
embedding_directory = folder_paths.get_folder_paths("embeddings")
)
# override tokenizer
clip.tokenizer.clip_l = MiaoBiTokenizer()
return (unet, clip, vae)
NODE_CLASS_MAPPINGS = {
"MiaoBiCLIPLoader": MiaoBiCLIPLoader,
"MiaoBiDiffusersLoader": MiaoBiDiffusersLoader,
}