---
name: face-blur
description: Auto-detect and blur faces in images or videos. Privacy-protect footage with one command — gaussian blur, pixelation, or solid emoji block. Uses OpenCV Haar cascades (fast, no ML model download). Folder mode processes everything in parallel. Use when the user asks to "blur the faces", "anonymize this video", "censor faces", "pixelate the people", or needs to scrub a clip of identifiable subjects before posting.
---


# face-blur

Faces detected → blurred. Single image, video, or whole folder.

## Image

```bash
python3 ~/.claude/skills/face-blur/scripts/blur.py --input photo.jpg
# → photo_blurred.jpg
```

## Video

```bash
python3 ~/.claude/skills/face-blur/scripts/blur.py --input clip.mp4
# → clip_blurred.mp4 — re-encoded with faces blurred per-frame
```

## Pixelate instead of blur

```bash
python3 ~/.claude/skills/face-blur/scripts/blur.py --input photo.jpg --mode pixelate
```

## Emoji block (solid color rectangle)

```bash
python3 ~/.claude/skills/face-blur/scripts/blur.py --input photo.jpg --mode block --color "#000000"
```

## Stronger blur

```bash
python3 ~/.claude/skills/face-blur/scripts/blur.py --input photo.jpg --strength 99
# 99 = max gaussian kernel; default 51
```

## Tighter / looser detection

```bash
python3 ~/.claude/skills/face-blur/scripts/blur.py --input photo.jpg \
  --scale-factor 1.05 --min-neighbors 6 --min-size 30
# scale-factor lower = more sensitive but slower
# min-neighbors higher = fewer false positives
# min-size = ignore faces smaller than N pixels
```

## Pad the blur region

```bash
python3 ~/.claude/skills/face-blur/scripts/blur.py --input photo.jpg --padding 0.4
# expand each detection by 40% before blurring (covers hair / ears better)
```

## Folder mode

```bash
python3 ~/.claude/skills/face-blur/scripts/blur.py --input ~/footage --recursive
# images and videos, in parallel
```

## Flags

- `--input` — file or folder
- `--output` — output file or folder (default: `<name>_blurred.<ext>`)
- `--mode` — `blur` (default), `pixelate`, `block`
- `--strength` — gaussian kernel size 1–999 (default 51)
- `--pixel-size` — pixelation block size (default 16)
- `--color` — block color (default `#000000`)
- `--padding` — expand each detection by fraction (default 0.2)
- `--scale-factor` — Haar cascade scale step (default 1.1)
- `--min-neighbors` — filter sensitivity (default 5)
- `--min-size` — minimum face size in px (default 24)
- `--recursive` — descend into folders
- `--threads` — parallel image workers (default 4)

## First-run install

Auto-installs `opencv-python`. Bundled Haar cascade — no model download.

## Pairs well with

- `vid-rip` → rip a clip → `face-blur` before posting
- `frame-grab` → pull stills → blur each → re-stitch
- `clip-trim` → trim, then blur, then ship
