Skip to main content

Browser reader for manga with selectable text

Project description

mokuro

Read Japanese manga with selectable text inside a browser.

See demo: https://kha-white.github.io/manga-demo

https://user-images.githubusercontent.com/22717958/164993274-3e8d1650-9be3-457d-84cb-f92f9598cd5a.mp4

Demo contains excerpt from Manga109-s dataset. うちの猫’ず日記 © がぁさん

mokuro is aimed towards Japanese learners, who want to read manga in Japanese with a pop-up dictionary like Yomitan. It works like this:

  1. Perform text detection and OCR for each page.
  2. After processing a whole volume, generate a .mokuro file, which contains OCR results and metadata. All processing is done offline (before reading).
  3. Load the .mokuro file together with manga images in web reader, which serves both as a manga reader and a catalog for processed series and volumes.

Alternatively, you can still use the old method from mokuro 0.1.*: Instead of a .mokuro file, generate an HTML file, which you can open in a browser. You can transfer the resulting HTML file together with manga images to another device (e.g. your mobile phone) and read there. This method is still supported for backward compatibility, but it is recommended to use the new .mokuro format and the web reader. For details, see Legacy HTML vs. new .mokuro format.

mokuro uses comic-text-detector for text detection and manga-ocr for OCR.

Try running on your manga in Colab: Open In Colab

See also:

  • mokuro-reader, a web reader for mokuro, developed by ZXY101
  • Mokuro2Pdf, cli Ruby script to generate pdf files with selectable text from Mokuro's html overlay
  • Xelieu's guide, a comprehensive guide on setting up a reading and mining workflow with manga-ocr/mokuro (and many other useful tips)

Installation

You need Python 3.6 or newer. Please note, that the newest Python release might not be supported due to a PyTorch dependency, which often breaks with new Python releases and needs some time to catch up. Refer to PyTorch website for a list of supported Python versions.

Some users have reported problems with Python installed from Microsoft Store. If you see an error: ImportError: DLL load failed while importing fugashi: The specified module could not be found., try installing Python from the official site.

If you want to run with GPU, install PyTorch as described here, otherwise this step can be skipped.

Run in command line:

pip3 install mokuro

Usage

Run on one volume

mokuro /path/to/manga/vol1

This will generate /path/to/manga/vol1.html file, which you can open in a browser.

If your path contains spaces, enclose it in double quotes, like this:

mokuro "/path/to/manga/volume 1"

Run on multiple volumes

mokuro /path/to/manga/vol1 /path/to/manga/vol2 /path/to/manga/vol3

For each volume, a separate HTML file will be generated.

Run on a directory containing multiple volumes

If your directory structure looks somewhat like this:

manga_title/
├─vol1/
├─vol2/
├─vol3/
└─vol4/

You can process all volumes by running:

mokuro --parent_dir manga_title/

Other options

--pretrained_model_name_or_path: Name or path of the manga-ocr model.
--force_cpu: Force the use of CPU even if CUDA is available.
--disable_confirmation: Disable confirmation prompt. If False, the user will be prompted to confirm the list of volumes to be processed.
--disable_ocr: Disable OCR processing. Generate mokuro/HTML files without OCR results.
--ignore_errors: Continue processing volumes even if an error occurs.
--no_cache: Do not use cached OCR results from previous runs (_ocr directories).
--unzip: Extract volumes in zip/cbz format in their original location.
--disable_html: Disable legacy HTML output. If True, acts as if --unzip is True.
--as_one_file: Applies only to legacy HTML. If False, generate separate CSS and JS files instead of embedding them in the HTML file.
--version: Print the version of mokuro and exit.

Legacy HTML vs. new .mokuro format

Before version 0.2.0, mokuro generated a separate HTML file for each processed volume, which caused some usability issues:

  • HTML files contained both the OCR results and the whole web reader GUI, so in order to update the GUI, all volumes needed to be updated with a new mokuro version
  • images were stored separately and linked in HTML files, so any change in the directory structure could break the links
  • transferring the manga to another device required transferring both the HTML files and the images
  • there was no unified GUI for a whole catalog containing multiple volumes
  • on some mobile devices, some workarounds were needed to open HTML files

Starting from version 0.2.0, a new .mokuro format is introduced, which is generated for each volume and contains only the OCR results and metadata necessary for the web reader GUI. Web reader is now a separate web app, which can open manga volumes with their associated .mokuro files.

The old HTML format is still generated for backward compatibility, but it will not be developed further, and it is recommended to use the new .mokuro format and the web reader.

Contact

For any inquiries, please feel free to contact me at kha-white@mail.com

Acknowledgments

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mokuro-0.2.1.tar.gz (7.7 MB view details)

Uploaded Source

Built Distribution

mokuro-0.2.1-py3-none-any.whl (133.6 kB view details)

Uploaded Python 3

File details

Details for the file mokuro-0.2.1.tar.gz.

File metadata

  • Download URL: mokuro-0.2.1.tar.gz
  • Upload date:
  • Size: 7.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for mokuro-0.2.1.tar.gz
Algorithm Hash digest
SHA256 a5ac7f06bbc1345ed3c959b70d8b6daab61b383a6f9ef747b275628ee514bc33
MD5 886c615dbcb3da31e62dd7361fe60f27
BLAKE2b-256 0d59186909e18f52b4685240d6661a09449b1205fe798ba674bb5bf1daf30152

See more details on using hashes here.

File details

Details for the file mokuro-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: mokuro-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 133.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for mokuro-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 669647ec723c0e316ed5ccbdca03ca1ee5bf48dc3d0b4b952da63f56da999857
MD5 cc46e2fc452f315d1a6ac3e50535e2f3
BLAKE2b-256 c49934b9973485138a9de61bc25ec8fb9b52b9031b841f39b18a543b5c781168

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page