Speech Bubble Density Estimator
Add local contact sheets with candidate-block overlays, named calibration profiles and locally labeled evaluation summaries.
The problem it solves
Speech-Bubble Density Estimator [](https://github.com/loganpendragonmultiverse/speech-bubble-density-estimator/actions/workflows/ci.yml)
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.2.0 behavior.
- People who prefer an open-source release with visible limitations, source, and license terms.
Intended result
Add local contact sheets with candidate-block overlays, named calibration profiles and locally labeled evaluation summaries.
This summary is reconciled from the current catalog and repository documentation.
Features in v1.2.0
Capabilities below come from the current project README and release documentation.
[](https://github.com/loganpendragonmultiverse/speech-bubble-density-estimator/actions/workflows/ci.yml)
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
What changed in v1.2.0
Add local contact sheets with candidate-block overlays, named calibration profiles and locally labeled evaluation summaries.
bubble-density ./pages --profile wide-margins --format html --output contact-sheet.htmlHTML embeds local thumbnails and normalized candidate-block rectangles, showing why white artwork, borders or captions can produce false positives. Built-in profiles are default and wide-margins; --profiles reads a local name-to-settings JSON object and --profile selects one. Explicit CLI settings override profile settings. --labels accepts a page-name-to-class JSON object using art-heavy/balanced/dialogue-heavy, and reports disagreements, error rate and unlabeled counts. This measures agreement with your local labels, not an independent benchmark or actual speech-bubble recognition. No OCR, upload, model training or source-image modification is performed.
Quick start
The shortest documented path into the current release.
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](LICENSE).
Current limitations
These boundaries are part of the product and prevent the page from implying unverified capability.
The current v1.2.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.2.0, published 2026-09-07.
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.2.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 local repository. Fingerprint: a3b775b0235ed865.