v0.21.0
Install
# One-line install (auto-detects GPU, pinned to this release)
curl -fsSL https://raw.githubusercontent.com/utensils/mold/v0.21.0/install.sh | MOLD_VERSION=v0.21.0 sh
# From crates.io (CPU-only, no GPU acceleration)
cargo install mold-ai
# From source with GPU support
cargo install --git https://github.com/utensils/mold --tag v0.21.0 --features metal,preview,discord,expand,tui,webp,mp4,metrics,mdns # macOS
cargo install --git https://github.com/utensils/mold --tag v0.21.0 --features cuda,preview,discord,expand,tui,webp,mp4,metrics,mdns # Linux
# Nix
nix run github:utensils/mold/v0.21.0Download pre-built binaries
| Platform | GPU | File |
|---|---|---|
| macOS Apple Silicon | Metal | mold-aarch64-apple-darwin.tar.gz |
| Linux x86_64 | CUDA — RTX 3090 / A40 (Ampere) | mold-x86_64-unknown-linux-gnu-cuda-sm86.tar.gz |
| Linux x86_64 | CUDA — RTX 40-series (Ada) | mold-x86_64-unknown-linux-gnu-cuda-sm89.tar.gz |
| Linux x86_64 | CUDA — B200 / B300 (datacenter Blackwell; simulated, not hardware-qualified) | mold-x86_64-unknown-linux-gnu-cuda-sm100.tar.gz |
| Linux x86_64 | CUDA — RTX 50-series (consumer Blackwell) | mold-x86_64-unknown-linux-gnu-cuda-sm120.tar.gz |
GH200, GB200, and GB300 require future linux/arm64 artifacts and are unsupported.
Current Linux release archives and container images are linux/amd64 only.
Desktop app (macOS)
Mold-macos-arm64.dmg (also attached with its versioned name) — signed, notarized, and stapled. Drag Mold to Applications; no quarantine dance needed. Stable link to the newest build: https://github.com/utensils/mold/releases/latest/download/Mold-macos-arm64.dmg
What's Changed
- fix(create): cache source-fit preprocessing by @jamesbrink in #476
- fix(desktop): prevent advanced control clipping by @jamesbrink in #477
- test(desktop): harden LoRA layout assertion by @jamesbrink in #478
- feat(desktop): make Create inspector resizable by @jamesbrink in #479
- feat(tui): Mold Studio theme presets and dual-accent tokens by @jamesbrink in #480
- refactor(frontend): consolidate web and Tauri studio stack by @jamesbrink in #486
- feat(tui): five-workspace IA and key remap by @jamesbrink in #482
- feat(tui): ^K command palette by @jamesbrink in #485
- feat(tui): Machines workspace — multi-host registry, telemetry, queue lanes by @jamesbrink in #488
- fix(web): stabilize gallery grid and restore tags by @jamesbrink in #492
- feat(tui): Library merges prints from all machines by @jamesbrink in #490
- feat(tui): Settings redesign — theme cards and preferences by @jamesbrink in #489
- feat(web): discover LAN hosts through server by @jamesbrink in #483
- feat(tui): tachyonfx motion behind reduce-motion — completes G13 by @jamesbrink in #493
- docs: refresh the TUI screenshot for the Mold Studio redesign by @jamesbrink in #495
- fix(db): set a 5s SQLite busy timeout on metadata-DB connections by @jamesbrink in #494
- fix(ios): allow external TestFlight builds by @jamesbrink in #496
- fix(web): purge stale pre-workspace web/node_modules before building by @jamesbrink in #497
- chore(attribution): credit both core contributors by @jamesbrink in #498
- fix(ios): add required privacy policy by @jamesbrink in #500
- fix(about): align privacy and contributor details by @jamesbrink in #501
- fix(web): complete explicit-target create jobs by @jamesbrink in #502
- fix(web): restore Create input contracts by @jamesbrink in #503
- fix(catalog): restore bounded pagination by @jamesbrink in #504
- fix(web): restore Library print actions by @jamesbrink in #505
- fix(web): contain overlay focus and scrolling by @jamesbrink in #506
- fix(web): expose machine management controls by @jamesbrink in #507
- fix(web): refresh model lifecycle state by @jamesbrink in #508
- feat(web): expose engine configuration settings by @jamesbrink in #509
- feat(ios): add model variant selection by @jamesbrink in #510
- feat(desktop): show RunPod cost in activity strip by @jamesbrink in #512
- fix(ios): harden generation resume recovery by @jamesbrink in #511
- feat(web): complete Create parity safeguards by @jamesbrink in #513
- feat(web): complete Library and shell parity by @jamesbrink in #514
- fix(studio): finish deferred redesign cleanup by @jamesbrink in #515
- fix(db): rebuild corrupt gallery metadata by @jamesbrink in #521
- fix(desktop): patch CUDA RUNPATH on wrapped binary by @jamesbrink in #519
- fix(models): Civitai pagination, infinite-scroll Discover, human-readable model names by @jamesbrink in #520
- chore(desktop): sync Cargo.lock with mold-db's new fs2 dependency by @jamesbrink in #523
- feat(create): expand advanced settings inline by @jamesbrink in #524
- fix(desktop): restore Linux scrolling and window controls by @jamesbrink in #525
- feat(models): kind + sort filters on desktop and iPhone Discover by @jamesbrink in #527
- fix(create): align web slider ranges with desktop and pin Advanced section order by @jamesbrink in #528
- refactor(ui): move DevelopCanvas + grain into ui/ by @jamesbrink in #529
- feat(create): live latent preview + develop animation on web and iPhone by @jamesbrink in #530
- fix(catalog): true Civitai cursor pagination, parallel fetch, per-source cache by @jamesbrink in #526
- fix(docker): copy web dist from the workspace path in release images by @jamesbrink in #531
- fix: complete LTX-2 catalog runtime support by @jdilley in #516
- fix(catalog): paginate the merged All-source Discover feed to the end by @jamesbrink in #533
- fix(web): restore remote model workflows by @jamesbrink in #534
- fix(ui): show human-readable model names everywhere by @jamesbrink in #535
- fix(ios): reset scroll when switching tabs by @jamesbrink in #536
- fix(desktop): remove unnecessary queued jobs scrollbar by @jamesbrink in #537
- fix(settings): polish desktop and web sections by @jamesbrink in #538
- feat(ui): multi-GPU status popover, Create settings reset on all surfaces, top-right toasts by @jamesbrink in #539
- feat(ios): close gallery feature gaps by @jamesbrink in #540
- fix(models): clarify model type and safety metadata by @jamesbrink in #541
- feat(ios): add Photos auto-save by @jamesbrink in #542
- fix(ui): recover stale prompt expansions by @jamesbrink in #544
- fix(web): make sequence model setup actionable by @jamesbrink in #546
- fix(desktop): follow selected host in status by @jamesbrink in #547
- fix(web): allow catalog credential overrides by @jamesbrink in #545
- fix(desktop): use native gallery save labels by @jamesbrink in #548
- feat(library): add thumbnail size slider by @jamesbrink in #549
- docs: refresh project showcase and CLI-native positioning by @jamesbrink in #550
- docs: restore contributor email link by @jamesbrink in #551
- feat(web): simplify video sequence authoring by @jamesbrink in #552
- feat(desktop): guide video sequence authoring by @jamesbrink in #554
- docs: align public project metadata by @jamesbrink in #553
- feat(ios): add guided video sequences by @jamesbrink in #555
- fix(mobile): recover the iPhone Models family filter by @jamesbrink in #556
- fix(ui): close the gap in the thumbnail-size slider by @jamesbrink in #557
- fix(desktop): make sequences discoverable and unify the chain composer with Create by @jamesbrink in #558
- feat(desktop): add generation-host selection to the Sequence header by @jamesbrink in #560
- fix(desktop): don't crash dev builds when sending a native notification by @jamesbrink in #561
- feat(api): advertise per-model frame defaults and caps on /api/models by @jamesbrink in #563
- feat(server): record full per-clip provenance on sequence outputs by @jamesbrink in #564
- feat(studio): shared sequence kit — draft store, seam components, activity merge by @jamesbrink in #565
- fix(studio): persist migrated sequence drafts immediately; SeamEditor a11y by @jamesbrink in #567
- feat(server): chain lifecycle events, queue-pause gating, stage placement by @jamesbrink in #566
- feat(desktop): unify sequence authoring into Create (Output setting, clip rail, merged jobs) by @jamesbrink in #568
- fix(ui): move RailClip type out of the SFC so clean-sandbox builds pass by @jamesbrink in #570
- feat(web): unify sequence authoring into Create (Output setting, clip rail, merged jobs) by @jamesbrink in #573
- feat(mobile): unify sequence authoring into Create (Output setting, clip cards, merged jobs) by @jamesbrink in #574
- feat(server): amend chain jobs in place, reusing cached clips by @jamesbrink in #572
- feat(studio,desktop,web): move settled sequences to Library history — activity strip is present tense by @jamesbrink in #575
- feat(studio,desktop,web): reuse and edit sequences from the Library by @jamesbrink in #576
- docs: post-unification polish sweep — guides, API reference, spec, changelog lint by @jamesbrink in #577
- fix: sequence and video fps defaults follow the selected model by @jamesbrink in #578
- fix(ui): clean up mobile segments and sequence rail by @jamesbrink in #579
- fix(mobile): center output segment labels by @jamesbrink in #580
- fix(desktop): refine toasts and media controls by @jamesbrink in #582
- fix(desktop): keep checking for updates by @jamesbrink in #583
- fix(ui): unify errors and job selection by @jamesbrink in #584
- feat: restore comprehensive multi-GPU scheduling by @jdilley in #585
- feat(studio): add cinematic sequence filmstrip and cached editing by @jamesbrink in #604
- fix: make placement recovery authoritative by @jdilley in #605
- Fix durable chains for installed catalog models by @jdilley in #608
- fix(ios): cancel queued jobs from host detail by @jamesbrink in #606
- refactor(studio): share camera motion presets by @jamesbrink in #607
- fix(studio): align sequence transitions with clips by @jamesbrink in #609
- fix(studio): restore reused prints as one shot by @jamesbrink in #612
- fix(server): isolate mock generation output by @jamesbrink in #611
- feat(ltx2): add BF16 22B manifests by @jamesbrink in #613
- fix(studio): fit canvas media, scroll-free sequence bench, mockup seams, Clear sequence by @jamesbrink in #615
- fix(batch): support queueable large prompt batches by @jamesbrink in #616
- fix(ui): confirm repair hosts and expand failures by @jamesbrink in #618
- feat(gallery): delete selected prints across devices by @jamesbrink in #614
- fix(studio): unify sequence media and output actions by @jamesbrink in #617
- fix(server): preserve GPU owner binding after chains by @jdilley in #610
- feat(ltx2): add IC-LoRA control adapters by @jamesbrink in #619
- refactor(studio): share model display helpers by @jamesbrink in #621
- feat(web): validate sequences before queueing by @jamesbrink in #620
- fix(chain): freeze LTX-2 models without standalone VAE by @jamesbrink in #623
- fix(sd15): bound high-resolution attention by @jamesbrink in #624
- fix(studio): preserve sequence inputs and model resolutions by @jamesbrink in #625
- fix(release): sync desktop Candle lockfile by @jamesbrink in #626
- feat(studio): match canvas to source images by @jamesbrink in #627
- fix(studio): restore Qwen edit inputs from Library by @jamesbrink in #628
- test(inference): keep resolver tests hermetic by @jdilley in #629
- fix(models): install a model on machines that do not have it by @jamesbrink in #630
- fix(ltx2): preserve split device placement by @jamesbrink in #633
- feat(hosts): add persistent disconnect controls by @jamesbrink in #634
- feat(studio): search and install models from the command palette by @jamesbrink in #635
- feat(ltx2): install camera controls on first use by @jamesbrink in #636
- fix(ios): add gallery source picker by @jamesbrink in #638
- fix(server): recover LTX-2 jobs after OOM by @jamesbrink in #637
- perf(ci): route jobs by changed surface by @jamesbrink in #639
- refactor(web): deduplicate gallery card activation by @jdilley in #632
- feat(ltx2): expose STG, CFG-rescale, and modality guidance controls by @jamesbrink in #642
- fix(flux2): stabilize edit and encoder memory plans by @jdilley in #640
- refactor(studio): share chain routing policy by @jamesbrink in #644
- fix(scheduler): preserve planned memory authority at dispatch by @jdilley in #645
- feat(studio): add native LTX-2 guidance controls by @jamesbrink in #643
- feat(ltx2): long-form generation — correct the frame ceiling and add extend by @jamesbrink in #647
- feat(flux2): support FLUX.2 Dev checkpoints by @jdilley in #648
- fix(studio): surface model download preparation by @jamesbrink in #649
- feat(studio): add gallery and host context actions by @jamesbrink in #650
- feat(templates): restore saved source images by @jamesbrink in #651
- feat(mobile): add secure QR host pairing by @jamesbrink in #652
- refactor(studio): share generation capability policy by @jamesbrink in #655
- feat(tui): add LTX-2 audio control by @jamesbrink in #654
- fix(ltx2): make 19B FP8 image-to-video fit a 24 GB GPU by @jamesbrink in #653
- refactor(studio): share sequence stage serialization by @jamesbrink in #657
- fix(desktop): show selected host status by @jamesbrink in #658
- fix(mobile): open pairing QR codes in Mold by @jamesbrink in #660
- fix(ltx2): price the checkpoint's own AdaLN width (19B/22B parity) by @jamesbrink in #659
- feat(studio): validate sequence plans on native apps by @jamesbrink in #656
- feat(studio): improve sequence source and timeline controls by @jamesbrink in #661
- fix(ltx2): run camera controls through native inference by @jamesbrink in #662
- fix(studio): send the LTX-2 a2-vid pipeline value the server accepts by @jamesbrink in #664
- fix(ltx2): stop camera-motion presets degrading silently, and say why one is unavailable by @jamesbrink in #666
- feat(ltx2): render sequence clips through the two-stage pipeline by @jamesbrink in #667
- fix(gallery): dedupe prints across connected hosts by @jamesbrink in #669
- feat(ltx2): raise the resolution ceiling to 1080p and make frame caps requestable by @jamesbrink in #668
- feat(pairing): add revocable paired access by @jamesbrink in #671
- feat(ltx2): tile arithmetic and trained-span reporting for stage-2 refinement by @jamesbrink in #674
- fix(studio): expose camera controls in LoRA stacks by @jamesbrink in #675
- feat(mobile): auto-load older gallery prints by @jamesbrink in #676
- fix(ltx2): fail on a corrupt checkpoint instead of rendering a rainbow gradient by @jamesbrink in #678
- feat(ltx2): register the gated lip-dub and HDR control adapters by @jamesbrink in #672
- feat(studio): add model-aware video duration controls by @jamesbrink in #680
- test(server): stop the artifact-identity fixtures racing the filesystem clock by @jamesbrink in #682
- chore: untrack UAT EXR output and gitignore the extension by @jamesbrink in #683
- fix(ltx2): recognise both vocoder layouts so 19B audio is not refused by @jamesbrink in #687
- feat(ltx2): HDR IC-LoRA output with OpenEXR export by @jamesbrink in #681
- refactor(ui): share overlay root focus lifecycle by @jamesbrink in #690
- feat(tui): add LTX-2 upscale controls by @jamesbrink in #689
- feat(ltx2): add the lip-dub pipeline for re-voicing a reference clip by @jamesbrink in #684
- refactor(models): share catalog scroll sentinel by @jamesbrink in #692
- fix(desktop): type sequence import test exposure by @jamesbrink in #693
- feat(ltx2): tiled stage-2 refinement and spatial VAE decode tiling by @jamesbrink in #694
- fix(studio): preserve long-video advanced settings by @jamesbrink in #695
- fix(studio): keep auto-chained videos in one-shot mode by @jamesbrink in #696
- feat(tui): add LTX-2 guidance controls by @jamesbrink in #691
- feat(ltx2): text-to-audio pipeline with a dedicated audio-only transformer by @jamesbrink in #697
- feat(ltx2): reach 1440p and 4K by composing, not by denoising bigger by @jamesbrink in #698
- feat(discord): add LTX-2 modes and sequences by @jamesbrink in #699
- fix(mobile): isolate offline gallery hosts by @jamesbrink in #700
- fix(server): fail CI and the job on an unclassified engine-shaping variable, not the server by @jamesbrink in #701
- feat(ltx2): HDR EXR export for chained renders by @jamesbrink in #702
- fix(desktop): preserve source fit across navigation by @jamesbrink in #705
- fix(desktop): delete full gallery selection by @jamesbrink in #714
- feat(gallery): deep-link notifications and show video pipeline by @jamesbrink in #715
- fix: resolve open server bug backlog by @jamesbrink in #709
- fix(ltx): align guidance controls with pipeline recipes by @jamesbrink in #716
- chore: release v0.21.0 by @release-plz-mold[bot] in #646
Full Changelog: v0.20.2...v0.21.0