diff --git a/README.md b/README.md
index be323024f..2b6d33f0e 100644
--- a/README.md
+++ b/README.md
@@ -133,3 +133,16 @@ the same effect. Use the --no-progressbar-hiding commandline option to revert th
### Prompt validation
Stable Diffusion has a limit for input text length. If your prompt is too long, you will get a
warning in the text output field, showing which parts of your text were truncated and ignored by the model.
+
+### Loopback
+A checkbox for img2img allowing to automatically feed output image as input for the next batch. Equivalent to
+saving output image, and replacing input image with it. Batch count setting controls how many iterations of
+this you get.
+
+Usually, when doing this, you would choose one of many images for the next iteration yourself, so the usefulness
+of this feature may be questionable, but I've managed to get some very nice outputs with it that I wasn't abble
+to get otherwise.
+
+Example: (cherrypicked result; original picture by anon)
+
+
diff --git a/images/loopback.jpg b/images/loopback.jpg
new file mode 100644
index 000000000..39602ebe1
Binary files /dev/null and b/images/loopback.jpg differ
diff --git a/relauncher.py b/relauncher.py
index 3df5e7469..825a31ba7 100644
--- a/relauncher.py
+++ b/relauncher.py
@@ -6,6 +6,6 @@
if n > 0:
print(f'\tRelaunch count: {n}')
os.system("python scripts/webui.py")
- print('Relauncher: Process ending. Relaunching in 0.5s...')
+ print('Relauncher: Process is ending. Relaunching in 0.5s...')
n += 1
time.sleep(0.5)
diff --git a/webui.py b/webui.py
index 6525e80b3..29231770a 100644
--- a/webui.py
+++ b/webui.py
@@ -562,8 +562,7 @@ def sample(init_data, x, conditioning, unconditional_conditioning):
except RuntimeError as e:
err = e
err_msg = f'CRASHED:
Please wait while the program restarts.'
- stats = err_msg
- return [], 1
+ return [], 0, "", err_msg
finally:
if err:
crash(err, '!!Runtime error (txt2img)!!')
@@ -740,8 +739,7 @@ def sample(init_data, x, conditioning, unconditional_conditioning):
except RuntimeError as e:
err = e
err_msg = f'CRASHED:
Please wait while the program restarts.'
- stats = err_msg
- return [], 1
+ return [], 0, "", err_msg
finally:
if err:
crash(err, '!!Runtime error (img2img)!!')
@@ -821,4 +819,4 @@ def run_GFPGAN(image, strength):
theme="default",
)
-demo.launch(server_name='0.0.0.0')
\ No newline at end of file
+demo.launch(show_error=True, server_name='0.0.0.0')
\ No newline at end of file