Added resizing of controlnet image based on noise latent. Fixes a tensor mismatch issue.

This commit is contained in:
user1 2023-05-06 13:10:56 -07:00 committed by Kent Keirsey
parent 63a86eefb4
commit e2a94be336
2 changed files with 9 additions and 10 deletions

View File

@ -366,6 +366,10 @@ class TextToLatentsInvocation(BaseInvocation):
)
)
latents_shape = noise.shape
control_height_resize = latents_shape[2] * 8
control_width_resize = latents_shape[3] * 8
# copied from old backend/txt2img.py
# FIXME: still need to test with different widths, heights, devices, dtypes
# and add in batch_size, num_images_per_prompt?
@ -375,10 +379,8 @@ class TextToLatentsInvocation(BaseInvocation):
image=control_image,
# do_classifier_free_guidance=do_classifier_free_guidance,
do_classifier_free_guidance=True,
# width=width,
# height=height,
width=512,
height=512,
width=control_width_resize,
height=control_height_resize,
# batch_size=batch_size * num_images_per_prompt,
# num_images_per_prompt=num_images_per_prompt,
device=control_model.device,
@ -391,10 +393,8 @@ class TextToLatentsInvocation(BaseInvocation):
image=image_,
# do_classifier_free_guidance=do_classifier_free_guidance,
do_classifier_free_guidance=True,
# width=width,
# height=height,
width=512,
height=512,
width=control_width_resize,
height=control_height_resize,
# batch_size=batch_size * num_images_per_prompt,
# num_images_per_prompt=num_images_per_prompt,
device=control_model.device,
@ -403,8 +403,6 @@ class TextToLatentsInvocation(BaseInvocation):
images.append(image_)
control_image = images
# TODO: Verify the noise is the right size
result_latents, result_attention_map_saver = model.latents_from_embeddings(
latents=torch.zeros_like(noise, dtype=torch_dtype(model.device)),

View File

@ -1030,6 +1030,7 @@ class StableDiffusionGeneratorPipeline(StableDiffusionPipeline):
dtype=torch.float16,
do_classifier_free_guidance=True,
):
if not isinstance(image, torch.Tensor):
if isinstance(image, PIL.Image.Image):
image = [image]