Browse Source

Limit preview to webp and RGB jpeg.

pull/717/merge
comfyanonymous 1 year ago
parent
commit
2ec980bb9f
  1. 13
      server.py
  2. 5
      web/scripts/ui.js

13
server.py

@ -221,19 +221,18 @@ class PromptServer():
with Image.open(file) as img: with Image.open(file) as img:
preview_info = request.rel_url.query['preview'].split(';') preview_info = request.rel_url.query['preview'].split(';')
if preview_info[0] == "L" or preview_info[0] == "l": image_format = preview_info[0]
img = img.convert("L") if image_format not in ['webp', 'jpeg']:
image_format = preview_info[1] image_format = 'webp'
else:
img = img.convert("RGB") # jpeg doesn't support RGBA
image_format = preview_info[0]
quality = 90 quality = 90
if preview_info[-1].isdigit(): if preview_info[-1].isdigit():
quality = int(preview_info[-1]) quality = int(preview_info[-1])
buffer = BytesIO() buffer = BytesIO()
img.save(buffer, format=image_format, optimize=True, quality=quality) if image_format in ['jpeg']:
img = img.convert("RGB")
img.save(buffer, format=image_format, quality=quality)
buffer.seek(0) buffer.seek(0)
return web.Response(body=buffer.read(), content_type=f'image/{image_format}', return web.Response(body=buffer.read(), content_type=f'image/{image_format}',

5
web/scripts/ui.js

@ -465,12 +465,11 @@ export class ComfyUI {
/** /**
* file format for preview * file format for preview
* *
* L?;format;quality * format;quality
* *
* ex) * ex)
* L;webp;50 -> grayscale, webp, quality 50 * webp;50 -> webp, quality 50
* jpeg;80 -> rgb, jpeg, quality 80 * jpeg;80 -> rgb, jpeg, quality 80
* png -> rgb, png, default quality(=90)
* *
* @type {string} * @type {string}
*/ */

Loading…
Cancel
Save