diff --git a/modules/processing_diffusers.py b/modules/processing_diffusers.py index dffeaf780..e16a10899 100644 --- a/modules/processing_diffusers.py +++ b/modules/processing_diffusers.py @@ -183,6 +183,8 @@ def process_base(p: processing.StableDiffusionProcessing): output = SimpleNamespace(**output) if isinstance(output, list): output = SimpleNamespace(images=output) + if isinstance(output, Image.Image): + output = SimpleNamespace(images=[output]) if hasattr(output, 'images'): shared.history.add(output.images, info=processing.create_infotext(p), ops=p.ops) timer.process.record('pipeline') @@ -196,7 +198,7 @@ def process_base(p: processing.StableDiffusionProcessing): else: shared.log.debug(f'Generated: frames={len(output.frames[0])}') output.images = output.frames[0] - if isinstance(output.images, np.ndarray): + if hasattr(output, 'images') and isinstance(output.images, np.ndarray): output.images = torch.from_numpy(output.images) except AssertionError as e: shared.log.info(e) diff --git a/pipelines/model_hyimage.py b/pipelines/model_hyimage.py index 6ea7f174a..644295d0f 100644 --- a/pipelines/model_hyimage.py +++ b/pipelines/model_hyimage.py @@ -1,3 +1,4 @@ +from types import SimpleNamespace import torch import transformers import diffusers @@ -102,7 +103,7 @@ class HunyuanImage3Wrapper(torch.nn.Module): else: image_size = (height, width) - return self.model.generate_image( + output = self.model.generate_image( prompt, image_size=(height, width), diff_infer_steps=num_inference_steps, @@ -112,3 +113,7 @@ class HunyuanImage3Wrapper(torch.nn.Module): callback_on_step_end_tensor_inputs=callback_on_step_end_tensor_inputs, **kwargs, ) + + if not isinstance(output, list): + output = [output] + return SimpleNamespace(images=output)