Novel Mill

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.txt holds your main instructions: tone, honorifics, how to handle speech marks.
  • glossary.txt holds fixed names and terms.
  • voices.txt holds 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

TabWhat it does
EPUBTurns a DRM-free EPUB into scene text in in/ and pictures in images/. Refuses Adobe-encrypted EPUBs.
OCRRuns Tesseract on page pictures. Combine writes raw_full.txt.
SplitSplits one Japanese dump into scene files in in/.
MillSends one request per ticked scene to LM Studio and writes out/*.en.txt.
SettingsBook 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

  1. Open Settings and pick your book folder.
  2. 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
  3. Novel Mill saves these settings (and your API key) to mill.json and loads them again on the next launch. You only set them once. The file lives in %APPDATA%\NovelMill on Windows or ~/.config/novel_mill on 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.txt yet, 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 _break files 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.
  • Configuration:
    1. Open LM Studio, search for gemma-4-12b-it, and download a GGUF quant (Q4_K_M or Q5_K_M recommended).
    2. Load the model with Context Size: 8192 and Parallel Slots: 1 (4096 is too small once system lock files are loaded).
    3. In the Developer tab, start the local server (default: http://127.0.0.1:1234).
    4. Make sure the model ID in Novel Mill’s Mill tab (default google/gemma-4-12b-it) exactly matches the ID LM Studio lists at http://127.0.0.1:1234/v1/models. Also make sure the Context box matches the context size you loaded (8192).

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:
    1. Install Tesseract:
      winget install --id tesseract-ocr.tesseract -e
    2. Confirm jpn.traineddata and jpn_vert.traineddata exist in your tessdata folder (usually C:\Program Files\Tesseract-OCR\tessdata).
    3. If missing, copy both files from the official tessdata repository into tessdata.
    4. Verify setup by running tesseract --list-langs. Output must list both jpn and jpn_vert.

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:

ModelSize / VRAM NeededProsCons
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 14B14B (~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 7B7B–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

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.

Leave a Reply

Your email address will not be published. Required fields are marked *