From 33020d826fe983501cc05f4aef589aff678068dc Mon Sep 17 00:00:00 2001 From: "7. Sun" Date: Tue, 27 Jan 2026 20:35:25 +0000 Subject: [PATCH] perf: parallelize image loading in image_edits endpoint (#20911) Use asyncio.gather() to load multiple images concurrently instead of sequentially, significantly reducing latency for multi-image edit operations. --- backend/open_webui/routers/images.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/open_webui/routers/images.py b/backend/open_webui/routers/images.py index 0fc6930b81..464b1742e1 100644 --- a/backend/open_webui/routers/images.py +++ b/backend/open_webui/routers/images.py @@ -910,7 +910,8 @@ async def image_edits( if isinstance(form_data.image, str): form_data.image = await load_url_image(form_data.image) elif isinstance(form_data.image, list): - form_data.image = [await load_url_image(img) for img in form_data.image] + # Load all images in parallel for better performance + form_data.image = list(await asyncio.gather(*[load_url_image(img) for img in form_data.image])) except Exception as e: raise HTTPException(status_code=400, detail=ERROR_MESSAGES.DEFAULT(e))