Speech Bubble Density Estimator
Estimate dialogue-heavy comic pages without OCR, with explicit natural or lexical page ordering shared across directory and CBZ inputs.
The problem it solves
Speech-Bubble Density Estimator Speech-Bubble Density Estimator scans local page images or a CBZ and measures blocks that combine a predominantly light background with dark high-contrast marks. The resulting review score helps locate pages that may be dialogue-heavy, balanced, or art-heavy without uploading images or running OCR.
Who Speech Bubble Density Estimator is for
- Collectors and readers who need a conservative way to organize or inspect their own files.
- Users working with comics, images, dialogue density who want the documented v1.3.0 behavior.
- People who prefer an open-source release with visible limitations, source, and license terms.
Intended result
Estimate dialogue-heavy comic pages without OCR, with explicit natural or lexical page ordering shared across directory and CBZ inputs.
This summary is reconciled from the current catalog and repository documentation.
Features in v1.3.0
Capabilities below come from the current project README and release documentation.
Speech-Bubble Density Estimator scans local page images or a CBZ and measures blocks that combine a predominantly light background with dark high-contrast marks. The resulting review score helps locate pages that may be dialogue-heavy, balanced, or art-heavy without uploading images or running OCR.
Verified examples
Screenshots are shown only when the current README references a local source image. Otherwise, repository example files are linked directly.
Platforms and implementation
The public release claims only the cataloged platforms and technologies.
Supported platforms
- Windows
- macOS
- Linux
Built with
- Python
- Pillow
Changelog
Release notes from the canonical v1.3.0 source tag.
- Added explicit natural and lexical page-order policies with deterministic relative-path tie breaks and directory/CBZ parity.
- Preserved legacy ordering, per-page classification and archive safeguards; identified ordering in all report formats.
- Add local contact sheets with candidate-block overlays, named calibration profiles and locally labeled evaluation summaries.
- Added regression coverage for the audited behavior and invalid inputs.
- Added configurable block size, margin exclusion, and density thresholds.
- Added median and percentile statistics, ranked page lists, dense-page warnings, and sequence smoothing.
- Preserved the local, no-OCR analysis boundary.
- Added local directory and CBZ page scanning.
- Added transparent high-contrast light-region density scores and page classifications.
- Added archive safety limits plus Markdown and JSON reports.
Quick start
The shortest documented path into the current release.
Before running these source commands, download the v1.3.0 source archive, extract it, and open a terminal in the extracted project folder containing README.md. Follow the tagged README for required runtimes and any platform-specific setup.
python -m pip install .
bubble-density pages/
bubble-density issue.cbz --format json --output density.json
bubble-density issue.cbz --margin-percent 5 --block-size 24 --smoothing-window 5PNG, JPEG, WebP, BMP, TIFF, and GIF pages are supported. Reports include image dimensions, candidate-block counts, density scores, and per-document class totals. CBZ paths, member counts, and uncompressed bytes are limited before decoding.
Version 1.1 adds configurable art/dialogue thresholds, optional page-margin exclusion, median and quartile statistics, ranked art-heavy/dialogue-heavy page lists, and a rolling density value that makes dialogue-heavy stretches easier to review. Use --art-threshold and --dialogue-threshold to calibrate a specific visual style.
This is a visual heuristic, not speech-bubble detection or accessibility certification. White artwork, captions, sound effects, dark balloons, unusual lettering, low contrast, color choices, and scanned paper can change the score. It does not recognize words, speakers, languages, panels, or reading order. Requires Python 3.10 or newer.
Part of the Logan Pendragon Forge open-source collection. Licensed under the MIT License.
Current limitations
These boundaries are part of the product and prevent the page from implying unverified capability.
The current v1.3.0 release is bounded by the behavior documented in its README and changelog. It does not claim unsupported platforms, automatic interpretation, or results beyond the evidence it produces.
Privacy and licensing
Review the actual data boundary before using a tool with sensitive inputs.
Privacy and safety
No privacy behavior beyond the current repository documentation is claimed. Review the source, security policy, and input/output behavior before using sensitive material.
License and release
Speech Bubble Density Estimator is published under MIT. The current cataloged release is v1.3.0, published 2026-10-16.
Related projects
Related projects are selected deterministically from shared catalog tags, category, and implementation technologies—not popularity or paid placement.
Speech Bubble Density Estimator v1.3.0
Use the tagged release for downloads and release notes. Use the repository for source, issues, contribution guidance, security reporting, and complete documentation.
Page source: current Forge catalog plus README and CHANGELOG from the canonical GitHub release tag. Fingerprint: e15ce49839f46ace.