phomo is a free tool that makes photographic mosaics by arranging tile images to recreate a master image. It compares colour distributions between tiles and regions of the master, then assigns tiles using a linear sum assignment algorithm. Install it with pip as a Python package or run the `phomo` command with a master image and a directory of tile images. Its command-line options cover cropping and resizing master and tile images, black-and-white conversion, grid display and tile appearance count. Matching choices include greyscale, norm and luv_approx distance metrics, colour equalization and colour-distribution matching. A greedy assignment option is described as faster but less accurate. GPU acceleration is available through the CUDA extra and requires a CUDA-compatible GPU and CUDA toolkit. The package requires Python >=3.9 and <3.13, runs on Linux, macOS and Windows, and lists PNG as an output format. The project is published under the MIT License; PyPI identifies Loic Coyle as its author and lists one maintainer.
Who it is for
phomo suits people comfortable installing a Python package or using a command line to create image mosaics. It runs on Linux, macOS and Windows, with optional CUDA acceleration for users who have the required GPU and toolkit.
What is good
- Free Python package and command-line utility.
- Offers several colour-distance and matching options.
- Supports cropping, resizing and black-and-white conversion.
- Runs on Linux, macOS and Windows.
- Published under the MIT License.
What to know first
- Requires Python >=3.9 and <3.13.
- CUDA acceleration requires a compatible GPU and toolkit.
- Greedy assignment trades accuracy for performance.
Verdict
phomo provides detailed command-line controls for generating mosaics from a master image and tile library. The Python version range and optional CUDA requirements are worth checking before installation.
phomo plans and pricing
All plansCompared on photo mosaic software
- Free plan
- Yes
- Platform
- desktop
- Custom tile library
- Yes
- Tile reuse controls
- Yes
- Output formats
- PNG