api resiliency improvements

Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
Vladimir Mandic
2024-11-21 11:28:19 -05:00
parent a5c8bb57c7
commit fa5de3dc22
7 changed files with 81 additions and 35 deletions
+2 -2
View File
@@ -110,10 +110,10 @@ class APIGenerate():
setattr(p, key, value)
shared.state.begin('API TXT', api=True)
script_args = script.init_script_args(p, txt2imgreq, self.default_script_arg_txt2img, selectable_scripts, selectable_script_idx, script_runner)
p.script_args = tuple(script_args) # Need to pass args as tuple here
if selectable_scripts is not None:
processed = scripts.scripts_txt2img.run(p, *script_args) # Need to pass args as list here
else:
p.script_args = tuple(script_args) # Need to pass args as tuple here
processed = process_images(p)
shared.state.end(api=False)
if processed is None or processed.images is None or len(processed.images) == 0:
@@ -160,10 +160,10 @@ class APIGenerate():
setattr(p, key, value)
shared.state.begin('API-IMG', api=True)
script_args = script.init_script_args(p, img2imgreq, self.default_script_arg_img2img, selectable_scripts, selectable_script_idx, script_runner)
p.script_args = tuple(script_args) # Need to pass args as tuple here
if selectable_scripts is not None:
processed = scripts.scripts_img2img.run(p, *script_args) # Need to pass args as list here
else:
p.script_args = tuple(script_args) # Need to pass args as tuple here
processed = process_images(p)
shared.state.end(api=False)
if processed is None or processed.images is None or len(processed.images) == 0:
+5 -1
View File
@@ -18,10 +18,14 @@ def decode_base64_to_image(encoding, quiet=False):
if encoding.startswith("data:image/"):
encoding = encoding.split(";")[1].split(",")[1]
try:
image = Image.open(io.BytesIO(base64.b64decode(encoding)))
decoded = base64.b64decode(encoding)
data = io.BytesIO(decoded)
image = Image.open(data)
return image
except Exception as e:
shared.log.warning(f'API cannot decode image: {e}')
from modules import errors
errors.display(e, 'API cannot decode image')
if not quiet:
raise HTTPException(status_code=500, detail="Invalid encoded image") from e
return None