refactor: address review feedback on multipart field compatibility and form serialization

This commit is contained in:
Schmidt Till (CSS TO PME DSI PAO MUC) 2026-09-10 23:32:40 +02:00
parent 505ded0493
commit 6650298c3d
2 changed files with 18 additions and 9 deletions

18
app.py
View file

@ -47,12 +47,22 @@ def read_root():
@app.post("/api/clean")
async def clean_endpoint(
file: UploadFile = File(...),
file: UploadFile | None = File(default=None),
image: UploadFile | None = File(default=None),
prompt: str = Form(default=DEFAULT_PROMPT),
model: str = Form(default=DEFAULT_MODEL),
api_key: str | None = Form(default=None),
restore_res: bool = Form(default=True),
restore_resolution: bool | None = Form(default=None),
):
upload_file = file or image
if upload_file is None:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail="Image file is required (field 'file' or 'image').",
)
effective_restore = restore_resolution if restore_resolution is not None else restore_res
effective_api_key = resolve_api_key(api_key)
if not effective_api_key:
raise HTTPException(
@ -61,9 +71,9 @@ async def clean_endpoint(
)
try:
file_bytes = await file.read()
file_bytes = await upload_file.read()
finally:
await file.close()
await upload_file.close()
if not file_bytes:
raise HTTPException(
@ -83,7 +93,7 @@ async def clean_endpoint(
prompt=prompt,
api_key=effective_api_key,
model=model,
restore_res=restore_res,
restore_res=effective_restore,
)
except CleanerError as exc:
raise HTTPException(

View file

@ -800,6 +800,7 @@
try {
const formData = new FormData();
formData.append("file", selectedFile);
formData.append("image", selectedFile);
formData.append("prompt", promptTextarea.value);
formData.append("model", modelInput.value.trim() || "meta/muse-image");
@ -808,11 +809,9 @@
if (apiKey) {
formData.append("api_key", apiKey);
}
formData.append(
"restore_resolution",
restoreResolutionCheckbox.checked ? "true" : "false"
);
const shouldRestore = restoreResolutionCheckbox.checked ? "true" : "false";
formData.append("restore_res", shouldRestore);
formData.append("restore_resolution", shouldRestore);
const response = await fetch("/api/clean", {
method: "POST",
body: formData,