Spaces:
Running
on
Zero
Running
on
Zero
Update sonic.py
Browse files
sonic.py
CHANGED
@@ -146,9 +146,24 @@ class Sonic:
|
|
146 |
self._load_models(cfg)
|
147 |
print("Sonic init done")
|
148 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
# --------------------------------------------- load all networks
|
150 |
def _load_models(self, cfg):
|
151 |
dtype = {"fp16": torch.float16, "fp32": torch.float32, "bf16": torch.bfloat16}[cfg.weight_dtype]
|
|
|
152 |
|
153 |
vae = AutoencoderKLTemporalDecoder.from_pretrained(self.diffusers_root, subfolder="vae", variant="fp16")
|
154 |
sched = EulerDiscreteScheduler.from_pretrained(self.diffusers_root, subfolder="scheduler")
|
|
|
146 |
self._load_models(cfg)
|
147 |
print("Sonic init done")
|
148 |
|
149 |
+
def _locate_diffusers_dir(root: str) -> str:
|
150 |
+
"""
|
151 |
+
root 아래에서 model_index.json 또는 config.json 이 존재하는
|
152 |
+
디렉터리를 찾아 반환. (snapshots/<sha>/ … 형식 대응)
|
153 |
+
"""
|
154 |
+
for cur, _dirs, files in os.walk(root):
|
155 |
+
if {"model_index.json", "config.json"} & set(files):
|
156 |
+
return cur
|
157 |
+
raise FileNotFoundError(
|
158 |
+
f"[ERROR] diffusers model files(model_index.json/config.json) "
|
159 |
+
f"not found under {root}"
|
160 |
+
)
|
161 |
+
|
162 |
+
|
163 |
# --------------------------------------------- load all networks
|
164 |
def _load_models(self, cfg):
|
165 |
dtype = {"fp16": torch.float16, "fp32": torch.float32, "bf16": torch.bfloat16}[cfg.weight_dtype]
|
166 |
+
diff_root = _locate_diffusers_dir(self.diffusers_root) # ★★ 핵심 추가
|
167 |
|
168 |
vae = AutoencoderKLTemporalDecoder.from_pretrained(self.diffusers_root, subfolder="vae", variant="fp16")
|
169 |
sched = EulerDiscreteScheduler.from_pretrained(self.diffusers_root, subfolder="scheduler")
|