- C++ 89.5%
- Shell 4.4%
- CMake 3.5%
- PowerShell 2.1%
- Inno Setup 0.5%
|
All checks were successful
build-and-test / Build and test (push) Successful in 5m15s
|
||
|---|---|---|
| .forgejo/workflows | ||
| .github/workflows | ||
| external | ||
| models | ||
| packaging | ||
| resources | ||
| src | ||
| tests | ||
| vcpkg@f007e903c4 | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| CMakeLists.txt | ||
| CMakePresets.json | ||
| LICENSE | ||
| PLAN.md | ||
| README.md | ||
| vcpkg.json | ||
transparent
Local, GPU-accelerated image editing. Background removal, denoising, upscaling, and bokeh blur, all in one app. Linux first, with a working native Windows build. No cloud calls, no subscriptions, no telemetry.
Capabilities
Everything below works end to end and is covered by CI.
- Vulkan GPU acceleration with CPU fallback (on macOS via MoltenVK's Vulkan-over-Metal translation)
- Background removal via BiRefNet-lite
- Denoising via SCUNet
- 4x upscaling via Real-ESRGAN
- Bokeh blur with an adjustable strength slider
- A zoomable preview with a before/after comparison
- Model management in the settings tab, including user-imported models from disk
- Simple mode for one operation at a time
- Advanced mode for running several in any order
- Single images, batch folders, and animated GIF in and out
Inference runs via vision.cpp, vendored as a pinned submodule from this fork which adds the SCUNet architecture. GIF encoding uses giflib plus a small built-in color quantizer.
Releases
Binaries for Windows (installer), Linux (AppImage), and macOS (Apple Silicon DMG) are published on the GitHub mirror. All artifacts are unsigned.
Building
Prerequisites:
- Git
- CMake 3.28+
- Ninja
- C++20 compiler
- Qt6 base
vcpkg is vendored as a git submodule and supplies the other necessary libraries.
Linux
- Install the system dependencies:
Debian/Ubuntu (Debian 13 and Ubuntu 24.04 or newer):
sudo apt install build-essential cmake ninja-build git qt6-base-dev shaderc
Fedora:
sudo dnf install gcc-c++ cmake ninja-build git qt6-qtbase-devel glslc
Arch:
sudo pacman -S --needed base-devel cmake ninja git qt6-base shaderc
- Clone the repository:
git clone https://forge.db-serve.com/dbajan/transparent.git
cd transparent
git submodule update --init --recursive
- Configure and build:
cmake --preset default
cmake --build build
- Run the tests:
ctest --test-dir build
- Run the app:
./build/transparent
- Package into an AppImage:
./packaging/build-appimage.sh
Windows
The native MSVC route works and is exercised with every change.
- Install system dependencies
winget install --id Microsoft.VisualStudio.2022.BuildTools --override "--wait --passive --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Component.Windows11SDK.26100"
winget install -e --id Git.Git
winget install -e --id Kitware.CMake
winget install -e --id Ninja-build.Ninja
winget install -e --id KhronosGroup.VulkanSDK
uvx --from aqtinstall aqt install-qt windows desktop 6.8.3 win64_msvc2022_64 -O C:\Qt
- Enable long paths on Git. The vcpkg and vision.cpp source trees exceed the default
MAX_PATHlimit.
git config --global core.longpaths true
sudo reg add "HKLM\SYSTEM\CurrentControlSet\Control\FileSystem" /v LongPathsEnabled /t REG_DWORD /d 1
- Clone the repository:
git clone https://forge.db-serve.com/dbajan/transparent.git C:\Documents\Dev\transparent
cd C:\Documents\Dev\transparent
git submodule update --init
- Build the app using
cl.exe.
set PATH=C:\Qt\6.8.3\msvc2022_64\bin;%PATH%
cmake --preset windows
cmake --build build
- Run the tests:
ctest --test-dir build
- Run the app:
.\build\transparent.exe
- Build the installer:
winget install -e --id JRSoftware.InnoSetup
powershell -ExecutionPolicy Bypass -File packaging\build-installer.ps1
macOS (Apple Silicon only)
- Install system dependencies:
brew install cmake ninja molten-vk
pip install aqtinstall
aqt install-qt mac desktop 6.8.3 clang_64 -O "$HOME/qt"
export PATH="$HOME/qt/6.8.3/macos/bin:$PATH"
-
Clone the repository and init submodules (see Linux section).
-
Configure and build (deploys into a runnable app bundle):
cmake --preset macos
cmake --build build
./build/transparent.app/Contents/MacOS/transparent
- Package into a DMG (ad-hoc signed; see Releases above for the first-launch workaround):
./packaging/build-macos.sh
Models
Three defaults are downloaded and checksum-verified at configure time, and copied into the app's data directory on first launch, so a fresh install works offline:
| Category | Model | License | Source |
|---|---|---|---|
| Background removal | BiRefNet-lite | MIT | Acly/BiRefNet-GGUF |
| Denoise | SCUNet color real GAN | Apache-2.0 | transparent-models |
| Upscale | Real-ESRGAN foolhardy_Remacri |
BSD-3-Clause | Acly/Real-ESRGAN-GGUF |
More models are available to install in the settings tab, including FeyNoBg and BiRefNet-dynamic for background removal. Custom converted models can be added using the Add model from disk button or by placing them in the models folder. Only birefnet, scunet, and esrgan are currently supported.
To convert your own checkpoints for a supported architecture, use scripts/convert.py in the vision.cpp fork. It supports the same architectures and produces F16 GGUF files, for example:
uv run python scripts/convert.py esrgan 4x-UltraSharp.pth -q f16 -o models/
The birefnet converter also accepts the HF/timm-style checkpoints published by NoBg, such as FeyNoBg.
License
This project's own code is GPLv3. Bundled third-party components (Qt, vision.cpp/ggml, BiRefNet-lite, SCUNet, Real-ESRGAN, giflib) keep their own licenses.