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

View File

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