The big one. May 2026.
Premiere-style EDL workflow, end-to-end theme system with live dark/light swap and user-loadable JSON themes, caption pipeline rework (semantic chunking, multi-language storage, per-word timing fixes), transcription accuracy overhaul, GPU work moved into a crash-isolated child process, metadata generation reliability fixes, per-language thumbnails, faster multi-track transcribes, caption-burn rework, and a major code cleanup pass. Installer is ~180 MB lighter than v1.1.x and every Norse module now statically links FFmpeg, so no more avcodec/avformat/swresample/swscale DLLs at runtime and no ffmpeg.exe shell-outs anywhere in the export pipeline.
_edited.mp4.app_settings.json)._fr / _de / _ja…) the Thumbnail tab generates a thumbnail per language, and the Upload tab pairs each upload variant with its language-specific thumbnail automatically.ffmpeg.exe -filter_complex shell-out from the Finalize tab.ass= filter chain + Windows-native h264_mf encoder, replaces the ffmpeg.exe -vf ass + libx264 shell-out. LGPL-clean.%APPDATA%/LokiStudio/themes/, edit it while the app is running, and the change applies live via QFileSystemWatcher.ThemeManager singleton drives every binding; Theme.qml is a thin facade. One themeChanged() signal flips every property in every view at once."Unexpected empty grammar stack after accepting piece: {" on every metadata call when used with Qwen3 — the BPE tokenizer packs {" into a single token, which over-consumed past the { trigger. Removed the { trigger and rely on the cleaner <|assistant|> single-token trigger. Net result: ~4-5× faster end-to-end on metadata batches.skuld_debug.log when a fault escapes the per-call SEH wrappers.primary_topic / first key point if cliché slips through.thumbnail_title / thumbnail_subtitle, a focused follow-up prompt fills just those two strings rather than regenerating the whole brief.<base>_<frameNumber>_thumb.jpg using the source video's actual FPS, with a profile-configurable minimum frame distance (default 30) from the previous pick. Stops back-to-back regens from landing on the same visible frame.LokiWorker.exe process rather than the main UI process. A CUDA driver fault or OOM in the worker no longer takes down the application — the parent surfaces the error and lets you retry._exit(0) after sendResult() to bypass CTranslate2's ThreadPool destructor hang on Windows + CUDA.compression_ratio_threshold back to 2.4 (faster-whisper-python default). Catches Whisper repetition loops while letting real repetitive content through (vocal effects, gaming reactions)._<lang>.json with correct timings.generate() now posts all alignment jobs in one GPU batch instead of a per-chunk loop. Up to 4 alignment passes used to serialize; now they run in parallel.muninn.dll no longer needs avcodec/avformat/avutil/swresample/swscale at runtime. Removes ~50 MB of shared DLLs from the installer and eliminates DLL-version mismatch failures.model.reset() to dodge CTranslate2's CUDA-teardown hang) left its CTranslate2 ThreadPool alive. N regens accumulated N ThreadPools' worth of idle worker threads, climbing CPU. Now: one translator per tab session, one ThreadPool.clear_cache() between tracks. Previously a no-op placeholder; now actually frees the allocator cache, smoothing VRAM peak on long multi-track runs.localizations.<lang>.description. The translation worker now truncates at the nearest word boundary, and the uploader also defensively truncates at upload time for existing on-disk metadata.alreadyExists (409), invalidVideoMetadata (400), videoLimitExceeded, mediaBodyRequired, quotaExceeded (403), plus 401 auth and 5xx outage. Full raw API JSON moves to a Details button.ffmpeg.exe + ffprobe.exe retired. Every code path that used to shell out to them now goes through a Norse module (Fenrir for stream copy and concat, Idun for caption burn, Aesir for amix, Mimir for metadata, Bragi for LUFS). Saved ~130 MB from the installer.x64-windows-static-md triplet + scripts/build_ffmpeg_msvc.bat).invokeQml / setQmlProperty helpers. ~20% line reduction across the tab subsystem.utils/FfmpegRunner, utils/FFmpegUtils, ExportService::ffmpegPath(), waitForProcessWithCancel(), and their QProcess/QMutex dependencies all removed.setup_cpp_environment.ps1 rewritten as a generic prereq checker (Visual Studio 2022, CMake, Qt 6.10.1, CUDA 13.2, cuDNN 9, GStreamer, vcpkg, MSYS2) — no side effects, tracked in-repo for contributors._<lang>.json is written._<lang>.jpg) detected by the Upload tab and paired with the matching _<lang>.mp4._fr, _de, …) so multi-track language outputs can be re-finalized when "Merge Audio Tracks" was off at render time.*_*_thumb_<lang>.jpg, *_yt_<lang>.json) instead of leaving them behind._edited suffix when loading multipart episodes — Ep05a + Ep05b + Ep05c exports as Ep05.mp4, matching the rest of the pipeline.https://nordiqai.io/ to https://www.lokistudio.ai/ across all built-in profiles.distil-large-v3.5 added to Whisper model downloads — faster than large-v3 with comparable accuracy in English._<lang>.json translations on disk still carry the old English-word timing array. Re-translate on this version to regenerate.%APPDATA%/LokiStudio/themes/. The directory is created on first run; Default Light / Default Dark ship with the app.LokiWorker.exe as a child process. Antivirus or application-whitelisting tools may need to allow LokiWorker.exe alongside LokiStudio.exe.If you've already paid, this version is free. Just download and reinstall.