tempfile handling

pull/2440/head
Vladimir Mandic 2023-11-03 18:26:12 -04:00
parent 611598d22f
commit 413da5a14a
1 changed files with 6 additions and 3 deletions

View File

@ -3,7 +3,7 @@ import tempfile
from collections import namedtuple
from pathlib import Path
import gradio as gr
from PIL import PngImagePlugin
from PIL import Image, PngImagePlugin
from modules import shared, errors
@ -36,7 +36,7 @@ def check_tmp_file(gradio, filename):
return ok
def pil_to_temp_file(self, img, dir: str, format="png") -> str: # pylint: disable=redefined-builtin,unused-argument
def pil_to_temp_file(self, img: Image, dir: str, format="png") -> str: # pylint: disable=redefined-builtin,unused-argument
"""
# original gradio implementation
bytes_data = gr.processing_utils.encode_pil_to_bytes(img, format)
@ -62,9 +62,12 @@ def pil_to_temp_file(self, img, dir: str, format="png") -> str: # pylint: disabl
if isinstance(key, str) and isinstance(value, str):
metadata.add_text(key, value)
use_metadata = True
if not os.path.exists(dir):
os.makedirs(dir, exist_ok=True)
shared.log.debug(f'Created temp folder: path="{dir}"')
with tempfile.NamedTemporaryFile(delete=False, suffix=".png", dir=dir) as tmp:
img.save(tmp, pnginfo=(metadata if use_metadata else None))
name = tmp.name
img.save(name, pnginfo=(metadata if use_metadata else None))
shared.log.debug(f'Saving temp: image="{name}"')
return name