Repository: stable-diffusion-webui
Issue: [Feature Request]: Flying through latent space: Img2img workflow - evolution using human guidance and loopback batching!
Labels: enhancement

### Is there an existing issue for this?

- [X] I have searched the existing issues and checked the recent builds/commits

### What would your feature do ?

Create an img2img mode that is fun, playful, creative, easier without complex prompting, or just more relaxing.

It's much easier to "curate" random compositional differences, than to write a prompt and find the right seed that creates a perfect composition.

Like depth guidance, img2img loopback follows the structure of the input image closely, but the workflow could be improved so you can guide multiple evolutionary streams simultaneously.

I propose a new UI where the Loopback generation automatically keeps on rolling if you don't click an image, click restart, or click stop. It could be updating 1 image in turn, with a new random seed each time, or all 6 in a batch, depending on hardware. It wouldn't need to show the blurry intemediate steps during generation, just the final image.



### Proposed workflow

Like normal img2img, choose an initial input image, set the size, put a prompt in, set cfg and denoising rate as normal, and press an "interactive evolution" button to pop up a full screen window. 

Landscape image evolution UI:

![image](https://user-images.githubusercontent.com/36384924/218583740-3b55326d-2717-4d59-8cec-078bdcf611e5.png)

Portrait image UI evolution (simplifed):

![image](https://user-images.githubusercontent.com/36384924/218501407-c1eedeff-cf64-4c59-8c70-3d6b6b896fd5.png)

The artist can then direct multiple continous loopback processes, guiding the evolution, by clicking on an image they like. That image then becomes a "parent" and will then be used as the input image for loopback on all 6, and the evolution process continues. By random chance + intervention the artist can orchestrate the evolution of interesting images.

If one image is evolving unsatisfactorily, the artist can click "back" under that one image, to go back one step or to the 'last good' parent generation image they clicked (which migh the original input image) and let the random seed process take it in a new direction.

If all six are evolving unsatisfactorily, the artist can make all six images go back one step or one generation.

A full screen interface is more suitable for widescreen HD+ monitors that most people will be using, making this a fun new flagship feature?

The new screen generates continuously, each image is looped back onto itself, over and over. The 6 streams will diverge naturally! When you click an image, it then uses that image for input of all 6 images, which is "starting a new generation" of evolution. 

The "pause" button and a "go back one step" buttons are "nice to have". I think the "Restart Generation" aka "All back one gen" button is the only necessary one, that just goes back to the last image clicked, or the original input image if none have been clicked yet. Another feature could be "auto pause mode" where it just creates 6 new images, and pauses, waiting for you to select which one will be the new "parent" for all 6 for the next generation.

Suggested settings:

- low steps so generation is quite quick
- low denoising - e.g. 0.3 to 0.5. Something like DPM++ 2M and DPM++ SDE seem to work nicely at 0.3-0.4, but loopback using Euler A at 0.2 often just makes it blurry, and DDIM at 0.2 with low steps will just make it wobbly. Various settings also make speckle patterns appear, or the colours to become pop art. There's a sd-dynamic thresholding script that helps with that a little.




### Additional information


- You will probably have noticed that Img2img with denoising strength at 0.2 repeated with loopback 4 times is not the same as denoising once at 0.8. In fact, 0.3 denoising looped 32 times results in far less of a structure/composition change than once at 0.8.  Loopback can follow structure better, even without depth guidance. Also, each loopback output is a good sharp image, unlike intermediate images. Showing them would be a distraction.
- rather than just seed differences, images could diverges using random style, lora, hypernetwork, ti or prompt keyword / dropout, rather than just seed.  Or, like disco diffusion, they could have some geometric zooming, panning etc. 
- with enough VRAM you could load multiple models and evolve with multiple random models simultaneously
- It could also use depth guidance, not just img2img loopback.
- could also work as a screensaver that also turns your computer into a room heater and fills your hard drive with PNGs