Изображенияtailot
Universal Upscale
апскейл без фиксированного масштаба
2 мин чтения
Модель от tailot для super-resolution на архитектуре LIIF: один чекпойнт апскейлит RGB-изображение до произвольного целевого размера — 2x, 4x, 9.2x или явно заданных 3000 px. В модели 4.60 M параметров, tiled inference со сшивкой уже встроен, запуск возможен на CPU или CUDA.
🧐 Ключевые особенности
- 🚀 Один набор весов для любого масштаба: continuous-coordinate decoder не привязан к фиксированному x2/x4.
- 🔥 Tiled inference с feathered blending встроен в файл модели — можно получать 4K/8K без исчерпания памяти.
- 🤖 Работает на CPU или CUDA, без кастомных операторов и внешнего model zoo.
- 👀 Есть self-contained
model_scripted.ptдля TorchScript, HF-весаmodel.safetensors, CLI-демо и Gradio-приложение. - ⛔ Обучение покрывало масштабы 1.5x–6x; 9.2x — максимум, рекомендованный и проверенный end-to-end, дальше качество постепенно падает.
🚀 Пример
import torch, numpy as np
from PIL import Image
from huggingface_hub import hf_hub_download
model = torch.jit.load(hf_hub_download("tailot/universal-upscale", filename="model_scripted.pt"))
img = Image.open("photo.jpg").convert("RGB")
lr = torch.from_numpy(np.asarray(img, dtype=np.float32) / 255.0).permute(2, 0, 1).unsqueeze(0)
out = model(lr, img.height * 4, img.width * 4)
Image.fromarray((out.squeeze(0).permute(1, 2, 0).numpy() * 255).round().astype("uint8")).save("photo_4x.png")
Подробнее
На DIV2K при 4x средняя PSNR — 29.74 dB против 29.59 dB у bicubic; Detail (Laplacian energy) — 0.233 против 0.127, SSIM — 0.7977 против 0.8021.Архитектура LIIFNet, 4.60 M параметров; обучение на DIV2K + Flickr2K с Real-ESRGAN-style деградациями и adversarial loss.
Ограничения: выше 9.2x детали в основном интерполируются, выход становится глаже; альфа-каналы не апскейлятся; лицензия весов cc-by-nc-4.0, research-only.
Для очень больших полотен лимит задают VRAM, RAM и время вычислений, а не сама модель.
Комментарии
Без регистрации: достаточно имени.