Spaces:
Running on Zero
Download README.md from tailot/universal-upscale: direct link, hf CLI and curl.
- Browser
- Download file 5.58 kB
-
https://huggingface.co/spaces/tailot/universal-upscale/resolve/main/README.md
- Command line
-
hf download hf://spaces/tailot/universal-upscale/README.md
-
curl -L -o README.md https://huggingface.co/spaces/tailot/universal-upscale/resolve/main/README.md
A newer version of the Gradio SDK is available: 6.31.0
title: Universal Upscale
emoji: 🔍
colorFrom: blue
colorTo: indigo
sdk: gradio
sdk_version: 5.20.0
app_file: app.py
pinned: false
license: cc-by-nc-4.0
tags:
- image-super-resolution
- super-resolution
- image-upscaling
- arbitrary-scale-sr
Universal Upscale 🚀
Benvenuto su Universal Upscale, l'applicazione per l'upscaling e super-resolution di immagini a qualsiasi risoluzione o fattore di scala.
Questo Space esegue il checkpoint LIIF v4 GAN (4.60 M parametri): un unico modello a scala
arbitraria, esportato come model.safetensors + model_scripted.pt nel repo
tailot/universal-upscale.
Quale modello scegliere / Which model to pick
Il menu Model passa ai due pesi pubblicati dal progetto / The Model menu switches between the two weights this project publishes:
| Model | Cosa è / What it is | Quando sceglierlo / Pick it when |
|---|---|---|
| 🔍 Universal Upscale (default) | LIIF v4 GAN, 4.60 M parametri, model_scripted.pt con tiled inference integrata |
qualsiasi fattore 1x-9.2x o una dimensione target esatta, immagini grandi |
| ⚡ Universal Upscale Distilled | student knowledge-distilled, 1.30 M parametri, TorchScript model_distilled.pt che gira sullo stesso device del modello di default |
serve 9x in un solo passaggio: più leggero e veloce |
Lo Student distillato ha una scala nativa fissa: sotto 9x l'output viene ricampionato in area-downsample, sopra viene ricampionato in bicubico. Quando lo selezioni dalla UI, però, i campi Scale Factor e Target Long Side vengono disabilitati e portati alla scala nativa 9x, così il submit usa sempre il modello con la sua resa massima. L'output resta soggetto al cap dello Space sul lato lungo, quindi input molto grandi possono comunque essere ricampionati. La riga di stato indica quale modello ha girato e se l'output è stato ricampionato. Model card: tailot/universal-upscale-distilled.
Come usare lo Space / How to use this Space
- Carica un'immagine / Upload an image: trascina o carica un'immagine dal tuo dispositivo.
- Scegli il modello / Pick the model: lascia Universal Upscale (default) oppure passa a Universal Upscale Distilled (nativo 9x, usa la stessa GPU del modello di default).
- Imposta la scala / Set the scale:
- Scale Factor: scegli un fattore di scala da 1x fino a 9.2x (passo 0.2x, es. 2x, 3.6x, 4x, 9.2x).
- Target Long Side (px): in alternativa, specifica la dimensione in pixel del lato più lungo desiderato (es. 2048, 3000, 4096).
- Se selezioni Universal Upscale Distilled, questi campi si disabilitano automaticamente e il modello usa la scala nativa 9x.
- Genera / Upscale: clicca su Upscale Image per ottenere l'immagine ad alta risoluzione.
Limite di scala testato / Tested scale limit: 9.2x è il valore massimo del cursore ed il fattore di scala più alto raccomandato per questi pesi (la tabella completa del benchmark, fino a 10x, si trova nel model card del modello). Richieste oltre questo valore vengono riportate a 9.2x dal cursore; usando "Target Long Side" puoi comunque arrivare a 4096 px sul lato lungo.
Caratteristiche principali / Features
- Scale Arbitrarie (LIIF): Ingrandimento continuo a qualsiasi fattore o dimensione target senza vincoli rigidi (es. solo 2x/4x).
- Tiled Inference: Elaborazione a tasselli sovrapposti per gestire immagini ad alta risoluzione senza esaurire la memoria (OOM).
- ZeroGPU Acceleration: Supporto all'accelerazione hardware dinamica su Hugging Face Spaces.
📓 Colab per misure da cartellone / Billboard-size outputs
Notebook su Google Drive: https://drive.google.com/file/d/14B1cu8vW4MFPqzPo-C7Nb4JfxZqFtcEI/view?usp=sharing → aprilo in Colab e scegli Runtime → Cambia tipo di runtime → GPU (T4).
Il notebook usa il modello base pubblicato qui (model_scripted.pt, scaricato con hf_hub_download): nessun retraining, nessun fine-tuning, nessun peso aggiuntivo. Quello che aggiunge è il contorno: l'immagine viene divisa in una griglia N×N di settori, ogni settore viene ingrandito dal modello con un margine di contesto preso dai settori vicini (così le cuciture non si vedono), i settori vengono ricuciti in un'unica tela e, se la misura richiesta è ancora fuori portata, l'intero passaggio viene ripetuto sulla tela fino a raggiungere esattamente la misura voluta.
Grazie a questa implementazione il notebook può ingrandire un'immagine di qualunque risoluzione (misure da cartellone, non solo 4K): il limite non è il modello, ma la macchina su cui gira.
| Risorsa / Resource | Cosa limita |
|---|---|
| GPU VRAM | la dimensione di un singolo settore (default 4096 px per lato in uscita) |
| GPU compute power | il tempo totale: ogni settore è una forward pass e ogni passaggio extra riesegue l'intera griglia |
| System RAM | la tela ricucita tenuta in memoria (default 300 megapixel ≈ 3 byte/pixel, Colab free ≈ 12 GB) |
| SSD storage space | l'output salvato più i file opzionali dei singoli settori; il disco di Colab è temporaneo, scarica prima di chiudere il runtime |
⚠️ Oltre 9.2x i dettagli sono in gran parte inventati: ogni passaggio reinterpreta il risultato del precedente, quindi l'immagine diventa più grande ma non più fedele. Controlla le anteprime intermedie.