From 84f5d26d605effe982bfa69a26f6a34facfbb3e5 Mon Sep 17 00:00:00 2001 From: Levi Neely <141506390+lneely@users.noreply.github.com> Date: Mon, 25 May 2026 23:13:03 +0200 Subject: [PATCH] webui: chat rendering refactor + image_read PNG compression --- tools/image_read | 19 +++++++++++++++++++ webui | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/tools/image_read b/tools/image_read index 8dc30f7..ff3af6b 100644 --- a/tools/image_read +++ b/tools/image_read @@ -35,6 +35,25 @@ if not mime: with open(file_path, 'rb') as f: data = f.read() +MAX_SIZE = 128 * 1024 + +if mime == 'image/png' and len(data) > MAX_SIZE: + from PIL import Image + import io + img = Image.open(io.BytesIO(data)) + # progressively scale down until under budget + for scale in [1.0, 0.75, 0.5, 0.35, 0.25]: + buf = io.BytesIO() + if scale < 1.0: + new_size = (int(img.width * scale), int(img.height * scale)) + resized = img.resize(new_size, Image.LANCZOS) + else: + resized = img + resized.save(buf, format='PNG', optimize=True) + data = buf.getvalue() + if len(data) <= MAX_SIZE: + break + b64 = base64.b64encode(data).decode('ascii') print(json.dumps({"isError": False, "content": [ diff --git a/webui b/webui index 6d21f14..aa0e992 160000 --- a/webui +++ b/webui @@ -1 +1 @@ -Subproject commit 6d21f142afda6f870556229e4acfdbb2c5fbfdc4 +Subproject commit aa0e99213dffc26c8ebb54b13946afefbc205b29