guia-matthieu/image-batch
Batch process images for marketing. Use when: resizing images for social media; compressing images for web; removing backgrounds; adding watermarks; converting formats to WebP; optimizing for Core Web Vitals
npx skills add https://github.com/guia-matthieu/clawfu-skills --skill image-batch
> Automate repetitive image tasks using Pillow and rembg - resize, compress, remove backgrounds, and watermark hundreds of images in seconds.
| Claude Does | You Decide |
|-------------|------------|
| Structures video workflow | Final creative vision |
| Suggests shot compositions | Equipment selection |
| Creates storyboard templates | Brand aesthetics |
| Generates script frameworks | Final approval |
| Identifies technical requirements | Budget allocation |
pip install Pillow rembg click
# For GPU-accelerated background removal:
# pip install rembg[gpu]
python scripts/main.py resize ./images/ --width 1200
python scripts/main.py resize ./images/ --format instagram # 1080x1080
python scripts/main.py resize ./images/ --format linkedin # 1200x627
python scripts/main.py compress ./images/ --quality 80
python scripts/main.py compress ./images/ --max-size 500 # Max 500KB
python scripts/main.py remove-bg photo.jpg
python scripts/main.py remove-bg ./products/ --output ./transparent/
python scripts/main.py watermark ./images/ --logo logo.png --position bottom-right
python scripts/main.py watermark ./images/ --text "© 2024 Company" --opacity 0.3
python scripts/main.py convert ./images/ --format webp
python scripts/main.py convert ./images/ --format avif --quality 80
# Remove backgrounds
python scripts/main.py remove-bg ./raw-products/ --output ./transparent/
# Resize to standard size
python scripts/main.py resize ./transparent/ --width 1000 --height 1000 --fit contain
# Compress for web
python scripts/main.py compress ./transparent/ --quality 85 --format webp
# Output: ./transparent/*.webp (optimized, transparent background)
# Create multiple sizes from one source
python scripts/main.py resize hero-image.jpg --format instagram --output hero_ig.jpg
python scripts/main.py resize hero-image.jpg --format linkedin --output hero_li.jpg
python scripts/main.py resize hero-image.jpg --format twitter --output hero_tw.jpg
python scripts/main.py resize hero-image.jpg --format facebook --output hero_fb.jpg
# Or batch process entire folder for one platform
python scripts/main.py resize ./campaign-images/ --format instagram --output ./instagram/
# Convert all images to WebP
python scripts/main.py convert ./website-images/ --format webp --quality 80
# Ensure no image exceeds 200KB
python scripts/main.py compress ./website-images/ --max-size 200
# Results in 60-80% smaller file sizes
| Format | Dimensions | Aspect Ratio | Use Case |
|--------|------------|--------------|----------|
| instagram | 1080x1080 | 1:1 | Feed posts |
| instagram-story | 1080x1920 | 9:16 | Stories/Reels |
| linkedin | 1200x627 | 1.91:1 | Link previews |
| linkedin-post | 1200x1200 | 1:1 | Feed posts |
| twitter | 1200x675 | 16:9 | Cards |
| facebook | 1200x630 | 1.91:1 | Link previews |
| pinterest | 1000x1500 | 2:3 | Pins |
| youtube | 1280x720 | 16:9 | Thumbnails |
| Mode | Behavior |
|------|----------|
| cover | Fill area, crop excess (default) |
| contain | Fit inside, add padding |
| stretch | Distort to fit exactly |
| crop | Smart crop focusing on subject |
| Format | Best For | Compression |
|--------|----------|-------------|
| webp | Web images | 25-35% smaller than JPEG |
| avif | Modern browsers | 50% smaller than JPEG |
| jpg | Photos, gradients | Lossy, universal |
| png | Transparency, graphics | Lossless |
category: automation
subcategory: image-processing
dependencies: [Pillow, rembg]
difficulty: beginner
time_saved: 5+ hours/week
Take guia-matthieu/image-batch from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference pip.
Without those the skill loads but fails at the first command.