Highlights
- Timeline zoom (new): an advanced zoom system that dynamically scales the video timeline for frame-precise navigation, with exponential zoom scaling, playhead-centered scroll synchronization, and a configurable Max Visible Frames setting (10–100) that drives the maximum zoom based on video length.
- Provisional state tracking (new): the timeline now gives intelligent visual feedback for unsaved parameter changes — the playhead turns soft yellow when changes are pending, and the groove is colored by marker segment (alternating purple/blue), with caching to keep overhead low.
- Marker colors (new): timeline markers now support colors, making it easier to visually organize and distinguish sections.
- ReF-LDM Denoiser — standalone module (new): the diffusion denoiser was extracted into its own
FaceDenoiserclass (app/processors/face_denoiser.py), encapsulating the UNet, VAE encoder/decoder, KV extractor and DDIM scheduling. It runs as a dedicated pass before and/or after the restorers, with Single Step (Fast) and Full Restore (DDIM) modes, an Exclusive Reference Path option, and a fixed Base Seed for consistent noise across frames. Model loading is thread-safe with unload deferred during video playback. - New denoiser color controls (new): per-pass Color strength slider (0–100) and a Color Transfer Type selector with five modes — CDF Histogram, CDF Histogram (Masked), Reinhard Transfer, Reinhard Transfer (Masked) (default), and AdaIN (Core Masked).
- Mouth cavity blending (new): a Mouth Original Cavity Blending control (0.0–1.0) blends between the artificial cavity shadow and the original aligned mouth texture for more natural mouths in high-fidelity restores.
- Recast Relative mode (new): expression transfer can now be applied relative to the source, for more natural, motion-preserving results.
- Recast Advanced mode (new): fine-grained, per-region expression multipliers (rigid/structural points, eyes, eyebrows, cheeks, lips/mouth, jaw) plus crop-border feathering for seamless blending.
- Webcam resolution control: added a webcam resolution option.
- Performance & fidelity: VRAM-fragmentation and color-transfer overhaul across
faceutil, the frame worker, restorers and masks (GPU LUT-based histogram matching, Kornia local-warp paste-back, pre-allocated DDIM buffers, in-place tensor ops), plus a Recast FP32 fix and further Recast performance work. - Fixes: frame-edits fix, output-folder skip for markers, typing fix, and removal of the Recast Smoothing option.
Changelog by version
3.8.0
Timeline zoom control (timelineZoomSlider) — dynamically scale the video timeline for frame-precise navigation:
- Exponential zoom scaling with real-time label updates.
- Intelligent scroll synchronization that keeps the playhead centered.
- Max zoom calculated dynamically from video length and the Max Visible Frames setting.
- Deferred initialization for smooth, responsive performance.
Provisional state tracking — intelligent visual feedback for unsaved changes:
- Automatically detects when parameters differ from the last saved marker state.
- Playhead turns soft yellow when changes are pending.
- Groove is colored by marker segment (alternating purple/blue).
- Intelligent caching to minimize performance overhead.
UI/UX improvements:
- Marker colors for timeline markers.
- Timeline controls wrapped in a
QScrollAreafor better viewport management. - New Max Visible Frames setting (10–100) for user-controlled zoom behavior.
- Timeline elements now hide/show based on media type (shown for videos, hidden for images).
3.7.0
Denoiser separation — the diffusion denoiser is now a standalone FaceDenoiser class (app/processors/face_denoiser.py, ~823 lines) extracted from ModelsProcessor:
- Encapsulates the UNet, VAE encoder/decoder, KV extractor and DDIM scheduling.
- Thread-safe model loading with smart unload deferral during video playback.
- Single Step (Fast) and Full Restore (DDIM) modes, before and/or after the restorers.
- Built-in color transfer, pixel sharpening and histogram-matching post-processing.
New denoiser UI controls (denoiser_layout_data.py):
DenoiserColorSlider(0–100, default 100) to tune color-correction strength per pass.DenoiserColorTransferTypeSelectionwith five modes: CDF Histogram, CDF Histogram (Masked), Reinhard Transfer, Reinhard Transfer (Masked) (default), AdaIN (Core Masked).
Mouth enhancement (face_masks.py):
MouthOriginalCavityBlendingDecimalSlider(0.0–1.0, default 0.0) blends between the artificial cavity shadow and the original aligned mouth texture for more natural high-fidelity results.
Color-transfer algorithm overhaul (faceutil.py):
- Clearer method names:
histogram_matching_DFL_Orig→apply_reinhard_color_transfer;histogram_matching_DFL_testremoved;apply_adain_color_transferupdated. - GPU-accelerated LUT-based histogram matching (256-bin lookup tables).
- Thread-safe caching for Gaussian/Laplacian kernels and faded masks.
paste_back_advoptimized to use Kornia local warping (no full-frame padding).get_rotation_matrixmoved to the moderntorch.linalg.svdAPI.
Performance optimizations:
- VRAM-fragmentation fixes: removed per-frame
v2.Resizeinstantiation in favor of functional wrappers. - Disabled
antialias=Trueon mask resizes to prevent ringing artifacts. - BICUBIC high-fidelity upscaling in face restorers before normalization.
- Pre-allocated loop buffers in DDIM sampling (no mid-loop tensor creation).
- Smart KV-extractor unload deferred until after batch processing.
- In-place tensor operations (
.clamp_(),.mul_()) to reduce memory overhead.
Code cleanup & modernization:
- Moved large landmark/ArcFace data arrays into
models_data.pyconstants. - Removed unused imports and stray non-English comments.
- Added comprehensive type hints (
-> torch.Tensor,Optional[...]); typing fix. - Fixed deprecated
torch.svd→torch.linalg.svd, with clearer error messages/paths.
3.6.5
- Removed Recast Smoothing.
3.6.4
- Recast Advanced mode: independent per-region expression multipliers (structural, eyes, eyebrows, cheeks, lips, jaw) and crop-border feathering.
- Frame-edits fix and further Recast optimization.
- Enhancement to defaults.
3.6.3
- Recast Relative mode.
3.6.2
- Recast fix (FP32 mode).
- Added webcam resolution option.
- Output-folder skip for markers.
Contributors in this range
@Elricfae — thanks to everyone who contributed code, fixes and reviews.
Upgrade notes
- Portable launcher users: download the latest
Start_Portable.batattached to this release (or via the "latest" link in the README). - No manual migration steps required; the launcher's dependency update handles environment changes on next start.