VoxelCubes / PanelCleaner

An AI-powered tool to clean manga panels.
GNU General Public License v3.0
243 stars 18 forks source link
ai cli image-processing machine-learning manga text-cleaner

Panel Cleaner

License: GPL v3 GitHub release (latest by date) PyPI version Code style: black Crowdin

This tool uses machine learning to find text and then generates masks to cover it up with the highest accuracy possible. It is designed to clean easy bubbles, no in-painting or out-of-bubble text removal is done. This is intended to save a lot of monotonous work for people who have to clean a lot of panels, while making sure it doesn't paint over anything that it wasn't supposed to.

Example

Example

Example

Visualized in the top right page:

The two bottom pages are what the program can output: either just the transparent mask layer and/or the mask applied to the original image, cleaning it.

Contents

Features \ Limitations \ Why Use This Program? \ Installation \ Usage \ Profiles \ OCR \ Examples \ Acknowledgements \ License \ Roadmap \ FAQ (Frequently Asked Questions) \ Translating

Features

Limitations

Why Use This Program?

This program is designed to precisely and fully clean text bubbles, without leaving any artifacts. Its aim is to save a cleaner's time, by taking care of monotonous work. The AI used to detect text and generate the initial mask was not created as part of this project, this project merely uses it as a starting point and improves upon the output.

Original AI Output Panel Cleaner
Original AI Output Panel Cleaner

As you can see, with a bit of extra cleanup applied to the AI output, some leftover text and jpeg compression artifacts are removed, and the bubble is fully cleaned. \ When fully cleaning it isn't possible, Panel Cleaner will instead skip the bubble so as not to waste your time with a poorly cleaned bit of text. The exact cleaning behavior is highly configurable, see Profiles for more details.

Installation

You have the choice between installing a pre-built binary (exe or elf) from the releases section (recommended for most users), or installing it to your local python interpreter using pip.

Note: All versions will need to download model data on first launch (approx. 500MB). This model data will not need to be downloaded again if Panel Cleaner updates.

Important: The pre-built binaries do not support CUDA acceleration. To use CUDA, you must install the program with pip and ensure you install the appropriate pytorch version for your system.

Install with Pip

The program requires Python 3.10 or newer.

Install the program with both the command line interface and graphical interface using pip from PyPI:

pip install pcleaner

Or if you only wish to use the command line interface:

pip install pcleaner-cli

Note: pcleaner and pcleaner-cli can be installed side by side, but the CLI-only package would be redundant.

Note: The program has been tested to work on Linux, MacOS, and Windows, with varying levels of setup required. See the FAQ for help.

Installation from the Arch User Repository

This installs the program in a pipx environment, which allows pytorch to download the appropriate CUDA version for your system, making this the best method of installation.

You can find the package here: panelcleaner

This will provide the pcleaner and pcleaner-gui commands, along with a desktop file for the GUI.

Install it with your favorite AUR helper, e.g. with yay:

yay -S panelcleaner

Installation with Flatpak

This installs the prebuilt binary in a flatpak container, which does not support CUDA acceleration.

Get it on Flathub

Install with Docker

Build the image with buildx:

docker buildx build -t pcleaner:v1 .

Or with the legacy builder:

docker image build -t pcleaner:v1 .

Then initialize the docker image, specifying a root folder for the container to access. In this example, the current directory (pwd) is used:

docker run -it --name pcleaner -v $(pwd):/app pcleaner:v1

This will also start an interactive shell in the container.

You can open another one later on with:

docker start pcleaner
docker exec -it pcleaner bash

Command Line Usage

The program can be run from the command line, and, in the most common use, takes any number of images or directories as input. The program will create a new directory called cleaned in the same directory as the input files, and place the cleaned images and/or masks there. Often, it's more useful to only export the mask layer, and you can do so by adding the --save-only-mask, or -m for short, option.

Examples:

pcleaner clean image1.png image2.png image3.png

pcleaner clean -m folder1 image1.png

Demonstration with 46 images, real time, with CUDA acceleration. Demonstration

There are many more options, which can be seen by running

pcleaner --help

Launching the GUI using the Command Line

The GUI can be launched from the command line using the gui command:

pcleaner gui

or directly with

pcleaner-gui

If pcleaner cannot be found, ensure it is in your PATH variable, or try

python -m pcleaner

instead.

Profiles

The program exposes every setting possible in a configuration profile, which are saved as simple text files and can also be accessed using the GUI. Each configuration option is explained inside the file itself, allowing you to optimize each parameter of the cleaning process for your specific needs. \ Just generate a new profile with

pcleaner profile new my_profile_name_here

and it will open your new profile for you in a text editor. \ Here is a tiny snippet from the default profile, for example:

# Number of pixels to grow the mask by each step. 
# This bulks up the outline of the mask, so smaller values will be more accurate but slower.
mask_growth_step_pixels = 2

# Number of steps to grow the mask by.
# A higher number will make more and larger masks, ultimately limited by the reference box size.
mask_growth_steps = 11

Run the cleaner with your specified profile by adding --profile=my_profile_name_here or -p my_profile_name_here to the command.

If you are having trouble seeing how the settings affect the results, you can use the --cache-masks option to save visualizations of intermediate steps to the cache directory.

Default Profile Custom Profile
Default Profile Custom Profile
mask_growth_step_pixels = 2 mask_growth_step_pixels = 4
mask_growth_steps = 11 mask_growth_steps = 4

Additionally, analytics are provided for each processing step in the terminal, so you can see how your settings affect the results on a whole.

See the default profile for a list of all options.

Note: The default profile is optimized for images roughly 1100x1600 pixels in size. Adjust size parameters accordingly in a profile if you are using images with a significantly lower or higher resolution.

Review your settings with a selection of view modes before exporting the cleaned images. Review

OCR

You can also use Panel Cleaner to perform Optical Character Recognition (OCR) on the pages, and output the text to a file. This could be useful to assist in translation, or to extract text for analytical purposes. \ You can run OCR with:

pcleaner ocr myfolder --output-path=output.txt

This is also available in the GUI, as the OCR output option.

Panel Cleaner handles Japanese OCR with MangaOCR out of the box, and that is the preferred way to OCR Japanese text. If available, Panel Cleaner can also use Tesseract for OCR capabilities, specifically for processing English and Japanese text, the only two languages currently supported. Follow the instructions below to install Tesseract on your system.

Installing Tesseract

Windows

  1. Download the installer from the official Tesseract GitHub repository. We recommend getting the latest version from UB Mannheim linked there (64 bit).
  2. Run the installer and follow the on-screen instructions for a system-wide installation.
  3. Add the Tesseract installation directory to your PATH environment variable. If you did the system-wide installation, this will mean adding the directory C:\Program Files\Tesseract-OCR to your PATH.
  4. Restart your computer.

macOS

Use Homebrew to install Tesseract:

brew install tesseract

Linux

For Debian-based distributions, use apt:

sudo apt install tesseract-ocr

For other distributions, refer to your package manager and the official Tesseract documentation.

For detailed installation instructions and additional information, please refer to the official Tesseract documentation.

Note: While Tesseract supports additional languages, Panel Cleaner will only utilize Tesseract for English and Japanese text recognition. English is installed by default. Follow the instructions here Installing additional language packs to install the Japanese language pack.

Review and edit the OCR output interactively. Review

Examples of Tricky Bubbles

Original Cleaned
Square bubble raw Square bubble clean
Handwritten bubble raw Handwritten bubble clean
Black bubble raw Black bubble clean
Ray bubble raw Ray bubble clean
Nightmare bubble raw Nightmare bubble clean
Spikey bubble raw Spikey bubble clean
Darkrays bubble raw Darkrays bubble clean

Acknowledgements

License

This project is licensed under the GNU General Public License v3.0 – see the LICENSE file for details.

Roadmap