Novel Mill is a translator’s aid, not a finished translation. It is designed to run alongside a manual English pass—or before you write one.
Novel Mill processes a Japanese web novel or light novel through a local AI model, one scene at a time, displaying the English translation next to the source text so the two can be easily compared.





Why Context Matters
A translation is not a lookup table. The same line can read as polite, cold, joking, or evasive depending on who is speaking and what just happened. Two careful translators will rarely land on the same sentence because context is subjective.
An AI pass offers another reading of that context. While it is often wrong, it can be useful in unexpected ways—it might flatten a joke you kept, or preserve a subtle implication you smoothed out. Displaying the original and AI translation side by side keeps choices visible rather than hidden.
[ Japanese EPUB / Scans ]
│
▼
[ Novel Mill ]
(Scene Splitter + Lock File Injection)
│
▼
[ Local LM Studio / Tesseract ]
│
▼
[ out/*.en.txt Side-by-Side Draft ]
│
▼
[ Your Manual Edit Pass ]
Who Is This For?
- Built for: Fan translators, localizers, and language learners who want an offline, side-by-side draft to challenge their choices and accelerate manual editing.
- Not for: Anyone looking for a one-click automated publisher, a web novel scraper, or a DRM remover. You bring the book; Novel Mill helps you tackle the translation.
How It Works in Practice
1. Side-by-Side Translation Drafting
Instead of replacing your translation, Novel Mill gives you a draft to argue with:
Japanese Source:
「べ、別にあんたのために作ったわけじゃないんだからね!」
Novel Mill Output (
out/01.en.txt):“I-it’s not like I made this for you or anything!”
Your Final Manual Pass:
“Don’t get the wrong idea—I didn’t cook this for your sake.”
2. Character & Tone Consistency (Lock Files)
To keep the model from renaming characters or drifting in tone halfway through a book, you can add up to three plain-text lock files in a lock folder inside your book folder:
my-book/
lock/
prompt.txt
glossary.txt
voices.txt
prompt.txtholds your main instructions: tone, honorifics, how to handle speech marks.glossary.txtholds fixed names and terms.voices.txtholds how each character speaks.
They're ordinary UTF-8 text files with no special format. You just write what you want the model to follow. Before each scene, Novel Mill joins whichever of the three exist into the system message. If there are none, it uses a short built-in translator prompt. All three are optional, but everything in them uses up context tokens on every request, so keep them short. This is also why 4096 context is too small once lock files are added.
3. Five Tabs, One Pipeline
| Tab | What it does |
|---|---|
| EPUB | Turns a DRM-free EPUB into scene text in in/ and pictures in images/. Refuses Adobe-encrypted EPUBs. |
| OCR | Runs Tesseract on page pictures. Combine writes raw_full.txt. |
| Split | Splits one Japanese dump into scene files in in/. |
| Mill | Sends one request per ticked scene to LM Studio and writes out/*.en.txt. |
| Settings | Book folder, appearance (System / Dark / Light) and interface language (日本語 / English). |
Text EPUB: Extract, Split only if a chapter is huge, then Mill. Scanned book: OCR, Combine, Split, Mill.
Install
You can use the ready-made download, or run Novel Mill from source. Either way, LM Studio and Tesseract are separate installs (see Prerequisites & Dependencies below).
Download (Windows or Linux)
Go to the latest release and grab the file for your system:
- Windows:
NovelMill-v1.9.0-win64.exe. It’s a single file. Double-click it to start. - Linux:
NovelMill-v1.9.0-x86_64.AppImage. Make it executable once, then run it:
chmod +x NovelMill-v1.9.0-x86_64.AppImage
./NovelMill-v1.9.0-x86_64.AppImage
Run from source
You need Python 3 on your PATH (py -3 on Windows). The app only uses the Python standard library plus Tkinter, so there’s nothing to pip install. Download or clone the repo, then:
- Windows: double-click
wn-local-mill.bat - Linux: run
python3 wn-local-mill.py
First run
- Open Settings and pick your book folder.
- Open the Mill tab and check the connection settings:
- API base:
http://127.0.0.1:1234/v1 - Model: default
google/gemma-4-12b-it. It must match the ID that LM Studio lists at/v1/models. - Temp: default
0.1 - Pause: default 10 seconds between requests
- Timeout: default 1200 seconds
- Context: default
8192. It must match the context size you loaded the model with in LM Studio. - Existing .en.txt: Keep existing (default) or Overwrite
- API base:
- Novel Mill saves these settings (and your API key) to
mill.jsonand loads them again on the next launch. You only set them once. The file lives in%APPDATA%\NovelMillon Windows or~/.config/novel_millon Linux, next to your theme, language and scene-tick choices.
Where output goes
Each translated scene is saved as out/<scene name>.en.txt inside your book folder. If you combine the English shards, they’re joined into english_full.txt in the book folder. Nothing is written into the app’s own folder.
Long runs
- Tick scenes on the Mill tab for a partial run. Missing only selects just the scenes that have no
.en.txtyet, so you can resume an interrupted run. - Keep existing (the default) skips scenes that are already translated; Overwrite redoes them.
- If LM Studio fails three times in a row, the queue stops instead of skipping through the rest of the book.
- As a rough guide, a volume of about 30 chapters takes 3–5 hours on an RTX 3070 with a 12B Q4 model, if stubs and
_breakfiles are skipped.
Prerequisites & Dependencies
Neither dependency is bundled with Novel Mill:
- Text EPUBs: Require LM Studio only.
- Scanned Books: Require LM Studio and Tesseract.
- Store Bought Books: Require Calibre (convert EPUB to EPUB to remove Adobe DRM before Extract). Novel Mill refuses Adobe-encrypted EPUBs.
- Running from Source: Python 3.
1. LM Studio (Local Model Server)
LM Studio runs models locally on your hardware and exposes an OpenAI-compatible API. Novel Mill talks exclusively to that local API. Nothing in your book folder is ever sent to a cloud host.
- Default / Recommended Model:
google/gemma-4-12b-it- Why it works so well: Built on Google’s 12B encoder-free unified architecture, it strikes an exceptional balance between VRAM footprint and translation quality. It excels at preserving modern conversational Japanese registers, subtext, and natural light-novel dialogue flow without over-flattening character personality.
- System Requirements: Fits comfortably in ~10GB to 14GB of VRAM (4-bit/5-bit GGUF quantization).
- Installation:
- Windows: Download the installer from lmstudio.ai or run:
winget install --id ElementLabs.LMStudio -e - Linux: Download the AppImage from lmstudio.ai, mark it executable, and run it.
- Windows: Download the installer from lmstudio.ai or run:
- Configuration:
- Open LM Studio, search for
gemma-4-12b-it, and download a GGUF quant (Q4_K_M or Q5_K_M recommended). - Load the model with Context Size: 8192 and Parallel Slots: 1 (4096 is too small once system lock files are loaded).
- In the Developer tab, start the local server (default:
http://127.0.0.1:1234). - Make sure the model ID in Novel Mill’s Mill tab (default
google/gemma-4-12b-it) exactly matches the ID LM Studio lists athttp://127.0.0.1:1234/v1/models. Also make sure the Context box matches the context size you loaded (8192).
- Open LM Studio, search for
2. Tesseract (OCR Engine)
Tesseract extracts Japanese text from scanned page images. Skip this step if your EPUB already contains text. Novel Mill requires two language files: jpn (horizontal text) and jpn_vert (vertical text). An English-only setup will not work.
- Ubuntu / Debian:
sudo apt install tesseract-ocr tesseract-ocr-jpn tesseract-ocr-jpn-vert - Windows:
- Install Tesseract:
winget install --id tesseract-ocr.tesseract -e - Confirm
jpn.traineddataandjpn_vert.traineddataexist in yourtessdatafolder (usuallyC:\Program Files\Tesseract-OCR\tessdata). - If missing, copy both files from the official tessdata repository into
tessdata. - Verify setup by running
tesseract --list-langs. Output must list bothjpnandjpn_vert.
- Install Tesseract:
Model Benchmarks & Alternatives
While gemma-4-12b-it is the default recommendation, local LLM performance depends on your GPU VRAM budget and preferred translation style. Here is how alternative models compare for Japanese web novel translation:
| Model | Size / VRAM Needed | Pros | Cons |
| Gemma 4 12B Instruct (Default) | 12B (~10–14 GB VRAM) | • Superior handling of Japanese dialogue registers • Fast generation speed • Low hardware requirements | • Can occasionally hallucinate idioms if prompt instructions are too sparse |
| Qwen 2.5 14B / Qwen 3 14B | 14B (~12–16 GB VRAM) | • Extremely strict adherence to lock files instructions • Outstanding literal accuracy for complex kanji compounds | • Tends toward rigid, formal English prose that requires heavier manual editing |
| Command R (35B) | 35B (~22–26 GB VRAM) | • Exceptional contextual reasoning and flow • Designed specifically for multilingual tasks | • Requires high-end GPU hardware (24GB+ VRAM) • Slower scene generation times |
| Gemma 2 9B / Qwen 2.5 7B | 7B–9B (~6–8 GB VRAM) | • Runs smoothly on budget GPUs or laptops • Lightweight VRAM footprint | • Struggles with context retention when using long lock files |
Choosing the Right Model for Your Workflow:
- For Natural Prose & Character Voice: Stick with
gemma-4-12b-it. It produces dialogue that feels closest to human localization. - For Complex Worldbuilding & Heavy Lock Files:
Qwen 2.5 14B(or newer Qwen 14B variants) follows rigid structural constraints better than almost any other model in its size class. - For High-End Rig Users (24GB VRAM+):
Command R (35B)provides rich, nuanced translations for dense prose, though generation speeds per scene will be noticeably slower.
Planned
Cloud models through the OpenAI chat-completions API: ChatGPT, Grok, OpenRouter and any other host that speaks that format. For now Novel Mill talks only to LM Studio on http://127.0.0.1:1234.
Release History (Recent)
- v1.9.0 (7 Oct 2026): Ready-made downloads for Windows (exe) and Linux (AppImage). It also gets a new look shared with Translation Aggregator, and your connection settings are now remembered between runs. Fixes include a rare crash partway through a run, better context-length estimates for Japanese, and proper chapter titles for older EPUB2 books.
- v1.7.0 (22 Sep 2026): Renamed to Novel Mill to cover both web novels and light novels, with a rewritten README and a 10-second default pause between requests.
- v1.0.0 (19 Sep 2026): First release, with two separate tools: the scene splitter (WN Raw Split, with JSON rules you can edit) and the translator (WN Scene Mill).
Project Info
- Repository:github.com/PatchScratch/novel-mill
- Version on main: 1.9.0 (7 Oct 2026)
- License: MIT
Novel Mill is not a downloader, not a DRM remover, and not a substitute for reading Japanese.
Support: If this is useful to you, you can tip me on Ko-fi or sponsor me on GitHub Sponsors. It helps me keep building and maintaining these projects.