Spaces:
Runtime error
Runtime error
| # Copyright 2023 Qewertyy, MIT License | |
| import logging | |
| import asyncio | |
| from lexica import AsyncClient, Client | |
| def ImageModels(): | |
| models = Client().models["models"]["image"] | |
| dict_models = {} | |
| for model in models: | |
| model_id = model["id"] | |
| model_name = model["name"] | |
| dict_models[model_name] = model_id | |
| return dict_models | |
| async def ImageGeneration(model, prompt): | |
| try: | |
| output = await AsyncClient().generate(model, prompt, "") | |
| if output["code"] != 1: | |
| return 2 | |
| if output["code"] == 69: | |
| return output["code"] | |
| task_id, request_id = output["task_id"], output["request_id"] | |
| await asyncio.sleep(20) | |
| tries = 0 | |
| image_url = None | |
| resp = await AsyncClient().getImages(task_id, request_id) | |
| while True: | |
| if resp["code"] == 2: | |
| image_url = resp["img_urls"] | |
| break | |
| if tries > 15: | |
| break | |
| await asyncio.sleep(5) | |
| resp = await AsyncClient().getImages(task_id, request_id) | |
| tries += 1 | |
| continue | |
| return image_url | |
| except Exception as e: | |
| logging.warning(e) | |
| finally: | |
| await AsyncClient().close() | |
| async def UpscaleImages(image: bytes) -> str: | |
| content = await AsyncClient().upscale(image) | |
| await AsyncClient().close() | |
| upscaled_file_path = "upscaled.png" | |
| with open(upscaled_file_path, "wb") as output_file: | |
| output_file.write(content) | |
| return upscaled_file_path | |