copy metadata into modified image

This commit is contained in:
Chris 2023-08-29 18:34:43 +10:00
parent 65cae62c71
commit edcff9ab8a
1 changed files with 5 additions and 1 deletions

View File

@ -12,6 +12,7 @@ import json
import glob import glob
import struct import struct
from PIL import Image, ImageOps from PIL import Image, ImageOps
from PIL.PngImagePlugin import PngInfo
from io import BytesIO from io import BytesIO
try: try:
@ -233,13 +234,16 @@ class PromptServer():
if os.path.isfile(file): if os.path.isfile(file):
with Image.open(file) as original_pil: with Image.open(file) as original_pil:
metadata = PngInfo()
for key in original_pil.text:
metadata.add_text(key, original_pil.text[key])
original_pil = original_pil.convert('RGBA') original_pil = original_pil.convert('RGBA')
mask_pil = Image.open(image.file).convert('RGBA') mask_pil = Image.open(image.file).convert('RGBA')
# alpha copy # alpha copy
new_alpha = mask_pil.getchannel('A') new_alpha = mask_pil.getchannel('A')
original_pil.putalpha(new_alpha) original_pil.putalpha(new_alpha)
original_pil.save(filepath, compress_level=4) original_pil.save(filepath, compress_level=4, pnginfo=metadata)
return image_upload(post, image_save_function) return image_upload(post, image_save_function)