lutgen-rs

Blazingly fast interpolated LUT generator and applicator for arbitrary and popular color palettes.

MIT License

Downloads
29.5K
Stars
284

Example Output

Hald Cluts

Color Corrections

CLI

Installation

Source

git clone https://github.com/ozwaldorf/lutgen-rs
cd lutgen-rs
cargo install --path .

Nix flake

A nix flake is available and can be run easily with:

nix run github:ozwaldorf/lutgen-rs

Cache is provided via https://garnix.io

Documentation

Detailed cli documentation is available at docs/README.md.

Examples

Correcting an image

# Builtin palette
lutgen apply -p catppuccin-mocha docs/example-image.jpg -o mocha_version.jpg

# Custom colors
lutgen apply docs/example-image.jpg -- "#ABCDEF" ffffff 000000

# Custom palette file with whitespace separated hex colors (linux example shown)
echo "fff 555 000 abcdef deadbe" > ~/.config/lutgen/my-palette-name
lutgen apply docs/example-image.jpg -p my-palette-name

# Multiple images
lutgen apply image1.png image2.png *.jpg -p catppuccin-mocha

# Using an external LUT
lutgen apply --hald-clut mocha_lut.png docs/example-image.jpg

Generating a standalone LUT for external or manual usage

# Builtin palette
lutgen generate -p catppuccin-mocha -o mocha_lut.png

# Custom colors
lutgen generate -o custom.png -- "#ABCDEF" ffffff 000000

# Custom palette file with whitespace separated hex colors (linux example shown)
echo "fff 555 000 abcdef deadbe" > ~/.config/lutgen/my-palette-name
lutgen generate -p my-palette-name

Preview palletes

# Preview all palettes
lutgen palette all

# Copy a palette to the custom palette dir for modifying and overriding
lutgen palette carburetor > ~/.config/lutgen/carburetor

# Finding a palette name with grep
lutgen palette names | grep 'gruvbox'

Correcting videos (using ffmpeg):

ffmpeg -i input.mkv -i hald_clut.png -filter_complex '[0][1] haldclut' output.mp4

Zsh Completions:

lutgen --bpaf-complete-style-zsh > _lutgen
sudo mv _lutgen /usr/local/share/zsh/site-functions/

Library

See the latest documentation on docs.rs

Planned features

  • Interpolation for more accuracy when correcting with low level luts (<16)
  • Hardware acceleration for applying luts to images

Sources

Special Thanks

  • Stonks3141 for maintaining the Alpine Linux package
  • All the nixpkgs maintainers