diff options
author | AUTOMATIC1111 <16777216c@gmail.com> | 2023-05-11 18:24:44 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-11 18:24:44 +0000 |
commit | b4aaa339d529c81859858f0bedcc72b44fccd3d0 (patch) | |
tree | 4db39eeca52a880b8757b88f947f7fbe240aa5fa | |
parent | ba7ae7b948c307083dcb703ca2bc623cc7506cd0 (diff) | |
parent | da10de022f69e7847bcc64a7914d56246d852e20 (diff) | |
download | stable-diffusion-webui-gfx803-b4aaa339d529c81859858f0bedcc72b44fccd3d0.tar.gz stable-diffusion-webui-gfx803-b4aaa339d529c81859858f0bedcc72b44fccd3d0.tar.bz2 stable-diffusion-webui-gfx803-b4aaa339d529c81859858f0bedcc72b44fccd3d0.zip |
Merge pull request #10290 from akx/smart-live-preview-format
Make live previews use JPEG only for large images
-rw-r--r-- | modules/progress.py | 12 | ||||
-rw-r--r-- | modules/shared.py | 2 |
2 files changed, 11 insertions, 3 deletions
diff --git a/modules/progress.py b/modules/progress.py index 289dd311..c2e37834 100644 --- a/modules/progress.py +++ b/modules/progress.py @@ -95,9 +95,17 @@ def progressapi(req: ProgressRequest): image = shared.state.current_image
if image is not None:
buffered = io.BytesIO()
- image.save(buffered, format=opts.live_previews_format)
+ format = opts.live_previews_format
+ save_kwargs = {}
+ if format == "auto":
+ if max(*image.size) > 256:
+ format = "jpeg"
+ else:
+ format = "png"
+ save_kwargs = {"optimize": True}
+ image.save(buffered, format=format, **save_kwargs)
base64_image = base64.b64encode(buffered.getvalue()).decode('ascii')
- live_preview = f"data:image/{opts.live_previews_format};base64,{base64_image}"
+ live_preview = f"data:image/{format};base64,{base64_image}"
id_live_preview = shared.state.id_live_preview
else:
live_preview = None
diff --git a/modules/shared.py b/modules/shared.py index 210424ac..1df1dd45 100644 --- a/modules/shared.py +++ b/modules/shared.py @@ -420,7 +420,7 @@ options_templates.update(options_section(('infotext', "Infotext"), { options_templates.update(options_section(('ui', "Live previews"), {
"show_progressbar": OptionInfo(True, "Show progressbar"),
"live_previews_enable": OptionInfo(True, "Show live previews of the created image"),
- "live_previews_format": OptionInfo("jpeg", "Live preview file format", gr.Radio, {"choices": ["jpeg", "png", "webp"]}),
+ "live_previews_format": OptionInfo("auto", "Live preview file format", gr.Radio, {"choices": ["auto", "jpeg", "png", "webp"]}),
"show_progress_grid": OptionInfo(True, "Show previews of all images generated in a batch as a grid"),
"show_progress_every_n_steps": OptionInfo(10, "Show new live preview image every N sampling steps. Set to -1 to show after completion of batch.", gr.Slider, {"minimum": -1, "maximum": 32, "step": 1}),
"show_progress_type": OptionInfo("Approx NN", "Image creation progress preview mode", gr.Radio, {"choices": ["Full", "Approx NN", "Approx cheap"]}),
|