Spaces:
Runtime error
Runtime error
| """ | |
| Image meta schema | |
| """ | |
| from typing import List | |
| from fooocus_version import version | |
| from pydantic import BaseModel | |
| class ImageMeta(BaseModel): | |
| """ | |
| Image meta data model | |
| """ | |
| metadata_scheme: str = "fooocus" | |
| base_model: str | |
| base_model_hash: str | |
| prompt: str | |
| full_prompt: List[str] | |
| prompt_expansion: str | |
| negative_prompt: str | |
| full_negative_prompt: List[str] | |
| performance: str | |
| style: str | |
| refiner_model: str = "None" | |
| refiner_switch: float = 0.5 | |
| loras: List[list] | |
| resolution: str | |
| sampler: str = "dpmpp_2m_sde_gpu" | |
| scheduler: str = "karras" | |
| seed: str | |
| adm_guidance: str | |
| guidance_scale: float | |
| sharpness: float | |
| steps: int | |
| vae_name: str | |
| version: str = version | |
| def __repr__(self): | |
| return "" | |
| def loras_parser(loras: list) -> list: | |
| """ | |
| Parse lora list | |
| """ | |
| return [ | |
| [ | |
| lora[0].rsplit('.', maxsplit=1)[:1][0], | |
| lora[1], | |
| "hash_not_calculated", | |
| ] for lora in loras if lora[0] != 'None' and lora[0] is not None] | |
| def image_parse( | |
| async_tak: object, | |
| task: dict | |
| ) -> dict | str: | |
| """ | |
| Parse image meta data | |
| Generate meta data for image from task and async task object | |
| Args: | |
| async_tak: async task obj | |
| task: task obj | |
| Returns: | |
| dict: image meta data | |
| """ | |
| req_param = async_tak.req_param | |
| meta = ImageMeta( | |
| metadata_scheme=req_param.meta_scheme, | |
| base_model=req_param.base_model_name.rsplit('.', maxsplit=1)[:1][0], | |
| base_model_hash='', | |
| prompt=req_param.prompt, | |
| full_prompt=task['positive'], | |
| prompt_expansion=task['expansion'], | |
| negative_prompt=req_param.negative_prompt, | |
| full_negative_prompt=task['negative'], | |
| performance=req_param.performance_selection, | |
| style=str(req_param.style_selections), | |
| refiner_model=req_param.refiner_model_name, | |
| refiner_switch=req_param.refiner_switch, | |
| loras=loras_parser(req_param.loras), | |
| resolution=str(tuple([int(n) for n in req_param.aspect_ratios_selection.split('*')])), | |
| sampler=req_param.advanced_params.sampler_name, | |
| scheduler=req_param.advanced_params.scheduler_name, | |
| seed=str(task['task_seed']), | |
| adm_guidance=str(( | |
| req_param.advanced_params.adm_scaler_positive, | |
| req_param.advanced_params.adm_scaler_negative, | |
| req_param.advanced_params.adm_scaler_end)), | |
| guidance_scale=req_param.guidance_scale, | |
| sharpness=req_param.sharpness, | |
| steps=-1, | |
| vae_name=req_param.advanced_params.vae_name, | |
| version=version | |
| ) | |
| if meta.metadata_scheme not in ["fooocus", "a111"]: | |
| meta.metadata_scheme = "fooocus" | |
| if meta.metadata_scheme == "fooocus": | |
| meta_dict = meta.model_dump() | |
| for i, lora in enumerate(meta.loras): | |
| attr_name = f"lora_combined_{i+1}" | |
| lr = [str(x) for x in lora] | |
| meta_dict[attr_name] = f"{lr[0]} : {lr[1]}" | |
| else: | |
| meta_dict = meta.model_dump() | |
| return meta_dict | |