Skip to content

v0.3.0

Choose a tag to compare

@KKenny0 KKenny0 released this 14 Jun 05:42
· 45 commits to main since this release

What's new since v0.2.0

Features

  • Pluggable Inpainter protocolsrc/videowipe/inpainters/ introduces a whole-video Inpainter protocol (InpaintJob/InpaintOutcome) and a name-based registry. STTN's three-stage backend contract (encode/transform/decode) is now a private implementation detail, not a public surface. Select models with --model (default sttn).
  • ExternalInpainter + shell-injection fixrun_external now uses shlex.split + an argv list with shell=False instead of f-string + shell=True, eliminating shell injection via filenames. external is registered as a named inpainter.
  • ProPainter as named registry entry--model propainter --propainter-dir selects ProPainter. scripts/propainter_wipe.py resolves its source dir from --propainter-dir > VIDEOWIPE_PROPINTER_DIR > default (was hardcoded), switched to argparse, and writes a fixed inpaint_out.mp4 output (dropping the glob fallback).

Fixes

  • Shell injection in external adapter — filenames with shell metacharacters were previously interpreted by the shell; now passed as literal argv entries.
  • Version alignment__version__ bumped to match pyproject.toml.
  • Eval test PYTHONPATHeval_clean_detection subprocess tests no longer fail with ModuleNotFoundError in environments without an editable install.

registry.names() now returns ['external', 'propainter', 'sttn'].

Full Changelog: v0.2.0...v0.3.0