Repository navigation
Releases: unslothai/unsloth
Release list
Scheduled + MiniMax-M3.1-Flash + Perf Gains
This release adds scheduled tasks, FLUX-3 edit support, perf improvements and more. Also new: MiniMax-M3.1-Flash, face touch-ups for images and faster performance + chats on Mac.
Highlights
- Scheduled tasks: Run a prompt on a schedule with a local model or an API
- MiniMax-M3.1-Flash: MiniMax's 428B MoE (23B active) Guide
- FLUX 3 Editing: FLUX 3 now supports editing of images with prompts
- Perf improvements: Large Mac perf gains, less lag, reduced binary sizes
- Saved presets: Save your Run settings as named presets for each model
Scheduled tasks
- Open Scheduled from the sidebar's More menu to run a prompt once, daily, on weekdays, weekly or monthly; each answer is saved as a new chat.
- Each task can run on the loaded model, a model on your device, or a model from a connected API provider.
- When a task's model isn't loaded, Unsloth asks before loading it, unless you turn on Switch automatically when I'm away.
- Each task can notify you after every run, only when it fails, or never.
- Tasks run only while Unsloth is running, without tools or web search.
UI + UX
- Save Run settings in the model picker as named presets for each model, then rename, delete or switch between them.
- The preset you picked last is what that model loads with next time, including loads through the API.
- Chat settings can remember your sampling settings for a model, or reset them to the model's recommended values.
- GGUF chats now show progress and time left while processing a long prompt, before the reply starts.
- The API page now shows each served model's context use, speed and request count.
- Each kind of button and icon now looks the same everywhere in the app.
- The Library and System pages in Settings show storage as a usage bar, split into models, caches and free space.
Mac
- MLX chats now reply up to 16% faster with draft models.
- MLX models that ship with a built-in draft model now use it automatically, with no separate download.
- Image and video renders need far less memory at the end, so low-memory Macs rarely slow down from swapping.
- On Apple Silicon, Z-Image GGUFs now make images from text with the MLX engine by default, 1.5-2x faster than before.
Images + video
- Make videos from text or an image with NVIDIA's Cosmos3-Edge on the Video page.
- On the Images page, turn on Detailer to redraw faces, hands or other things you name at higher resolution; it needs SAM 3 and a model that can inpaint.
- On NVIDIA GPUs older than RTX 30-series, Wan2.1 1.3B text-to-video clips render about 5x faster.
- On NVIDIA GPUs, many image and video models load faster after the first time, since Unsloth saves the version it builds on first load.
- FLUX.3 Klein can now edit photos in Images > Edit, keeping the photo's dimensions.
Training
- Split each layer of a model across GPUs for LoRA and QLoRA training, so each GPU holds less: set
UNSLOTH_TP_SIZEto the number of GPUs and launch withtorchrun. - Fine-tuning Unsloth's 4-bit gpt-oss checkpoints no longer crashes on the first training step.
- GRPO that generates with vLLM runs up to 1.9x faster per step with 16-bit LoRA on Linux with NVIDIA GPUs.
- GRPO that generates without vLLM runs up to 4.4x faster per step for Llama and Qwen3 on NVIDIA GPUs.
Coding agents + API
- Apps using an Unsloth API key can no longer approve their own Python or terminal calls to run outside the sandbox.
- Unsloth no longer trusts forwarded client IPs by default; behind your own reverse proxy, set
UNSLOTH_STUDIO_TRUST_FORWARDED=1or all users share one login rate limit.
Models + hardware
- Run MiniMax-M3.1-Flash, MiniMax's MoE model for coding, tool use and agent workflows, with up to 1M tokens of context. GGUF
- At 1-bit, MiniMax-M3.1-Flash needs at least 130 GB of RAM and VRAM combined.
- On some Windows PCs, GGUF models load again instead of failing every time with "llama-server failed to start".
Download Unsloth Desktop
Unsloth Desktop is free and open source. Download it for:
What's Changed
- Bump install.sh / install.ps1 pins to unsloth>=2026.10.8, unsloth-zoo>=2026.10.8 by @danielhanchen in #14994
- Studio: synchronise VAE decode and encode calls on Apple MPS by @Lyxot in #14940
- Repair the studio-install checks red on main by @danielhanchen in #14995
- MTP: keep the trained head when saving a named PEFT adapter by @danielhanchen in #14912
- Fix test_every_resolver_probe_forwards_the_trust_decision on main by @danielhanchen in #14990
- Format unsloth/models/speculative.py by @danielhanchen in #14997
- Studio: use the MPS SDPA prefill kernel per call on torch 2.13+ by @Lyxot in #14941
- Studio diffusion: measured activation rows for MOSS-Image and FLUX.3 Klein base; layer split prices Z-Image from its measured row by @danielhanchen in #14950
- Repair four checks red on main by @danielhanchen in #14991
- Repair two more backend checks red on main by @danielhanchen in #15003
- Studio video: keep per-request residency fitting after the stream step graph is dropped (Wan2.2-TI2V-5B at 8 / 12 GB) by @danielhanchen in #14937
- FP8 block dequant on ROCm: round fp32 to fp16 with integer ops by @danielhanchen in #14992
- get_peft_model: pass a scalar layers_to_transform to PEFT as a list by @danielhanchen in #14910
- Studio diffusion: fixed 2 GiB discrete-card reserve (ComfyUI-style fixed reserve plus activation estimate) by @danielhanchen in #14951
- Studio diffusion: fp32 VAE upcasts keep the offloaded VAE's pinned host weights (SDXL-class force_upcast VAEs) by @danielhanchen in #14946
- Studio video: MiniMax-H3 fused VAE decoder follows the mixed-precision load, and encode overlaps decode by @danielhanchen in #14986
- Studio: truncate completion_mask / assistant_masks with pre-tokenized input_ids by @danielhanchen in #14884
- Studio: import and export skills as a ZIP from the Skills dialog by @samihsq in #14181
- Studio diffusion: cap the prefetcher's pinned staging so guided Z-Image-Turbo renders on a 31 GB host (Kaggle T4x2) by @danielhanchen in #14975
- Studio diffusion: block-offload re-pins land at the addresses the step graph recorded by @danielhanchen in #14765
- Studio diffusion: cut the int8 ConvRot overhead (one rotation per shared input, SwiGLU fused into the down quant, factored rotation kernel) by @danielhanchen in #14982
- Pin CUDA availability in the step graph capture-stream release test by @danielhanchen in #15015
- Agent guides CI: resolve the newest Node 24 for the openclaw legs by @danielhanchen in #15013
- Studio diffusion: learned peaks per render phase, so later loads keep text encoders resident by @danielhanchen in #14979
- Studio sd.cpp: route all-Q8_0 image GGUFs to BF16 cuBLAS, keep k-quants on MMQ by @danielhanchen in #14983
- Studio: run the Qwen-Image-2.1 CFG branch on the replica with its own prefix KV cache by @danielhanchen in #14954
- Studio MLX images: a LoRA load keeps sd.cpp or diffusers instead of routing into the MLX refusal by @danielhanchen in #14874
- Check the GGUF load marker on load_model through the AST by @danielhanchen in #15017
- Studio sd.cpp: pass --conv-direct off when Studio's policy keeps direct convolution off by @danielhanchen in #14859
- Name the encoding on the trainer.py read in test_pretokenized_dataset by @danielhanchen in #15018
- MLX backend tests: stub zoo's new fused_d...
MOSS-Image, Flint & NVIDIA Bolt E4B
Recursive's Flint, MOSS-Image and NVIDIA's Nemotron Bolt 4B are here! Run them locally in Unsloth. Also new: a chat-only Unsloth Desktop install, MLX MoE models bigger than your Mac's memory and an OpenAI-compatible fine-tuning API.
Highlights
- Bigger MoE models on Mac: MLX MoE models too big for memory keep experts on SSD, so Qwen3.8-Flash-Next runs on a 32 GB Mac.
- Chat-only install: a much smaller Unsloth Desktop for GGUF chat; add training later in Settings.
- Flint: Recursive's 40B coding-agent MoE, runs in 24 GB at 3-bit Guide
- MOSS-Image: 5.1B image model designed for top-tier generation GGUF + FP8
- NVIDIA Nemotron 3.5 Bolt E4B: NVIDIA's new Gemma 4 E4B fine-tune, 63.2 on Tau2-Bench vs the original's 38.7 Guide
- MoE expert pruning: Export a smaller MoE model by removing 25% or 50% of its least useful experts with REAP.
- UI overhaul: New + more consistent UI across Unsloth (API, roundness etc)
Images + video
- Generate images containing English or Chinese text with OpenMOSS's 5.1B MOSS-Image, SFT or Base. GGUF · Base GGUF
- MOSS-Image, the new image model, runs on 16 GB GPUs; its GGUFs also run on Macs and computers without a supported GPU.
- Most image and video models too big for one GPU now split across your NVIDIA GPUs, if they fit, instead of streaming from system memory.
- The new Hires fix upscales and refines a render in one step on SDXL, FLUX.1, Qwen-Image and Z-Image.
- The new Compare grid renders one prompt while varying up to three settings, such as seed, CFG or LoRA weight, in labelled grids.
- SDXL safetensors get AUTOMATIC1111-style prompt weighting, CLIP skip, CFG rescale, variation seeds and textual inversion.
- Pasted AUTOMATIC1111, Forge or Civitai parameter blocks fill in the Images page settings.
- If SAM 3 isn't already downloaded, the Mask from text tool now uses SAM 3.1: smaller, with no Hugging Face login.
Chat + Desktop
- Pick Chat only (GGUF) when first launching Unsloth Desktop for a much smaller install; add training later in Settings.
- Settings > Chat now lets you view, edit, clear or turn off the memory notes Unsloth sends to every chat.
- In document-search chats, Show passages lists the exact text the model got and opens each passage at its page.
- The Audio page can speak and transcribe via a saved API connection, such as OpenAI or a local server.
- Unsloth installs, updates and
pip install -U unslothnow reject eMudhra's compromised emSign certificates, which let attackers impersonate websites. The optional vLLM and SGLang engines still trust them.
Flint
- Run Recursive's Flint, a 40B MoE model with 2.5B active parameters for coding agents, with reasoning, tool use and 256K context. Guide · GGUF
- At 3-bit, Flint fits in 24 GB at short contexts.
- On SWE-bench Pro v2, Flint scores 89.7 vs Qwen 3.6's 73.8.
NVIDIA Nemotron 3.5 Bolt E4B
- Run and fine-tune NVIDIA's Gemma Nemotron 4B, a Gemma 4 E4B reasoning tune for tool calling and instruction following.
- Gemma Nemotron 4B beats Gemma 4 E4B on 16 of 21 NVIDIA tests, gaining most in tool use and multi-turn chat.
- DPO on Gemma 4 E2B and E4B, including Gemma Nemotron 4B, no longer crashes.
Training
- Fine-tuning Whisper, Canary, Moonshine, Dia and CTC speech models with
FastModelno longer fails. - Parakeet, Canary and CTC speech training uses up to 55% less memory.
- The new Books & Documents to Text recipe in Data Recipes turns ebooks and documents into a pretraining text dataset, no model needed.
- On Windows and Linux, the Export page can now prune 25% or 50% of a MoE model's least useful experts with REAP, at some quality cost.
- In Python,
reap_pruneruns REAP expert pruning up to 54x faster than llm-compressor's. unsloth trainnow trains vision and, except on Mac, audio models.- Unsloth now supports OpenAI's fine-tuning API, so OpenAI's SDK can upload datasets and run supervised fine-tuning of local models.
Performance
- MLX MoE models too big for your Mac keep experts on SSD, with slower replies. Qwen3.8-Flash-Next fits a 32 GB Mac; DeepSeek-V4-Flash and GLM-5.3-Flash need far less memory than their size.
- DPO and other training that pads sequences runs up to 3.8x faster with less memory on NVIDIA Ampere or newer.
- Qwen3-MoE, Gemma 3 and Gemma 4 training on GPUs without bf16 now uses up to 7x less attention memory with torch 2.13 or older.
Coding agents + API
- In chat, models can now read text files and documents on connected MCP servers, not just use their tools.
- When launching coding agents,
unsloth startno longer sends its Unsloth API key in plain text through your HTTP proxy to a local Unsloth. - On Windows,
unsloth startno longer breaks Claude Code hooks or Codex sign-in when launching them. - Requests with an Unsloth API key can no longer run Python and terminal tools unsandboxed; only the Unsloth UI can allow that.
- The new Save for this model button in Chat settings makes your sampling settings that model's default for new chats and API requests.
Models + hardware
- A BF16 gpt-oss checkpoint loaded with
load_in_4bit = Trueno longer gets random expert and router weights. - The model picker again lets you run models on Ryzen AI 300-series and newer NPUs, with no environment variable.
- On some Linux AMD PCs with a system-wide ROCm, GGUFs that ran on the CPU now run on the GPU again.
Download Unsloth Desktop
Unsloth Desktop is free and open source. Download it for:
| Platform | Link |
| Windows | Download |
| macOS | Download |
| Linux x64 / Ubuntu (deb) | Download |
| Linux ARM64 / Ubuntu 24.04+ (deb) | Download |
| Linux x64 (AppImage) | Download |
| Windows ARM64 | Download |
What's Changed
- Bump install.sh / install.ps1 pins to unsloth>=2026.10.7, unsloth-zoo>=2026.10.7 by @danielhanchen in #14276
- Studio: accept a quoted local training base and name single-file checkpoints in the refusal by @danielhanchen in #14236
- QLoRA quant-state fallback: gate per weight, not a process-global flag by @danielhanchen in #14231
- GatedDeltaNet fla op engages in training; large-head self-check survives a non-reentrant checkpoint by @danielhanchen in #14233
- gpt-oss MXFP4 without triton_kernels on transformers 4.x: keep dense expert biases in the model dtype by @danielhanchen in #14275
- FSDP2: gather for push_to_hub, refuse GGUF / torchao exports, size offloaded state and 4-bit counts per shard by @danielhanchen in #14205
- Large head attention follow-ups: compiled kill switch, 4-bit shard self check, forced float32 skip by @danielhanchen in #14188
- Optimizer parking outside inference mode; refuse fp16 params with unquantized adamw_flash moments by @danielhanchen in #14201
- Review follow-ups: fused LoRA dropout/bias under compile and 4-bit, Q-GaLore offload, GRPO truncated support, CP save on transformers 4.x by @danielhanchen in #14226
- CI: raise the Core zoo job cap from 25 to 35 minutes by @danielhanchen in #14240
- Studio: change Parallel Slots from the API page's Slots readout by @danielhanchen in #14225
- FSDP2 QLoRA: keep packed 4-bit bytes out of the loader dtype pass, fix merged_4bit save by @danielhanchen in #14165
- GRPO: reduce the IS ratio metric per sequence for geometric modes and the env override by @danielhanchen in #14192
- Retry the audio.cpp server on a new port when its port is taken by @danielhanchen in #14294
- fix(rag): avoid long CPU stalls when archiving tool calls by @ATAMAH in #14098
- Avoid unnecessary attachment reindexing on chat generation by @Imagineer99 in #14217
- Studio: update external llama.cpp default port to 9931 by @oobabooga in #14266
- Import fix: torchao 0.17+ on torch 2.6 (torch.utils._pytree.register_constant) by @danielhanchen in #14299
- whisper.cpp: skip the macOS release wal...
DeepSeek-V4.1 & FLUX-3
DeepSeek-V4.1-Flash-1017 and FLUX.3 Image Klein are here! Run both locally in Unsloth. Also new: images and videos in chat, multi-GPU training with FSDP2 (alpha) and one-command MCP setup for coding agents.
Highlights
- DeepSeek-V4.1-Flash-1017: 552B (16B active) - runs on ~125 GB at 1-bit with its Engram table on SSD Guide
- FLUX.3 Image Klein: Runs on 24 GB and edits with up to 10 reference images GGUF
- One-command MCP setup:
unsloth mcp addconnects Claude Code, Codex or Cursor to Unsloth. - Images and videos in chat: Local chat models use the image or video model loaded beside them.
- Qwen-Image-Edit-2509 and 2511: Edit with up to 3 images at once.
- Token preview: See what your model will learn before training starts.
DeepSeek-V4.1
- Run DeepSeek-V4.1-Flash-1017, an update to DeepSeek-V4.1-Flash with better reasoning, coding and agentic results, and shorter outputs. It has 552B parameters plus 196B in its Engram table, about 16B active, and 1M tokens of context. With the Engram table left on SSD, it runs in about 125 GB of memory at 1-bit, or 300 GB at 4-bit. Guide · GGUF
- DeepSeek-V4.1-Flash-1017 scores 42.3 on Terminal-Bench 4.0, up from 31.2 for the earlier DeepSeek-V4.1-Flash.
- Thinking is on by default at high effort. Choose any effort from low to max, or turn thinking off.
FLUX.3 Image Klein
- Generate and edit images with Black Forest Labs' FLUX.3 Image Klein, a 5.6B model that renders text and edits with up to 10 reference images. It runs on 24 GB of GPU memory, its GGUFs also run on computers without a supported GPU, and the undistilled Klein Base is available too. GGUF · Base GGUF
- Enhance prompt, on by default, expands short prompts into detailed captions, which fixes most distorted bodies in hard poses. Preview shows the caption so you can copy or edit it.
Images + video
- Qwen-Image-Edit-2509 and Qwen-Image-Edit-2511 now accept up to 3 images per edit.
- Set custom video sizes and aspect ratios in Create videos, or pick one of the model's trained sizes.
- Start an edit straight from an image's menu in the Images gallery or the Library, or drag a generated image onto an image picker on the Images page.
- Image and video models with a large text encoder now load a quantized encoder by default where the GPU supports it, cutting the encoder's memory by up to half and loading faster. LTX-2.5 no longer needs a Hugging Face login.
Chat + Desktop
- Image, video and Read aloud speech models can now stay loaded beside your chat model on computers with a dedicated GPU. Pick When they fit or Always in Settings > Resources > Model memory.
- With the Images pill on, a local chat model can use the image or video model loaded beside it to make images and playable videos in the chat.
- After an image or video model replaces your GGUF chat model, the chat continues without re-reading the conversation, as long as Keep chat context across unloads is on.
- In Unsloth Desktop, choose an existing working folder when creating a project.
- Unsloth Desktop no longer crashes at startup on older macOS versions, and its browser panel works on macOS 27 and follows system proxies such as Clash.
Training
- In Python, spread LoRA, QLoRA and full fine-tuning across GPUs with FSDP2, and split long sequences, including packed ones, with
context_parallel_size. Check the machine first withunsloth doctor --gpus. - On the Train page, Preview tokens shows which parts of your dataset the model trains on and flags samples cut off by the context limit. Data Recipe chats now train as multi-turn conversations, and Qwen fine-tunes keep a dataset's
thinkingtext. - Cut full fine-tuning optimizer memory with
optim = "adamw_flash", or setUNSLOTH_OFFLOAD_OPTIMIZER_STATE=1to keep optimizer state in system memory between steps at some cost in speed.
Performance
- Local GGUF chats with tools now show replies as fast as the model writes them, so the next tool call no longer waits, and long replies no longer slow down as they grow.
- LoRA training with
lora_dropoutorlora_biasnow runs on Unsloth's fused kernels, about 28% faster per step. - Gemma 4's global attention layers train on a new kernel on NVIDIA Ampere or newer GPUs, with 1.4x to 2.1x faster attention and up to 4.9x less attention memory.
- Qwen3.8-Flash-Next on MLX is up to 1.4x faster on M5 Macs and up to 1.2x faster on M1 to M4 Macs.
- On M1 to M4 Macs, 4-bit and 8-bit MLX models generate several chats at once up to 1.8x faster.
Coding agents
- Connect Claude Code, Codex or Cursor to Unsloth's MCP server with
unsloth mcp add claude-code(orcodex,cursor). - Agents can upload datasets, start training and load the resulting checkpoint.
- Agents can also download models ahead of time, preview what a model load will download or unload, and queue video generation jobs.
Models + settings
- Filter downloaded models by capability or format, including Exports & Fine-tunes, and search for a maker such as DeepSeek or Meta to list Unsloth's uploads of its models.
- QwenCloud and Z.ai are now available as API providers.
- Export token usage from Profile stats as CSV.
unsloth runpasses llama-server short flags such as-ctv,-devand-ctxcpthrough unchanged.
Hardware compatibility
- PCs without an NVIDIA GPU or ROCm, such as Snapdragon laptops and Linux ARM boards, now run GGUFs on their GPU through Vulkan instead of the CPU.
- NVIDIA MIG slices are sized and selected correctly, and machines that mix GPU generations get settings and llama.cpp builds every GPU can run.
- On Linux machines with an AMD Strix APU and a discrete AMD GPU, PyTorch is installed for the discrete GPU. On Windows AMD PCs with the HIP SDK, Settings > System no longer asks for administrator access.
- Windows on ARM PCs can now turn on Sandbox High in Settings > Sandbox.
Download Unsloth Desktop
Unsloth Desktop is free and open source. Download it for:
| Platform | Link |
| Windows | Download |
| macOS | Download |
| Linux x64 / Ubuntu (deb) | Download |
| Linux ARM64 / Ubuntu 24.04+ (deb) | Download |
| Linux x64 (AppImage) | Download |
| Windows ARM64 | Download |
What's Changed
- Bump install.sh / install.ps1 pins to unsloth>=2026.10.6, unsloth-zoo>=2026.10.6 by @danielhanchen in #13918
- Studio: preview tokens and the completion mask before training by @danielhanchen in #13850
- Locate the MTP drafter-drop fallback by its shape, not one spelling by @danielhanchen in #13922
- Fix main's red Backend CI after #13850 and #13806 by @danielhanchen in #13930
- Studio: do not re-send the image generate POST after a dropped connection by @drakeo338 in #13790
- NVFP4: decode weight tiles inside the GEMM for small-batch forward and dX by @danielhanchen in #13840
- Fix main's red CI: UI font tokens in the token preview, real-CUDA skip guards by @danielhanchen in #13936
- NVFP4 tests: real-CUDA skip guards, and format the files #13840 left off the hook by @danielhanchen in #13937
- Studio: prefer NVIDIA Wayland dmabuf over static compositing-off by @indrajeetapache in #13892
- Baseline the unsloth-zoo 2026.10.6 and transformers 5.20.0 scan findings after review by @danielhanchen in #13949
- Add context parallelism support (SDPA only) by @danielhanchen in #4257
- Prebuilt CUDA wheels: pin NVIDIA's re-published CUDA 13.4.1 manifest (win_arm64) by @danielhanchen in #13954
- GRPO: keep TRL's old logprob gate when using vLLM by @danielhanchen in #13856
- Refuse an explicit offload_layers swap under FSDP / DeepSpeed by @danielhanchen in #13857
- RMSNorm: opt-in saving of the norm output instead of its input (UNSLOTH_RMSNORM_SAVE_OUTPUT) by @danielhanchen in #13868
- Add a Triton head_dim 512 attention kernel for Gemma-4 global layers by @danielhanchen in #13869
- Use side stream offload hooks for non-reentrant gradient checkpointing by @danielhanchen in https://github.com/unslo...
Meta Muse Spark Open + NVIDIA Nemotron 3.5
Run NVIDIA's new Nemotron 3.5 models and Meta's new Muse Spark Open locally in Unsloth. New: text-diffusion LLMs, DeepSpeed training and better prompt caching for coding agents.
Highlights
- NVIDIA Nemotron 3.5 Bolt: Run on 24 GB of memory. Guide
- NVIDIA Nemotron 3.5 Super VL: 120B (12B active) Guide
- Meta Muse Spark Open: 816B (42.7B active) - runs on 256GB Guide
- Better prompt caching for coding agents: Claude Code, Codex etc. on local GGUF models re-process far less of each prompt.
- Browser use: Always allow properly works, cursor, and separate tabs for each chat.
- Images through your connections: generate with sd-server, Ollama, Lemonade and other image servers.
- Diffusion LLMs: train and chat with LLaDA, Dream, SDAR and more, with a live denoising canvas.
Nemotron 3.5
- Run NVIDIA Nemotron 3.5 Super VL, a 120B model with 12B active parameters and up to 1M tokens of context, built for document understanding, computer use and long-running agents. Super VL runs in about 64 GB of memory at 1-bit, or 128 GB at 4-bit. Guide · GGUF
- Run NVIDIA Nemotron 3.5 Bolt, a 74B model with 9B active parameters and 128K context, compressed from Super VL. Bolt runs in about 32 GB of memory at 1-bit or 2-bit. Guide · GGUF
- Nemotron 3.5 Super VL generates about 5x faster than Inkling Small at 100K input with similar intelligence.
- By default, Unsloth runs Nemotron 3.5 Bolt with a DSpark drafter (about 1 to 2 GB more memory) and Super VL with its built-in MTP for faster output. Both can be turned off in settings. MTP Guide
Muse Spark Open
- Run Meta's Muse Spark Open, an 816B MoE model with about 42.7B active parameters and 1M tokens of context, built for multimodal reasoning, coding and agentic workflows. Muse Spark Open runs in about 256 GB of memory at 2-bit. Guide · GGUF
- Muse Spark Open takes text, images, video and audio as input, with reasoning effort from low to xhigh.
- Muse Spark Open was trained on long-horizon coding tasks, including whole-repository generation, large end-to-end projects and auto-research.
Training
- Train and chat with text-diffusion LLMs in the Unsloth app, including LLaDA, Dream, SDAR, LLaDA2, Nemotron-Labs-Diffusion and DiffusionGemma. Chat replies show a live denoising canvas.
- Train with DeepSpeed ZeRO-2 and ZeRO-3, including 4-bit QLoRA, full fine-tuning, DPO and CPU offload. LoRA training with DDP and gradient checkpointing also no longer crashes.
- GRPO with
fast_inferencenow runs on Nemotron 3 Nano and block-FP8 MoE models, sharing weights with vLLM. - On the Train page, stop early when eval loss stops improving and train on pre-tokenized datasets. Random Seed now also sets the LoRA starting weights.
Performance
- When Claude Code, Codex or OpenCode runs on a local GGUF model, follow-up turns re-process much less of the conversation, and a new Claude Code session's first reply starts up to 4x sooner.
- In Python, single-prompt
model.generateis up to 2.7x faster at 32K context for Llama and Qwen3 models. - In Python, generating 2 to 4 prompts at once with a bitsandbytes 4-bit model is up to 2.8x faster on some NVIDIA GPUs.
- GRPO rollouts with
fast_inferenceon Nemotron 3 Nano are up to 30% faster by default.
Browser use
- See a cursor where the model clicks and types, or turn it off in Settings > Browser > Browser use > Show cursor.
- Browser use prompts now have Always allow, which approves that kind of action on a site for the rest of the chat. Scripts still ask every time.
- Each chat keeps its own browser tabs, and in Desktop, browser use keeps working in chats that are not on screen.
- In the web UI, browser pages remember site preferences between pages, load data from their own site, and play videos full screen.
Images + video
- Generate images on the Images page through a connected image server, such as sd-server, Ollama, Lemonade, vLLM, llama.cpp or a custom OpenAI-compatible URL.
- Image and video models now skip text-encoder layers they never use, saving memory on every load.
Chat + Desktop
- Choose where Unsloth installs on Windows from Desktop's first-run screen.
- Re-embed your documents after switching the embedding model, without uploading them again.
- Chat with files can collapse to a row of pills, its citations open a PDF at the cited page, and newly added Word and HTML files keep their list numbers.
- Compact a conversation from the chat header menu, and Rewind no longer asks for confirmation when no files changed.
Models + settings
- When Claude Code, OpenCode or Codex runs on a cloud model, add
--auto-routetounsloth startto send routine coding work, such as reading files, searching and running commands, to your local model. - Codex can use its MCP and sub-agent tools with local models, and Claude Code, Codex and OpenCode can run on a model from Settings > Connections with
unsloth start --model. - Name a model once in Settings > API > Model aliases, so apps using the Unsloth API keep working when the model behind the alias changes.
- vLLM connections and Unsloth's own vLLM engine support thinking effort levels and Preserve thinking, and the engine now auto-compacts long chats. vLLM and SGLang loads can also set an FP8 KV cache, a GPU memory limit and a seed.
- Pick 2-bit, 4-bit, 6-bit or 8-bit from MLX repos that publish several precisions, the way you pick GGUF quants. Xing4.0 and MiniCPM-V 4.7 now run and train with MLX.
Hardware compatibility
- Windows PCs with NVIDIA drivers older than CUDA 12 install the Vulkan or CPU llama.cpp build instead of failing.
- AMD GPUs that ROCm does not support, such as RDNA 1 and Polaris, now get the Vulkan llama.cpp build even when ROCm is installed or another AMD GPU supports it.
- GGUF image generation runs on Vulkan for AMD and Intel Arc GPUs when PyTorch is CPU-only.
- Windows installs on PyTorch 2.10 and 2.11 get prebuilt flash-attn, causal-conv1d and mamba-ssm.
- Multi-GPU machines that mix GPU generations now pick the attention backend for each GPU, and Hopper GPUs with conda-forge xformers no longer crash.
Download Unsloth Desktop
Unsloth Desktop is free and open source. Download it for:
| Platform | Link |
| Windows | Download |
| macOS | Download |
| Linux x64 / Ubuntu (deb) | Download |
| Linux ARM64 / Ubuntu 24.04+ (deb) | Download |
| Linux x64 (AppImage) | Download |
| Windows ARM64 | Download |
What's Changed
- fix: update Codex client version to restore model discovery by @Imagineer99 in #13581
- Studio: changing the thinking setting also resets Expand thinking by @shimmyshimmer in #13625
- Bump install.sh / install.ps1 pins to unsloth>=2026.10.5 by @danielhanchen in #13627
- Studio MCP: never run server-side tools from the chat tool by @danielhanchen in #13605
- Nemotron-H fast_inference via vLLM weight sharing (fallback on older unsloth_zoo); drop vLLM-only kwargs on fallback by @danielhanchen in #13440
- Diffusion LM training: compiled chunked loss with 0 graph breaks, plus per-family samplers by @danielhanchen in #13341
- Studio: offer the precision folders of an MLX repo like GGUF quants by @danielhanchen in #13565
- Studio: keep ticked Word form check boxes in Chat with files by @NilayYadav in #13485
- tests: click the inline Delete button #13615 put back on the action bar by @danielhanchen in #13634
- Studio: hold the forced aligner against a folder delete; match compound audio.cpp size scopes in order by @danielhanchen in #13633
- Studio: vLLM thinking effort levels, preserve thinking and auto-compact by @danielhanchen in #13571
- Studio: stop dropping the page text after a menu with no closing tag by @NilayYadav in #13489
- Re-measure the Studio startup budget after the audio selector and thinking merges by @danielhanchen in #13640
- Studio: let the Python tool o...
Large Performance Gains + More Browser Use
Unsloth has gotten major performance upgrades!
Highlights
- Large perf gains: all Unsloth UI/UX faster - up to 10x for multiple chats
- Up to 5x faster inference: 95% cache hit rate, MoE Strata style fixes, slowdown fixes
- Better Compaction - works for all API + better UI handling
- Drag and drop files: Desktop works again with more than 3× more supported files
- Browser use with scripts: click, move the mouse, drag, run approved scripts and set per-site browser rules.
- LTX-2.5 + Wan2.2 + Faster image LoRA training: new video generation, image-to-video and faster image training.
- NVIDIA RTX Spark: now supported with our Windows ARM64 downloadables
- Major Unsloth workflow upgrades: improved files, chat history, browser agent and document handling.
- Improved hardware compatibility: Windows AMD, Intel XPU and CUDA/PyTorch fixes.
- Faster image LoRA training with aspect buckets, fused AdamW and improved FP8/MXFP8 support.
Performance
- Large chat and training histories load in smaller batches, using less startup data and memory.
- Follow-up replies start sooner in long GGUF chats, including conversations with many tool calls.
- LTX-2.5 generation runs faster with the default two-stage settings when memory permits.
- Qwen3.5, Qwen3.6 and Qwen3.8 get faster prefill and speculative decoding with MLX.
Browser use
- Models can click at a point, move the mouse and drag page elements, including unlabelled targets such as canvases.
- Run scripts on a page with your approval each time, or set Run scripts to Never in Settings > Browser.
- Set per-site rules for unlabelled clicks, including Always allow for a site you trust.
- Better handling of compressed pages, client-side navigation and delayed content in the web UI. Models can also fill date and time fields.
- Pressing Enter in a form gets the same approval check as clicking its submit button.
Images + video
- Generate videos with LTX-2.5 from text or a start image, with synchronized audio. GGUF
- Add a Start frame with Wan2.2-TI2V-5B, LTX-2 or LTX-2.3 to animate an image on the same loaded model.
- Choose SDXL samplers and schedules on the Images page, and load v-prediction checkpoints correctly.
- Crop image inputs before generation. Large photo uploads and ordinary video frame uploads resize automatically.
Training
- Image LoRA training uses fused AdamW by default on NVIDIA GPUs, with aspect-ratio buckets for new supported runs.
- FP8 LoRA training for FLUX and Z-Image uses less memory on NVIDIA Ada, Hopper and Blackwell GPUs. MXFP8 handles aspect buckets on Blackwell with a compatible torchao stack.
- Set Sample every on the Train tab to see preview images during supported image training and in run history.
- Set caption dropout, LoRA dropout and checkpoint retention on the image Train tab. Random flipping is now opt-in.
- Fine-tune AWQ models with LoRA using Transformers 5 and GPTQModel, and export INT4 QAT models as quantized weights.
Chat + Desktop
- Drag files into Desktop chat again, including more Office documents, templates, EPUBs, README files, dotfiles and media.
- Upload supported PDF and Office documents up to 200 MB in the web UI.
- Linked folders honor common
.gitignorerules. Upload folders to project Sources from your browser, retry failed uploads and open completed sources. - Type
/rewind, or choose Rewind from a message's More menu, to restore the conversation, tracked files in the chat folder, or both. Preview changes and undo a restore. - Use
/compactin saved GGUF or MLX chats that support tools to compact context on the next message. Inline dividers mark compaction. - Download model-created files from tool results, and enable notifications when a background reply finishes.
Models + settings
- Use local models in VS Code Copilot Chat with
unsloth start vscode. - Coding agents can use Unsloth over MCP with an account API key to load models, generate, train and export.
- Choose a model download folder, and reveal or delete listed models from LM Studio, Ollama and your own folders.
Hardware compatibility
- Fix the PyTorch/Triton startup error on Windows AMD systems.
- Intel XPU recognizes native BF16 on supported Arc and Data Center GPUs without intel-ocloc, with improved GPU selection on single-tile Linux hosts.
- Avoid stale Triton launcher errors after switching Python versions on CUDA systems.
- Improved low-VRAM Gemma 4 E2B loading, including host-memory offload on Windows and WSL.
What's Changed
- Bump install.sh / install.ps1 pins to unsloth>=2026.10.4 by @shimmyshimmer in #13433
- Key triton < 3.4 driver module cache by Python version by @danielhanchen in #13409
- Studio: linked folders honour .gitignore, folder uploads in the browser, queued drops and retry for failed sources by @shimmyshimmer in #13224
- Studio: image-to-video for Wan2.2-TI2V-5B and LTX-2 / LTX-2.3 by @danielhanchen in #13378
- fix(studio): preserve chat search position on close by @Sneakr in #13437
- Studio: refuse a text-encoder GGUF picked as the image or video model by @danielhanchen in #13423
- Studio: keep emoji split across tokens in MLX replies by @danielhanchen in #13416
- Studio: retry from the Hub when a cached snapshot has no tokenizer files by @danielhanchen in #13412
- Unsloth Studio (AMD/Windows): import PyTorch before Triton to avoid WinError 126 by @boobcactus in #10932
- Studio: list each on-disk quant of a multi-quant GGUF in GET /v1/models by @danielhanchen in #13422
- Studio: split DiffusionGemma across GPUs when one GPU cannot hold it by @danielhanchen in #13291
- Tests: catch up with four product changes that landed red on main by @danielhanchen in #13445
- fix(studio): show queued downloads consistently across media routes by @Imagineer99 in #13219
- Accept bf16 tie-flips in the batched left-padded generation guard by @danielhanchen in #13408
- fix: reshape noncontiguous gradients in fused LoRA backward by @MrCapricornLiu in #10712
- test_trl_cap_sites: unsloth_zoo 2026.10.4 admits trl 1.15.0, end the deferral by @danielhanchen in #13449
- Studio: keep Spark-TTS LoRA checkpoints exportable by @danielhanchen in #13424
- Keep uv, its cache and the uv-managed Python inside a custom UNSLOTH_STUDIO_HOME by @danielhanchen in #13373
- Studio: browser use follow-ups (safetensors nudge, date fields, disabled dropdowns, moved pages) by @danielhanchen in #13429
- Keep a user's UNSLOTH_RETURN_LOGITS=1 after for_inference() on FastModel by @danielhanchen in #13406
- Codex device-poll tests: fake asyncio.sleep only on the test's own thread by @danielhanchen in #13457
- Format two test files that #13378 and #13437 left off the formatter's fixed point by @danielhanchen in #13462
- Studio: run LTX-2.5 on the Video page by @danielhanchen in #13463
- Baseline the unsloth-zoo 2026.10.4 and trl 1.15.0 findings after review by @danielhanchen in #13472
- studio: restore file drops and composer drag feedback by @mahiatlinux in #13387
- Studio: optically centre the annotate button's icon by @shimmyshimmer in #13495
- Fix the three Backend CI reds LTX-2.5 left on main by @danielhanchen in #13496
- Studio: Open WebUI llama.cpp residency and explicit load/unload (#10610) by @debojyoti-dev in #10693
- studio: keep open thinking sized when the chat pane narrows by @shimmyshimmer in #13503
- Studio: nudge the dictate mic down 1px instead of 2px by @shimmyshimmer in #13504
- Studio: larger Browser use icon, more room and a shorter description in Settings by @shimmyshimmer in #13506
- tests: give each xdist worker one CPU share for torch by @danielhanchen in #13494
- Studio: close the LTX-2.5 two-stage speed gaps in a shared multi-stage layer by @danielhanchen in #13508
- Update README.md by @danielhanchen in #13512
- Studio: clip the browser page at the split handle while dragging it smaller by @shimmyshimmer in #13492
- Studio: composer accepts every document type chat with files parses by @shimmyshimmer in #13426
- studio: stronger light-mode Library card hover, centered time pill by @shimmyshimmer in #13509
- Studio: composer takes README-style files, dotfiles, Office templates and more media by @shimmyshimmer in #13493
- Studio: LTX-2.5 VAE fixture, catalog row and Video page defaults by @danielhanche...
Browser Use + Qwen-Image-2.1-Turbo
Models can now use the browser in Unsloth. Turn on Browser use and your model can open pages, read them, click, type and scroll while you watch. Qwen-Image-2.1-Turbo is here too, making images in just 8 steps. Also included: text-diffusion LLM training, faster MoE GGUFs and speculative decoding on Mac.
Highlights
- Browser use (in + menu in chatbox) Local models can take control of the Unsloth Browser
- Qwen-Image-2.1-Turbo: images in 8 steps (2.5x faster). See Guide
- Train text-diffusion LLMs like DiffusionGemma, LLaDA and Dream
- Up to 3x faster MoE GGUFs that are bigger than your VRAM
- Speculative decoding on Mac for up to 2.8x faster MLX replies
Browser use
- Turn on Browser use from the + menu in chat, then ask your model to look something up or use a website.
- Models can open pages, read them, click, type, pick options and scroll while you watch.
- The model browses in its own tab beside the chat, with no access to your other tabs.
- Browser use works with local models and API providers, including small text-only models.
- Unsloth asks you before the model signs in, posts a form or presses a button that buys, sends or deletes.
- The model never fills in passwords, card numbers or one-time codes. Those are yours to enter.
- Choose which sites models can open, and their access to your browsing history and downloads, in Settings > Browser.
Image generation
- Run Qwen-Image-2.1-Turbo, the official 8-step version of Qwen-Image-2.1, from the Images page, with a 4.2 GB Q4 GGUF. GGUF
- Export the image LoRAs you train in Unsloth as files you can reuse or share, and load image LoRAs from your own folders.
- ComfyUI models now use the text encoders already in your ComfyUI folder instead of downloading them again.
Training
- Train text-diffusion LLMs (DiffusionGemma, LLaDA, LLaDA2, Dream, Nemotron and SDAR) with the new
DiffusionTrainer. - Train with LoRA+ by setting
loraplus_lr_ratio, and fine-tune GPTQ models with LoRA. - GRPO now trains on video prompts and tool calls with TRL 1.15, and
AsyncGRPOTrainercan train and generate on one GPU. - Fine-tuning on tool-calling datasets now includes each row's tool definitions, and works on multi-turn agent traces.
- On the Train page, set Offload layers with a VRAM budget (NVIDIA and AMD), and continue LoRA training from a saved adapter.
- Train Laya and Clef decision models on Mac. Clef can also train on images.
Performance
- MoE GGUFs bigger than your VRAM now run up to 3x faster on NVIDIA and AMD GPUs.
- Training with sample packing is now up to 8x faster when flash-attn and xformers are not installed (NVIDIA, PyTorch 2.12+).
- Speculative decoding makes MLX replies on Mac up to 2.8x faster, with the same output.
- MLX speculative decoding sets its draft depth automatically, and supports MTP, DFlash, DSpark and EAGLE-3 drafters.
- Typing and scrolling stay smooth in long chats, and with hundreds of chats in the sidebar.
Chat + Desktop
- React code blocks (JSX and TSX) in a reply now run as live previews in the Browser.
- Deep Research can use your MCP tools as sources and cite them, and retrying a failed run resumes from the steps it already finished.
- Unsloth now reads
AGENTS.mdfrom your Unsloth home and project folders into chat instructions. - In Desktop, a project can now run its tools in an existing folder on your computer.
- Turn on Read replies automatically in Settings > Voice to hear each reply aloud when it finishes.
Models + settings
- Use the optional vLLM engine on AMD GPUs, on Linux and through WSL on Windows.
- Run DeepSeek-OCR and DeepSeek-OCR-2.
- Filter Hub models by parameter count, context length and organization.
- Turn on the detailed Live monitor to see GPU load, temperature and power.
- On multi-user installs, limit which models each managed account can use.
- Install the Unsloth web UI as an app from a supported browser.
Download Unsloth Desktop
Unsloth Desktop is free and open source. Download it for:
| Platform | Link |
| Windows | Download |
| macOS | Download |
| Linux x64 / Ubuntu (deb) | Download |
| Linux ARM64 / Ubuntu 24.04+ (deb) | Download |
| Linux x64 (AppImage) | Download |
| Windows ARM64 | Download |
What's Changed
- Bump install.sh / install.ps1 pins to unsloth>=2026.10.3 by @danielhanchen in #13083
- Keep loss-only evaluation on the fused CE path instead of materializing logits by @danielhanchen in #13065
- Studio: int8 ConvRot Qwen-Image-2.1 text encoder on Apple Silicon, and release text encoders during denoise on unified memory by @danielhanchen in #13026
- Save models loaded from pre-quantized bitsandbytes checkpoints on transformers 5 by @danielhanchen in #13054
- Studio: re-measure annotate marks after a tab zoom by @shimmyshimmer in #13082
- Studio: install the released Diffusers 0.41.0 instead of the pinned main commit by @danielhanchen in #13045
- Studio: restart llama-server after a lost GPU device instead of locking the chat by @danielhanchen in #13044
- Studio: keep CUDA 12 llama.cpp prebuilts off drivers older than CUDA 12.4 by @danielhanchen in #13031
- Studio: don't take a port another process holds on 0.0.0.0 by @SulimanAbdulrazzaq in #12011
- Studio: load community SDXL single-file GGUFs on the Images page by @danielhanchen in #13035
- Studio: fix Qwen-Image-2.1 input-image encode on Apple Silicon (MPS frame-axis pad returns wrong data) by @Lyxot in #13028
- Dequantize pre-quantized bitsandbytes checkpoints for full finetuning by @danielhanchen in #13079
- Add loraplus_lr_ratio for LoRA+ training by @danielhanchen in #13062
- MLX: train decision models on Apple Silicon by @Lyxot in #13016
- Unsloth Studio / Desktop: Block Swap settings, a VRAM budget, and a live layer panel on the training page by @LeoBorcherding in #12996
- Unsloth Studio / Desktop: per-GPU Block Swap budget and layer panel for multi-GPU training by @LeoBorcherding in #12998
- Studio: keep typing and streaming fast in long chats by @danielhanchen in #13059
- Reject Activated LoRA adapters instead of training them as plain LoRA by @danielhanchen in #13089
- Studio: provide Git lazily for FP8/FP4 export instead of at install time by @danielhanchen in #13084
- Studio: let Gemma 4 GGUF models think after a tool call by @NilayYadav in #13097
- GGUF adapter export and llama.cpp installer: use unslothai/llama.cpp releases only, no git by @danielhanchen in #13056
- Windows installer: stop installing Git and the VS toolchain without asking by @LeoBorcherding in #12971
- Studio: keep table columns in attached Word and HTML files by @NilayYadav in #13105
- Studio: stop link URLs from crowding out long page text by @NilayYadav in #13102
- Studio: keep Think off working on Claude Opus 5.5 and Sonnet 5.5 by @NilayYadav in #13104
- Studio: raise the llama-server micro-batch to 2048 when MoE experts spill to RAM by @danielhanchen in #12950
- Studio: let imported chats with image links answer follow-up questions by @NilayYadav in #13099
- Studio: hold message hover still while a wheel scroll moves the thread by @danielhanchen in #13077
- Studio: fill the context bar for Ollama connections by @NilayYadav in #13106
- Studio: read news articles whose pages carry megabytes of inline code by @NilayYadav in #13100
- Studio: open Images workflows from More when Images is unpinned by @NilayYadav in #13101
- Studio: let Deep Research search MCP tools as extra sources by @NilayYadav in #13103
- Studio: let Gemma 4 read web search and tool res...
Sandboxing is here!
We're introducing Windows, Mac and Linux sandboxing in Unsloth! Read our guide. Turn any text or vision LLM into a Jev-style decision model in Unsloth, with decision accuracy going from 30% to 80%. Train, test, export and serve decision models directly from Unsloth. Also included: native ComfyUI models, diffusion improvements and a better Browser in Desktop.
Highlights
- 8th Oct Fixes - Better Browser + 100+ bug fixes + perf fixes
- Sandboxing with Bwrap for Linux, Seatbelt for Mac and MXC for Windows
- Turn any model into a Jev-style decision model. Accuracy went from 30% to 80%
- Load ComfyUI diffusion models natively in Unsloth
- Faster + more accurate diffusion with INT8 ConvRot and more
dt-demo.mp4
Decision models
- Train any text or vision LLM as a Jev-style decision model using QLoRA.
- Test trained models directly from the Decision API settings.
- Make decisions with confidence scores for every option.
- Export Clef models with Qwen3.5 backbones and Laya models to GGUF.
- Serve supported decision models through llama.cpp, including models that understand images.
- Save and resume smaller adapter and decision-head checkpoints.
- Guide at https://unsloth.ai/docs/basics/train-your-own-decision-model-with-unsloth
Diffusion + ComfyUI
- Run supported ComfyUI image and video models directly from Hugging Face.
- Unsloth now recognises ComfyUI checkpoints and local model folders automatically.
- Use your ComfyUI text encoders and VAEs in Unsloth.
- Run Krea-2, HunyuanImage-2.1 and Wan2.2 expert pairs, plus ComfyUI NVFP4 and MXFP8 models.
- Qwen-Image-2.1 now keeps more full-precision image detail with INT8 ConvRot enabled by default.
- Faster Qwen-Image-2.1 ConvRot generation on supported NVIDIA GPUs.
Training + performance
- Train Qwen3.5-35B-A3B up to 4.1x faster and Qwen3-30B-A3B up to 3.3x faster with QLoRA on A100 and RTX PRO 6000.
- Improved sample packing for gated-delta, Mamba2 and short-convolution models.
- Train prompt and completion message lists as one conversation.
- Vision datasets now keep each row's own question.
- Chat exports and training data now include the system prompt.
Browser + Desktop
- Ask about open pages in the Desktop Browser.
- Confirm Browser downloads and choose where files are saved.
- Reorder pinned pages in the sidebar like chats.
- Search continues past unusable results and can fall back to Wikipedia.
- Reply citations such as
[1]now open as links. - Pick, pin or unload RAG embedding models directly from the RAG menu.
Sandboxing
- Bwrap on Linux, Seatbelt on Mac and MXC on Windows sandbox code the model runs.
- View sandbox status and choose protection levels in Settings.
Download Unsloth Desktop
Unsloth Desktop is free and open source. Download it for:
| Platform | Link |
| Windows | Download |
| macOS | Download |
| Linux x64 / Ubuntu (deb) | Download |
| Linux ARM64 / Ubuntu 24.04+ (deb) | Download |
| Linux x64 (AppImage) | Download |
| Windows ARM64 | Download |
What's Changed
- Bump install.sh / install.ps1 pins to unsloth>=2026.10.1, unsloth-zoo>=2026.10.1 by @danielhanchen in #12869
- Studio: list embeddinggemma-2 first in the embedding model picker by @shimmyshimmer in #12870
- Repair three checks that went red on main with the 10-06 Studio merges by @danielhanchen in #12868
- Studio: run ComfyUI-format video quants on the int8 / fp8 runtimes by @danielhanchen in #12851
- Studio: free PyAV's per-thread scalers before a fork so preexec_fn spawns still exec by @danielhanchen in #12863
- Tests: give the setup.ps1 download progress pwsh its own startup cache by @danielhanchen in #12882
- Studio: fill the Hebrew and Swedish strings that left the strict i18n check red on main by @danielhanchen in #12881
- Baseline the eight unsloth-zoo 2026.10.1 findings after review by @danielhanchen in #12884
- Support every PEFT init_lora_weights option, with fast PiSSA and MiCA init by @Suchitra-idu in #6879
- Sandbox test: wait for the cache scan workers before counting them by @danielhanchen in #12896
- Studio: keep browser panel tooltips, toasts and menus visible over desktop web pages by @oobabooga in #12895
- Studio: continue searching past unusable results and add a Wikipedia fallback by @oobabooga in #12892
- Studio: list every Transcribe ASR model in Voice settings by @Etherll in #12898
- Frontend test: give the cold Vite SSR render in reasoning-source-render room on a loaded runner by @danielhanchen in #12903
- Run shell suites and Windows browser checks in parallel by @oobabooga in #12899
- Studio: add a New badge beside Audio in the sidebar by @Etherll in #12891
- Composer settings driver: poll the submitted list instead of reading it once after the key press by @danielhanchen in #12920
- Studio: support current native builds and preserve CPU asset selection by @oobabooga in #12902
- Studio: pick the quant of a GGUF dictation model in Voice settings by @Etherll in #12900
- fix(studio): stop a managed runtime when the client drops its stream by @goodmai in #12266
- Studio: train prompt/completion message lists as one conversation by @NilayYadav in #12910
- Studio: keep each row's own question when training on a vision dataset by @NilayYadav in #12909
- Studio: train transparent PNG and WebP images on white instead of black by @NilayYadav in #12908
- Use the requested max_seq_length for encoder embedding models by @NilayYadav in #12915
- Studio: show the LAN address on the API page when LAN access is on by @NilayYadav in #12906
- Studio: hide the negative prompt on image models that ignore it by @NilayYadav in #12914
- Keep the notebook and saved model when unsloth-run runs a URL by @NilayYadav in #12907
- Studio: drag pinned pages in the sidebar like chats by @shimmyshimmer in #12927
- Studio: Ask about this page on every page, desktop included by @shimmyshimmer in #12926
- Docker: allow unsloth_root_shim.py into the build context by @danielhanchen in #12929
- Tauri transport test: start the late backend after the old ladder is spent, not at 3s by @danielhanchen in #12930
- Studio: simpler icons for the audio pages, one audio icon in the Library by @Etherll in #12890
- Desktop contract: count #12927's scaled sidebar row by @danielhanchen in #12931
- fix(studio): preserve skill mention intent and denied preload context by @wasimysaid in #12841
- Studio: embedding model picker, pins and eject in the RAG menu by @shimmyshimmer in #12875
- install-kernels: skip mamba_ssm below sm80 by @danielhanchen in #12921
- Gemma-4 26B/31B: train with the empty thought channel on non-thinking turns by @danielhanchen in #12867
- Studio: try a decision from the Decision API settings by @NilayYadav in #12916
- Studio: confirm browser downloads, choose the download folder by @shimmyshimmer in #12832
- Studio: default Qwen-Image-2.1 int8 to the hosted ConvRot file, with shared rotations by @danielhanchen in #12874
- Studio: recognise ComfyUI checkpoints by name and header, and list ComfyUI model folders by @Danie...
Train your own Decision model
Turn any text or vision LLM into a Jev-style decision model in Unsloth, with decision accuracy going from 30% to 80%. Train, test, export and serve decision models directly from Unsloth. Also included: native ComfyUI models, diffusion improvements and a better Browser in Desktop.
Highlights
- Turn any model into a Jev-style decision model. Accuracy went from 30% to 80%
- Load ComfyUI diffusion models natively in Unsloth
- Faster + more accurate diffusion with INT8 ConvRot and more
- Better Browser in Desktop with many bug fixes
- Sandboxing with Bwrap for Linux, Seatbelt for Mac and MXC for Windows
dt-demo.mp4
Decision models
- Train any text or vision LLM as a Jev-style decision model using QLoRA.
- Test trained models directly from the Decision API settings.
- Make decisions with confidence scores for every option.
- Export Clef models with Qwen3.5 backbones and Laya models to GGUF.
- Serve supported decision models through llama.cpp, including models that understand images.
- Save and resume smaller adapter and decision-head checkpoints.
- Guide at https://unsloth.ai/docs/basics/train-your-own-decision-model-with-unsloth
Diffusion + ComfyUI
- Run supported ComfyUI image and video models directly from Hugging Face.
- Unsloth now recognises ComfyUI checkpoints and local model folders automatically.
- Use your ComfyUI text encoders and VAEs in Unsloth.
- Run Krea-2, HunyuanImage-2.1 and Wan2.2 expert pairs, plus ComfyUI NVFP4 and MXFP8 models.
- Qwen-Image-2.1 now keeps more full-precision image detail with INT8 ConvRot enabled by default.
- Faster Qwen-Image-2.1 ConvRot generation on supported NVIDIA GPUs.
Training + performance
- Train Qwen3.5-35B-A3B up to 4.1x faster and Qwen3-30B-A3B up to 3.3x faster with QLoRA on A100 and RTX PRO 6000.
- Improved sample packing for gated-delta, Mamba2 and short-convolution models.
- Train prompt and completion message lists as one conversation.
- Vision datasets now keep each row's own question.
- Chat exports and training data now include the system prompt.
Browser + Desktop
- Ask about open pages in the Desktop Browser.
- Confirm Browser downloads and choose where files are saved.
- Reorder pinned pages in the sidebar like chats.
- Search continues past unusable results and can fall back to Wikipedia.
- Reply citations such as
[1]now open as links. - Pick, pin or unload RAG embedding models directly from the RAG menu.
Sandboxing
- Bwrap on Linux, Seatbelt on Mac and MXC on Windows sandbox code the model runs.
- View sandbox status and choose protection levels in Settings.
Download Unsloth Desktop
Unsloth Desktop is free and open source. Download it for:
| Platform | Link |
| Windows | Download |
| macOS | Download |
| Linux x64 / Ubuntu (deb) | Download |
| Linux ARM64 / Ubuntu 24.04+ (deb) | Download |
| Linux x64 (AppImage) | Download |
| Windows ARM64 | Download |
What's Changed
- Bump install.sh / install.ps1 pins to unsloth>=2026.10.1, unsloth-zoo>=2026.10.1 by @danielhanchen in #12869
- Studio: list embeddinggemma-2 first in the embedding model picker by @shimmyshimmer in #12870
- Repair three checks that went red on main with the 10-06 Studio merges by @danielhanchen in #12868
- Studio: run ComfyUI-format video quants on the int8 / fp8 runtimes by @danielhanchen in #12851
- Studio: free PyAV's per-thread scalers before a fork so preexec_fn spawns still exec by @danielhanchen in #12863
- Tests: give the setup.ps1 download progress pwsh its own startup cache by @danielhanchen in #12882
- Studio: fill the Hebrew and Swedish strings that left the strict i18n check red on main by @danielhanchen in #12881
- Baseline the eight unsloth-zoo 2026.10.1 findings after review by @danielhanchen in #12884
- Support every PEFT init_lora_weights option, with fast PiSSA and MiCA init by @Suchitra-idu in #6879
- Sandbox test: wait for the cache scan workers before counting them by @danielhanchen in #12896
- Studio: keep browser panel tooltips, toasts and menus visible over desktop web pages by @oobabooga in #12895
- Studio: continue searching past unusable results and add a Wikipedia fallback by @oobabooga in #12892
- Studio: list every Transcribe ASR model in Voice settings by @Etherll in #12898
- Frontend test: give the cold Vite SSR render in reasoning-source-render room on a loaded runner by @danielhanchen in #12903
- Run shell suites and Windows browser checks in parallel by @oobabooga in #12899
- Studio: add a New badge beside Audio in the sidebar by @Etherll in #12891
- Composer settings driver: poll the submitted list instead of reading it once after the key press by @danielhanchen in #12920
- Studio: support current native builds and preserve CPU asset selection by @oobabooga in #12902
- Studio: pick the quant of a GGUF dictation model in Voice settings by @Etherll in #12900
- fix(studio): stop a managed runtime when the client drops its stream by @goodmai in #12266
- Studio: train prompt/completion message lists as one conversation by @NilayYadav in #12910
- Studio: keep each row's own question when training on a vision dataset by @NilayYadav in #12909
- Studio: train transparent PNG and WebP images on white instead of black by @NilayYadav in #12908
- Use the requested max_seq_length for encoder embedding models by @NilayYadav in #12915
- Studio: show the LAN address on the API page when LAN access is on by @NilayYadav in #12906
- Studio: hide the negative prompt on image models that ignore it by @NilayYadav in #12914
- Keep the notebook and saved model when unsloth-run runs a URL by @NilayYadav in #12907
- Studio: drag pinned pages in the sidebar like chats by @shimmyshimmer in #12927
- Studio: Ask about this page on every page, desktop included by @shimmyshimmer in #12926
- Docker: allow unsloth_root_shim.py into the build context by @danielhanchen in #12929
- Tauri transport test: start the late backend after the old ladder is spent, not at 3s by @danielhanchen in #12930
- Studio: simpler icons for the audio pages, one audio icon in the Library by @Etherll in #12890
- Desktop contract: count #12927's scaled sidebar row by @danielhanchen in #12931
- fix(studio): preserve skill mention intent and denied preload context by @wasimysaid in #12841
- Studio: embedding model picker, pins and eject in the RAG menu by @shimmyshimmer in #12875
- install-kernels: skip mamba_ssm below sm80 by @danielhanchen in #12921
- Gemma-4 26B/31B: train with the empty thought channel on non-thinking turns by @danielhanchen in #12867
- Studio: try a decision from the Decision API settings by @NilayYadav in #12916
- Studio: confirm browser downloads, choose the download folder by @shimmyshimmer in #12832
- Studio: default Qwen-Image-2.1 int8 to the hosted ConvRot file, with shared rotations by @danielhanchen in #12874
- Studio: recognise ComfyUI checkpoints by name and header, and list ComfyUI model folders by @danielhanchen in #12878
- studio: install the gstreamer recording plugins with the deb package by @mahiatlinux in ht...
New Browser + Voice Cloning
This release adds a browser inside Unsloth (browser use coming very soon), so files, web pages and pages the model writes open right beside your chat. It also brings EmbeddingGemma 2, Google's new multimodal embedding model, plus new Audio pages and lower-memory training.
Highlights
- Browser beside chat for files, web pages and model-written HTML, as tabs
- EmbeddingGemma 2: run and fine-tune Google's new model for text, code, images, video and audio Guide
- Audio pages: Speak, Clone, Music, Transcribe, Edit, Separate, Convert, with 70+ GGUF models
- Keep multiple models loaded, plus vLLM and SGLang engines (opt-in)
- Sandbox for code the model runs, now with a Settings tab and Colab and Docker support
- Live preview during image and video generation
Browser
Unsloth now has a built-in browser panel next to any chat. Attached files, web pages and HTML the model writes all open in it as tabs.
- Files open as tabs: PDF, Office, HTML, Markdown, code and text.
- Real browsing: address bar, search, tabs, find in page, zoom, bookmarks, history and downloads.
- Model-written HTML and code open as tabs with a preview, console and Request edits, replacing Canvas.
- Ask about this page: highlight part of a page and ask the model about it. Right-click a tab to pin it or fork it into a chat.
- Settings > Browser: pick a search engine, set the default zoom, and import bookmarks from Chrome, Safari, Firefox or Edge.
- Kept separate: web pages cannot reach your Unsloth account, chats or API.
EmbeddingGemma 2
EmbeddingGemma 2 is Google DeepMind's new multimodal embedding model. It turns text, code, images, video and audio into vectors for search, RAG, classification and clustering. Read our guide.
- 740M parameters, or 270M for text only, with optional vision and audio encoders. 100+ languages and an 8K context window.
- About 14% better on code than EmbeddingGemma 1 (78.68 vs 68.76, MTEB code).
- Run it locally: import GGUF or safetensors into Unsloth, or serve text embeddings with llama.cpp. GGUF safetensors
- Fine-tune the text model with
FastSentenceTransformer, using 4-bit QLoRA or BF16 LoRA. - Prompts are kept. Fine-tunes of EmbeddingGemma and Qwen3-Embedding now save the model's built-in query and document prompts, not empty ones.
Audio
- Clone a voice from a short sample and save it.
- Edit words in a recording and keep the speaker's voice.
- Separate a song into vocals, drums and other parts, or Convert one voice into another.
- Music makes songs and sound effects, and can edit parts of a clip.
- Transcribe can show timestamps and speakers, and exports subtitles.
Sandbox
Code the model runs with the Python and Terminal tools stays inside a sandbox, with limited access to your computer.
- OS sandbox on Linux and macOS, plus an opt-in Windows 11 preview. Now works in Colab and Docker.
- Settings > Sandbox shows this computer's protection and can install a missing sandbox.
- Low or High: High (default) uses the OS sandbox. Low uses software checks only.
Models + chat
- Keep multiple models loaded (off by default, in Settings > Resources). Each request is answered by the model it asks for.
- vLLM and SGLang: opt-in, experimental engines for Linux with NVIDIA GPUs.
- Auto-compact now works for API models like Claude and OpenAI, and for MLX chats.
- Import your Cursor, Claude Code and Codex chats into projects, or chats saved as Markdown.
unsloth start --applets the Codex, OpenCode, OpenClaw and Hermes desktop apps use your local model.
Training + speed
- Layer offload (opt-in, LoRA, NVIDIA and AMD graphics cards):
offload_layerskeeps frozen layers in system RAM, so Llama-3.1-8B 4-bit trains with VRAM capped at 7 GiB. - Faster padding-free training without flash-attn, the usual Colab case: Qwen3-0.6B drops from 5.45 GB to 1.87 GB of VRAM, with steps 5x to 8x faster.
- gpt-oss-20b QLoRA is 2x to 3x faster on NVIDIA.
- Images and video (NVIDIA): live preview while rendering, up to 20x faster Z-Image-Turbo on older GPUs, and the same seed gives the same image after a restart.
- AMD: export fine-tuned models for the Ryzen AI NPU, and a much faster first Qwen-Image-2.1 image on newer Radeon cards.
- Faster on Apple Silicon (MLX): Qwen3.6-35B-A3B replies about 10% faster, and long prompts start up to 10% sooner.
- Int8 Prefill on M5 chips (MLX, experimental, opt-in): long prompts read up to 1.5x faster, with slightly less accurate answers.
Download Unsloth Desktop
Unsloth Desktop is free and open source. Download it for:
| Platform | Link |
| Windows | Download |
| macOS | Download |
| Linux x64 / Ubuntu (deb) | Download |
| Linux ARM64 / Ubuntu 24.04+ (deb) | Download |
| Linux x64 (AppImage) | Download |
| Windows ARM64 | Download |
What's Changed
- feat(studio): complete embedded image recipe and Recipe popover by @Souravrajvi0 in #12091
- Bump install.sh / install.ps1 pin to unsloth>=2026.9.14 by @danielhanchen in #12439
- Count the final EOS token within the raw-text chunk budget by @vineethsaivs in #11040
- fix(studio): serve desktop SPA on loopback listener by @Souravrajvi0 in #10847
- Format the desktop contract test to the ruff-format fixed point by @danielhanchen in #12440
- Fix three tests red on main after #12431, #12408 and #12382 by @danielhanchen in #12441
- Studio: disclose required assets before media downloads by @Imagineer99 in #12387
- Stop enable_padding_free_metadata writing seq_lengths into the caller's examples by @vineethsaivs in #8049
- Studio: persist Data Recipes and run history server-side by @Etherll in #7108
- Fix the tests left red on main by #12408, #12382 and #12436 by @danielhanchen in #12447
- Read supervision from labels or the mask column in the padding-free filter tests by @danielhanchen in #12452
- fix(studio): include loaded llama extra args in active model baseline by @Souravrajvi0 in #10870
- Read auto_map at every config level in the remote code gate by @danielhanchen in #12453
- Record why the permission pill is missing after a reload, and reload once more only if the app never booted by @danielhanchen in #12456
- Add approved image attachment inputs for MCP tools by @Etherll in #10871
- Studio: log a pending embedder download once instead of a traceback on every compaction by @danielhanchen in #12443
- Studio: stop a recovered chat crashing on a duplicate tool call key by @danielhanchen in #12442
- Give the NVIDIA probe control case a budget a loaded runner can meet by @danielhanchen in #12462
- Wait for the chat-only export gate instead of counting it as the form appears by @danielhanchen in #12463
- Pin the DeepSeek OCR module fetch and import it from that fetch by @danielhanchen in #12454
- Check a sentence-transformers module config on every version, and confirm the resolved class by @danielhanchen in #12444
- Studio: keep the app's titlebar chrome off the desktop update screen by @oobabooga in #12465
- Studio: stop a reopened chat from saving every replayed event, and let Stop reach it by @oobabooga in #12464
- Studio: blur modal titlebar background while keeping window controls sharp by @Imagineer99 in #12433
- Gate the sentence-transformers module types on the routes that delegate the load by @danielhanchen in #12446
- Retry the NVIDIA probe control case past the Linux pwsh redirect race by @danielhanchen in #12477
- Studio: keep diffusion LoRA loading working on torchao 0.18 with peft 0.18 by @danielhanchen in https://gi...
Command Palette + Desktop UI/UX
This release brings faster navigation, shareable run settings, and clearer errors to Unsloth Desktop. It also 4x speeds up Laya decisions, expands hosted Decision API support, and keeps NVFP4, INT4, and MXFP4 checkpoints in 4-bit during LoRA training.
Highlights
- Command palette on Cmd/Ctrl+P. Also, you can now share your GGUF model's run settings
- Laya decisions up to 4.1x faster, plus connections to TypeSafe and other hosted providers
- Clearer errors that explain failed loads and generations, with a View logs button
- NVFP4 LoRA with 45% lower peak memory on Qwen3.8-27B-NVFP4
- INT4 + MXFP4 checkpoints stay packed during LoRA, including Kimi-K2.7-Code and gpt-oss
Desktop + chat
- Cmd/Ctrl+P opens a command palette, and GGUF run settings can be shared as a link or saved without loading.
- Continue response extends a finished reply, and Fix with the model puts HTML canvas errors in the message box.
- A warning flags models that only partly fit on the GPU, and the Images gallery loads thumbnails first.
- The desktop app adds Cmd/Ctrl + and - zoom, Windows 11 style buttons on Windows and Linux, and a check before Update stops training.
Lower-memory checkpoint training
Pre-quantized 4-bit checkpoints now train on their exact published weights. Training reads them packed, so a loaded model needs about as much memory as its 4-bit checkpoint.
- Qwen3.8-27B-NVFP4 peaks at 40.2 GB instead of 72.9 GB on one RTX PRO 6000, with 11% shorter steps.
- Dense compressed-tensors INT4 checkpoints train as published on NVIDIA GPUs. Qwen3-8B w4a16 peaks at 8.5 GB, not 18.8 GB, on a B200.
- Kimi-K2.7-Code trains on 6 B200s with its INT4 experts packed, where a 16-bit copy would need about 2 TB.
- gpt-oss loaded with
load_in_4bit = Falsekeeps its MXFP4 experts, so gpt-oss-120b trains on one B200.
How it works
- Triton kernels dequantize each layer on the fly, bit for bit matching compressed-tensors, and backward keeps only the packed weights.
- INT4 stays exact instead of being re-quantized to NF4, which rounds every weight twice and raised Qwen3-8B perplexity by 1.6%.
- For inference-only gpt-oss,
UNSLOTH_MXFP4_KEEP_PACKED=0restores the native load, which prefills faster.
Decision API + Laya
Laya decision models now answer short requests up to 4.1x faster, and hosted decision models work too.
- Add TypeSafe or another hosted decision provider under Connections, then pick its models in Settings > API.
- With the Decision API on, enable Unsloth Decisions in the chat's MCP menu for a decide tool.
- On a B200, a 3-question guardrail check takes 2.8 ms instead of 11.6 ms. Long inputs run at about the same speed.
- Laya loads in about 9 s instead of 17 s and needs about half the peak host RAM.
Image + video
- Image models keep INT8 or FP8 when offloading. On a 10 GiB-capped B200, Z-Image takes 2.3 s, not 38.4 s.
- Qwen-Image-2.1 renders 1536x1536 images up to 3.6x faster on a Radeon 8060S.
Training + models
- Fine-tune T5, T5Gemma, BART, Marian and other text encoder-decoders with
FastModel. - The new
unsloth evalcommand runs lm-evaluation-harness tasks on a checkpoint or LoRA adapter. - Gemma 4 31B training and batched generation now work on models split across GPUs.
AMD + Apple Silicon
- On Windows, RX 5000 through RX 9000 cards get PyTorch from AMD's multi-arch index.
- MLX moves to mlx 0.32.3 and mlx-vlm 0.7.4, and quantized-KV vision loads can batch replies.
- On a Mac, export LoRA adapters as PEFT or GGUF for GPU machines.
Download Unsloth Desktop
Unsloth Desktop is free and open source. Download it for:
What's Changed
- Bump install.sh / install.ps1 pin to unsloth>=2026.9.12, unsloth-zoo>=2026.9.8 by @danielhanchen in #12209
- Give the Kimi processor test's stand-in tokenizer convert_tokens_to_ids by @danielhanchen in #12206
- Follow chat export calls in the cancelled-save contract instead of a fixed file list by @danielhanchen in #12203
- Add Idefics3 support (Granite Docling VLM) by @danielhanchen in #4241
- Repair the checks red on main after today's Mistral-format, GKD, laya, llm-compressor and HF token merges by @danielhanchen in #12218
- Load compressed-tensors packed INT4 checkpoints for QLoRA without a 16-bit copy (exact packed INT4 by default, NF4 fallback), and train remote DeepSeek-V3 MoE code (Kimi-K2.7-Code) by @danielhanchen in #11537
- fix(studio): prevent terminal tool hangs in credential scan (#12048) by @Souravrajvi0 in #12087
- Default loader.py's Mistral-format names in the precision-conflict harness by @danielhanchen in #12229
- Studio: say why a generation or a model load failed, and offer the log by @danielhanchen in #8804
- Train Kimi-K3 with its MXFP4 experts kept packed and dequantized on the fly by @danielhanchen in #11750
- fix: align GKD Liger loss with the native objective by @taking-lying-flat in #12007
- Studio: resolve repo-relative image paths in the simple image+text VLM converter by @breken-ai in #11897
- fix(studio): reuse hardware monitor drag and resize handling for API monitor by @Imagineer99 in #12204
- Unsloth Studio (AMD/Windows): real torchao INT8 / FP8 export on Windows ROCm by @danielhanchen in #7102
- Studio: clamp unsupported reasoning effort to offered levels by @oobabooga in #12208
- Studio: load Laya without randomly initialising its vocabulary embedding by @danielhanchen in #12210
- Scope the runtime encoding scan past vendored laya while its loader supplies UTF-8 by @danielhanchen in #12230
- Studio: load Images strip tiles as thumbnails instead of full PNGs by @oobabooga in #12228
- Images: smaller prompt box radius, inset scrollbar, taller default by @shimmyshimmer in #12223
- Library delete dialog: no dark mode border, cancel on outside click by @shimmyshimmer in #12222
- Studio: laya download confirm by @NilayYadav in #12196
- feat(studio): default the model source to ModelScope where Hugging Face is restricted by @Lyxot in #12197
- Studio: fix prompt timestamp layout, accessibility, and imported times by @shimmyshimmer in #12173
- Studio: explain failed and recurring llama.cpp runtime repairs by @umran666 in #12106
- Studio: faster Laya inference (marker-only head, CUDA graphs) by @danielhanchen in #12224
- Library: equal size chat cards and no loading placeholders by @shimmyshimmer in #12221
- Run the user message timestamp Playwright check in Frontend CI by @danielhanchen in #12255
- Studio: say when a model only partly fits on the GPU by @danielhanchen in #8812
- Studio: push only the exported merged model to the Hub on a Mac by @NilayYadav in #12239
- Fix sidebar More menu hover and collapsed border hover by @Sneakr in #12216
- Studio: keep earlier messages when you send audio by @NilayYadav in #12244
- Studio: show the model a phone photo the right way up by @NilayYadav in #12241
- Studio: name the llama.cpp graph-scheduler abort and stop reloading into it by @danielhanchen in #6741
- Fix NaN gradients from compiled flex attention on short static training batches by @danielhanchen in #12207
- Studio: stop chats with images from blocking other chats on GGUF models by @NilayYadav in #12236...
