Pear

mcp
Security Audit
Fail
Health Pass
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 17 GitHub stars
Code Fail
  • rm -rf — Recursive force deletion command in .github/actions/onnxruntime-baseline/action.yml
  • rm -rf — Recursive force deletion command in scripts/build-appimage.sh
  • spawnSync — Synchronous process spawning in scripts/build-text-engine.mjs
  • process.env — Environment variable access in scripts/build-text-engine.mjs
  • rm -rf — Recursive force deletion command in scripts/ci/build-onnxruntime-baseline.sh
  • rm -rf — Recursive force deletion command in scripts/ci/check-ort-baseline.sh
  • rm -rf — Recursive force deletion command in scripts/install-local.sh
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Ai driven desktop typesetting app for near finished manga and webtoon scanlation. Balloon-aware lettering, gradient and pattern fills, bulk styling by tag, text clipping, multi stroke/shadows, font management/roughening, perspective warp and etc. Most tools are built in rust. Non-complex alternative to complex professional tools.

README.md
█▀▄▀█ ▄▀█ █▄ █ █▀▀ ▄▀█   ▀█▀ █▄█ █▀█ █▀▀ █▀ █▀▀ ▀█▀ ▀█▀ █▀▀ █▀█
█ ▀ █ █▀█ █ ▀█ █▄█ █▀█    █   █  █▀▀ ██▄ ▄█ ██▄  █   █  ██▄ █▀▄

        lettering for scanlation, without Photoshop

macOS
Windows
Linux
Tauri
Svelte
latest
license
Discord
Ko-fi

A desktop app that puts translated lettering into speech balloons. Light on
memory, works over hundreds of pages, no Photoshop needed.

Download · User guide (HOWTO)

Public beta. In daily use, but expect rough edges.

The editor

Recommended use

Translators work in translate mode: translate each bubble and tag it
(tagging shortcuts are still in progress). Typesetters then set a font per tag,
place the text boxes, and tune them. Auto placement can be turned off.

Features

  • Text box detection and auto placement
  • Tags, so you stop scrolling the font list for every line. Tags are saved
    per project, so the first tagging pass is the slow one
  • Auto fit to balloon. It is flaky, so it can be turned off in Settings, or per
    bubble with a shortcut
  • Autosave
  • Bulk restyle by tag or by selection, for when you change your mind
  • Effects: transform (warp), stacked strokes and shadows, text clipping
    (untested), circular curve, arc, a controllable curve for wavy text, motion
    blur and normal blur, font roughening, text mask clipping
  • Fills: solid, pattern and gradient (a better colour picker is in progress)
  • The normal layout controls you expect
  • Export to PNG, JPG, WebP or JSON, per page or per chapter
  • Auto updates
  • Low resource use, with heavy offloading to disk

Do not use PSD export yet. It is unfinished, and low priority, because it
is genuinely hard.

Install

Grab the installer from https://typesetter.komiq.cc.

  • macOS (Apple Silicon): open the .dmg, drag the app to Applications. The
    bundle is not notarised yet, so first launch needs right-click > Open.

  • Windows: run the setup .exe.

  • Linux (x86_64 or ARM64): choose the download matching your architecture.
    Install the .deb, or mark the .AppImage
    executable and run it. Both use your distro's GTK 3 and WebKitGTK 4.1
    (the .deb pulls them in; the AppImage tells you the install command if
    they are missing: libwebkit2gtk-4.1-0 on Debian and Ubuntu,
    webkit2gtk4.1 on Fedora, webkit2gtk-4.1 on Arch).

    • The Linux builds need glibc 2.39 or newer: Ubuntu 24.04, Mint 22, Fedora
      39, Debian 13, Arch, or anything newer. On an older distro it refuses to
      start with version 'GLIBC_2.39' not found, and there is no build that
      does: the floor comes from the prebuilt ONNX Runtime, which is compiled
      against glibc 2.38 with or without a GPU feature. Reaching Ubuntu 22.04 or
      Debian 12 would take a Flatpak, which carries its own runtime.
    • The x86_64 build uses WebGPU over Vulkan when a usable driver is there and
      the CPU when it is not. The ARM64 build is CPU-only because its prebuilt
      ONNX Runtime has no WebGPU or CUDA provider.
    • The x86_64 build runs on any x86-64 CPU, including ones without AVX
      (Pentium Silver, Celeron, older Atom). Its ONNX Runtime is built in CI at
      the plain x86-64 baseline; the prebuilt one needs AVX2 and crashed at
      start-up with Illegal instruction on those CPUs.

    ldd --version prints your glibc version.

Updates arrive in-app and are signature-verified. Each Linux build only
updates to its own kind.

Build from source

Requires Node 20+ and a Rust toolchain
(see the Tauri v2 prerequisites).

git clone https://github.com/komiq-cc/manga-typesetter.git
cd manga-typesetter
npm install

npm run tauri dev     # run it
npm run tauri build   # bundle in src-tauri/target/release/bundle
npm test              # vitest

Detection models download on first use and are cached under your home
directory; nothing ships in the bundle. Chinese and Korean recognizers can be
selected independently under Settings → System → Models. PP-OCRv6 Medium
is the quality-first Chinese default. Korean defaults to the Korean-specific
PP-OCRv5 model; PP-OCRv6 does not support Korean. Alternate smaller or legacy
models remain available.

GPU

Detection and OCR run on the GPU where one is usable, falling back to CPU per
model, and the settings dialog names the device in use:

  • macOS: CoreML.

  • Windows: CUDA on NVIDIA machines with CUDA 13 and cuDNN 9 installed,
    otherwise DirectML (any GPU, nothing to install).

  • Linux: WebGPU over Vulkan (any GPU, nothing to install), CPU when there is
    no usable driver. An NVIDIA-only CUDA build exists for people with CUDA 13 +
    cuDNN 9, and is faster than WebGPU on those machines:

    npm run tauri build -- --features gpu-cuda --config src-tauri/tauri.linux-cuda.conf.json
    

    Plain cargo build on Linux has no GPU provider; pass --features gpu-webgpu
    or gpu-cuda, not both. The WebGPU feature only links on a host with glibc
    2.38+ and GCC 13's libstdc++ (Ubuntu 24.04 or newer).

Set MT_DEVICE=cpu (or cuda, directml, webgpu, coreml) before
launching to pin a device when a driver misbehaves. The first device probe
runs in a helper copy of the app (app --probe-device), so a driver that
aborts while starting up only kills that helper; detection then stays on CPU
for the rest of the run and the log says why.

On Linux the app switches WebKit's DMA-BUF renderer off when the NVIDIA
proprietary driver is loaded (a blank window otherwise). Set
WEBKIT_DISABLE_DMABUF_RENDERER=0 before launching to force it back on; the
app leaves the variable alone when it is already set.

The AppImage bundles no GTK or WebKit on purpose: it uses the host's, exactly
like the .deb, so WebKit's UI process and its helper processes are always the
same version on every distro. scripts/build-appimage.sh explains why.

Built with

Svelte 5 · Vite ·
Tauri 2 · ag-psd ·
hypher ·
ONNX Runtime via ort

Detection models from
deepghs/manga109_yolo and
kha-white/manga-ocr, plus PP-OCRv4/v5
Korean and PP-OCRv5/v6 Chinese recognizers published by
RapidOCR. No model weights ship in the
app - they download on first use from a byte-for-byte RapidOCR mirror, and
each carries its publisher's own terms rather than this project's.

License

MIT © 2026 k-omiq

Third-party licenses and notices are in THIRD-PARTY.md.

Reviews (0)

No results found