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")
|
@app.post("/api/clean")
|
||||||
async def clean_endpoint(
|
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),
|
prompt: str = Form(default=DEFAULT_PROMPT),
|
||||||
model: str = Form(default=DEFAULT_MODEL),
|
model: str = Form(default=DEFAULT_MODEL),
|
||||||
api_key: str | None = Form(default=None),
|
api_key: str | None = Form(default=None),
|
||||||
restore_res: bool = Form(default=True),
|
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)
|
effective_api_key = resolve_api_key(api_key)
|
||||||
if not effective_api_key:
|
if not effective_api_key:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
|
|
@ -61,9 +71,9 @@ async def clean_endpoint(
|
||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
file_bytes = await file.read()
|
file_bytes = await upload_file.read()
|
||||||
finally:
|
finally:
|
||||||
await file.close()
|
await upload_file.close()
|
||||||
|
|
||||||
if not file_bytes:
|
if not file_bytes:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
|
|
@ -83,7 +93,7 @@ async def clean_endpoint(
|
||||||
prompt=prompt,
|
prompt=prompt,
|
||||||
api_key=effective_api_key,
|
api_key=effective_api_key,
|
||||||
model=model,
|
model=model,
|
||||||
restore_res=restore_res,
|
restore_res=effective_restore,
|
||||||
)
|
)
|
||||||
except CleanerError as exc:
|
except CleanerError as exc:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
|
|
|
||||||
|
|
@ -800,6 +800,7 @@
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
|
formData.append("file", selectedFile);
|
||||||
formData.append("image", selectedFile);
|
formData.append("image", selectedFile);
|
||||||
formData.append("prompt", promptTextarea.value);
|
formData.append("prompt", promptTextarea.value);
|
||||||
formData.append("model", modelInput.value.trim() || "meta/muse-image");
|
formData.append("model", modelInput.value.trim() || "meta/muse-image");
|
||||||
|
|
@ -808,11 +809,9 @@
|
||||||
if (apiKey) {
|
if (apiKey) {
|
||||||
formData.append("api_key", apiKey);
|
formData.append("api_key", apiKey);
|
||||||
}
|
}
|
||||||
formData.append(
|
const shouldRestore = restoreResolutionCheckbox.checked ? "true" : "false";
|
||||||
"restore_resolution",
|
formData.append("restore_res", shouldRestore);
|
||||||
restoreResolutionCheckbox.checked ? "true" : "false"
|
formData.append("restore_resolution", shouldRestore);
|
||||||
);
|
|
||||||
|
|
||||||
const response = await fetch("/api/clean", {
|
const response = await fetch("/api/clean", {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
body: formData,
|
body: formData,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue