Moru is a Windows desktop app for creating and refining images through conversation. A local LLM or ChatGPT turns your request into an image prompt, then Anima or FLUX.2 produces the image on your computer.
You need Windows, an NVIDIA GPU with its drivers, and the Windows WebView2 Runtime.
Download portable build (Proton Drive)
Extract the entire Moru.7z archive and run Moru.exe. Python, Node.js, and ComfyUI are
included. Download model files through the app or select your own; their use is governed
by their distributors' licenses.
Projects, images, and settings are stored in data/; downloaded models are stored in models/.
Move both folders with the app. Sign in to ChatGPT again when using a different computer.
In Model setup, choose an image model and prepare its files. Moru supports Anima Turbo, Anima Aesthetic, and FLUX.2 klein 4B.
For automatic prompt writing, prepare a prompt writer. You can also use Direct input without one.
- Local LLM: Prepare its model file to run it on your computer. Requests, prompts, and conversation history stay local, and prompt writing works offline.
- ChatGPT: Sign in with your account and choose a GPT model. It runs no local LLM and requires an internet connection. Requests, prompts, and recent conversation text are sent to OpenAI, and ChatGPT plan usage and content policies apply.
In Generation settings, choose your prepared image model and prompt writer, then adjust image dimensions and generation options. You can enable or disable Danbooru tag search for Anima with either a local LLM or ChatGPT. Advanced settings control how much recent conversation to use and the reasoning options. Changes are saved when you close the settings window.
Switch between prepared prompt writers and Direct input beside the input box. Direct input trims surrounding whitespace and uses each message as a complete image prompt, without AI rewriting or tag search.
Describe a scene to have a prompt written and an image generated. When tag search is enabled for Anima, Moru looks up matching Danbooru tags online to inform prompt writing. After seeing the result, send a change request. Moru uses the current image's prompt and recent conversation to create a new image.
A blonde woman eating ramen at a convenience store.
Make it a rainy evening.
Give her a neutral expression.
Open Edit below an image to edit its full scene prompt or paint a Region and describe what to change and how, such as “Change this cup to blue.” Anima edits the painted region locally. Region editing requires a prepared local LLM or ChatGPT. Your selected prompt writer uses the text descriptions to prepare the edit and update the scene prompt for subsequent conversation. Images stay on your computer. The Sources menu shows information consulted during tag searches.
- Regenerate: Create another result with the same prompt and your current generation settings. Results from prompt and region edits also stay together as versions of the same conversation entry. Select the version you like to continue the conversation from it.
- Fork: Copy the conversation up to the selected image into a new project. Try another style or scene while keeping the original project.
Click an image to zoom, pan, compare versions, or copy it to the clipboard in the full-screen viewer. Projects and results are saved locally so you can reopen them later and continue.
If an in-app download fails, use the links under Model setup → Manual download, then use Select file to locate the file. You can keep its existing name and location.
Files for each model
Anima needs either the Turbo or Aesthetic weights and the shared text-understanding and image-decoding models. FLUX.2 klein 4B needs its three dedicated files. Prepare the prompt-writing GGUF when using a local LLM.
| Model | File to download |
|---|---|
| Local prompt model | Qwen3.5-4B-Uncensored-HauhauCS-Aggressive-Q4_K_M.gguf |
| Anima text-understanding model | qwen_3_06b_base.safetensors |
| Anima image-decoding model | qwen_image_vae.safetensors |
| Anima Turbo | anima-turbo-v1.1.safetensors |
| Anima Aesthetic | anima-aesthetic-v1.1.safetensors |
| FLUX.2 klein 4B | flux-2-klein-4b-fp8.safetensors |
| FLUX.2 text encoder (FP4) | qwen_3_4b_fp4_flux2.safetensors |
| FLUX.2 VAE | flux2-vae.safetensors |
Install Git, Python 3.12, uv, and Node.js 22.12 or later, then run these commands in PowerShell. Initial setup downloads dependencies and ComfyUI.
git clone https://github.com/neuwcodebox/moru.git
cd moru
uv sync --frozen --extra inference
uv run --extra inference python scripts/setup_comfyui.py
cd frontend
npm.cmd ci
npm.cmd run build
cd ..
uv run --extra inference python -m moruFor subsequent launches, run uv run --extra inference python -m moru from the repository folder.
The same setup and workflow apply, with data/ and models/ stored in that folder.
See TECH.md for development setup, tests, and portable builds, and SPEC.md for detailed product behavior.
Moru is licensed under GPL-3.0-or-later. Third-party libraries and models are covered by their own licenses.

