dkyazzentwatwa

image-filter-lab

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

dkyazzentwatwa 95 19 Updated 8mo ago

Resources

1
GitHub

Install

npx skillscat add dkyazzentwatwa/chatgpt-skills/image-filter-lab

Install via the SkillsCat registry.

About this skill

The skill applies various artistic filters and adjustments to images, allowing users to modify appearance with options like vintage, sepia, blur, and color changes, and to create custom presets. It solves the need for flexible image editing without external software. An agent or developer should use it when processing photos programmatically or integrating filter effects into an application.

SKILL.md

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