Open-source project
techjarves/Uncensored-Local-Studio avatar
techjarves/Uncensored-Local-Studio

Uncensored Local Studio: a bundled offline GUI for Stable Diffusion, GGUF chat, Whisper and Kokoro

Uncensored local AI studio for Windows, Linux, and macOS. Zero-setup GUI for Image Generation, GGUF LLMs, Text to Speech & Speech to Text

1,442 stars361 forksJavaScriptMIT

At a glance

What is it?
The project wraps stable-diffusion.cpp, llama.cpp, whisper.cpp and Kokoro into one desktop app with no global installs. It is a checkpoint loader, not a workflow engine, and the README says so.
Who is it for?
Adopt it if you want to run SD 1.5 or SDXL checkpoints, a single-file GGUF chat model, Whisper and Kokoro TTS without touching a Python environment, and if you accept that text and image engines are mutually exclusive by default. Do not adopt it if your work depends on Flux, LoRA, ControlNet or multi-file diffusers pipelines, since the README lists those as unsupported.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 14 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The gap Uncensored Local Studio tries to close

Running local models usually means assembling four separate toolchains: a Python environment for diffusion, a compiled llama.cpp server, a whisper.cpp binary, and a TTS runtime. Each has its own build steps, its own model directory convention, and its own way of failing on a machine without the right CUDA toolkit. Uncensored Local Studio targets the person who wants the four capabilities without that assembly work. The README describes it as a "completely offline, zero-setup, self-contained AI studio" for Windows, Linux and macOS, and the repository layout backs the claim: the top level holds app/, scripts/, and three launch scripts, linux.sh, mac.sh and windows.bat, with no requirements.txt or package manifest at the root. The pitch is portability: the runtime, models and GPU backends travel with the app, and the README states there are zero global system environment changes. That matters most on shared or locked-down machines where you cannot install a system-wide Python or CUDA stack. It is not aimed at people who already have a ComfyUI graph they like, and it is not aimed at server deployments, since every entry point in the repository is a desktop launcher.

How the four engines are wired together

The architecture is a set of backend processes behind one web UI. Image generation runs on a dedicated stable-diffusion.cpp node, with weights read from app/models/. Text chat runs a portable llama.cpp server with .gguf weights in app/llm-models/. Whisper runs as a localized whisper-cli process and reads .bin models from app/speech-models/. Kokoro TTS is different in kind: the README says it uses kokoro-js on the server side rather than a separate native binary, so the speech synthesis path stays inside the Node runtime. The design decision worth noting is that text and image engines are mutually exclusive by default. The README gives the reason directly: to avoid exhausting system RAM or VRAM. The practical consequence is a workspace switch in the UI rather than concurrent loading. If you want to generate an image and then ask a model to describe it, you will pay a model load each time you cross that boundary. The README does not describe a way to override the exclusivity, so treat it as the operating model rather than a setting. Hardware detection happens at startup: the app picks CUDA for Nvidia, ROCm for AMD, Vulkan for Intel, AMD or Nvidia, Metal on macOS, or OpenVINO for Intel NPUs.

Installing it and generating a first image

There is no package manager step. The repository ships a launcher per platform, and the README's Getting Started section splits into a Windows Setup, a Linux Setup and a macOS Setup path. On Linux the entry point is linux.sh, on macOS it is mac.sh, and on Windows it is windows.bat. The launcher is what bootstraps the self-contained runtime, so the first run is the slow one. The README also points to a setup and demo video at youtu.be/yeFvP3SWMak for the visual walkthrough. After the app opens, the fastest path to a working image is the Model Manager, which the README says accepts pasted Hugging Face URLs or drag-and-drop local weights. Pick a known-good entry rather than guessing at a filename. DreamShaper 8 is the smallest listed option at roughly 2.1 GB and is an SD 1.5 checkpoint, so it fits lower-memory machines. The README's table gives its filename as DreamShaper_8_pruned.safetensors and its destination as app/models/. Once the file lands there, switch to the Image Generation workspace, select the checkpoint, and generate. Output goes to the local gallery, which the README says stores each image alongside its prompt parameters and a metadata JSON file. For chat, the README notes a small Qwen2.5 Coder starter model can be downloaded directly from the Text Chat panel, which saves you from sourcing a GGUF file before you can confirm the llama.cpp backend works at all.

Where the supported-model table draws a hard line

This is the section to read before you commit. The README carries a support table, and the No column is longer than the Yes column. Flux, HiDream, Hunyuan, Wan, Qwen Image and Z-Image workflows are listed as unsupported, with the explanation that they usually require separate diffusion, VAE and text encoder files and are not one-click checkpoint loads here. LoRA, ControlNet, VAE-only, text-encoder-only and diffusion-only files are also unsupported, because companion files are not loaded as standalone image models. Single-file SD or SDXL GGUF checkpoints are marked Limited. OpenVINO image model folders work only on Intel NPU hardware, and CoreML image models only on Apple Silicon. The result is a tool with a narrow but honest scope: SD 1.5 and SDXL single-file checkpoints, plus the specific OpenVINO and CoreML paths. If your workflow is a base model plus two LoRAs and a ControlNet pass, this app is the wrong tool, and no amount of configuration will change that because the loader does not read those files. The same narrowness applies to memory: SDXL checkpoints are 6.6 GB each in the Model Manager list, and the README warns they need more RAM and VRAM than SD 1.5.

Compared with ComfyUI and the manual stack

ComfyUI is the obvious alternative, and the difference is architectural rather than cosmetic. ComfyUI is a node graph: you wire diffusion, VAE, text encoder, LoRA and ControlNet loaders together and the graph defines the pipeline. Uncensored Local Studio has no graph. It has four workspaces and a checkpoint picker, and the pipeline is fixed by the bundled backend. That trade removes the ability to compose custom pipelines and removes the ability to run the multi-file models that ComfyUI handles routinely. What it buys is the absence of setup. ComfyUI requires a Python environment, a torch build matched to your GPU, and manual placement of custom nodes; Uncensored Local Studio ships the runtime and detects the backend. The second alternative is doing it by hand with llama.cpp, whisper.cpp and stable-diffusion.cpp directly, which gives you scripting and server access that a GUI does not. If you need an API to call from another program, the README describes a desktop studio, not a service, so the manual binaries are the better fit. Choose based on whether your bottleneck is pipeline flexibility or environment setup.

Maintenance, licence and the cost of the bundled runtime

The repository is MIT licensed, which permits commercial use, modification and redistribution provided the copyright notice and permission notice are retained. The bundled engines are separate projects with their own licences, and the README does not enumerate them, so if you redistribute the app you need to check stable-diffusion.cpp, llama.cpp, whisper.cpp and Kokoro terms yourself. Model weights carry their own licences too, and those are independent of the app. On maintenance: the last push to the default branch was on 2026-08-29, and the repository is not archived. The README does not document an upgrade path, a version pinning scheme for the bundled engines, or a rollback procedure, so the upgrade cost is effectively whatever it takes to replace the app directory and re-point it at your existing model folders. Because models live in app/models/, app/llm-models/, app/speech-models/ and app/openvino-models/, keeping those paths intact across an update is the thing to plan for. There are no retrieved releases, so there is no changelog to read before you update.

Editorial conclusion

Adopt it if you want to run SD 1.5 or SDXL checkpoints, a single-file GGUF chat model, Whisper and Kokoro TTS without touching a Python environment, and if you accept that text and image engines are mutually exclusive by default. Do not adopt it if your work depends on Flux, LoRA, ControlNet or multi-file diffusers pipelines, since the README lists those as unsupported. Before installing, check that your GPU vendor is covered by the auto-detected backends (CUDA, ROCm, Vulkan, Metal, OpenVINO) and confirm free disk space for the weights, since the SDXL entries in the Model Manager are 6.6 GB each.

Frequently asked questions

Which NSFW AI image generator is the best locally?

Uncensored Local Studio does not rank generators; it loads single-file checkpoints, and the README lists known-good options including CyberRealistic V8 for realistic SD 1.5 output and Juggernaut XL v9 Lightning for SDXL photorealism. The README states the app runs entirely on your own hardware with no censorship, but it does not make quality claims about individual models.

What model formats does Uncensored Local Studio accept?

Image generation takes .safetensors, .gguf or .ckpt files in app/models/, with single-file SD and SDXL checkpoints supported and SD/SDXL GGUF marked limited. Text chat uses .gguf files in app/llm-models/, speech-to-text uses whisper.cpp .bin models in app/speech-models/, and TTS uses Kokoro .json manifests and model assets.

Can Uncensored Local Studio run an image model and a chat model at the same time?

No. The README states that text and image engines are mutually exclusive by default, specifically to avoid exhausting system RAM or VRAM, and you switch between workspaces inside the UI. The README does not document an override for this behaviour.

Does Uncensored Local Studio need an internet connection or an API key?

The README describes the app as 100% offline and states that no internet, telemetry, cloud logging or API keys are required for inference. You do need a connection if you use the Model Manager to download weights from a pasted Hugging Face URL.

How do I install Uncensored Local Studio on Windows, Linux or macOS?

The repository ships a launcher per platform: windows.bat on Windows, linux.sh on Linux and mac.sh on macOS. The README describes the runtime as self-contained with zero global system environment changes, so there is no separate package installation step.

Official sources

  1. Issues
  2. License: MIT
  3. README
  4. techjarves/Uncensored-Local-Studio on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/techjarves-uncensored-local-studio.svg)](https://hysenlabs.com/projects/techjarves-uncensored-local-studio)