1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# upscale-qt
Small PyQt6 app to upscale an image with an ESRGAN model through `sd-cli` (stable-diffusion.cpp). A slider wipe compares before and after, and the result can be saved as a new file or written over the original.
## Requirements
- Python 3
- PyQt6
- `sd-cli` from stable-diffusion.cpp, plus one or more ESRGAN upscaler models in a folder
## Install
Symlink the script and menu entry into your home directory, so later updates of the repo apply without reinstalling (`~/bin` must be on `PATH`):
ln -s "$PWD/upscale-qt" ~/bin/upscale-qt
ln -s "$PWD/upscale-qt.desktop" ~/.local/share/applications/upscale-qt.desktop
update-desktop-database ~/.local/share/applications
The menu entry uses the `zoom-in` icon from your icon theme and registers for common image types, so "Open with" works from a file manager. To uninstall, remove the two symlinks.
## Usage
./upscale-qt [image]
- Open an image (Ctrl+O, or pass it as argument). EXIF rotation is applied.
- Pick a model and Upscale (Ctrl+U). Expect roughly 25 seconds per megapixel of input; the result is 4x in each direction.
- The view shows before left of the divider and after right of it. Drag the divider to wipe, drag elsewhere to pan, mouse wheel to zoom, double-click to fit.
- Save As (Ctrl+Shift+S) writes a new file. Overwrite replaces the original after a confirmation, in the same format. EXIF metadata is not kept.
- Clear (Ctrl+W) empties the view and deletes the temp files. It asks first if the upscaled image was not saved.
- Settings holds the upscalers folder.
- Ctrl+Q quits. Quitting or closing the window asks first if an upscale is running or the upscaled image was not saved.
### Model descriptions
Put a `models.txt` next to the models to show what each one is for in the dropdown:
# filename = what it is for
some_model_x4.pth = Clean photos: people, nature
other_model_x4.pth = Noisy or compressed photos
Models without a line show their filename.
## License
Copyright (C) 2026 Danilo M. <danix@danix.xyz>
GPLv2 only. See [LICENSE](LICENSE) for the full text.
## Development Approach
This project is developed using AI-assisted tools. Code is generated with the help of AI based on human-provided specifications, design decisions, and iterative feedback.
All contributions are reviewed, tested, and curated by the maintainer before being included in the codebase. AI is used as a productivity and exploration tool, while human oversight remains central to all decisions.
The goal is to combine the flexibility of AI-assisted development with standard open-source practices such as transparency, review, and accountability.
|