Blazingly fast interpolated LUT generator and applicator for arbitrary and popular color palettes.
A blazingly fast interpolated LUT utility for arbitrary and popular color palettes. Theme any image to your desktop colorscheme!
lutgen-rs
Example Output
Hald Cluts
Catppuccin Mocha
Gruvbox Dark
Nord
Color Corrections
Original Image
Catppuccin Mocha
Gruvbox Dark
Nord
Lutgen CLI
Package Repositories
Install from source
git clone https://github.com/ozwaldorf/lutgen-rs
cd lutgen-rs
cargo install --path crates/cli
Crates.io
cargo install lutgen-cli
Documentation
Detailed documentation, examples, and more are available on The Lutgen Wiki
Lutgen Studio
Package Repositories
Required Dependencies
(For this example, Ubuntu packages are listed)
- libxcb-render0-dev
- libxcb-shape0-dev
- libxcb-xfixes0-dev
- libxkbcommon-dev
- libssl-dev
- wayland
Install from source
git clone https://github.com/ozwaldorf/lutgen-rs
cd lutgen-rs
cargo install --path crates/studio
Crates.io
cargo install lutgen-studio
Rust Library
See the latest rust documentation on docs.rs/lutgen
Nix flake
A nix flake is available providing both lutgen and lutgen-studio packages. The flake can be easily run via:
nix run github:ozwaldorf/lutgen-rs
nix run github:ozwaldorf/lutgen-rs#lutgen-studio
Cache is provided via https://garnix.io
Development Shell
A development environment is also provided in the flake:
git clone https://github.com/ozwaldorf/lutgen-rs
cd lutgen-rs
nix develop
inside dev shell
cargo run -r --bin lutgen
cargo run -r --bin lutgen-studio
Planned features
- [ ] Interpolation for more accuracy when correcting with low level luts (<16)
- [ ] Hardware acceleration for applying luts to images
Sources
- Hald Cluts: https://www.quelsolaar.com/technology/clut.html
- Editing with Hald Cluts: https://im.snibgo.com/edithald.htm
- Sparse Hald Cluts: https://im.snibgo.com/sphaldcl.htm
- RBF Interpolation: https://en.wikipedia.org/wiki/Radialbasisfunction_interpolation
- Shepard's method: https://en.wikipedia.org/wiki/Inversedistanceweighting
- Oklab Colorspace: https://bottosson.github.io/posts/oklab/
Special Thanks
- Gingeh for the initial inspiration and imagemagick approach
- The Catppuccin Org for continual feedback and support along the way
- Stonks3141 for maintaining the Alpine Linux package
- All the nixpkgs maintainers