A python library for instagram filters.
The filter implementations are inspired by CSSgram.
- Python >= 3.10
- Pillow or pillow-simd
- NumPy
Important: This library requires specific Pillow versions for optimal compatibility:
- Pillow >= 10.3.0: Use latest pilgram version for full feature support including
ImageMath.lambda_eval - Pillow < 10.3.0: Use
pilgram<2.0.0which supports older Pillow versions withImageMath.eval - pillow-simd: Use
pilgram<2.0.0(pillow-simd lacksImageMath.lambda_evalsupport)
# For Pillow >= 10.3.0
pip install pillow>=10.3.0
pip install pilgram # Latest version
# For Pillow < 10.3.0 or pillow-simd
pip install pillow<10.3.0 # or pillow-simd
pip install "pilgram<2.0.0"pip install pillow>=10.3.0
pip install numpy
pip install pilgram # Latest version with ImageMath.lambda_eval supportpip install pillow<10.3.0 # or pillow-simd
pip install numpy
pip install "pilgram<2.0.0" # Last version supporting ImageMath.evalAvailable instagram filters on pilgram:
_1977adenbrannanbrooklynclarendonearlybirdginghamhudsoninkwellkelvinlarklofimavenmayfairmoonnashvilleperpetuareyesriseslumberstinsontoastervalenciawaldenwillowxpro2
from PIL import Image
import pilgram
im = Image.open('sample.jpg')
pilgram.aden(im).save('sample-aden.jpg')Similarly, pilgram provides css filters and blend modes as a by-product.
Available css filters on pilgram.css:
contrastgrayscalehue_rotatesaturatesepia
from PIL import Image
import pilgram.css
im = Image.open('sample.jpg')
pilgram.css.sepia(im).save('sample-sepia.jpg')Available blend modes on pilgram.css.blending:
colorcolor_burncolor_dodgedarkendifferenceexclusionhard_lighthuelightenmultiplynormaloverlayscreensoft_light
from PIL import Image
import pilgram.css.blending
backdrop = Image.open('backdrop.jpg')
source = Image.open('source.jpg')
pilgram.css.blending.color(backdrop, source).save('blending.jpg')Filter performance comparison with instagram-filters
# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone the repository
git clone https://github.com/akiomik/pilgram.git
cd pilgram
# Install dependencies (including dev dependencies)
uv sync --all-extras
# Install Pillow or pillow-simd (choose one)
uv add pillow>=9.3.0 # or uv add pillow-simdmake check # Run all checks (lint + format-check + type-check + test)
make test # Run tests only
make lint # Run ruff linting
make format # Format code with ruff
make test-benchmark # Run performance benchmarks
