From 44ee0769ddb63b4bcf208a0b9865a490d6398c17 Mon Sep 17 00:00:00 2001 From: Qing Date: Wed, 31 Jan 2024 22:10:13 +0800 Subject: [PATCH] fix --input file.jpg --- iopaint/cli.py | 59 ++++++++++++++++++++++--------------------- iopaint/helper.py | 4 ++- iopaint/web_config.py | 2 +- requirements.txt | 1 + 4 files changed, 35 insertions(+), 31 deletions(-) diff --git a/iopaint/cli.py b/iopaint/cli.py index cc1f186..20f6ea7 100644 --- a/iopaint/cli.py +++ b/iopaint/cli.py @@ -5,6 +5,7 @@ import typer from fastapi import FastAPI from loguru import logger from typer import Option +from typer_config import use_json_config from iopaint.const import * from iopaint.runtime import setup_model_dir, dump_environment_info, check_device @@ -92,6 +93,7 @@ def run( @typer_app.command(help="Start IOPaint server") +@use_json_config() def start( host: str = Option("127.0.0.1"), port: int = Option(8080), @@ -163,36 +165,35 @@ def start( from iopaint.schema import ApiConfig app = FastAPI() - api = Api( - app, - ApiConfig( - host=host, - port=port, - model=model, - no_half=no_half, - low_mem=low_mem, - cpu_offload=cpu_offload, - disable_nsfw_checker=disable_nsfw_checker, - local_files_only=local_files_only, - cpu_textencoder=cpu_textencoder if device == Device.cuda else False, - device=device, - input=input, - output_dir=output_dir, - quality=quality, - enable_interactive_seg=enable_interactive_seg, - interactive_seg_model=interactive_seg_model, - interactive_seg_device=interactive_seg_device, - enable_remove_bg=enable_remove_bg, - enable_anime_seg=enable_anime_seg, - enable_realesrgan=enable_realesrgan, - realesrgan_device=realesrgan_device, - realesrgan_model=realesrgan_model, - enable_gfpgan=enable_gfpgan, - gfpgan_device=gfpgan_device, - enable_restoreformer=enable_restoreformer, - restoreformer_device=restoreformer_device, - ), + api_config = ApiConfig( + host=host, + port=port, + model=model, + no_half=no_half, + low_mem=low_mem, + cpu_offload=cpu_offload, + disable_nsfw_checker=disable_nsfw_checker, + local_files_only=local_files_only, + cpu_textencoder=cpu_textencoder if device == Device.cuda else False, + device=device, + input=input, + output_dir=output_dir, + quality=quality, + enable_interactive_seg=enable_interactive_seg, + interactive_seg_model=interactive_seg_model, + interactive_seg_device=interactive_seg_device, + enable_remove_bg=enable_remove_bg, + enable_anime_seg=enable_anime_seg, + enable_realesrgan=enable_realesrgan, + realesrgan_device=realesrgan_device, + realesrgan_model=realesrgan_model, + enable_gfpgan=enable_gfpgan, + gfpgan_device=gfpgan_device, + enable_restoreformer=enable_restoreformer, + restoreformer_device=restoreformer_device, ) + print(api_config.model_dump_json(indent=4)) + api = Api(app, api_config) api.launch() diff --git a/iopaint/helper.py b/iopaint/helper.py index d0a9943..9d08996 100644 --- a/iopaint/helper.py +++ b/iopaint/helper.py @@ -304,7 +304,9 @@ def get_image_ext(img_bytes): def decode_base64_to_image( encoding: str, gray=False ) -> Tuple[np.array, Optional[np.array], Dict]: - if encoding.startswith("data:image/"): + if encoding.startswith("data:image/") or encoding.startswith( + "data:application/octet-stream;base64," + ): encoding = encoding.split(";")[1].split(",")[1] image = Image.open(io.BytesIO(base64.b64decode(encoding))) diff --git a/iopaint/web_config.py b/iopaint/web_config.py index 55ccd98..948957d 100644 --- a/iopaint/web_config.py +++ b/iopaint/web_config.py @@ -60,7 +60,7 @@ def save_config( if str(config.output_dir) == ".": config.output_dir = None - print(config) + print(config.model_dump_json(indent=4)) if config.input and not os.path.exists(config.input): return "[Error] Input file or directory does not exist" diff --git a/requirements.txt b/requirements.txt index 012bb90..10b6634 100644 --- a/requirements.txt +++ b/requirements.txt @@ -19,5 +19,6 @@ piexif==1.1.3 omegaconf easydict gradio +typer-config==1.4.0 Pillow==9.5.0 # for AnyText