Config file
Optional TOML at ~/.config/bowdler/config.toml. CLI flags override config
values; config values override built-in defaults.
[paths]
cache_dir = "/mnt/big/bowdler-cache"
vision_model = "/opt/models/nudenet-320n.onnx"
whisper_model = "/opt/models/whisper-medium.en.bin"
wordlist = "/etc/bowdler/words.txt"
trt_cache = "/opt/cache/trt"
[audio]
min_word_confidence = 0.05
[render]
boxblur_radius = 25
video_crf = 20
[run]
auto_blur_confidence = 0.90
auto_mute_confidence = 0.40
Use --config <path> to override the default location. Unknown keys fail
loudly so typos don’t silently no-op.
Wordlist
Plain text, one word per line. # introduces an end-of-line comment. The
default list ships at crates/bowdler-audio/src/default_words.txt. Override
via the config file or --wordlist flag, or place your own at
~/.config/bowdler/words.txt — bowdler auto-loads that path when no other
source is given.
# example
darn
heck
crud # mild
Known limitations
- Single-pass renderer with one bounding box per segment. Each blur segment becomes one rectangle covering the union of all per-frame boxes, active for the whole segment range. Fast-moving objects get over-blurred. Per-frame mask compositing is on the deferred list.
- HDR tone mapping is approximate. The 10-bit (P010) preprocess kernel treats samples as high-precision SDR — correct for “Main 10” SDR HEVC, produces a color-shifted but recognizable image for true HDR (BT.2020/PQ). Proper PQ → linear → tone-map → sRGB is a follow-up.
- Whisper uses Vulkan, not CUDA. Arch’s GCC 16 trips nvcc on the C++20
features whisper.cpp pulls in transitively. Vulkan compute on the
RTX 4080 Super performs comparably; install
gcc13from AUR and configureCUDAHOSTCXXif you want CUDA whisper specifically. - No tiled inference for high-res content. NudeNet’s 320×320 input means small detections at 4K are missed. Letterboxing preserves aspect ratio but not effective resolution.
- Detection cache assumes single-process access. RocksDB’s per-process
lock is exclusive; running two
bowdlerinvocations against the same--cache-dirsimultaneously will fail on the second.