Add image_url input mode (service fetches the image)
/remove-background now accepts either an uploaded `file` or an `image_url` the service fetches itself (exactly one required). The fetch runs BEFORE the compute gate so a slow download never holds a pool slot, and is bounded by its own semaphore (2 x cpu_workers, hard cap 64) plus a shared httpx client (connection reuse, matching max_connections) -- this restores the throttling a direct upload has implicitly, so a burst of tiny URL requests can't exhaust FDs/ephemeral ports or hammer the upstream. Bounds: 25 MB body cap (413), 5 s connect / 15 s read timeout, <=3 redirects; MAX_IMAGE_PIXELS still applies post-decode. Deliberately NO SSRF filtering (no private-IP/host allowlist) -- the endpoint trusts authenticated callers; auth runs before any fetch. Do not expose to untrusted clients without adding private-address/redirect filtering to _fetch_image. Adds httpx. New env knobs BGFILTER_FETCH_MAX_BYTES / BGFILTER_FETCH_TIMEOUT. Docs (README/README_ZH/DEPLOY/DEPLOY_ZH) updated. _fetch_image unit-tested locally (happy path, size cap ->413, bad scheme ->400, 404 ->400); on-box end-to-end still pending (test box went offline). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -21,3 +21,4 @@ PyYAML
|
||||
fastapi
|
||||
uvicorn[standard]
|
||||
python-multipart
|
||||
httpx
|
||||
|
||||
Reference in New Issue
Block a user