diff --git a/apps/rmbg/api.py b/apps/rmbg/api.py index fce50f6..ec8d725 100644 --- a/apps/rmbg/api.py +++ b/apps/rmbg/api.py @@ -57,3 +57,25 @@ async def remove_background_file(file: UploadFile = File(...), request: Request process_and_stream(), media_type="application/x-ndjson" ) + +@router.post(settings.file_free_route) +async def remove_background_file_free(file: UploadFile = File(...)): + """ + 免费版本:从上传的文件移除背景(流式返回) + + Args: + file: 上传的图片文件 + + Returns: + 流式响应,包含处理后的图片内容 + """ + content = await file.read() + + async def process_and_stream(): + result = await service.remove_background_from_file(content) + yield json.dumps(result) + "\n" + + return StreamingResponse( + process_and_stream(), + media_type="application/x-ndjson" + ) diff --git a/apps/rmbg/settings.py b/apps/rmbg/settings.py index 6607497..c9bcbcb 100644 --- a/apps/rmbg/settings.py +++ b/apps/rmbg/settings.py @@ -11,6 +11,7 @@ class Settings(BaseSettings): # API路由配置 router_prefix: str = "/rmbg" file_route: str = "/file" + file_free_route: str = "/file/free" batch_route: str = "/batch" api_name: str = "remove_background"