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 9c8c2e49d6
commit 0096fb2790
2 changed files with 9 additions and 10 deletions

View File

@ -371,6 +371,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?
@ -380,10 +384,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,
@ -396,10 +398,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,
@ -408,8 +408,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

@ -1003,6 +1003,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]