diff --git a/modules/call_queue.py b/modules/call_queue.py index e92b2dd6914..a4eefcda4bd 100644 --- a/modules/call_queue.py +++ b/modules/call_queue.py @@ -81,7 +81,16 @@ def sagemaker_inference(task, infer, username, sagemaker_endpoint, *args, **kwar if task == 'text-to-image': script_args = [] for i in range(23, len(args)): - script_args.append(args[i]) + if(isinstance(args[i], dict)): + script_arg = {} + for key in args[i]: + if key == 'image' or key == 'mask': + script_arg[key] = encode_image_to_base64(Image.fromarray(args[i][key])) + else: + script_arg[key] = args[i][key] + script_args.append(script_arg) + else: + script_args.append(args[i]) prompt = args[0] negative_prompt = args[1] @@ -180,7 +189,16 @@ def sagemaker_inference(task, infer, username, sagemaker_endpoint, *args, **kwar script_args = [] for i in range(36, len(args)): - script_args.append(args[i]) + if(isinstance(args[i], dict)): + script_arg = {} + for key in args[i]: + if key == 'image' or key == 'mask': + script_arg[key] = encode_image_to_base64(Image.fromarray(args[i][key])) + else: + script_arg[key] = args[i][key] + script_args.append(script_arg) + else: + script_args.append(args[i]) if mode == 1: # Drawn mask diff --git a/modules/processing.py b/modules/processing.py index 3f22d9487bf..69c2a5e2d43 100644 --- a/modules/processing.py +++ b/modules/processing.py @@ -21,7 +21,8 @@ import modules.images as images import modules.styles import logging - +import base64 +import io # some of those options should not be changed at all because they would break the model, so I removed them from options. opt_C = 4 @@ -117,6 +118,11 @@ def __init__(self, sd_model=None, outpath_samples=None, outpath_grids=None, prom self.script_args = json.loads(script_args) if script_args != None else None + if self.script_args: + for key in self.script_args: + if key == 'image' or key == 'mask': + self.script_arg[key] = Image.open(io.BytesIO(base64.b64decode(self.script_args[key]))) + if not seed_enable_extras: self.subseed = -1 self.subseed_strength = 0 @@ -124,7 +130,6 @@ def __init__(self, sd_model=None, outpath_samples=None, outpath_grids=None, prom self.seed_resize_from_w = 0 self.scripts = None - self.script_args = None self.all_prompts = None self.all_negative_prompts = None self.all_seeds = None