From 144ea0891ff51da74f72d046023389ede5db1329 Mon Sep 17 00:00:00 2001 From: Sam Bhattacharyya Date: Fri, 13 Nov 2026 09:34:45 -0600 Subject: [PATCH] Add WebSR GAN-S and GAN-M (new architecture: WebSR UNet, ONNX) --- data/architectures.json | 7 +++++++ data/models/2x-WebSR-GAN-M.json | 30 ++++++++++++++++++++++++++++++ data/models/2x-WebSR-GAN-S.json | 30 ++++++++++++++++++++++++++++++ data/tags.json | 4 ++++ data/users.json | 3 +++ 5 files changed, 74 insertions(+) create mode 100644 data/models/2x-WebSR-GAN-M.json create mode 100644 data/models/2x-WebSR-GAN-S.json diff --git a/data/architectures.json b/data/architectures.json index bd9a71ec..0f83a1f3 100644 --- a/data/architectures.json +++ b/data/architectures.json @@ -252,5 +252,12 @@ "pytorch", "onnx" ] + }, + "websr-unet": { + "name": "WebSR UNet", + "input": "image", + "compatiblePlatforms": [ + "onnx" + ] } } \ No newline at end of file diff --git a/data/models/2x-WebSR-GAN-M.json b/data/models/2x-WebSR-GAN-M.json new file mode 100644 index 00000000..b27e9d97 --- /dev/null +++ b/data/models/2x-WebSR-GAN-M.json @@ -0,0 +1,30 @@ +{ + "name": "WebSR GAN-M", + "author": "sb2702", + "license": "MIT", + "tags": [ + "general-upscaler", + "photo", + "video-frame" + ], + "description": "Purpose: Fast, general-purpose 2x upscaling of real-world video and images\n\nA small UNet distilled from [RealESR General x4 v3](https://openmodeldb.info/models/4x-realesr-general-x4v3) for fast inference in the browser (WebGPU). It adapts to the content: a tiny gate network looks at a 32x32 thumbnail of the frame and blends 2 weight banks, so one model handles a range of sources. WebSR GAN-M is the higher-capacity variant; see also [WebSR GAN-S](https://openmodeldb.info/models/2x-WebSR-GAN-S).\n\nRuns in production in [free.upscaler.video](https://free.upscaler.video), a free in-browser video upscaler used by ~25k people every day, as one of its \"Detail\" models.\n\n**ONNX file:** one image in (`rgb`, RGB float32 in [0, 1], NCHW, any size), one image out (2x). Output is not clamped; clip to [0, 1]. For video, use the separate calibrate + upscale graphs so the look stays consistent across frames: see the [model card](https://huggingface.co/katana-video/websr).\n\nBrowser (WebGPU) version: [WebSR](https://github.com/sb2702/websr) (`websr/gan-m`).", + "date": "2026-11-12", + "architecture": "websr-unet", + "size": null, + "scale": 2, + "inputChannels": 3, + "outputChannels": 3, + "resources": [ + { + "platform": "onnx", + "type": "onnx", + "size": 16635376, + "sha256": "2318eef9da0b8b8433f00c5bf1215865e848fee9d738b3554fd885fb98c00724", + "urls": [ + "https://huggingface.co/katana-video/websr/resolve/main/onnx/gan-m_image.onnx" + ] + } + ], + "trainingIterations": 298000, + "images": [] +} \ No newline at end of file diff --git a/data/models/2x-WebSR-GAN-S.json b/data/models/2x-WebSR-GAN-S.json new file mode 100644 index 00000000..5142a103 --- /dev/null +++ b/data/models/2x-WebSR-GAN-S.json @@ -0,0 +1,30 @@ +{ + "name": "WebSR GAN-S", + "author": "sb2702", + "license": "MIT", + "tags": [ + "general-upscaler", + "photo", + "video-frame" + ], + "description": "Purpose: Fast, general-purpose 2x upscaling of real-world video and images\n\nA small UNet distilled from [RealESR General x4 v3](https://openmodeldb.info/models/4x-realesr-general-x4v3) for fast inference in the browser (WebGPU). It adapts to the content: a tiny gate network looks at a 32x32 thumbnail of the frame and blends 4 weight banks, so one model handles a range of sources. WebSR GAN-S is the faster variant; see also [WebSR GAN-M](https://openmodeldb.info/models/2x-WebSR-GAN-M).\n\nRuns in production in [free.upscaler.video](https://free.upscaler.video), a free in-browser video upscaler used by ~25k people every day, as one of its \"Detail\" models.\n\n**ONNX file:** one image in (`rgb`, RGB float32 in [0, 1], NCHW, any size), one image out (2x). Output is not clamped; clip to [0, 1]. For video, use the separate calibrate + upscale graphs so the look stays consistent across frames: see the [model card](https://huggingface.co/katana-video/websr).\n\nBrowser (WebGPU) version: [WebSR](https://github.com/sb2702/websr) (`websr/gan-s`).", + "date": "2026-11-12", + "architecture": "websr-unet", + "size": null, + "scale": 2, + "inputChannels": 3, + "outputChannels": 3, + "resources": [ + { + "platform": "onnx", + "type": "onnx", + "size": 17432084, + "sha256": "448d86c01c38b2563d1cb2cdb291cb277614fd2097187fc3857850b2be51b26b", + "urls": [ + "https://huggingface.co/katana-video/websr/resolve/main/onnx/gan-s_image.onnx" + ] + } + ], + "trainingIterations": 294000, + "images": [] +} \ No newline at end of file diff --git a/data/tags.json b/data/tags.json index 00736314..185df4d9 100644 --- a/data/tags.json +++ b/data/tags.json @@ -407,5 +407,9 @@ "scale:8": { "name": "8x", "description": "" + }, + "arch:websr-unet": { + "name": "WebSR UNet", + "description": "" } } \ No newline at end of file diff --git a/data/users.json b/data/users.json index 46a6889a..6c48b100 100644 --- a/data/users.json +++ b/data/users.json @@ -260,6 +260,9 @@ "sazoji": { "name": "Sazoji" }, + "sb2702": { + "name": "Sam Bhattacharyya" + }, "sharekhan": { "name": "SharekhaN" },