<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: David </title>
    <description>The latest articles on DEV Community by David  (@purpledoubled).</description>
    <link>https://dev.to/purpledoubled</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3802440%2Fbd0118a6-e9df-4efa-965a-8f8f9c2ef510.png</url>
      <title>DEV Community: David </title>
      <link>https://dev.to/purpledoubled</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/purpledoubled"/>
    <language>en</language>
    <item>
      <title>DeepSeek V4.1 Flash Uncensored: what weight-level abliteration costs, and what we saw in testing</title>
      <dc:creator>David </dc:creator>
      <pubDate>Sat, 24 Oct 2026 14:24:16 +0000</pubDate>
      <link>https://dev.to/purpledoubled/deepseek-v41-flash-uncensored-what-weight-level-abliteration-costs-and-what-we-saw-in-testing-2o8n</link>
      <guid>https://dev.to/purpledoubled/deepseek-v41-flash-uncensored-what-weight-level-abliteration-costs-and-what-we-saw-in-testing-2o8n</guid>
      <description>&lt;p&gt;DeepSeek V4.1 Flash Uncensored is DeepSeek V4.1 Flash with the refusal behavior removed in the weights, published by dealignai as an FP8 checkpoint. No system prompt trick, no runtime hook: it loads like the base model.&lt;/p&gt;

&lt;p&gt;I build Locally Uncensored, an open source desktop app (AGPL-3.0) for running models on your own machine, with an optional hosted side called LU Cloud. This model went into LU Cloud today. A 552B mixture of experts is not something most people run at home, so this one is hosted only for us. Here's what the numbers say and what we saw before we turned it on.&lt;/p&gt;

&lt;h2&gt;
  
  
  what the makers measured
&lt;/h2&gt;

&lt;p&gt;From the model card:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                                  base V4.1 Flash   uncensored build
HarmBench-320, thinking off       42.8% answered    100%
HarmBench-320, thinking max        1.6% answered    100%
MMLU (14,042 questions)           87.0%             82.7%
MMLU without ethics/law subjects  -                 about 1.1 points below base
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The interesting row is the second one. The stock model gets much more refusal-prone the longer it reasons: at max effort it answered 5 of 320. The abliterated build doesn't care about the effort setting.&lt;/p&gt;

&lt;p&gt;The MMLU drop is mostly moral scenarios (76.9% to 37.0%) and professional law, which makes sense: those questions reward exactly the hesitation that was removed.&lt;/p&gt;

&lt;h2&gt;
  
  
  what we measured
&lt;/h2&gt;

&lt;p&gt;Before it went into the catalog we ran it against the live endpoint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;reasoning     on by default, Think off stops it (43 -&amp;gt; 2 tokens)
effort        low / medium / high all answer
tools         native tool calls
context       1M in, 131,072 out
images        listed as vision, but a red and a blue square both came back "White"
refusals      answered our four probes without any host system prompt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So we ship it as a text model. The model card says the vision tower is untouched; whatever goes wrong happens somewhere between the checkpoint and the endpoint, and we'd rather not sell image input that names every color white.&lt;/p&gt;

&lt;p&gt;The four probes are deliberately boring: a swearing rant, picking a lock you own, pirate insults, an explicit scene between adults. They tell you whether a model answers without being talked into it, not how far it goes.&lt;/p&gt;

&lt;h2&gt;
  
  
  using it
&lt;/h2&gt;

&lt;p&gt;In the desktop app (3.0.7) you sign in to LU Cloud, flip the Cloud switch, and the model is in the Uncensored group, marked beta. It works in Chat, Agent mode and the Code tab, since tool calls are native. The model list comes from the server, so no app update was needed. The same account works in the browser and in the Android app.&lt;/p&gt;

&lt;p&gt;It costs about 22,500 credits per million input tokens and 90,000 per million output, close to the stock V4.1 Flash. A 15 EUR pack is 450,000 credits.&lt;/p&gt;

&lt;p&gt;Two limits worth knowing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It runs on one route only. If that route is down, the request is refused with a plain message instead of quietly going to a different model.&lt;/li&gt;
&lt;li&gt;Personal API keys don't reach it. It's for the apps and the browser.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A note for Agent mode: a model that doesn't refuse also doesn't hesitate. The agent's workspace is a folder jail, not a VM, so read the tool requests before you approve them.&lt;/p&gt;

&lt;p&gt;Step by step: &lt;a href="https://locallyuncensored.com/blog/how-to-use-deepseek-v4-1-flash-uncensored.html" rel="noopener noreferrer"&gt;How to use DeepSeek V4.1 Flash Uncensored in LU&lt;/a&gt;. The longer write-up, including the second new model, Abliterated Large Flash: &lt;a href="https://locallyuncensored.com/blog/deepseek-v4-1-flash-uncensored.html" rel="noopener noreferrer"&gt;DeepSeek V4.1 Flash Uncensored in LU Cloud&lt;/a&gt;. The app is on &lt;a href="https://github.com/PurpleDoubleD/locally-uncensored" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AI-assisted: I wrote this with help from an AI model and checked the facts against the dealignai model card and our own measurements.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>deepseek</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Kimi K3.1 Pro is out: what changed from K3, what it costs, and when you can run it yourself</title>
      <dc:creator>David </dc:creator>
      <pubDate>Sat, 24 Oct 2026 11:57:25 +0000</pubDate>
      <link>https://dev.to/purpledoubled/kimi-k31-pro-is-out-what-changed-from-k3-what-it-costs-and-when-you-can-run-it-yourself-2102</link>
      <guid>https://dev.to/purpledoubled/kimi-k31-pro-is-out-what-changed-from-k3-what-it-costs-and-when-you-can-run-it-yourself-2102</guid>
      <description>&lt;p&gt;Moonshot released Kimi K3.1 Pro on October 23. It's the same 2.8T parameter mixture of experts as Kimi K3 (about 104B active per token, 1M context, text and image input), trained further for coding and long agent runs. The weights aren't out yet; Moonshot promises them by November 4.&lt;/p&gt;

&lt;p&gt;I build Locally Uncensored, an open source desktop app (AGPL-3.0) for running models on your own machine, with an optional hosted side called LU Cloud. K3.1 Pro went into LU Cloud yesterday. This post is about what the numbers say, what we measured, and why "run it locally" is still mostly a hardware question.&lt;/p&gt;

&lt;h2&gt;
  
  
  what changed from K3
&lt;/h2&gt;

&lt;p&gt;The architecture didn't. The post-training did, and it shows in agent work. Artificial Analysis numbers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                                   Kimi K3     Kimi K3.1 Pro
Intelligence Index                 44          55  (4th overall)
Terminal-Bench 4.0                 13%         67% (best measured so far)
GDPval-AA                          1,534 Elo   1,846 Elo
AutomationBench-AA                 58%         73%
Humanity's Last Exam               47%         52%
Hallucination rate (Omniscience)   53%         44%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only Claude Opus 5.5 (58), Claude Sonnet 5.5 (56) and Muse Wonder Full (56) score higher on the index. Once the weights are published it's the top open weight model there, and the gap between open and closed on that index shrinks from 12 points to 3.&lt;/p&gt;

&lt;p&gt;Moonshot also says it took cyberattack related material out of the training data before the open release. Their own exploit test went from 90.5% for the version without that cut to 81% for the one they shipped.&lt;/p&gt;

&lt;h2&gt;
  
  
  what we saw when we wired it up
&lt;/h2&gt;

&lt;p&gt;Before it went into the catalog we ran it against the live endpoint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;reasoning     on by default; switching it off really stops it
effort        low / medium / high
tools         native tool calls, also in a stream
vision        works, images need to be at least 64x64
context       1M in, 131,072 out
cache reads   a tenth of the input price
speed         about 55 tokens/s
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The thinking switch matters more than usual here. Reasoning tokens are output tokens, output costs five times input, and K3.1 Pro is the priciest model in our catalog: 0.3 credits per input token, 1.5 per output token, about 5% above K3. On a short question, thinking off is the biggest lever on the bill.&lt;/p&gt;

&lt;h2&gt;
  
  
  using it today
&lt;/h2&gt;

&lt;p&gt;In the desktop app (3.0.7, Windows, Mac, Linux) you sign in to LU Cloud, flip the Cloud switch in the header, and pick Kimi K3.1 Pro. It runs in Chat, Agent mode and the Code tab. The app reads the hosted model list from the server, so no update was needed for it to show up. The same account works in the browser at lu-labs.ai and in the Android app, and there's an OpenAI compatible endpoint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://lu-labs.ai/api/inference/v1/chat/completions &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$LU_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"model": "moonshotai/Kimi-K3.1-Pro",
       "messages": [{"role": "user", "content": "Review this function for edge cases."}]}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step by step for all of it: &lt;a href="https://locallyuncensored.com/blog/how-to-use-kimi-k3-1-pro-in-lu.html" rel="noopener noreferrer"&gt;How to use Kimi K3.1 Pro in LU&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  running it yourself, honestly
&lt;/h2&gt;

&lt;p&gt;Same architecture and size as K3, so the K3 GGUFs tell you what to expect once the weights land:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1-bit  UD-Q1_0       466 GB   more than a 512 GB Mac Studio leaves free with context
1-bit  UD-IQ1_S      594 GB   768 GB server, or two linked 512 GB machines
2-bit  UD-Q2_K_XL    861 GB   ~1 TB RAM server
4-bit  Q4            ~1.5 TB  multi GPU server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;MoE saves compute, not memory: all 2.8T parameters have to be loaded. Speed then follows bandwidth. At 2 bits the 104B active parameters are roughly 30 GB read per token, so even with the whole model in 800 GB/s memory the ceiling is about 25 tokens/s, and real runs get a fraction of that.&lt;/p&gt;

&lt;p&gt;On our side there's one more gate: the llama.cpp build bundled in LU doesn't read the Kimi K3 architecture yet. A coming version lists K3.1 Pro in the Model Manager once a loadable GGUF exists and the engine can open it. Until then it's hosted or nothing.&lt;/p&gt;

&lt;p&gt;The longer write-up with sources is here: &lt;a href="https://locallyuncensored.com/blog/kimi-k3-1-pro.html" rel="noopener noreferrer"&gt;Kimi K3.1 Pro: what it can do, and how to use it in LU today&lt;/a&gt;. The app is on &lt;a href="https://github.com/PurpleDoubleD/locally-uncensored" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AI-assisted: I wrote this with help from an AI model and checked the facts against Moonshot's announcement, Artificial Analysis and our own catalog.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>opensource</category>
      <category>agents</category>
    </item>
    <item>
      <title>Reverse engineering without the cloud: REA, a local 27B model and an uncensored build</title>
      <dc:creator>David </dc:creator>
      <pubDate>Thu, 22 Oct 2026 18:21:35 +0000</pubDate>
      <link>https://dev.to/purpledoubled/reverse-engineering-without-the-cloud-rea-a-local-27b-model-and-an-uncensored-build-3ggi</link>
      <guid>https://dev.to/purpledoubled/reverse-engineering-without-the-cloud-rea-a-local-27b-model-and-an-uncensored-build-3ggi</guid>
      <description>&lt;p&gt;REA (Reverse Engineer Anything) is an MIT-licensed MCP server that gives an agent tools to look inside apps and files. Its own README is clear that the analysis runs locally. What it doesn't change is where the findings go next: to whatever model drives your agent. With Claude Code, Codex or Cursor, that's a cloud model, and the strings, endpoints and code fragments REA pulls out of a binary travel with every turn.&lt;/p&gt;

&lt;p&gt;I build Locally Uncensored, an open source desktop app (AGPL-3.0) for running models on your own machine. Since 3.0.7 REA is a plugin there, and the agent can run on a local model. This post is about that setup: what stays where, which local models are big enough, and why I'd reach for an uncensored build.&lt;/p&gt;

&lt;h2&gt;
  
  
  the data path
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                      cloud agent + REA        LU + local model + REA
analysis              your machine             your machine
tool results          -&amp;gt; cloud model           your machine
your questions        -&amp;gt; cloud model           your machine
setup                 rea-agents setup edits   one switch under Plugins
                      your agent's config
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the target is a client's app under audit, a closed tool from work or your own unreleased build, the right column is the whole point.&lt;/p&gt;

&lt;h2&gt;
  
  
  why an uncensored model
&lt;/h2&gt;

&lt;p&gt;Reverse engineering vocabulary is exactly what safety training reacts to: decompile, bypass, patch, crack the file format. In a long agent run, one refusal at step seven ends the analysis. A model with its refusals removed just answers.&lt;/p&gt;

&lt;p&gt;To be fair to the stock model: I haven't measured refusal rates on REA tasks, and on my test app stock Qwen 3.8 27B didn't refuse anything. The uncensored builds are the insurance for questions that sound rougher than "how does search work".&lt;/p&gt;

&lt;h2&gt;
  
  
  which local models are big enough
&lt;/h2&gt;

&lt;p&gt;REA wants roughly a 27B model and 64K of context. Smaller models tend to stop before they answer: Qwen 3.5 9B at 32K ran out of context in my run. These are in LU's catalog, all flagged for agent use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Qwen 3.8 27B                        stock, tools + thinking      16 GB  UD-Q4_K_M
Qwen 3.8 27B Abliterated (Ollama)   huihui, vision + tools       18 GB  one pull
Qwen 3.8 27B Abliterated            same build as GGUF           11-29 GB  Q2_K..Q8_0
Qwen 3.8 27B HauhauCS Aggressive    uncensored, tool calling     16 GB  IQ4_XS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only the first one has run with REA so far. Add memory for a 64K context on top of the file size.&lt;/p&gt;

&lt;h2&gt;
  
  
  the run that worked
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;model      Qwen 3.8 27B Q4_K_P on Ollama, 64K context
REA        6.5.0
target     TinyNotes, a four-file Electron test app
steps      10
time       3 min 15 s
answer     version, both endpoints, both IPC channels
memory     never below 44 % free (Mac)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That run used LU's tool code outside the app. Getting there took three changes, because the model kept doing the right steps and never writing an answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;fewer tools per turn.&lt;/strong&gt; REA has 207 tools. A turn only gets the ones its words point at.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;references, not copies.&lt;/strong&gt; Trace and compare tools accept an earlier result whole (about 7,000 characters) or as &lt;code&gt;{"kind": "retained-evidence", "evidence_id": "ev_..."}&lt;/code&gt;. The model kept trying to copy records it had never seen. LU now offers only the reference, which alone shrank the tools a turn carries from 108,651 to 74,459 characters. Ollama also doesn't enforce a schema &lt;code&gt;const&lt;/code&gt;, so the model sent &lt;code&gt;"kind": "evidence"&lt;/code&gt;; LU turns any object with an evidence id into the reference.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;facts, not provenance.&lt;/strong&gt; One analysis returned 343,583 characters, mostly hashes, with the interesting endpoint at character 230,308. The model now gets the facts, 32,792 characters with nothing lost, plus the evidence id.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  on a leash
&lt;/h2&gt;

&lt;p&gt;Every REA call goes through the same confirmation as any external tool in LU's Agent and Code: you see the call, you approve it. LU fetches one pinned package, checks it against the npm registry checksum before every start, and never runs REA's own setup, which writes into other apps' configs. REA needs Node.js 22.19+, 24.11+ or 26+.&lt;/p&gt;

&lt;h2&gt;
  
  
  limits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The complete answer came from one Mac with the stock model. On Windows the built app has started REA and handed its tools to a model, nothing more yet. Linux, cloud models and the uncensored builds are untried.&lt;/li&gt;
&lt;li&gt;Use it on software you own or are allowed to examine.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Short version
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;REA analyzes locally, but a cloud agent still ships its findings to a cloud model. With a local model in LU, nothing leaves the machine.&lt;/li&gt;
&lt;li&gt;Use a ~27B model at 64K context. Stock Qwen 3.8 27B finished a test app in 3 min 15 s; uncensored 27B builds are in the catalog but untested with REA.&lt;/li&gt;
&lt;li&gt;The model only finished once it got fewer tools, references instead of copies, and facts instead of provenance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The step by step guide is on &lt;a href="https://locallyuncensored.com/blog/reverse-engineer-an-app-with-a-local-model.html" rel="noopener noreferrer"&gt;locallyuncensored.com&lt;/a&gt;, and the app is on &lt;a href="https://github.com/PurpleDoubleD/locally-uncensored" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AI-assisted: I wrote this with help from an AI model and checked the facts against the code, the commit history and the changelog.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>reverseengineering</category>
      <category>privacy</category>
    </item>
    <item>
      <title>A live voice assistant on your own machine: Whisper, Pocket TTS and your local LLM</title>
      <dc:creator>David </dc:creator>
      <pubDate>Tue, 20 Oct 2026 15:13:56 +0000</pubDate>
      <link>https://dev.to/purpledoubled/a-live-voice-assistant-on-your-own-machine-whisper-pocket-tts-and-your-local-llm-4a0b</link>
      <guid>https://dev.to/purpledoubled/a-live-voice-assistant-on-your-own-machine-whisper-pocket-tts-and-your-local-llm-4a0b</guid>
      <description>&lt;p&gt;A live voice assistant works like this: you talk, it answers out loud, you cut in, it stops. Since 3.0.6, Locally Uncensored has a mode that works that way with a model on your own machine. Speech recognition, the voice and the turn taking all run locally, and the model that answers is whatever chat model you already use.&lt;/p&gt;

&lt;p&gt;It is a beta and English only. This post covers how it is built, what it costs in memory and time, and where it falls short.&lt;/p&gt;

&lt;p&gt;Locally Uncensored is an open source desktop app (AGPL-3.0) for running AI models locally, with 180,000+ downloads.&lt;/p&gt;

&lt;h2&gt;
  
  
  What runs where
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Speech recognition   Whisper base.en       local
Voice                Pocket TTS            local, 15 voices
Turn taking          the voice engine      local
Answer               your chat model       local, or any provider you set up
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The voice engine is one process. It holds the speech detection, the speech recognition and the voice, and it loads them when it starts, not when a session starts. Voice is hidden while the app's Cloud switch is on, because the hosted side has no voice service yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;

&lt;p&gt;Open Voice in the main navigation. The first time, you get a setup screen that shows the download size, the space needed and your free space before anything is fetched, plus a list of what is downloaded and where it goes. One click on Install. On a Mac that came to about 0.7 GB in our measurement.&lt;/p&gt;

&lt;p&gt;Pick one of fifteen voices there or later: Alba, Anna, Azelma, Charles, Eponine, Eve, Fantine, George, Jane, Javert, Marius, Mary, Michael, Paul or Vera. Changing the voice fetches one small file.&lt;/p&gt;

&lt;h2&gt;
  
  
  Talking to it
&lt;/h2&gt;

&lt;p&gt;Click Start. A quiet chord says it is listening. Then you talk, it answers, and you can interrupt by speaking. The session is saved as a normal conversation.&lt;/p&gt;

&lt;p&gt;Measured from the end of the question to the start of the answer, with a local model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Windows, RTX 3060 12 GB, local 9B model    1.6 to 3.1 s
M5 Pro Mac                                  1.4 to 2.0 s
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first session after setup or a restart is the slow one. In our Windows tests it took 23 to 63 seconds to start cold, against about one second warm. What you say during that wait is kept for up to a minute and answered once the session is up, so you can start talking right away.&lt;/p&gt;

&lt;h2&gt;
  
  
  Memory
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Voice engine in memory    about 1 GB on our Windows machine
                          1.2 to 1.3 GB on the M5 Pro Mac
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A switch next to the title shows the number LU measured and unloads the engine with one click, together with the chat model if the voice session loaded it. Without the click, the engine shuts down five minutes after the last session.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools by voice
&lt;/h2&gt;

&lt;p&gt;Four switches sit next to the title: Voice settings, Agent, Where it may work and Thinking.&lt;/p&gt;

&lt;p&gt;With Agent on, the voice session gets the agent's tools with the same permissions. Local models get a shorter list (web, files, shell and the screen) so the first answer comes quickly. A tool that needs your approval waits for a click on Approve or Reject. A spoken yes does not approve a tool, because speech recognition can mishear and the microphone hears the whole room.&lt;/p&gt;

&lt;p&gt;Where it may work defaults to Workspace only: files stay in the session's folder, commands ask first, no screen. Whole computer opens the rest of your user account and the screen, after one extra question. System folders and the folders that hold keys and passwords stay closed at both levels.&lt;/p&gt;

&lt;p&gt;Thinking is off by default. Switched on, the thought shows in the transcript and is never read aloud. A thought is capped between 128 and 4096 tokens, 512 by default, and if it runs longer LU ends it and asks the model for a direct answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Asking for something on the screen
&lt;/h2&gt;

&lt;p&gt;With Whole computer on, you can ask for a task on the screen and hear the result. That is computer control, a separate beta with its own rules. Every new chat asks "Allow computer control in this chat?" and waits for a click. LU says aloud that it waits. A spoken yes does not allow it, a spoken no or stop declines.&lt;/p&gt;

&lt;p&gt;During a task, yes or no answers an ordinary action, and saying "stop" or "wait" on its own pauses it. "Wait, what is two plus two?" is a question for the model, not a pause. In our Windows test, typing a note in Notepad by voice took 11 to 22 seconds from the end of the command to the spoken result, with a local 9B model.&lt;/p&gt;

&lt;p&gt;On a Mac, computer control is in the app but not fully tested yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it falls short
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;English only, and the voices are fixed.&lt;/li&gt;
&lt;li&gt;Interrupting relies on your system's echo cancellation. With loud speakers and no headset, the first words of an interruption can be quiet or missing. A headset helps.&lt;/li&gt;
&lt;li&gt;For six seconds after Start, a voice that reaches the microphone only faintly is turned down.&lt;/li&gt;
&lt;li&gt;Checked point by point on Windows. Tried by hand on a Mac. Not run in the app on Linux, although the Linux packages carry the voice engine.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Short version
&lt;/h2&gt;

&lt;p&gt;A live voice mode where everything except the answer is a fixed local pipeline (Whisper base.en, Pocket TTS, a turn taking engine), and the answer is your own chat model. About 1 to 1.3 GB of memory, an answer that starts 1.4 to 3.1 seconds after you stop talking, interruptions that work best with a headset, and tools and screen control behind clicks rather than spoken yeses. English only, and in beta.&lt;/p&gt;

&lt;p&gt;The code is at &lt;a href="https://github.com/PurpleDoubleD/locally-uncensored" rel="noopener noreferrer"&gt;github.com/PurpleDoubleD/locally-uncensored&lt;/a&gt;. The setup, the measurements and the limits are written up in &lt;a href="https://github.com/PurpleDoubleD/locally-uncensored/blob/master/VOICE.md" rel="noopener noreferrer"&gt;VOICE.md&lt;/a&gt; in the repository.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AI-assisted: I wrote this with help from an AI model and checked the facts against the code and VOICE.md.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>llm</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>one character, every tab: training a local LoRA that changes clothes, on 8 GB cards and on a Mac</title>
      <dc:creator>David </dc:creator>
      <pubDate>Tue, 20 Oct 2026 15:13:15 +0000</pubDate>
      <link>https://dev.to/purpledoubled/one-character-every-tab-training-a-local-lora-that-changes-clothes-on-8-gb-cards-and-on-a-mac-3gl3</link>
      <guid>https://dev.to/purpledoubled/one-character-every-tab-training-a-local-lora-that-changes-clothes-on-8-gb-cards-and-on-a-mac-3gl3</guid>
      <description>&lt;p&gt;Locally Uncensored is an open source desktop app (AGPL-3.0) that runs AI models on your own machine: chat, an agent, image and video generation. It has 180,000+ downloads. For 3.0.7 I wanted a character you train once to work everywhere in the app, and I wanted more machines to be able to train one.&lt;/p&gt;

&lt;p&gt;This post follows one character from training to image, edit, video and chat. It also says where my testing stopped, which for this feature is further back than I would like.&lt;/p&gt;

&lt;h2&gt;
  
  
  Training: what changed
&lt;/h2&gt;

&lt;p&gt;Local characters use the Z Image family. You drop photos of one person or character into Character Studio, pick a trigger word and train on your own machine. Three things are new in 3.0.7.&lt;/p&gt;

&lt;h3&gt;
  
  
  A character that changes clothes
&lt;/h3&gt;

&lt;p&gt;The Train tab has a short text field under each photo, on Windows, Linux and Mac. You write there what changes from photo to photo: clothes, hair, place. That text goes into the photo's caption after the trigger word. The trained character then keeps its face and body without being tied to the one outfit it wore in most photos. An empty field keeps the caption as it was.&lt;/p&gt;

&lt;p&gt;Describe photos fills the empty fields for you with the local chat model picked in Chat, if that model can see images. It never sends the photos to a cloud model. The per photo text has run in automated tests only.&lt;/p&gt;

&lt;h3&gt;
  
  
  Low VRAM, for cards under 12 GB
&lt;/h3&gt;

&lt;p&gt;On Windows and Linux, training now has a second setting next to the training length:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Normal     the 12 GB recipe as before
Low VRAM   512 px instead of 768 px
           28 of the model's 30 blocks in system memory
           saved activations in system memory
           LoRA rank 16 instead of 32
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each step takes clearly longer, and fine detail comes out softer. A card with less than 11 GB is pointed at Low VRAM, both in the tab and in the trainer's own check.&lt;/p&gt;

&lt;p&gt;Low VRAM lets cards from about 8 GB train. That number is worked out from the trainer's own figures. I have not measured it on an 8 GB card. Low VRAM as a whole has run in automated tests only so far.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Mac trains now
&lt;/h3&gt;

&lt;p&gt;On a Mac, Character Studio's Train tab now trains a Z Image character from 4 to 100 photos with the Mac's image engine. The first run downloads a training adapter of 340 MB, and the result goes into the Mac's LoRA folder.&lt;/p&gt;

&lt;p&gt;It is slow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;M5 Pro, one step        about 7 seconds
Standard (1200 steps)   a little over two hours
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;My own run was 10 photos and 100 steps on one Mac with 48 GB. The Standard and Thorough settings, Macs with less memory and stopping a training in the middle have not run yet. This is on macOS only.&lt;/p&gt;

&lt;h3&gt;
  
  
  A character from the frames of a video
&lt;/h3&gt;

&lt;p&gt;The lightbox and the large view of a video offer Use frames for a character. LU takes frames spread evenly over the clip:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;default    8 frames
slider     4 to 20 frames
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You untick the frames that do not show the figure, then train with the rest or save them as a character. On a Mac this feeds the same Mac training. This has run in automated tests only.&lt;/p&gt;

&lt;h2&gt;
  
  
  Image and Edit
&lt;/h2&gt;

&lt;p&gt;When Create runs on ComfyUI, Image and Edit have a character chip next to the model chip. Pick a character there and its LoRA and trigger word go into the run.&lt;/p&gt;

&lt;p&gt;The pick also sets the model. Before, picking a character left the image model as it was, and on a model of another family the run left the character out. Now the pick sets an installed Z Image model. Where none fits, the line under the character says so with a button to switch, and Create does not start a run that would ignore the character. The same line tells you to describe the key features in the prompt too, because the trigger word alone often does not hold the look (issue 161).&lt;/p&gt;

&lt;p&gt;Two limits in Edit:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Edit with a mask     does not take a character
Trained characters   up to 3 of the training photos as references, at most 1024 px each
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Trained characters row sits in the reference strip of Edit. A character trained before 3.0.7 has no photos there, and I have not tried the row with a real training set yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Video: Step 1 of 2, Step 2 of 2
&lt;/h2&gt;

&lt;p&gt;A character video is two runs. LU first makes a picture of the character, then starts the clip from that picture:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Step 1 of 2    picture of the character
Step 2 of 2    clip from that picture
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This works on Video, Animate, Extend, Multishot, MiniMax H3, Motion Control and Talking Character. A start image of your own wins over the character picture. A video model that only takes text, or a tab with no video model installed, says so before anything runs, so you do not wait through step 1 for nothing.&lt;/p&gt;

&lt;p&gt;I checked this in the app on Windows with a stand-in character, not a real trained one. How well a real character keeps its face has not been checked, and step 2 has not run with a real video model yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chat
&lt;/h2&gt;

&lt;p&gt;The image and video tools in the chat take a character by name or by trigger word.&lt;/p&gt;

&lt;h2&gt;
  
  
  On a Mac
&lt;/h2&gt;

&lt;p&gt;Character Studio's Use tab on a Mac lists the characters in the Mac's LoRA folder, including the ones the Mac trained itself. A pick brings the Z Image model the character was trained for, and Image, the video tabs and the chat tools take the character as they do on Windows. A video starts from a picture of the character made on the Mac.&lt;/p&gt;

&lt;p&gt;The Mac parts of 3.0.7 have run in automated tests and with the real engine on one Mac with 48 GB, but have not been clicked through in a built app yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Characters from LU Cloud, and cleaning up
&lt;/h2&gt;

&lt;p&gt;If you trained a character on LU Cloud, the cloud character shelf has Use locally. It saves a Z Image character into the LoRA folder of this machine, so the local Use character shelf lists it next to your own.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;file of that name already there    LU stops and says so, nothing is replaced
other model families               refused, with the reason
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This has run in automated tests only, not yet against the real service.&lt;/p&gt;

&lt;p&gt;A character trained on this machine can be deleted from the Use character shelf. LU asks first, and the file goes to the Recycle Bin or Trash.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I did not test
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;real trained character in the app       not checked, stand-in LoRA only
step 2 of a character video             not run with a real video model
per photo text (changing clothes)       automated tests only
Low VRAM                                automated tests only, not measured on 8 GB
training on a Mac                       10 photos, 100 steps, one Mac with 48 GB
Standard and Thorough on a Mac          not run
Use frames for a character              automated tests only
Trained characters row in Edit          not with a real training set
Use locally from LU Cloud               automated tests only
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The real app check ran on one Windows machine with an NVIDIA card. If you try any of these on your own hardware, a report on the issue tracker helps more than another run on mine. A Low VRAM run on an 8 GB card is the one I would most like to see.&lt;/p&gt;

&lt;h2&gt;
  
  
  Short version
&lt;/h2&gt;

&lt;p&gt;In 3.0.7 a local character can change clothes between photos, train on cards from about 8 GB with Low VRAM (worked out, not measured), and train on a Mac, slowly. Once trained, it works in Image and Edit through a chip next to the model, in every video tab as Step 1 of 2 and Step 2 of 2, and in the chat by name or trigger word. The video step has not run with a real video model yet, and the face check with a real character is still open.&lt;/p&gt;

&lt;p&gt;The code is at &lt;a href="https://github.com/PurpleDoubleD/locally-uncensored" rel="noopener noreferrer"&gt;github.com/PurpleDoubleD/locally-uncensored&lt;/a&gt;, and the &lt;a href="https://locallyuncensored.com/guide/character-studio/" rel="noopener noreferrer"&gt;Character Studio chapter of the handbook&lt;/a&gt; covers photos and training. Downloads are on &lt;a href="https://locallyuncensored.com/" rel="noopener noreferrer"&gt;locallyuncensored.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AI-assisted: I wrote this with help from an AI model and checked the facts against the code and the changelog.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>stablediffusion</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Reverse engineering with a local model: what it took to make a 27B model finish the job</title>
      <dc:creator>David </dc:creator>
      <pubDate>Mon, 19 Oct 2026 17:12:32 +0000</pubDate>
      <link>https://dev.to/purpledoubled/reverse-engineering-with-a-local-model-what-it-took-to-make-a-27b-model-finish-the-job-pc8</link>
      <guid>https://dev.to/purpledoubled/reverse-engineering-with-a-local-model-what-it-took-to-make-a-27b-model-finish-the-job-pc8</guid>
      <description>&lt;p&gt;Locally Uncensored is an open source desktop app (AGPL-3.0) that runs AI models on your own machine. Version 3.0.7 came out today, and one of the new things is a plugin called REA, short for Reverse Engineer Anything. It's an MIT-licensed MCP server by morluto, and in LU it gives the Agent and Code modes tools to look inside apps and files.&lt;/p&gt;

&lt;p&gt;Getting it to work with a local model was harder than wiring up the server. Here's what I ran into.&lt;/p&gt;

&lt;h2&gt;
  
  
  how it starts
&lt;/h2&gt;

&lt;p&gt;There's one switch under Plugins in the composer, off by default, desktop app only. When you flip it, LU fetches one pinned version of the package and checks it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;package&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;   &lt;span class="s"&gt;rea-agents 6.5.0 (npm tarball)&lt;/span&gt;
&lt;span class="na"&gt;check&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;     &lt;span class="s"&gt;against the checksum the npm registry publishes&lt;/span&gt;
&lt;span class="na"&gt;again&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;     &lt;span class="s"&gt;before every start&lt;/span&gt;
&lt;span class="na"&gt;never run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;REA's own setup (it writes other apps' settings)&lt;/span&gt;
&lt;span class="na"&gt;node&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;      &lt;span class="s"&gt;22.19+ within 22, 24.11+ within 24, or 26+&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;npx gets the checked file, never a package name. If Node.js is missing or too old, the row says which version it found.&lt;/p&gt;

&lt;p&gt;The first start has a catch: npx installs REA's dependencies before the server answers the MCP &lt;code&gt;initialize&lt;/code&gt;. Every MCP request in LU waited 30 seconds, and on a slow line on a Windows test machine that ended every first start with "Request initialize timed out". The same start by hand answered after 111 seconds. REA now gets ten minutes for that handshake, every other server keeps 30 seconds. The second start, from npm's cache, came up in 22 seconds with 207 tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  207 tools is too many for a local model
&lt;/h2&gt;

&lt;p&gt;Hand 207 tool schemas to a local model and its context is gone before the first question. So a turn only gets the REA tools its words point at. Ask about an Electron app and the model sees the JavaScript and Electron tools, not the .NET ones.&lt;/p&gt;

&lt;p&gt;Each REA tool sits behind the same confirmation as any external tool in LU. The model proposes a call, you approve it, then it runs.&lt;/p&gt;

&lt;h2&gt;
  
  
  the run that found every step and never answered
&lt;/h2&gt;

&lt;p&gt;My first real run was Qwen 3.8 27B on Ollama, 64K context, on a Mac, against a small test app. It picked the right tools in the right order. It never wrote an answer. Two reasons:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The schema invited the model to copy huge records.&lt;/strong&gt; Tools that work on an earlier result take that evidence record either complete or as a reference:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"kind"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"retained-evidence"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"evidence_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ev_..."&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The schema listed the complete record first, about 7,000 characters of it. The model kept trying to reproduce records it had never seen in full, and REA refused each one. LU's version of the schema now offers only the reference, which is also what REA's own guide recommends, and LU holds the model's call to that form.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The results were mostly provenance.&lt;/strong&gt; One &lt;code&gt;analyze_javascript_application&lt;/code&gt; call on a four-file app returned 343,583 characters. The interesting part, the sync endpoint, sat at character 230,308. LU's general cap keeps the first 40,000 and the last 20,000 characters, so the model never saw it. Now the model gets the facts from each record instead, about a tenth of the size, plus the &lt;code&gt;evidence_id&lt;/code&gt;, so a later tool can still ask REA for the full record.&lt;/p&gt;

&lt;p&gt;After both fixes, the same model took the test app apart and wrote a complete answer in 3 minutes 15 seconds. Qwen 3.5 9B at 32K still ran out of context before it got there.&lt;/p&gt;

&lt;h2&gt;
  
  
  what REA reads
&lt;/h2&gt;

&lt;p&gt;By itself: JavaScript and Electron apps, .NET, Go and Rust programs, Flutter, SQLite and WebAssembly. It uses Ghidra, Hopper, JADX and Frida if you have them installed. LU installs none of them.&lt;/p&gt;

&lt;h2&gt;
  
  
  limits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The complete answer came from LU's tool code outside the app, on one Mac. A full run from the built app hasn't been tried yet, and neither have analysis runs on Windows and Linux or cloud models.&lt;/li&gt;
&lt;li&gt;Pick a model of about 27B with 64K context or more. Smaller ones tend to stop before an answer.&lt;/li&gt;
&lt;li&gt;Use it on software you own or are allowed to examine.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Short version
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;REA is a plugin in LU 3.0.7 that gives Agent and Code 207 reverse engineering tools, with only the relevant ones shown per turn.&lt;/li&gt;
&lt;li&gt;The pinned package is checked against its npm checksum before every start, and the first start gets ten minutes to install.&lt;/li&gt;
&lt;li&gt;A local 27B model only finished once it got references instead of 7,000-character records and facts instead of 340K-character results.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The app is on &lt;a href="https://github.com/PurpleDoubleD/locally-uncensored" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, and the user guide for the plugin is on &lt;a href="https://locallyuncensored.com/blog/rea-plugin-reverse-engineering.html" rel="noopener noreferrer"&gt;locallyuncensored.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AI-assisted: I wrote this with help from an AI model and checked the facts against the code and the changelog.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>reverseengineering</category>
      <category>opensource</category>
    </item>
    <item>
      <title>DeepSeek V4.1 Flash 1017: what DeepSeek says changed, and swapping it in without breaking anyone's saved model</title>
      <dc:creator>David </dc:creator>
      <pubDate>Mon, 19 Oct 2026 17:07:32 +0000</pubDate>
      <link>https://dev.to/purpledoubled/deepseek-v41-flash-1017-what-deepseek-says-changed-and-swapping-it-in-without-breaking-anyones-18ci</link>
      <guid>https://dev.to/purpledoubled/deepseek-v41-flash-1017-what-deepseek-says-changed-and-swapping-it-in-without-breaking-anyones-18ci</guid>
      <description>&lt;p&gt;Locally Uncensored is an open source desktop app (AGPL-3.0) that runs AI models on your own machine. It also has an optional cloud mode, LU Cloud, for models too big for a desk. DeepSeek V4.1 Flash is one of those: the checkpoint is 510.3 GB.&lt;/p&gt;

&lt;p&gt;On 17 October 2026 DeepSeek published V4.1 Flash 1017. Since 18 October, 21:54 UTC, it is the model behind our V4.1 Flash entry. This post covers what DeepSeek claims for it and how we moved people over.&lt;/p&gt;

&lt;h2&gt;
  
  
  What DeepSeek says is better
&lt;/h2&gt;

&lt;p&gt;DeepSeek calls 1017 a minor update to V4.1 Flash. The release note says it scores higher on benchmarks, finishes tasks faster and writes shorter outputs. The model card has a table comparing it with V4.1 Flash. These are DeepSeek's numbers, run by DeepSeek:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;V4.1 Flash&lt;/th&gt;
&lt;th&gt;V4.1 Flash 1017&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;HLE without tools&lt;/td&gt;
&lt;td&gt;36.8&lt;/td&gt;
&lt;td&gt;42.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terminal-Bench 4.0&lt;/td&gt;
&lt;td&gt;31.2&lt;/td&gt;
&lt;td&gt;42.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSWE v1.1&lt;/td&gt;
&lt;td&gt;74.2&lt;/td&gt;
&lt;td&gt;77.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ProgramBench&lt;/td&gt;
&lt;td&gt;20.3&lt;/td&gt;
&lt;td&gt;29.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AutomationBench&lt;/td&gt;
&lt;td&gt;54.8&lt;/td&gt;
&lt;td&gt;60.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agents' Last Exam&lt;/td&gt;
&lt;td&gt;31.8&lt;/td&gt;
&lt;td&gt;35.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Apex Bench v1.1&lt;/td&gt;
&lt;td&gt;64.6&lt;/td&gt;
&lt;td&gt;72.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chartography, with tools&lt;/td&gt;
&lt;td&gt;78.9&lt;/td&gt;
&lt;td&gt;83.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BabyVision, with tools&lt;/td&gt;
&lt;td&gt;89.6&lt;/td&gt;
&lt;td&gt;92.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ZeroBench, with tools&lt;/td&gt;
&lt;td&gt;49.0&lt;/td&gt;
&lt;td&gt;51.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The biggest jumps are on the long agent tests, Terminal-Bench 4.0 and ProgramBench. The image tests move by two to four points. I have not measured output length myself yet.&lt;/p&gt;

&lt;p&gt;The checkpoint is the same size as before, under the same MIT licence. If you call it yourself, the card now recommends &lt;code&gt;temperature&lt;/code&gt; 1.0 and &lt;code&gt;top_p&lt;/code&gt; 1.0.&lt;/p&gt;

&lt;p&gt;Sources: the &lt;a href="https://api-docs.deepseek.com/news/news261017" rel="noopener noreferrer"&gt;release note&lt;/a&gt; and the &lt;a href="https://huggingface.co/deepseek-ai/DeepSeek-V4.1-Flash-1017" rel="noopener noreferrer"&gt;model card&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Swapping a model id without breaking saved picks
&lt;/h2&gt;

&lt;p&gt;People had V4.1 Flash saved as a default, in old chats and in API scripts that send &lt;code&gt;deepseek-ai/DeepSeek-V4.1-Flash&lt;/code&gt;. Renaming the entry would have broken all of them.&lt;/p&gt;

&lt;p&gt;So the catalog entry now carries the new id, &lt;code&gt;deepseek-ai/DeepSeek-V4.1-Flash-1017&lt;/code&gt;, and the old id sits in a small table of retired ids that points to its replacement. Every request goes through that lookup before it reaches the model, and the meter prices the replacement. Old chats keep working, API scripts keep working, and nobody has to touch a setting.&lt;/p&gt;

&lt;p&gt;Before the switch I ran both versions side by side: a native tool call, an image to describe, and the same reasoning prompts at different effort levels. They behaved the same way, so the flags in the catalog (image input, tools, reasoning always on) carried over unchanged.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it costs in LU Cloud
&lt;/h2&gt;

&lt;p&gt;The catalog price went down with the switch. 1017 draws 20,000 credits per million input tokens and 60,000 per million output tokens. Before the switch the catalog listed V4.1 Flash at 30,000 and 120,000. Every plan and every credit pack carries the whole chat catalog.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using it
&lt;/h2&gt;

&lt;p&gt;In the desktop app, flip the Cloud switch and pick DeepSeek V4.1 Flash 1017 in Chat. The app pulls the catalog from the server, so no update is needed. From code, any OpenAI-compatible client works against &lt;code&gt;https://lu-labs.ai/api/inference/v1&lt;/code&gt; with the model id &lt;code&gt;deepseek-ai/DeepSeek-V4.1-Flash-1017&lt;/code&gt; and a personal API key from account settings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Short version
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;1017 replaced V4.1 Flash in LU Cloud on 18 October; DeepSeek calls it a minor update with higher benchmark scores and shorter outputs.&lt;/li&gt;
&lt;li&gt;The old model id still works and is routed to 1017, so saved picks, old chats and API scripts keep running.&lt;/li&gt;
&lt;li&gt;It got cheaper: 20,000 credits per million input tokens and 60,000 per million output tokens.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The app itself is on &lt;a href="https://github.com/PurpleDoubleD/locally-uncensored" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. The full post with the local hardware math links is on &lt;a href="https://locallyuncensored.com/blog/deepseek-v4-1-flash-1017.html" rel="noopener noreferrer"&gt;locallyuncensored.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AI-assisted: I wrote this with help from an AI model and checked the facts against the release note, the model card and our catalog.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>deepseek</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Local AI computer use: a model that clicks for you, and the questions it asks first</title>
      <dc:creator>David </dc:creator>
      <pubDate>Sun, 18 Oct 2026 22:49:52 +0000</pubDate>
      <link>https://dev.to/purpledoubled/local-ai-computer-use-a-model-that-clicks-for-you-and-the-questions-it-asks-first-4483</link>
      <guid>https://dev.to/purpledoubled/local-ai-computer-use-a-model-that-clicks-for-you-and-the-questions-it-asks-first-4483</guid>
      <description>&lt;p&gt;Locally Uncensored 3.0.6 added computer control: a model uses the mouse and keyboard in apps you approve. It works with local models, so the screenshots and the clicks stay on your machine. It is a beta, and most of the work in it went into the questions it asks before it does anything, so most of this post is about those.&lt;/p&gt;

&lt;p&gt;Locally Uncensored is an open source desktop app (AGPL-3.0) for running AI models locally, with 170,000+ downloads. Computer control is one part of its agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Off until you switch it on
&lt;/h2&gt;

&lt;p&gt;It stays off until you switch it on under Settings, Agent, Agent Permissions, Computer control. Switching it on is not a blanket yes. After that, LU still asks at these points:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Every new chat        "Allow computer control in this chat?" Allow / Deny
First touch of an app asks before it uses that app
Every action          asked by default (supervised mode)
Sensitive actions     always asked, also in autonomous mode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Until you click Allow on that first card, LU takes no screenshot and does nothing. The yes holds for that one chat. A new chat asks again, and so does every chat after a restart of the app. No setting skips the card.&lt;/p&gt;

&lt;p&gt;Sensitive means anything that sends, buys, deletes or changes permissions. Those are asked with the reason in red. So is a click on a button, link or menu item that has no name, because LU cannot tell what it would do.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it never touches
&lt;/h2&gt;

&lt;p&gt;Some places are off limits at every level:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terminals
password managers
system sign-in and permission dialogs
security settings
the Run dialog
windows with administrator rights
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;LU never types into a password field, and pasting there is refused too. A double click on a program, an installer, a script or a shortcut asks first.&lt;/p&gt;

&lt;h2&gt;
  
  
  How you stop it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ctrl+Alt+Space    pause
Ctrl+Alt+Esc      stop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On a Mac it is Control+Option instead of Ctrl+Alt. In an autonomous session LU also pauses when you move the mouse. The paused view shows what it did so far and asks whether you take over or let it continue, and you can add an instruction for the rest of the task. A screen task ends after at most 25 steps or 8 minutes either way, and the time you take to answer a question counts.&lt;/p&gt;

&lt;p&gt;While it works on Windows, the LU window shrinks to a small window in the top right corner and the edge of the screen glows softly in purple. The small window shows what LU is doing and names the two shortcuts. Questions appear there with a Stop button and take mouse clicks only, so the app LU works in keeps the keyboard focus.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which model looks at the screen
&lt;/h2&gt;

&lt;p&gt;By default the chat model you already picked. LU does not ask how it should run.&lt;/p&gt;

&lt;p&gt;On Windows, LU reads the list of buttons and fields of the window it works in. A model that can see images gets the screenshot plus that list. A model that cannot see images works from the list alone, without a picture. That second case is what makes small local text models usable here at all.&lt;/p&gt;

&lt;p&gt;We compared the two on two tasks, three runs each. Both finished all six runs. The runs with the picture took 497 seconds in total, the runs with the list alone 381.&lt;/p&gt;

&lt;p&gt;For a dedicated screen model, the catalog has Holo 3.1 9B, marked Beta and recommended from 16 GB of video memory. In our test on Windows it finished a simple typing task in 1 of 3 runs, and it does not fit next to a 9B chat model on a 12 GB card. That is not a strong result, and I would rather say so than leave it out.&lt;/p&gt;

&lt;h2&gt;
  
  
  A real number
&lt;/h2&gt;

&lt;p&gt;Typing a note in Notepad, asked by voice, with a local 9B model working from the list of buttons and fields: 11 to 22 seconds from the end of the spoken command to the spoken result. That was measured before the question in every new chat existed, so in a new chat your click on Allow comes on top.&lt;/p&gt;

&lt;h2&gt;
  
  
  Platforms
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Windows   checked point by point in the real app, on one Windows 10 machine
Linux     not run in the app yet, needs an X11 session
macOS     in the app, not fully tested yet
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The list of buttons and fields and the autonomous mode exist on Windows only. On Linux and macOS, LU cannot name what a click would press, so every click there is asked as a sensitive action. On a Mac it also needs two system permissions first, Accessibility and Screen Recording, and the model needs image input because it only has screenshots.&lt;/p&gt;

&lt;p&gt;There is no background mode on any platform. It works in the foreground with your real pointer.&lt;/p&gt;

&lt;h2&gt;
  
  
  The limits I would want to know
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Small local models misjudge when a task is finished. A task can end as stopped although the work is done.&lt;/li&gt;
&lt;li&gt;Text on the screen can try to give the model instructions. LU marks what it reads from the screen as untrusted and asks before sensitive actions. For anything that matters, stay in the supervised mode.&lt;/li&gt;
&lt;li&gt;The words LU reads on a button to tell a sensitive action from an ordinary one come from a list. A wording the list does not know is not recognised.&lt;/li&gt;
&lt;li&gt;Eight corrections and ten security fixes made after the Windows check have run in automated tests only.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Short version
&lt;/h2&gt;

&lt;p&gt;Computer control in Locally Uncensored 3.0.6 lets a local model click and type in apps you approve. It is off by default, asks in every new chat, asks before sensitive actions in every mode, never touches terminals or password fields, and stops on Ctrl+Alt+Esc. It is checked on Windows, not fully tested on a Mac, and not run on Linux yet. Treat it as a beta that wants you watching.&lt;/p&gt;

&lt;p&gt;The code is at &lt;a href="https://github.com/PurpleDoubleD/locally-uncensored" rel="noopener noreferrer"&gt;github.com/PurpleDoubleD/locally-uncensored&lt;/a&gt;, &lt;a href="https://github.com/PurpleDoubleD/locally-uncensored/blob/master/COMPUTER-CONTROL.md" rel="noopener noreferrer"&gt;COMPUTER-CONTROL.md&lt;/a&gt; describes every question and every limit, and the &lt;a href="https://github.com/PurpleDoubleD/locally-uncensored/blob/master/CHANGELOG.md" rel="noopener noreferrer"&gt;changelog&lt;/a&gt; has the full list of what is and is not tested.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>llm</category>
      <category>automation</category>
    </item>
    <item>
      <title>Qwen-Image 2.1 uncensored: text encoder, finetune or GGUF, and what each one changes</title>
      <dc:creator>David </dc:creator>
      <pubDate>Wed, 14 Oct 2026 17:35:23 +0000</pubDate>
      <link>https://dev.to/purpledoubled/qwen-image-21-uncensored-text-encoder-finetune-or-gguf-and-what-each-one-changes-m92</link>
      <guid>https://dev.to/purpledoubled/qwen-image-21-uncensored-text-encoder-finetune-or-gguf-and-what-each-one-changes-m92</guid>
      <description>&lt;p&gt;"Qwen-Image 2.1 uncensored" gets searched as if it were one thing. It is at least three, and they change different parts of the pipeline. This post sorts them out, says which of them Locally Uncensored ships, and what the license still says no matter which one you pick.&lt;/p&gt;

&lt;p&gt;Background, if you missed it: Alibaba Qwen published Qwen-Image 2.1 on 20 September 2026. One 7B set of weights does text to image and image editing. I wrote about running it locally &lt;a href="https://dev.to/purpledoubled/how-to-run-qwen-image-21-locally-one-model-that-draws-and-edits-24bg"&gt;when it came out&lt;/a&gt;. A few releases later, the uncensored side has filled in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two different meanings of uncensored
&lt;/h2&gt;

&lt;p&gt;Where it runs. On your own machine nothing sits between your prompt and the model. No moderation layer reads the prompt or the picture. That part you get with the stock model already, as long as it runs locally.&lt;/p&gt;

&lt;p&gt;What the weights do. The original model draws what it was trained to draw. The builds labelled uncensored change that, and they change it in different places:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Text encoder   the part that reads your prompt; can be processed to stop refusing
Image model    the part that draws; can be finetuned on other material
Both           community GGUF builds that change the weights
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What the app ships
&lt;/h2&gt;

&lt;p&gt;Locally Uncensored (open source, AGPL-3.0, 170,000+ downloads) has these in the Model Manager under Models, Image, Get new:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Qwen-Image 2.1 (Generate and Edit)   the original files, three of them, 16.1 GB
Qwen-Image 2.1 (No Filter)           same image model and VAE, a text encoder
                                     with its refusal direction removed (Heretic)
Noct Q (Qwen-Image 2.1, Unfiltered)  a community finetune; the image model
                                     itself is changed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The No Filter build only swaps the text encoder. If you already have Qwen-Image 2.1, only that encoder is downloaded, about 9 GB. With both encoders installed, the Expert settings in Create get a "Text encoder" row so you pick which one reads your prompt, for new pictures, for edits and for pictures made in chat. The official one stays the default.&lt;/p&gt;

&lt;p&gt;Noct Q goes further: its notice says the transformer weights were modified. It uses the official text encoder and VAE, so on top of an existing install it is about 7 GB. The app treats it as Qwen-Image 2.1, so edits, the transparent background, the encoder choice and the prompt enhancer all work with it. I have not run Noct Q on my own hardware yet.&lt;/p&gt;

&lt;p&gt;There is a matching pair for the prompt enhancer too, Official and No Filter. Both run on a 12 GB card and need ComfyUI 0.37.2 or newer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Community files you add by hand
&lt;/h2&gt;

&lt;p&gt;Outside the bundles there are GGUF builds on Hugging Face. As read off the repositories on 10 October 2026:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;unsloth/Qwen-Image-2.1-GGUF                         original weights
  Q2_K 2.47 GB, Q4_K_M 4.2 GB, Q5_K_M 5.39 GB, F16 14.23 GB
abenzerps/Qwen-Image-2.1-Uncensored-GGUF            uncensored build
  Q4_K_M 4.6 GB, Q5_K_M 5.22 GB, Q6_K 5.88 GB, BF16 14.23 GB
pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF   text encoder only
  Q4_K_M 5.03 GB, Q6_K 6.88 GB, Q8_0 8.71 GB
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These go into ComfyUI by hand, and ComfyUI reads GGUF through a loader node you install first. I list them as their authors describe them. I have not tested them.&lt;/p&gt;

&lt;h2&gt;
  
  
  LoRAs exist now
&lt;/h2&gt;

&lt;p&gt;When 2.1 came out there was no LoRA for it, and the older Qwen-Image speed LoRAs do not fit the new architecture. That changed within weeks: speed LoRAs for four to six steps (Viggle's turbo LoRAs, Alibaba PAI's acceleration LoRAs) and content LoRAs are on Hugging Face. On Windows and Linux they go into ComfyUI's &lt;code&gt;models/loras&lt;/code&gt; folder and show up in the LoRA stack. I have not tested them with the bundle either.&lt;/p&gt;

&lt;h2&gt;
  
  
  Editing got better since launch
&lt;/h2&gt;

&lt;p&gt;At launch the app's Edit lane took one reference image. Now, with Qwen-Image 2.1 on your own machine, small tiles under the source image take up to three more images. You name them in the prompt as image 2, image 3, for example "put the jacket from image 2 on the person". There is still no mask with this model. You describe the change in words.&lt;/p&gt;

&lt;p&gt;There is also a "Transparent background" switch for new pictures. The result is saved as a PNG with an alpha channel.&lt;/p&gt;

&lt;h2&gt;
  
  
  On a Mac
&lt;/h2&gt;

&lt;p&gt;The Mac build (Apple Silicon, beta) runs Qwen-Image 2.1 without ComfyUI, as quantized packs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Qwen-Image 2.1 4-bit          needs 16 GB
Qwen-Image 2.1 8-bit, Turbo   need 24 GB
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Qwen-Image 2.1 Turbo made an image in 38 seconds on an M5 Pro with 48 GB, the only Mac the build has run on. A LoRA that carries its own alpha is weighted alpha divided by rank there, the way ComfyUI does it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The license does not change with the weights
&lt;/h2&gt;

&lt;p&gt;Qwen-Image 2.1 is under the Qwen Research License. Research and evaluation are covered, commercial use needs a separate license from Alibaba Qwen. The community builds above name the same license. An uncensored text encoder does not turn a research license into a commercial one. If you need Apache 2.0 terms, Qwen-Image 2512 and Qwen-Image-Edit 2511 are still under Apache 2.0.&lt;/p&gt;

&lt;h2&gt;
  
  
  Short version
&lt;/h2&gt;

&lt;p&gt;Running Qwen-Image 2.1 locally already removes any moderation layer. The No Filter build swaps only the text encoder (about 9 GB on top), Noct Q changes the image model itself (about 7 GB on top), and community GGUF builds go in by hand. Edits take up to three extra images and no mask, the Mac runs it from 16 GB, and every variant is still research and evaluation only.&lt;/p&gt;

&lt;p&gt;The code is at &lt;a href="https://github.com/PurpleDoubleD/locally-uncensored" rel="noopener noreferrer"&gt;github.com/PurpleDoubleD/locally-uncensored&lt;/a&gt;, and the longer page with the files and the FAQ is &lt;a href="https://locallyuncensored.com/qwen-image-2-1/" rel="noopener noreferrer"&gt;Qwen-Image 2.1, uncensored on your own card&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>tutorial</category>
      <category>comfyui</category>
    </item>
    <item>
      <title>Uncensored AI on a Mac: which local models fit which memory size</title>
      <dc:creator>David </dc:creator>
      <pubDate>Tue, 13 Oct 2026 21:31:20 +0000</pubDate>
      <link>https://dev.to/purpledoubled/uncensored-ai-on-a-mac-which-local-models-fit-which-memory-size-1dh</link>
      <guid>https://dev.to/purpledoubled/uncensored-ai-on-a-mac-which-local-models-fit-which-memory-size-1dh</guid>
      <description>&lt;p&gt;"Uncensored AI on a Mac" is two questions in one. Which models answer without refusing, and which of them fit into the memory your Mac has. The second question decides more than the first, so this post takes them in that order of usefulness: what the word means, what fits where, and how to get one running with the Mac build of Locally Uncensored (open source, AGPL-3.0, free for local use).&lt;/p&gt;

&lt;p&gt;One caveat before anything else. The Mac build is a beta. It has run on one Mac so far, an M5 Pro with 48 GB. Sizes below come from the model files. Where I have not run something on a Mac myself, I say so.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "uncensored" means for a local model
&lt;/h2&gt;

&lt;p&gt;A local model has no moderation layer in front of it. Nothing reads your prompt before the model does, and nothing reads the answer afterwards. What is left is the model's own training, and a stock model from a big lab is trained to refuse a range of requests.&lt;/p&gt;

&lt;p&gt;The models people call uncensored change that part. Two labels come up most:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Abliterated   the direction in the weights that produces refusals is removed
Heretic       an abliteration made with the Heretic tool, same idea, automated
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Neither is magic. An abliterated model can still decline now and then, and removing the refusal behaviour can cost a little quality elsewhere. If one model keeps hedging on the kind of thing you ask, try another one from the list before you blame your prompt.&lt;/p&gt;

&lt;p&gt;The app adds nothing on top. The default persona states a role and no content rule in either direction, so what you get is the model.&lt;/p&gt;

&lt;h2&gt;
  
  
  The number that matters is unified memory
&lt;/h2&gt;

&lt;p&gt;On Apple Silicon there is no separate video memory. The model shares one pool with macOS, your browser and everything else. So the chip name tells you how fast the answer comes, and the memory size tells you which model you can load at all. An M4 with 16 GB loads the same models as an M2 with 16 GB.&lt;/p&gt;

&lt;p&gt;A working rule: the model file plus 1 to 2 GB for context has to fit into what is left after macOS and your open apps have taken their 4 to 6 GB.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chat models, by download size
&lt;/h2&gt;

&lt;p&gt;These are the uncensored chat models the app's catalog recommends to start with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Llama 3.1 8B Abliterated        5 GB     the usual first download
Qwen3-VL 8B Abliterated         5 GB     reads images
Gemma 4 12B Heretic             7.4 GB   reads images
GLM 4.7 Flash Heretic           10 GB    30B class in a small build
Qwen 3.8 27B Uncensored         18 GB    images, tools, switchable thinking
Qwen 3.6 35B MoE Abliterated    24 GB    35B total, 3B active
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Read against the rule above, that gives roughly this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;16 GB Mac    the 5 GB models comfortably, Gemma 4 12B Heretic with less open
24 GB Mac    adds GLM 4.7 Flash Heretic
32 GB Mac    adds Qwen 3.8 27B Uncensored, the first tier I would recommend
48 GB and up adds Qwen 3.6 35B MoE Abliterated with room for long context
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That mapping is arithmetic on file sizes. I have run chat on the 48 GB machine only, so on a 16 or 24 GB Mac treat it as a starting point and tell me where it is wrong.&lt;/p&gt;

&lt;p&gt;The setup wizard picks a first model for your machine, and the model manager marks what fits. You do not have to do this arithmetic yourself. It helps to understand why the app offers what it offers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Images and video
&lt;/h2&gt;

&lt;p&gt;Create on the Mac makes images and video on the Mac itself, without ComfyUI. The Mac catalog has a separate group called Unfiltered next to Mainstream:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Image models    23 in the catalog, 10 of them in the Unfiltered group
Video models    31 in the catalog, 14 of them in the Unfiltered group
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every tile says how much memory the model needs, and the app holds you to it. Image models start at 8 GB, video models at 16 GB. Most video models in the Mac catalog are marked "Experimental: not yet tested in LU", and that label is meant literally.&lt;/p&gt;

&lt;p&gt;For a sense of speed, on the M5 Pro with 48 GB one image took 33 seconds with DreamShaper XL Turbo and 38 seconds with Qwen-Image 2.1 Turbo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting it running
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Apple Silicon, macOS 14 or newer. Intel Macs are not supported.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Download the &lt;code&gt;.dmg&lt;/code&gt; from &lt;a href="https://locallyuncensored.com/mac/" rel="noopener noreferrer"&gt;locallyuncensored.com/mac&lt;/a&gt;. It is signed with a Developer ID and notarized by Apple.&lt;/li&gt;
&lt;li&gt;Drag the app into Applications and start it.&lt;/li&gt;
&lt;li&gt;Let the setup wizard pick a first model, or open Models and choose one from the list above.&lt;/li&gt;
&lt;li&gt;Send a message.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There is no account and no sign-in for local use.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the app sends, since that is the point of running locally
&lt;/h2&gt;

&lt;p&gt;Your prompts and answers stay on the machine when you use a local model. The app has no analytics kit and sends no crash reports. Two things do go out on their own: it asks GitHub Releases for a new version a few seconds after start and at most every six hours after that, and it counts each press of the Cloud switch (which way, the platform and the app version, without an identifier). If you never touch the Cloud switch, the second one never fires.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is not there yet on a Mac
&lt;/h2&gt;

&lt;p&gt;Training your own character LoRA does not run locally on a Mac. Computer control is in the app but not fully tested on macOS. Voice works locally but is a beta and English only. Remote Access and the automatic update are not confirmed on macOS. I wrote these up in more detail in &lt;a href="https://dev.to/purpledoubled/local-ai-on-a-mac-what-one-open-source-app-runs-on-apple-silicon-and-what-it-does-not-6lj"&gt;the post about what the Mac build runs&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Short version
&lt;/h2&gt;

&lt;p&gt;Uncensored on a Mac comes down to picking an abliterated model that fits your unified memory. 16 GB runs the 8B class, 32 GB is where Qwen 3.8 27B Uncensored fits, and the app's Unfiltered groups cover images and video on the same machine. It all runs locally, with no account, in a build that is still a beta and has seen one Mac.&lt;/p&gt;

&lt;p&gt;The code is at &lt;a href="https://github.com/PurpleDoubleD/locally-uncensored" rel="noopener noreferrer"&gt;github.com/PurpleDoubleD/locally-uncensored&lt;/a&gt;. The longer tier list by memory size is in &lt;a href="https://locallyuncensored.com/blog/what-a-mac-can-run-locally-2026.html" rel="noopener noreferrer"&gt;What a Mac can actually run locally in 2026&lt;/a&gt;, and the background on abliteration is in the &lt;a href="https://locallyuncensored.com/blog/abliterated-models-guide.html" rel="noopener noreferrer"&gt;abliterated models guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If your Mac is too small for the model you want, the bigger ones also run hosted in a browser as &lt;a href="https://locallyuncensored.com/cloud/" rel="noopener noreferrer"&gt;LU Cloud&lt;/a&gt;. That part is paid. Everything above is free.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>macos</category>
      <category>llm</category>
    </item>
    <item>
      <title>Local AI on a Mac: what one open source app runs on Apple Silicon, and what it does not</title>
      <dc:creator>David </dc:creator>
      <pubDate>Tue, 13 Oct 2026 19:43:50 +0000</pubDate>
      <link>https://dev.to/purpledoubled/local-ai-on-a-mac-what-one-open-source-app-runs-on-apple-silicon-and-what-it-does-not-6lj</link>
      <guid>https://dev.to/purpledoubled/local-ai-on-a-mac-what-one-open-source-app-runs-on-apple-silicon-and-what-it-does-not-6lj</guid>
      <description>&lt;p&gt;Locally Uncensored 3.0.6 is the first release with a Mac build. It is an open source desktop app (AGPL-3.0) that runs AI models on your own machine: chat, a coding agent, image and video generation, voice, and a model that can use your mouse and keyboard. On Windows and Linux it has 170,000+ downloads. On the Mac it is a beta, and the honest reason is short: the app has run on exactly one Mac so far.&lt;/p&gt;

&lt;p&gt;This post goes through each part of the app and says what runs locally on a Mac today, what only runs on Windows and Linux, and what I have not tested.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you need
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Apple Silicon (Intel Macs are not supported)
macOS 14 or newer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The one Mac it has run on is an M5 Pro with 48 GB on macOS 26. It has not run on macOS 14 or 15, and not on a Mac with 16 or 24 GB. If you have one of those, your report is worth more to me than another run on my own machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Download the &lt;code&gt;.dmg&lt;/code&gt; for Apple Silicon from &lt;a href="https://locallyuncensored.com/mac/" rel="noopener noreferrer"&gt;locallyuncensored.com/mac&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Open it and drag the app into Applications.&lt;/li&gt;
&lt;li&gt;Start it. The setup wizard picks a first model for your machine.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The &lt;code&gt;.dmg&lt;/code&gt; is signed with a Developer ID and notarized by Apple. Local use is free and needs no account.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local chat with an LLM
&lt;/h2&gt;

&lt;p&gt;Local models run through a bundled server with Metal. There is no separate runner to install first. If you already use Ollama or LM Studio, the app can talk to those as backends too.&lt;/p&gt;

&lt;p&gt;Around the chat itself: thinking is shown as it happens, you can chat with your own documents through a local index, keep a memory across conversations, switch personas, and compare two models side by side. Models with image input download together with their image part, the second file a local model needs to see pictures. That download path is new in 3.0.6 and I have not checked it on the Mac specifically.&lt;/p&gt;

&lt;p&gt;There is also a Local API: an OpenAI compatible server on port 8129 that lists your local models under one address. It listens on localhost unless you allow the LAN, and it always asks for a token.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local image generation without ComfyUI
&lt;/h2&gt;

&lt;p&gt;On Windows and Linux the app drives ComfyUI. On a Mac it does not use ComfyUI at all. Create makes images on the Mac itself, on engines the app installs for itself.&lt;/p&gt;

&lt;p&gt;The Mac catalog lists 23 image models. Each tile says how much memory the model needs, and that number is a hard limit, not a hint: a model that needs 32 GB stays locked on a 16 GB Mac. The smallest ones (SD Turbo, Realistic Vision V5.1) need 8 GB.&lt;/p&gt;

&lt;p&gt;Measured on the M5 Pro with 48 GB:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DreamShaper XL Turbo    one image    33 s
Qwen-Image 2.1 Turbo    one image    38 s
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A smaller Mac will be slower. I have not measured by how much.&lt;/p&gt;

&lt;p&gt;One Mac detail the app handles for you: chat and Create share one pool of memory. Before a picture or video run, Create takes the chat model out of memory, shows "Freeing memory..." while it does, and brings the model back afterwards.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local image editing
&lt;/h2&gt;

&lt;p&gt;Edit on the Mac runs on Qwen-Image 2.1, and the Edit tab appears once that model is installed. The 4-bit pack needs 16 GB.&lt;/p&gt;

&lt;p&gt;It works differently from the brush you may be used to. There is no mask. You give it a picture and describe the change in words, and you can add reference images.&lt;/p&gt;

&lt;p&gt;Edit on the Mac is in the code and in the app. It is not in the list of things I timed for the release, so treat it as less proven than plain generation.&lt;/p&gt;

&lt;h2&gt;
  
  
  LoRAs on the Mac
&lt;/h2&gt;

&lt;p&gt;You can use LoRAs with the quantized image models in the Mac catalog, the ones whose names end in 4-bit or 8-bit: Qwen-Image 2.1, Qwen-Image 2512, Z-Image Turbo and FLUX.2 klein 4B. There is a LoRA list with its own folder, a stack with strength sliders, and delete moves the file to the Trash.&lt;/p&gt;

&lt;p&gt;A Qwen-Image 2.1 LoRA that carries its own alpha is weighted the way ComfyUI does it, alpha divided by rank. Before 3.0.6 it ran at the full strength that was set, which was too strong.&lt;/p&gt;

&lt;h2&gt;
  
  
  Character LoRA training: not locally on a Mac
&lt;/h2&gt;

&lt;p&gt;This one I want to state flat, because people search for it. Training a character LoRA on your own hardware works in the app on Windows and Linux, where Character Studio trains on your own card and drops the result into your local LoRA folder. It does not run locally on a Mac. On a Mac, character training goes through the hosted side, and a character trained there can be downloaded as a &lt;code&gt;.safetensors&lt;/code&gt; file.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local video generation
&lt;/h2&gt;

&lt;p&gt;The Mac catalog lists 31 video models. The smallest need 16 GB: LTX-2.3 Distilled 4-bit, and Wan 2.1 T2V 1.3B, which is better off with 32.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LTX-2.3 Distilled 4-bit    2 s clip, 768x512, with sound    64 s    (M5 Pro, 48 GB)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two things to know before you start a long run. Where a model was timed on a real run, Create tells you before the start how long a clip will take once that is ten minutes or more, and during the run it shows the step and the time left. And most video models in the Mac catalog are marked "Experimental: not yet tested in LU". Take that label at its word.&lt;/p&gt;

&lt;p&gt;Animate, which starts a clip from a picture, is there once you have installed a video model that takes a start image.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Create does not do locally on a Mac
&lt;/h2&gt;

&lt;p&gt;On Windows and Linux, Create also has local lanes for background removal, talking character, music, extending a clip and motion control. None of those run locally on the Mac build. Upscale and erase are hosted on every platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  Voice mode
&lt;/h2&gt;

&lt;p&gt;You talk, the chat model you picked answers, and you hear the answer. Speech recognition, the voice and the turn taking run on your machine. There are fifteen voices, and you can interrupt an answer by speaking.&lt;/p&gt;

&lt;p&gt;Numbers from the M5 Pro:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Setup download          about 0.7 GB
Answer starts           1.4 to 2.0 s after the end of the question
Voice engine in memory  1.2 to 1.3 GB
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Voice is in beta and English only. On the Mac it has been tried by hand in the app. It did not get the point by point check the Windows app got.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local computer control
&lt;/h2&gt;

&lt;p&gt;A model uses the mouse and keyboard in apps you approve. It is off by default. In every new chat it asks once before it looks at the screen, and it never types into a password field.&lt;/p&gt;

&lt;p&gt;On a Mac it is more limited than on Windows, and it is not fully tested yet. The app says so at its switch. What is different:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;macOS has to grant two permissions first, Accessibility and Screen Recording.&lt;/li&gt;
&lt;li&gt;On Windows the model gets a list of the buttons and fields in a window. On macOS that list is not available, so the model needs image input and works from screenshots.&lt;/li&gt;
&lt;li&gt;For the same reason the app cannot name what a click would press, so every click is asked and needs your click.&lt;/li&gt;
&lt;li&gt;The autonomous mode exists on Windows only.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Control+Option+Space pauses and Control+Option+Esc stops. I would use this on a Mac to try it out, not to rely on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Coding agent
&lt;/h2&gt;

&lt;p&gt;The Agent and Code tabs are in the Mac build. The agent's shell gets the PATH of your login shell, so tools installed through Homebrew are found. The agent can also call the local image and video engines as tools. I have no separate Mac test run for these two tabs to point at.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not confirmed on macOS
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Remote Access (using the app from your phone)
Automatic update (there is no older Mac version to update from)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Short version
&lt;/h2&gt;

&lt;p&gt;Local chat, image generation, image editing by prompt, LoRAs, video and voice run on the Mac itself, with no ComfyUI and no account. Character LoRA training, music, talking character and the other extra lanes do not run locally on a Mac yet. Computer control is there but not fully tested. All of it has run on one M5 Pro with 48 GB, which is why the build says beta.&lt;/p&gt;

&lt;p&gt;If something breaks on your machine, the &lt;a href="https://github.com/PurpleDoubleD/locally-uncensored/issues" rel="noopener noreferrer"&gt;issue tracker&lt;/a&gt; is the place. The code is at &lt;a href="https://github.com/PurpleDoubleD/locally-uncensored" rel="noopener noreferrer"&gt;github.com/PurpleDoubleD/locally-uncensored&lt;/a&gt;, and the &lt;a href="https://locallyuncensored.com/mac/" rel="noopener noreferrer"&gt;Mac page&lt;/a&gt; keeps the current state of each part.&lt;/p&gt;

&lt;p&gt;If your Mac is an Intel model or short on memory, the same kind of models also run hosted in a browser as &lt;a href="https://locallyuncensored.com/cloud/" rel="noopener noreferrer"&gt;LU Cloud&lt;/a&gt;. That part is paid. Everything above is free.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>macos</category>
      <category>llm</category>
    </item>
    <item>
      <title>How to Run Qwen-Image 2.1 Locally: One Model That Draws and Edits</title>
      <dc:creator>David </dc:creator>
      <pubDate>Tue, 22 Sep 2026 10:13:53 +0000</pubDate>
      <link>https://dev.to/purpledoubled/how-to-run-qwen-image-21-locally-one-model-that-draws-and-edits-24bg</link>
      <guid>https://dev.to/purpledoubled/how-to-run-qwen-image-21-locally-one-model-that-draws-and-edits-24bg</guid>
      <description>&lt;p&gt;Alibaba Qwen published Qwen-Image 2.1 on 20 September 2026. The interesting part for anyone running models on their own hardware is not the benchmark table, it is the file count: one set of weights now does text to image &lt;em&gt;and&lt;/em&gt; image editing. There is no separate edit model in this generation.&lt;/p&gt;

&lt;p&gt;The less interesting part, which you should read before you spend 16 GB of bandwidth, is the license. More on that at the end, and it is not a footnote.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is actually in the box
&lt;/h2&gt;

&lt;p&gt;The architecture moved, and it moved downwards:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Image model: 7B parameters, single stream DiT, 32 layers&lt;/li&gt;
&lt;li&gt;Text encoder: Qwen3-VL-8B&lt;/li&gt;
&lt;li&gt;VAE: new, 64 channels, RGBA&lt;/li&gt;
&lt;li&gt;Objective: flow matching&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For comparison, the original Qwen-Image from August 2025 (the one usually written as 2508) had a 20B image model and a Qwen2.5-VL encoder. So 2.1 is not a bigger sibling of the old model, it is a different and smaller one. Anything you tuned against the 20B shape has nothing to attach to.&lt;/p&gt;

&lt;p&gt;New in 2.1 against everything before it: a native alpha channel, up to ten reference images in one pass, local editing driven by a drawn marking rather than only a painted mask, a prefix KV cache to speed up repeated edits, and better typography. Native 2K carried over from 2.0 in February 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  Memory
&lt;/h2&gt;

&lt;p&gt;I have not benchmarked this model, so these are quoted numbers, not mine. ai.rs puts the int8 pipeline at roughly 16 GiB in total: about 6.8 GiB for the image model, 8.7 GiB for the text encoder and 0.6 GiB for the VAE. A 24 GB card keeps all three parts resident. On a 16 GB card the usual approach is to push the text encoder into system RAM and let the card carry the rest. The full bf16 weights are a different machine entirely at 33 to 40 GB.&lt;/p&gt;

&lt;p&gt;ai.rs also reports 5.93 seconds on an RTX 5090. Their hardware, their measurement, quoted as such.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three files
&lt;/h2&gt;

&lt;p&gt;The int8 repack from Comfy-Org is three files that go into three different ComfyUI folders:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ComfyUI/models/diffusion_models/qwen_image_2.1_int8_convrot.safetensors
ComfyUI/models/text_encoders/qwen3vl_8b_int8_convrot.safetensors
ComfyUI/models/vae/qwen_image_2.1_vae_bf16.safetensors
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sizes, as Hugging Face lists them and as they measure on disk: 7.26 GB (6.76 GiB), 9.35 GB (8.71 GiB), 676 MB (0.63 GiB). Full bf16 versions of the first two exist at 14.2 GB and 17.5 GB, and there is a w4a8 encoder variant at 6.31 GB if you want to trade quality for memory.&lt;/p&gt;

&lt;h2&gt;
  
  
  The version gate you will hit first
&lt;/h2&gt;

&lt;p&gt;ComfyUI added support in 0.37.0, merged on 19 September 2026, and it brought a new encode node:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TextEncodeQwenImage21
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The older Qwen-Image edit nodes do not fit this model. If you are assembling a graph by hand and it fails at the encode step, check your ComfyUI version before you check anything else.&lt;/p&gt;

&lt;p&gt;If you would rather not assemble the graph at all, &lt;a href="https://github.com/PurpleDoubleD/locally-uncensored" rel="noopener noreferrer"&gt;Locally Uncensored&lt;/a&gt; 3.0.1 (AGPL-3.0, Windows and Linux) ships it as a Model Manager bundle called "Qwen-Image 2.1 (Generate and Edit)": 16.1 GB, three files, one click, into the folders above. It refuses politely on an older backend with exactly this line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Qwen-Image 2.1 needs ComfyUI 0.37.0 or newer. Update ComfyUI in Settings.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Which is a small thing, but a better small thing than a graph that dies two nodes in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Values that work
&lt;/h2&gt;

&lt;p&gt;Straight from the official template:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Steps: 25&lt;/li&gt;
&lt;li&gt;CFG: 1&lt;/li&gt;
&lt;li&gt;Sampler: euler&lt;/li&gt;
&lt;li&gt;Scheduler: simple&lt;/li&gt;
&lt;li&gt;Resolution: 1024x1024&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CFG below 1 is not usable with this model. If you are used to dialling CFG down on other models to soften things, that instinct will only produce noise here.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generating and editing
&lt;/h2&gt;

&lt;p&gt;Generation is what you expect: prompt in, negative prompt optional, picture out.&lt;/p&gt;

&lt;p&gt;Editing is the part worth adjusting to. You give it &lt;strong&gt;one&lt;/strong&gt; reference image and a prompt, and there is no mask. You describe the change in words instead of painting where it should happen. In Locally Uncensored the mask path is closed for this model on purpose, and the output follows the reference image while the resolution follows the canvas you picked. Whether you find that liberating or annoying probably depends on how much of your workflow currently involves a brush.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is not wired up yet
&lt;/h2&gt;

&lt;p&gt;In Locally Uncensored 3.0.1, several of the model's own abilities are not exposed. Stated flat, with nothing said about plans:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Several reference images at once. The model takes ten, the app takes one.&lt;/li&gt;
&lt;li&gt;RGBA output. The VAE has the channel, the app does not write it out.&lt;/li&gt;
&lt;li&gt;Masks with this model.&lt;/li&gt;
&lt;li&gt;A prompt enhancer and the KV cache node.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And across the board, not app specific: there is no Lightning or Turbo LoRA for 2.1 as of 21 September 2026. The old Qwen-Image speed LoRAs were built for the 20B architecture and do not fit. If your habit is to reach for a 4 step LoRA, there is nothing to reach for yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  The license
&lt;/h2&gt;

&lt;p&gt;Qwen-Image 2.1 is published under the Qwen Research License. Research and evaluation are covered. Commercial use is not, and needs a separate license from Alibaba Qwen.&lt;/p&gt;

&lt;p&gt;This is a real break with the rest of the series. Qwen-Image 2512 and Qwen-Image-Edit 2511 are Apache 2.0 and they stay Apache 2.0. So if you are generating assets for paid work, or building something you intend to sell, the newest model in the family is not the one to build on as published, and the older pair is.&lt;/p&gt;

&lt;p&gt;Worth saying plainly because the naming does not warn you. It reads like the next version of an Apache 2.0 model, and the terms underneath are not the same terms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Short version
&lt;/h2&gt;

&lt;p&gt;A 7B model that draws and edits with one set of weights, about 16 GiB of int8 pipeline, ComfyUI 0.37.0 or newer, 25 steps at CFG 1, one reference image and no mask when editing, and a license that stops at research and evaluation. If that last clause does not block what you are doing, it is a cheap thing to try. If it does, the Apache 2.0 entries in the same series are still there.&lt;/p&gt;

&lt;p&gt;The longer walkthrough with screenshots of each step lives on the &lt;a href="https://locallyuncensored.com/blog/how-to-run-qwen-image-2-1-locally.html" rel="noopener noreferrer"&gt;Locally Uncensored blog&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>tutorial</category>
      <category>comfyui</category>
    </item>
  </channel>
</rss>
