Back to projects
Jul 26, 2026
2 min read

Wan2GP Durable Queue

A fork of Wan2GP that adds a durable generation queue — survives RunPod pod stops, browser refreshes, and client disconnects — shipped as two hardened RunPod deployment templates.

Wan2GP Durable Queue is a fork of Wan2GP that fixes its biggest pain point on RunPod: the generation queue lives in the browser session, so stopping a pod (to save money), refreshing the page, or dropping the connection wipes your pending jobs.

What it does

  • Durable queue.zip — every queue mutation writes atomically to /workspace/queue.zip; a SIGTERM handler flushes on pod stop, and Gradio autoloads the queue on startup (completed jobs pruned, pending jobs restored).
  • Hardened pre-built image (ghcr.io/riogesulgon/wan2gp:v3) — tini -g + TINI_SUBREAPER for signal forwarding, gosu privilege drop (the upstream su -p swallows signals), 16 GB swap, SSH, and SageAttention compiled for Ampere/Ada GPUs.
  • Simple clone-and-run template — no custom image build; clones the fork onto the persistent volume and bootstraps wgp.py on the public PyTorch devel base image.
  • _RunPodProxyFix — custom ASGI middleware that rewrites Gradio 307 redirects pointing at internal pod IPs, so the RunPod proxy URL works from the browser.

Full writeup — including every build gotcha (Docker-in-Docker, shallow-clone SHA fetch, SageAttention CUDA_ARCHITECTURES, the Gradio redirect saga) — is in the blog post: Building a durable generation queue for Wan2GP on RunPod.