refactor: address review feedback on multipart field compatibility and form serialization
This commit is contained in:
parent
505ded0493
commit
6650298c3d
2 changed files with 18 additions and 9 deletions
18
app.py
18
app.py
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue