mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-01-27 23:00:20 +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 os.path.isfile(file):
|
||||||
if 'preview' in request.rel_url.query:
|
if 'preview' in request.rel_url.query:
|
||||||
with Image.open(file) as img:
|
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()
|
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)
|
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}\""})
|
headers={"Content-Disposition": f"filename=\"{filename}\""})
|
||||||
|
|
||||||
if 'channel' not in request.rel_url.query:
|
if 'channel' not in request.rel_url.query:
|
||||||
|
|||||||
@ -54,7 +54,9 @@ export class ComfyApp {
|
|||||||
* file format for preview
|
* file format for preview
|
||||||
* @type {string}
|
* @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) {
|
static isImageNode(node) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user