|
7 | 7 | import os |
8 | 8 | import shutil |
9 | 9 | import traceback |
| 10 | +from pathlib import Path |
10 | 11 | from threading import Event |
11 | 12 | from uuid import uuid4 |
12 | 13 |
|
13 | 14 | import eventlet |
14 | | -from pathlib import Path |
| 15 | +import invokeai.frontend.dist as frontend |
15 | 16 | from PIL import Image |
16 | 17 | from PIL.Image import Image as ImageType |
| 18 | +from compel.prompt_parser import Blend |
17 | 19 | from flask import Flask, redirect, send_from_directory, request, make_response |
18 | 20 | from flask_socketio import SocketIO |
19 | 21 | from werkzeug.utils import secure_filename |
|
22 | 24 | get_canvas_generation_mode, |
23 | 25 | ) |
24 | 26 | from invokeai.backend.modules.parameters import parameters_to_command |
25 | | -import invokeai.frontend.dist as frontend |
26 | 27 | from ldm.generate import Generate |
27 | 28 | from ldm.invoke.args import Args, APP_ID, APP_VERSION, calculate_init_img_hash |
28 | | -from ldm.invoke.conditioning import get_tokens_for_prompt_object, get_prompt_structure, split_weighted_subprompts, \ |
29 | | - get_tokenizer |
| 29 | +from ldm.invoke.conditioning import get_tokens_for_prompt_object, get_prompt_structure, get_tokenizer |
30 | 30 | from ldm.invoke.generator.diffusers_pipeline import PipelineIntermediateState |
31 | 31 | from ldm.invoke.generator.inpaint import infill_methods |
32 | 32 | from ldm.invoke.globals import Globals, global_converted_ckpts_dir |
33 | | -from ldm.invoke.pngwriter import PngWriter, retrieve_metadata |
34 | | -from compel.prompt_parser import Blend |
35 | 33 | from ldm.invoke.globals import global_models_dir |
36 | 34 | from ldm.invoke.merge_diffusers import merge_diffusion_models |
| 35 | +from ldm.invoke.pngwriter import PngWriter, retrieve_metadata |
37 | 36 |
|
38 | 37 | # Loading Arguments |
39 | 38 | opt = Args() |
@@ -1063,7 +1062,7 @@ def image_progress(sample, step): |
1063 | 1062 | (width, height) = image.size |
1064 | 1063 | width *= 8 |
1065 | 1064 | height *= 8 |
1066 | | - img_base64 = image_to_dataURL(image) |
| 1065 | + img_base64 = image_to_dataURL(image, image_format="JPEG") |
1067 | 1066 | self.socketio.emit( |
1068 | 1067 | "intermediateResult", |
1069 | 1068 | { |
@@ -1724,10 +1723,11 @@ def dataURL_to_image(dataURL: str) -> ImageType: |
1724 | 1723 | """ |
1725 | 1724 |
|
1726 | 1725 |
|
1727 | | -def image_to_dataURL(image: ImageType) -> str: |
| 1726 | +def image_to_dataURL(image: ImageType, image_format:str="PNG") -> str: |
1728 | 1727 | buffered = io.BytesIO() |
1729 | | - image.save(buffered, format="PNG") |
1730 | | - image_base64 = "data:image/png;base64," + base64.b64encode( |
| 1728 | + image.save(buffered, format=image_format) |
| 1729 | + mime_type = Image.MIME.get(image_format.upper(), "image/" + image_format.lower()) |
| 1730 | + image_base64 = f"data:{mime_type};base64," + base64.b64encode( |
1731 | 1731 | buffered.getvalue() |
1732 | 1732 | ).decode("UTF-8") |
1733 | 1733 | return image_base64 |
|
0 commit comments