InvokeAI/ldm/invoke/generator
Lincoln Stein c8a9848ad6
correct a crash in img2img under particular circumstances (#2088)
When using the inpainting model, the following sequence of events
would cause a predictable crash:

1. Use unified canvas to outcrop a portion of the image.
2. Accept outcropped image and import into img2img
3. Try any img2img operation

This closes #1596.

The crash was:

```
operands could not be broadcast together with shapes (320,512) (512,576)

Traceback (most recent call last):
  File "/data/lstein/InvokeAI/backend/invoke_ai_web_server.py", line 1125, in generate_images
    self.generate.prompt2image(
  File "/data/lstein/InvokeAI/ldm/generate.py", line 492, in prompt2image
    results = generator.generate(
  File "/data/lstein/InvokeAI/ldm/invoke/generator/base.py", line 98, in generate
    image = make_image(x_T)
  File "/data/lstein/InvokeAI/ldm/invoke/generator/omnibus.py", line 138, in make_image
    return self.sample_to_image(samples)
  File "/data/lstein/InvokeAI/ldm/invoke/generator/omnibus.py", line 173, in sample_to_image
    corrected_result = super(Img2Img, self).repaste_and_color_correct(gen_result, self.pil_image, self.pil_mask, self.mask_blur_radius)
  File "/data/lstein/InvokeAI/ldm/invoke/generator/base.py", line 148, in repaste_and_color_correct
    mask_pixels = init_a_pixels * init_mask_pixels > 0
ValueError: operands could not be broadcast together with shapes (320,512) (512,576)
```

This error was caused by the image and its mask not being of identical
size due to the outcropping operation. The ultimate cause of this
error has something to do with different code paths being followed in
the `inpaint` vs the `omnibus` modules.

Since omnibus will be obsoleted by diffusers, I have chosen just to
work around the problem rather than track it down to its source. The
only ill effect is that color correction will not be applied to the
first image created by `img2img` after applying the outcrop and
immediately importing into the img2img canvas. Since the inpainting
model has less of a color drift problem than the standard model, this
is unlikely to be problematic.
2022-12-22 14:53:23 +00:00
..
__init__.py rename all modules from ldm.dream to ldm.invoke 2022-10-08 11:37:23 -04:00
base.py Fix: define path as None before usage 2022-12-13 19:46:03 -05:00
embiggen.py Global replace [ \t]+$, add "GB" (#1751) 2022-12-19 16:36:39 +00:00
img2img.py Correct timestep for img2img initial noise addition (#1946) 2022-12-15 15:59:19 -05:00
inpaint.py defer patchmatch loading (#2039) 2022-12-20 15:32:35 -08:00
omnibus.py correct a crash in img2img under particular circumstances (#2088) 2022-12-22 14:53:23 +00:00
txt2img2img.py Correct timestep for img2img initial noise addition (#1946) 2022-12-15 15:59:19 -05:00
txt2img.py Reduce more memories on free_gpu_mem option (#1915) 2022-12-11 13:49:55 -05:00