mirror of
https://github.com/open-webui/open-webui.git
synced 2026-06-05 16:28:32 -05:00
[PR #4448] [MERGED] fix: ComfyUI generation no longer causes FastAPI to stall for all users #37121
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/open-webui/open-webui/pull/4448
Author: @JohnTheNerd
Created: 8/8/2024
Status: ✅ Merged
Merged: 8/8/2024
Merged by: @tjbck
Base:
dev← Head:comfyui-async-fix📝 Commits (1)
958fe96fix: ComfyUI generation no longer causes FastAPI to stall for all users📊 Changes
2 files changed (+4 additions, -3 deletions)
View changed files
📝
backend/apps/images/main.py(+1 -1)📝
backend/apps/images/utils/comfyui.py(+3 -2)📄 Description
Pull Request Checklist
Note to first-time contributors: Please open a discussion post in Discussions and describe your changes before submitting a pull request.
Before submitting, make sure you've checked the following:
devbranch.Changelog Entry
Description
as the get_images() function involves a
while Trueloop while waiting for a response from ComfyUI and is not async, when image generation is running the entire UI becomes unresponsive for all users.furthermore, when image generation takes too long, the Docker health check starts failing.
this is certainly a bad fix as it does not convert everything to async, but rather just puts the blocking loop in a separate thread. however, it at least fixes the problem for now.
Added
n/a
Changed
started running ComfyUI's image generation in a separate thread, instead of blocking the FastAPI thread
Deprecated
n/a
Removed
n/a
Fixed
Security
n/a
Breaking Changes
n/a
Additional Information
simultaneous image generation requests seem to fail after this PR. in contrast, it's way better to fail gracefully than simply hang or crash
this is certainly an ugly fix that I put together just to stop my server from continuously crashing (I share my instance with my friends, and since many people liked Flux which itself is a massive model, my server was down more often than it was up).
a proper fix involves running the ComfyUI stuff in a separate thread, queuing things inside Open-WebUI itself. however, I don't really have time to look at it right now and it's quite bad UX to have the UI hang/crash, so here's an upstream PR until I get to a better fix.
Screenshots or Videos
n/a
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.