Upscaling Model Quality#
Overview#
Upscayl bundles seven built-in AI upscaling models, all nominally operating at 4Γ scale . Models are selected per upscale job; each one produces different output quality characteristics depending on image type, content, and the GPU executing inference.
Built-in models (common/models-list.ts):
upscayl-standard-4xβ general-purpose defaultupscayl-lite-4xβ lighter-weight varianthigh-fidelity-4xβ higher-detail outputremacri-4x,ultramix-balanced-4x,ultrasharp-4x,digital-art-4xβ specialized alternatives
Custom models (.bin/.param pairs placed in the custom models folder) are also detected and listed at startup alongside the built-ins.
Tiling Architecture#
Upscayl (via upscayl-bin / ncnn-vulkan) processes large images by splitting them into tiles. The -t (tile size) flag controls tile dimensions; 0 or omitting it lets the backend auto-size. Tile size is passed through getSingleImageArguments and equivalent batch/double-upscale helpers. Users can override tile size in Settings β Custom Tile Size ; an empty field maps to null (no flag sent, backend chooses automatically).
Tiling Artifacts#
Symptom#
Visible seam/grid patterns appear in flat or smooth-gradient regions of upscaled output. The artifact is most pronounced in background areas with uniform color where tile boundaries become visible as brightness or color discontinuities.
Affected Configuration#
Reported in Upscayl v2.15.0 on Windows :
- Model:
upscayl-standard-4xat 4Γ scale - GPU: AMD Radeon Vega (integrated, AMD Ryzen 5 5500U)
tileSize: null(auto mode, no-tflag sent to backend)
The reporter confirmed other models do not produce tiling artifacts "in such an obvious magnitude" on the same hardware . The artifact recurred across multiple different images .
Root Cause (Suspected)#
The standard model appears to be more sensitive to tile boundary stitching errors under limited VRAM or on lower-performance integrated GPUs. The underlying inference engine (ncnn-vulkan) tiles images when they exceed GPU memory capacity; if padding or blending at tile edges is insufficient for a given model's receptive field, seams become visible. No fix has been merged as of the time of writing; the issue is open and unresolved .
Mitigation#
- Switch models: Try
high-fidelity-4x,ultramix-balanced-4x, orultrasharp-4x, which users report produce less obvious tiling on the same hardware. - Reduce tile size manually: Set a smaller explicit tile size (e.g. 128β256) in Settings to force smaller, more uniform tile processing, though this may increase total processing time and can still exhibit seams.
- Use a dedicated GPU: Tiling artifacts are more common on integrated graphics with constrained VRAM.
Non-Native Scale Factors and Quality#
All built-in models are trained at 4Γ. When a user selects a scale other than 4Γ (e.g. 5Γ), the -s flag is added to the upscayl-bin invocation only when the requested scale differs from the model's native scale . The scale detection logic in getModelScale infers native scale purely from the model filename (x2/2x β 2Γ, x3/3x β 3Γ, everything else β 4Γ).
Quality implication: Requesting a non-native scale (e.g. 5Γ) forces upscayl-bin to perform internal rescaling on top of the model's 4Γ output, which can introduce additional quality degradation or tiling artifacts beyond what the model alone would produce. One user report of driver crashes (vkQueueSubmit failed -4) during 5Γ upscaling with high-fidelity-4x on Intel Iris Xe integrated graphics illustrates that non-native scales at high tile counts stress the GPU further .
Key Source References#
| File | Purpose |
|---|---|
common/models-list.ts | Canonical list of built-in model IDs |
common/check-model-scale.ts | Infers native model scale from filename |
electron/utils/get-arguments.ts | Assembles CLI arguments including -t and -s |
renderer/components/sidebar/settings-tab/input-tile-size.tsx | UI control for custom tile size |
Open Issues#
- #1467 β Tiled output from Standard model in flat image background β unresolved;
upscayl-standard-4xtiling on integrated GPU - #1470 β Screen flickering/blackouts starting on the 2nd image β
vkQueueSubmit failed -4errors during 5Γ upscaling on Intel Iris Xe