image-filter-lab
Apply artistic filters to images including vintage, sepia, B&W, blur, sharpen, vignette, and color adjustments. Create custom filter presets.
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.
| name | image-filter-lab |
|---|---|
| description | Apply 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