Downloads · 30 days
11
16% of all-time downloads
olaverse/prism-upscaler-2x
prism-upscaler-2x is a image-to-image model from olaverse. Use it when you need one image transformed into another. The card lists the license as apache-2.0.
Downloads · 30 days
11
16% of all-time downloads
All-time downloads
67
Public
Repo size
76.5 KB
Likes
1
Public
Click a slice to open those files.
.pt76.5 KB · 92%
From the Hugging Face model README

prism models
prism-upscaler-2x upscales images 2x using a lightweight FSRCNN-style convolutional network. Trained from scratch on a mix of openly-licensed photos and textures (PD12M, pxhere, cc0-textures, ambientcg), with realistic degradation (blur, sensor noise, JPEG re-compression) simulated at train time rather than plain bicubic downsampling — so it's built for real-world low-quality input, not just clean synthetic test images.
Production-ready for general photographic content — sharp, well-lit source images with clear edge structure see the strongest improvement over naive bicubic upscaling.
Also works reasonably on smoother/lower-contrast images, though gains over bicubic are smaller there — see Benchmarks and Known Limitations.
[BEFORE / AFTER IMAGE HERE]
| Architecture | FSRCNN (feature extraction → shrink → mapping → expand → sub-pixel conv) |
| Parameters | ~25K |
| Scale factor | 2x (fixed) |
| Input | RGB image, any resolution |
| Training data | PD12M, pxhere, cc0-textures, ambientcg (Apache/CC0-licensed) |
| Training | Mixed precision, early stopping on validation PSNR, realistic degradation pipeline |
from huggingface_hub import hf_hub_download
import torch, importlib.util, json
from PIL import Image
import torchvision.transforms.functional as TF
model_file = hf_hub_download(repo_id="olaverse/prism-upscaler-2x", filename="model.py")
ckpt_file = hf_hub_download(repo_id="olaverse/prism-upscaler-2x", filename="pytorch_model.pt")
config_file = hf_hub_download(repo_id="olaverse/prism-upscaler-2x", filename="config.json")
spec = importlib.util.spec_from_file_location("model", model_file)
model_module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(model_module)
config = json.load(open(config_file))
model = model_module.FSRCNN(**config)
model.load_state_dict(torch.load(ckpt_file, map_location="cpu"))
model.eval()
img = Image.open("input.jpg").convert("RGB")
with torch.no_grad():
output = model(TF.to_tensor(img).unsqueeze(0)).clamp(0, 1)
TF.to_pil_image(output[0]).save("output.jpg")
No preprocessing, cropping, or padding required — the model is fully convolutional and works on any input resolution directly.
Qualitative comparison against a naive bicubic baseline under realistic degradation (blur, sensor noise, JPEG re-compression — not clean bicubic-only downsampling): visually sharper edge and detail reconstruction than bicubic, particularly around fine facial and clothing detail, though the overall difference at this scale is modest — roughly comparable to bicubic in most respects, with the model's advantage growing more clearly at higher scale factors. Informal single-image testing, not a scored benchmark against a standard academic test set (Set5/Set14/etc).
Trained on PD12M (Spawning/PD12M, CDLA-Permissive-2.0), pxhere (nyuuzyou/pxhere, CC0), cc0-textures (nyuuzyou/cc0-textures, CC0), and ambientcg (nyuuzyou/ambientcg, CC0). Released under Apache-2.0.
@misc{prism-upscaler-2x,
title = {prism-upscaler-2x},
author = {Olaverse},
year = {2026},
url = {https://huggingface.co/olaverse/prism-upscaler-2x}
}