Skip to content

v0.21.0

Choose a tag to compare

@github-actions github-actions released this 05 Aug 07:08
· 531 commits to main since this release
672e2e2

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.0

Download 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