Skip to content

Releases: Gaurox/FrameShift

FrameShift 1.16.0

Choose a tag to compare

@Gaurox Gaurox released this 22 Jun 22:48

Prepared for later publication.

  • Create Subtitle File — internal subtitle model. Subtitle generation now keeps a shared SubtitleProject / SubtitleSegment / SubtitleWord model with preserved word timings from the worker.
  • Create Subtitle File — new export targets. The same subtitle model now feeds Standard SRT, Advanced ASS Subtitle, and FrameShift Customization Project (.frameshift-subtitles.json) without changing the default SRT behavior.
  • Create Subtitle File — versioned project format. Added full SubtitleProject serialization in the FrameShift project format (frameshift-subtitle-project, v1) for later editing or re-export.
  • Create Subtitle File — ASS presets. Advanced ASS Subtitle now supports Classic, Word Highlight, and Progressive Reveal. Dynamic presets use reliable word timings and automatically fall back to Classic when a segment alignment is not reliable.
  • Create Subtitle File — refined display start. Dynamic ASS exports now keep the Whisper word timings as source of truth while allowing a conservative delayed cue display start when local audio onset clearly happens later. SRT, ASS, the serialized project, and Add Subtitles to Video all reuse the same shared display start.
  • Create Subtitle File — Word Highlight semantics. No subtitle is shown during the preceding silence. At the refined start of the first spoken word, the full sentence appears immediately and the current word is highlighted; Progressive Reveal remains progressive.
  • Create Subtitle File — UI / CLI wiring. The picker keeps Standard SRT as default, shows the ASS preset choice only when Advanced ASS Subtitle is selected, and the CLI now supports --subtitles-format plus --subtitles-ass-preset / --ass-preset.
  • Add Subtitles to Video — selectable track lot. Added add-subtitles-video as a product action that muxes an external .srt subtitle file into a video as a selectable track. MKV keeps a native subrip subtitle track; MP4/MOV/M4V keep their container with mov_text when existing streams stay compatible; otherwise the action falls back to MKV to preserve streams more cleanly. The normal path copies existing video/audio streams without re-encoding, uses adjacent unique naming, and removes partial outputs on failure or cancellation. Minimal launcher wiring accepts --subtitle-file / --subtitle-path / --srt-file or opens a simple file picker when the option is missing.
  • Add Subtitles to Video — burn lot. add-subtitles-video now also supports Burn Subtitles Into Video via --subtitle-mode burn. It accepts .srt, .ass, and .frameshift-subtitles.json, converts .srt / FrameShift projects to a temporary resolution-aware .ass, burns through FFmpeg, copies audio when compatible with the output container, and removes both partial outputs and temporary .ass files after failure, cancellation, or success.
  • Add Subtitles to Video — burn editor lot. The burn workflow now opens a shared-helper WinForms editor with a real frame preview, simple time navigation, font / size / color / outline / shadow / position controls, shared ASS preset selection for SRT / FrameShift project inputs, and debounced FFmpeg/libass preview rendering with cancellation of obsolete refreshes. External .ass files stay in style passthrough mode and clearly disable non-applicable controls.
  • Add Subtitles to Video — animated preview and hardening lot. The burn editor now adds a short animated preview loop generated from a temporary burn clip around the current position, then displayed as a lightweight looping preview without adding a new playback dependency. Burn preparation now uses display-aware subtitle layout for rotated videos, copies external .ass files to temporary working paths for safer Windows path handling, reads .srt text with a UTF-8 then Windows-codepage fallback, cleans preview clip / GIF artifacts on cancellation or refresh, and surfaces a clear HDR warning when subtitle burn-in may alter colorimetry.
  • Add Subtitles to Video — product integration lot. The action is now finalized as a product surface: definitively registered in ActionRegistry, routed through the standard launcher/UI/CLI flow, listed in the active docs, and integrated into the Inno Setup packaging with its own video component, bundled ffmpeg / ffprobe dependencies, and an Explorer video context-menu entry labeled Add subtitles to video.

FrameShift 1.15.0

Choose a tag to compare

@Gaurox Gaurox released this 21 Jun 22:28

What's new

Create Subtitle File (new AI actions)

Two new actions — create-subtitles-audio and create-subtitles-video — transcribe media to an adjacent .srt file using local Whisper AI. Three selectable models:

Model Size Notes
Whisper Base ~280 MB Fast
Whisper Small ~925 MB Recommended (default)
Whisper Large-v3 Turbo ~3.1 GB Highest accuracy

GPU acceleration via DirectML with automatic CPU fallback (both init-level and inference-level). Whisper runs in an isolated worker process (FrameShift.SubtitlesWorker) to avoid ONNX Runtime conflicts with other AI actions. Long media is processed through overlapping windows with full cancellation support. Models are downloaded on demand and SHA256-verified.

Headless: --subtitles-model whisper-base|whisper-small|whisper-turbo

Known limitation (Turbo): language auto-detection returns empty for Whisper Large-v3 Turbo due to a feature dimension mismatch (128 vs 80) in sherpa-onnx 1.13.3. Transcription is correct; the UI shows "auto" for detected language.

Upscale Video — rawvideo pipeline

The default upscale path now runs through a faster in-memory FFmpeg rawvideo pipeline instead of mandatory BMP frame extraction, reducing disk I/O on supported systems. The previous BMP workflow is kept as an automatic fallback.

UpscaleFrameProcessor also reuses ONNX input buffers across frames to cut per-frame allocations without changing models, output naming, DirectML → CPU fallback, or encoding safety fallbacks.

AnimeVideo v3 — x2/x3 routing

The visible Real-ESRGAN AnimeVideo v3 option now automatically selects dedicated x2/x3 ONNX execution variants for anime requests at ×2/×3, instead of always running the x4 graph and resizing back on CPU. The picker, CLI surface and output naming stay unchanged.


Full changelog

FrameShift 1.14.0

Choose a tag to compare

@Gaurox Gaurox released this 21 Jun 11:22

FrameShift 1.14.0 introduces Upscale Video and adopts the new versioning scheme 1.<feature release>.<patch>.

Highlights:

  • New Upscale Video AI action with x2 / x3 / x4 scaling, DirectML to CPU fallback, shared ONNX tiling, FFmpeg frame extraction/re-encode pipeline, audio preservation, batch progress, cancellation, and cleanup.
  • Hosted/video-local model split: image models live under upscale-image-onnx/, video models under upscale-video-onnx/, each with dedicated README and license files.
  • New dedicated Upscale Image / Upscale Video icons and demo media.

Included asset:

  • FrameShift_1.14.0_Setup.exe
  • SHA256: F723042CFF7BFCF919D713B5F2B6365EF71B4EDD3218423A5E0E22BA763B1D0B
  • Size: 116,593,304 bytes

Validation:

  • dotnet test tests/FrameShift.Tests/FrameShift.Tests.csproj -c Release (134/134 passed)
  • dotnet build src/FrameShift/FrameShift.csproj -c Release
  • dotnet publish src/FrameShift/FrameShift.csproj -c Release -r win-x64 --self-contained true

Version note: 1.<feature release>.<patch>; small fixes now increment only the last number.

FrameShift 1.0.13

Choose a tag to compare

@Gaurox Gaurox released this 03 Jun 20:09

FrameShift 1.0.13

Upscale Image — scale options

The Upscale Image model picker now lets you choose how much to enlarge:

  • ×2 / ×3 / ×4 presets
  • Custom size — width/height fields with the aspect ratio locked to the source (type one, the other updates), so no distortion.

Under the hood the model always runs at its native ×4, then the result is resampled (Lanczos) down to the requested factor or size — so ×2/×3 keep AI-grade detail. Everything is clamped to the model's reach (×1 … ×4); a custom size larger than ×4 is reduced to fit. Output is named accordingly (_upscaled_2x, _upscaled_3x, _upscaled_4x, or _upscaled_<W>x<H>).

Headless flags: --upscale-scale 2|3|4 and --upscale-target <W>x<H>. Custom size needs a single image; the presets apply to every selected file.

FrameShift 1.0.12

Choose a tag to compare

@Gaurox Gaurox released this 03 Jun 19:47

FrameShift 1.0.12

New: Upscale Image (AI)

A new local AI action upscales images ×4, with a simple model picker (dropdown) launched from a single Explorer entry under FrameShift AI → Upscale Image 4x. --upscale-model <id> skips the picker for headless use.

Three models, all hosted on Gaurox/frameshift-models/upscale-onnx/ with pinned SHA256 verified on download and bundled README + license texts:

  • Real-ESRGAN x4plus (default) — general photos, screenshots, AI images. BSD-3-Clause
  • Real-ESRGAN Anime 6B — anime / illustration / line art. BSD-3-Clause
  • Swin2SR (Quality) — restoration / anti-JPEG, highest fidelity, slower. Apache-2.0

Runs on the GPU via DirectML with automatic CPU fallback, with automatic invisible tiling for large images (adaptive on out-of-memory). Output is saved as a new PNG next to the source (_upscaled_4x). Models are downloaded on demand; auto-download is hard-blocked if a checksum is ever left as a placeholder, and no third-party mirror URL is hardcoded.

FrameShift 1.0.11

Choose a tag to compare

@Gaurox Gaurox released this 02 Jun 23:13
  • Remove Background — model catalog. The action now offers several selectable models, each with its own --rmbg-model value and Explorer context-menu entry. Free models are downloaded on demand; the BRIA modes are user-supplied:
    • Fast — BiRefNet Lite FP16, the default model. MIT license (free for commercial and non-commercial use). Runs on GPU via DirectML with automatic CPU fallback.
    • High Resolution (Matting) — BiRefNet HR. MIT license. CPU only (the model fails on GPU runtimes).
    • High Resolution (General) — BiRefNet HR. MIT license. CPU only (the model fails on GPU runtimes).
    • BRIA Balanced (~500 MB) and BRIA High Quality (~1 GB) — BRIA RMBG-2.0, licensed CC BY-NC 4.0 (non-commercial use only). These models are user-supplied: they must be obtained manually from BRIA's official Hugging Face page, and FrameShift never downloads, bundles or redistributes them. Optional installer components are provided for them, unchecked by default.
  • Remove Background — queue. Launching the action again while a progress window is already open now appends the new file to that window instead of opening a separate one. Each queued file keeps the options of its own launch (notably the chosen model), so successive launches with different models stay distinct in the queue.
  • General UI improvements toward more consistent, DPI-aware window layouts.

FrameShift 1.0.10

Choose a tag to compare

@Gaurox Gaurox released this 01 Jun 18:14

What's new in 1.0.10

  • Multi-file compress: when several files are selected in Windows Explorer, all parallel instances are coalesced and a choice popup appears — Use same settings for all files applies one compression window to the whole queue; Configure each file separately opens the compression window once per file in sequence. Single-file behavior and CLI headless mode (--profile) are unchanged.
  • Compress form UX: the source filename is now shown in the header subtitle, making the current file immediately identifiable when configuring files one by one.
  • Configurable AI models folder: stored in %LOCALAPPDATA%\FrameShift\config\settings.json; configurable from the installer and from the FrameShift settings page.
  • Robust AI error handling: DirectML inference failures trigger an automatic CPU retry; ONNX Runtime internal paths no longer appear in user-facing messages.
  • LaMa 2025 (Fast) added as a second inpainting model in Remove Object (93 MB, Apache-2.0); existing model renamed to LaMa FP32 (Quality).
  • Media Info output fully translated to English.

FrameShift 1.0.9

Choose a tag to compare

@Gaurox Gaurox released this 31 May 14:54

What's new in 1.0.9

Remove Object (Image) — new local AI action

Paint a mask over any object directly in FrameShift's visual editor, click Apply, and the AI reconstructs the background behind it — entirely on your machine, no upload.

  • Visual editor with zoom/pan canvas, red brush mask overlay, eraser tool, and adjustable brush size
  • Custom circle cursor that matches the brush size exactly
  • LaMa FP32 inpainting model via ONNX Runtime (CPU) — downloaded on demand with SHA-256 integrity check (~200 MB, one-time)
  • Output saved as _cleaned.png next to the source file
  • Explorer context-menu integration: right-click → FrameShift AI → Remove object for PNG, JPG, WEBP, BMP
  • Model catalogue with ComboBox selector — extensible for future inpainting models

Notes

  • LaMa runs on CPU only (its FFT/FFC operators are not supported by DirectML)
  • Weights trained on Places2 — commercial use not guaranteed (documented in third-party notices)

FrameShift 1.0.8

Choose a tag to compare

@Gaurox Gaurox released this 30 May 20:40

What's new in 1.0.8

  • Added Remove Noise (Video) as a local AI action — removes background noise from a video's audio track without re-encoding the video stream. Dedicated picker UI with strength control and stereo mode.
  • Expanded shared AI model download flow so all local AI actions use a consistent preflight and downloader UX.
  • Standardized AI window and Explorer icons.
  • Fixed AI engine lifecycle: BackgroundRemovalEngine and RemoveNoiseEngine are now created once per batch and reused across all files, then disposed at the end of the batch, eliminating the per-file ONNX session load cost.
  • Fixed batch routing: replaced four redundant per-action wrapper methods with a single dispatch entry using a shared action-id registry.
  • Added unit tests for FfmpegRunner.TryParseFfmpegTime, FfmpegProgressState phase transitions, ProgramCli.TryParseArguments, and ConversionActionHelper error classification.

Installation

Download FrameShift_1.0.8_Setup.exe and run the installer. Upgrading from a previous version is supported.

FrameShift 1.0.7

Choose a tag to compare

@Gaurox Gaurox released this 29 May 18:16

1.0.7

  • Security and compliance fixes: completed third-party license notices, removed developer paths from scripts, added log rotation, added NuGet package lock files, added SECURITY.md.