Baby Photo Book Generator#
Generate professional baby photo books with intelligent layout optimization.
Features#
- Automatic Age Grouping: Organizes photos by baby's growth stages (newborn, infant, toddler)
- Smart Layout: Minimizes whitespace while preserving photo aspect ratios
- Multiple Layout Patterns: Supports 1-4 photos per page with optimal arrangements
- Print-Ready Output: Generates A4 PDF suitable for professional printing
Usage#
Basic Usage#
bash
python scripts/generate_photo_book.py <photo_folder> --name "Baby Name" --birth YYYY-MM-DD
Parameters#
photo_folder: Path to folder containing baby photos
--name: Baby's name for the cover
--birth: Baby's birth date (YYYY-MM-DD format)
--output: Output PDF filename (default: baby_photo_book.pdf)
Example#
bash
python scripts/generate_photo_book.py ~/baby_photos --name "小明" --birth 2023-06-15
Layout Algorithm#
The skill uses an intelligent layout engine that:
- Analyzes photo aspect ratios to determine optimal placement
- Calculates multiple layout options for each page
- Selects the layout with minimum whitespace
- Preserves photo proportions without cropping
Layout Patterns#
PhotosLayout Strategy1Full page, maximized to fill available space2Side-by-side or stacked, whichever minimizes whitespace3Left-1-Right-2 or Top-1-Bottom-2 based on photo orientations42×2 adaptive grid with aspect-ratio-aware cell sizing
Age Stages#
Photos are automatically grouped by baby's age:
- Newborn (0-1 month)
- Early Infant (1-3 months)
- Mid Infant (3-6 months)
- Late Infant (6-9 months)
- Crawling (9-12 months)
- Early Toddler (1-1.5 years)
- Mid Toddler (1.5-2 years)
- Late Toddler (2-3 years)
Dependencies#
- Python 3.8+
- Pillow (image processing)
- ReportLab (PDF generation)
Install dependencies:
bash
pip install Pillow reportlab
Output#
Generates a PDF with:
- Cover page with baby name
- Chapter pages for each age stage
- Photo pages with intelligent layouts
- Date and age annotations on each photo