image-filter-lab

dkyazzentwatwa's avatarfrom dkyazzentwatwa

Apply artistic filters to images including vintage, sepia, B&W, blur, sharpen, vignette, and color adjustments. Create custom filter presets.

⭐1stars🔀0forks📁View on GitHub🕐Updated Dec 17, 2025

When & Why to Use This Skill

Image Filter Lab is a comprehensive Claude skill designed for professional-grade image enhancement and artistic transformation. It enables users to apply a wide array of filters—including vintage, sepia, B&W, and Gaussian blur—while providing fine-grained control over color adjustments like saturation, brightness, and contrast. Supporting both Python API and CLI interfaces, it features batch processing capabilities and custom preset creation, making it an essential tool for automating visual content styling and maintaining aesthetic consistency across large image datasets.

Use Cases

  • Social Media Branding: Automatically apply consistent 'Instagram-style' or 'Noir' presets to a batch of photos to maintain a unified brand aesthetic across platforms.
  • E-commerce Image Optimization: Batch process product photography to standardize brightness, contrast, and sharpness for professional web catalogs.
  • Content Repurposing: Quickly transform standard images into stylized assets using film grain, vignettes, or artistic blurs for blog posts and marketing materials.
  • Automated Design Pipelines: Integrate the Python API into developer workflows to programmatically generate processed thumbnails or stylized background images.
  • Photography Post-Processing: Use the CLI to rapidly apply complex filter chains (e.g., sharpen + vintage + vignette) to entire directories of high-resolution photos.
nameimage-filter-lab
descriptionApply artistic filters to images including vintage, sepia, B&W, blur, sharpen, vignette, and color adjustments. Create custom filter presets.

Image Filter Lab

Apply professional filters and effects to images.

Features

  • Color Filters: Sepia, B&W, color tint, saturation
  • Blur Effects: Gaussian, motion, radial blur
  • Artistic Filters: Vintage, film grain, vignette
  • Enhancements: Sharpen, contrast, brightness
  • Custom Presets: Save and apply filter combinations
  • Batch Processing: Apply filters to multiple images

Quick Start

from image_filter import ImageFilterLab

lab = ImageFilterLab()
lab.load("photo.jpg")

# Apply vintage filter
lab.vintage()
lab.save("photo_vintage.jpg")

# Chain multiple effects
lab.load("photo.jpg")
lab.brightness(1.2).contrast(1.1).saturation(0.8).vignette()
lab.save("photo_edited.jpg")

CLI Usage

# Apply single filter
python image_filter.py --input photo.jpg --filter vintage --output result.jpg

# Apply multiple filters
python image_filter.py -i photo.jpg --sepia --vignette --sharpen -o result.jpg

# Adjust parameters
python image_filter.py -i photo.jpg --brightness 1.2 --contrast 1.1 -o result.jpg

# Batch process
python image_filter.py --batch photos/ --filter vintage --output-dir filtered/

API Reference

ImageFilterLab Class

class ImageFilterLab:
    def __init__(self)

    # Loading
    def load(self, filepath: str) -> 'ImageFilterLab'

    # Color Filters
    def grayscale(self) -> 'ImageFilterLab'
    def sepia(self, intensity: float = 1.0) -> 'ImageFilterLab'
    def negative(self) -> 'ImageFilterLab'
    def tint(self, color: Tuple, intensity: float = 0.3) -> 'ImageFilterLab'

    # Adjustments
    def brightness(self, factor: float) -> 'ImageFilterLab'
    def contrast(self, factor: float) -> 'ImageFilterLab'
    def saturation(self, factor: float) -> 'ImageFilterLab'
    def hue(self, shift: int) -> 'ImageFilterLab'
    def temperature(self, value: int) -> 'ImageFilterLab'

    # Blur Effects
    def blur(self, radius: int = 5) -> 'ImageFilterLab'
    def motion_blur(self, size: int = 15, angle: int = 0) -> 'ImageFilterLab'
    def radial_blur(self, amount: int = 10) -> 'ImageFilterLab'

    # Sharpen
    def sharpen(self, factor: float = 1.0) -> 'ImageFilterLab'
    def unsharp_mask(self, radius: int = 2, percent: int = 150) -> 'ImageFilterLab'

    # Artistic
    def vintage(self) -> 'ImageFilterLab'
    def film_grain(self, amount: int = 25) -> 'ImageFilterLab'
    def vignette(self, radius: float = 0.8, intensity: float = 0.5) -> 'ImageFilterLab'
    def posterize(self, levels: int = 4) -> 'ImageFilterLab'
    def solarize(self, threshold: int = 128) -> 'ImageFilterLab'

    # Presets
    def apply_preset(self, preset: str) -> 'ImageFilterLab'
    def save_preset(self, name: str, operations: List) -> None

    # Output
    def save(self, filepath: str, quality: int = 95) -> str
    def reset(self) -> 'ImageFilterLab'

    # Batch
    def batch_process(self, input_dir: str, output_dir: str,
                     filter_func: callable) -> List[str]

Built-in Presets

  • vintage: Sepia tint, reduced saturation, vignette
  • film: Slight desaturation, grain, crushed blacks
  • instagram: High contrast, warm tint, vignette
  • noir: High contrast B&W, strong vignette
  • warm: Warm color temperature, increased saturation
  • cool: Cool color temperature, slightly desaturated
  • dramatic: High contrast, deep shadows
  • dreamy: Soft blur, bright highlights, low contrast

Dependencies

  • pillow>=10.0.0
  • opencv-python>=4.8.0
  • numpy>=1.24.0