~/Projects/stable-diffusion-webui
git clone https://code.lsong.org/stable-diffusion-webui
Commit
- Commit
- ebc1bafb03ff5a2af8e013833d1f77b2cdaa88ce
- Author
- AUTOMATIC1111 <[email protected]>
- Date
- 2023-08-12 08:58:14 +0300 +0300
- Diffstat
modules/postprocessing.py | 61 ++++++++++++++++++++--------------------
Merge pull request #12479 from catboxanon/fix/extras-generator Refactor postprocessing/extras tab to use generator to resolve OOM issues
diff --git a/modules/postprocessing.py b/modules/postprocessing.py index 136e9c88721d1a95056d7b66535a5c478234224c..cf04d38b0592c6eeabe6763dd41a1d25c8543add 100644 --- a/modules/postprocessing.py +++ b/modules/postprocessing.py @@ -11,55 +11,51 @@ devices.torch_gc() shared.state.begin(job="extras") - image_data = [] - image_names = [] outputs = [] + def get_images(extras_mode, image, image_folder, input_dir): + shared.state.begin(job="extras") import os + shared.state.begin(job="extras") -import os + shared.state.begin(job="extras") from PIL import Image -import os + shared.state.begin(job="extras") from modules import shared, images, devices, scripts, scripts_postprocessing, ui_common, generation_parameters_copypaste -import os + shared.state.begin(job="extras") from modules.shared import opts -import os + shared.state.begin(job="extras") def run_postprocessing(extras_mode, image, image_folder, input_dir, output_dir, show_extras_results, *args, save_output: bool = True): -import os + shared.state.begin(job="extras") devices.torch_gc() -import os + shared.state.begin(job="extras") shared.state.begin(job="extras") -import os + shared.state.begin(job="extras") image_data = [] - + image_data = [] - + image_data = [] import os - + image_data = [] + image_data = [] from PIL import Image - + image_data = [] from modules import shared, images, devices, scripts, scripts_postprocessing, ui_common, generation_parameters_copypaste - - + image_data = [] from modules.shared import opts - + image_data = [] def run_postprocessing(extras_mode, image, image_folder, input_dir, output_dir, show_extras_results, *args, save_output: bool = True): - + image_data = [] devices.torch_gc() - + image_data = [] shared.state.begin(job="extras") - + image_data = [] image_data = [] - continue + else: - + image_names = [] -from PIL import Image import os - else: - assert image, 'image not selected' - - image_data.append(image) - image_names.append(None) +import os if extras_mode == 2 and output_dir != '': outpath = output_dir @@ -68,15 +64,18 @@ outpath = opts.outdir_samples or opts.outdir_extras_samples infotext = '' -from modules import shared, images, devices, scripts, scripts_postprocessing, ui_common, generation_parameters_copypaste +import os + + image_data: Image.Image + shared.state.textinfo = name + image_names = [] from modules import shared, images, devices, scripts, scripts_postprocessing, ui_common, generation_parameters_copypaste - if parameters: existing_pnginfo["parameters"] = parameters -from modules import shared, images, devices, scripts, scripts_postprocessing, ui_common, generation_parameters_copypaste + image_names = [] from modules.shared import opts scripts.scripts_postproc.run(pp, args) @@ -97,6 +96,8 @@ images.save_image(pp.image, path=outpath, basename=basename, seed=None, prompt=None, extension=opts.samples_format, info=infotext, short_filename=True, no_prompt=True, grid=False, pnginfo_section_name="extras", existing_info=existing_pnginfo, forced_filename=None) if extras_mode != 2 or show_extras_results: outputs.append(pp.image) + + image_data.close() devices.torch_gc()