File size: 869 Bytes
91fb4ef
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import importlib
import json
import os

from huggingface_hub import hf_hub_download


def resolve_vae_cls_from_ckpt_path(ckpt_path, **kwargs):
    ckpt_path = str(ckpt_path)
    if os.path.exists(str(ckpt_path)) and os.path.isdir(ckpt_path):
        index_path = os.path.join(ckpt_path, "model_index.json")
    else:
        revision = kwargs.get("revision", None)
        cache_dir = kwargs.get("cache_dir", None)
        index_path = hf_hub_download(
            repo_id=ckpt_path, filename="model_index.json", revision=revision, cache_dir=cache_dir
        )

    with open(index_path, "r") as f:
        model_index_dict = json.load(f)
    assert "vae" in model_index_dict, "No VAE found in the modelx index dict."

    vae_cls_config = model_index_dict["vae"]
    library = importlib.import_module(vae_cls_config[0])
    return getattr(library, vae_cls_config[1])