Files

Real-ESRGAN Upscale Worker (#7)

RunPod Serverless worker for Real-ESRGAN image super-resolution with optional GFPGAN face enhancement.

  • Dockerfile path: /workers/upscale/Dockerfile
  • Build context: repository ROOT (COPY paths are prefixed with workers/upscale/).
  • GPU: medium (RTX 3090 / RTX 4090, ~24 GB VRAM).
  • App env var to set: RUNPOD_UPSCALE_URL (point your app at this endpoint's RunPod URL).

Contract

Input:

{"image": "<base64 PNG/JPEG, optional data: prefix>", "scale": 2 or 4 (default 4), "face_enhance": false}

Output (success):

{"image": "<base64 PNG>"}

Output (error):

{"error": "SomeError: message"}

Model weights

Downloaded on first request and cached to the network volume when mounted:

  • RealESRGAN_x4plus.pth (RRDBNet x4) -> /runpod-volume/weights/
  • GFPGANv1.4.pth (only when face_enhance=true) -> /runpod-volume/weights/

Attach a network volume mounted at /runpod-volume so weights (and HF_HOME) persist between cold starts. Without a volume, weights download to /app/weights per container.

Notes

The base model is x4; scale=2 is produced via RealESRGANer's outscale parameter. For face_enhance, GFPGAN upscales at its fixed factor and the result is resized to the requested scale.