Spaces:
Runtime error
Runtime error
import json | |
from os import path, mkdir | |
from typing import Any | |
from uuid import uuid4 | |
from backend.models.lcmdiffusion_setting import LCMDiffusionSetting | |
from utils import get_image_file_extension | |
def get_exclude_keys(): | |
exclude_keys = { | |
"init_image": True, | |
"generated_images": True, | |
"lora": { | |
"models_dir": True, | |
"path": True, | |
}, | |
"dirs": True, | |
"controlnet": { | |
"adapter_path": True, | |
}, | |
} | |
return exclude_keys | |
class ImageSaver: | |
def save_images( | |
output_path: str, | |
images: Any, | |
folder_name: str = "", | |
format: str = "PNG", | |
lcm_diffusion_setting: LCMDiffusionSetting = None, | |
) -> None: | |
gen_id = uuid4() | |
for index, image in enumerate(images): | |
if not path.exists(output_path): | |
mkdir(output_path) | |
if folder_name: | |
out_path = path.join( | |
output_path, | |
folder_name, | |
) | |
else: | |
out_path = output_path | |
if not path.exists(out_path): | |
mkdir(out_path) | |
image_extension = get_image_file_extension(format) | |
image.save(path.join(out_path, f"{gen_id}-{index+1}{image_extension}")) | |
if lcm_diffusion_setting: | |
with open(path.join(out_path, f"{gen_id}.json"), "w") as json_file: | |
json.dump( | |
lcm_diffusion_setting.model_dump( | |
exclude=get_exclude_keys(), | |
), | |
json_file, | |
indent=4, | |
) | |