"src/git@developer.sourcefind.cn:lacacy/qwen_lmdeploy.git" did not exist on "9e36648284c47fda760e11f10bb0a6968b78ae8e"
diffusers_load.py 1.37 KB
Newer Older
1
2
3
import json
import os

4
import comfy.sd
5

6
7
8
9
10
11
def first_file(path, filenames):
    for f in filenames:
        p = os.path.join(path, f)
        if os.path.exists(p):
            return p
    return None
12

13
14
15
16
def load_diffusers(model_path, output_vae=True, output_clip=True, embedding_directory=None):
    diffusion_model_names = ["diffusion_pytorch_model.fp16.safetensors", "diffusion_pytorch_model.safetensors", "diffusion_pytorch_model.fp16.bin", "diffusion_pytorch_model.bin"]
    unet_path = first_file(os.path.join(model_path, "unet"), diffusion_model_names)
    vae_path = first_file(os.path.join(model_path, "vae"), diffusion_model_names)
17

18
19
20
    text_encoder_model_names = ["model.fp16.safetensors", "model.safetensors", "pytorch_model.fp16.bin", "pytorch_model.bin"]
    text_encoder1_path = first_file(os.path.join(model_path, "text_encoder"), text_encoder_model_names)
    text_encoder2_path = first_file(os.path.join(model_path, "text_encoder_2"), text_encoder_model_names)
21

22
23
24
    text_encoder_paths = [text_encoder1_path]
    if text_encoder2_path is not None:
        text_encoder_paths.append(text_encoder2_path)
25

26
    unet = comfy.sd.load_unet(unet_path)
27

28
29
30
    clip = None
    if output_clip:
        clip = comfy.sd.load_clip(text_encoder_paths, embedding_directory=embedding_directory)
31

32
33
34
    vae = None
    if output_vae:
        vae = comfy.sd.VAE(ckpt_path=vae_path)
35

36
    return (unet, clip, vae)