Merge pull request #6819 from dxrpl/fix/6818-image-routes-bad-input

fix(gallery): answer 400 for a missing or invalid image on the image-edit routes (#6818)
This commit is contained in:
Alexandre Teixeira
2026-10-30 19:01:11 +00:00
committed by GitHub
2 changed files with 52 additions and 11 deletions
+6 -11
View File
@@ -2433,11 +2433,10 @@ def setup_gallery_routes() -> APIRouter:
image_b64 = body.get("image")
amount = body.get("amount", 50) / 100.0
from PIL import Image, ImageFilter
from PIL import ImageFilter
import base64, io
img_bytes = _b64_bytes(image_b64)
img = Image.open(io.BytesIO(img_bytes)).convert("RGB")
img = _b64_to_pil_image(image_b64, mode="RGB")
# Unsharp mask: radius=2, percent=amount*200, threshold=3
sharpened = img.filter(ImageFilter.UnsharpMask(radius=2, percent=int(amount * 200), threshold=3))
@@ -2472,8 +2471,7 @@ def setup_gallery_routes() -> APIRouter:
except ImportError:
raise HTTPException(500, "Server missing a required dependency")
# Decode source image (RGB; Real-ESRGAN doesn't preserve alpha).
img_bytes = _b64_bytes(image_b64)
src = Image.open(io.BytesIO(img_bytes)).convert("RGB")
src = _b64_to_pil_image(image_b64, mode="RGB")
try:
patch_realesrgan_torchvision_compat()
from realesrgan import RealESRGANer
@@ -2525,8 +2523,7 @@ def setup_gallery_routes() -> APIRouter:
import numpy as np
except ImportError:
raise HTTPException(500, "Server missing a required dependency")
img_bytes = _b64_bytes(image_b64)
src = Image.open(io.BytesIO(img_bytes)).convert("RGB")
src = _b64_to_pil_image(image_b64, mode="RGB")
try:
patch_realesrgan_torchvision_compat()
from basicsr.archs.rrdbnet_arch import RRDBNet
@@ -2778,8 +2775,7 @@ def setup_gallery_routes() -> APIRouter:
from PIL import Image
import base64, io
img_bytes = _b64_bytes(image_b64)
img = Image.open(io.BytesIO(img_bytes)).convert("RGBA")
img = _b64_to_pil_image(image_b64)
W, H = img.size
hint = None
@@ -2868,8 +2864,7 @@ def setup_gallery_routes() -> APIRouter:
from PIL import Image, ImageFilter, ImageEnhance
import numpy as np
img_bytes = _b64_bytes(image_b64)
img = Image.open(io.BytesIO(img_bytes)).convert("RGB")
img = _b64_to_pil_image(image_b64, mode="RGB")
# Try GFPGAN first (AI face restoration)
try: