mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-01-09 13:50:49 +08:00
Support advanced preview_format option.
- grayscale option for visual debugging - quality option for aggressive reducing L?;format;quality? ex) jpeg => rgb, jpeg, quality 90 L;webp;80 => grayscale, webp, quality 80 L;png => grayscale, png, quality 90 webp;50 => rgb, webp, quality 50
This commit is contained in:
parent
ea7f84b78d
commit
1190d1e758
18
server.py
18
server.py
@ -219,12 +219,24 @@ class PromptServer():
|
||||
if os.path.isfile(file):
|
||||
if 'preview' in request.rel_url.query:
|
||||
with Image.open(file) as img:
|
||||
img = img.convert("RGB") # jpeg doesn't support RGBA
|
||||
preview_info = request.rel_url.query['preview'].split(';')
|
||||
|
||||
if preview_info[0] == "L" or preview_info[0] == "l":
|
||||
img = img.convert("L")
|
||||
image_format = preview_info[1]
|
||||
else:
|
||||
img = img.convert("RGB") # jpeg doesn't support RGBA
|
||||
image_format = preview_info[0]
|
||||
|
||||
quality = 90
|
||||
if preview_info[-1].isdigit():
|
||||
quality = int(preview_info[-1])
|
||||
|
||||
buffer = BytesIO()
|
||||
img.save(buffer, format=request.rel_url.query['preview'], optimize=True, quality=90)
|
||||
img.save(buffer, format=image_format, optimize=True, quality=quality)
|
||||
buffer.seek(0)
|
||||
|
||||
return web.Response(body=buffer.read(), content_type=f'image/{request.rel_url.query}',
|
||||
return web.Response(body=buffer.read(), content_type=f'image/{image_format}',
|
||||
headers={"Content-Disposition": f"filename=\"{filename}\""})
|
||||
|
||||
if 'channel' not in request.rel_url.query:
|
||||
|
||||
@ -54,7 +54,9 @@ export class ComfyApp {
|
||||
* file format for preview
|
||||
* @type {string}
|
||||
*/
|
||||
this.preview_format = "webp";
|
||||
this.preview_format = "webp"; // L;webp;50 -> grayscale, webp, quality 50
|
||||
// jpeg;80 -> rgb, jpeg, quality 80
|
||||
// png -> rgb, png, default quality(=90)
|
||||
}
|
||||
|
||||
static isImageNode(node) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user