Spaces:
Configuration error
Configuration error
File size: 2,449 Bytes
8866644 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
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,
} |