Transform any photo into surrealist AI art via a two-step pipeline:
Built by Harold Martin. Installable via uvx — no setup required beyond API keys.
ANTHROPIC_API_KEY)GEMINI_API_KEY)bash
uvx imagemine path/to/photo.jpg
bash
curl -LsSf uvx.sh/imagemine/install.sh | sh
Keys are resolved in order: SQLite DB → env vars → interactive prompt (saved to DB on first entry).
bash
# Via environment
export ANTHROPIC_API_KEY=***
export GEMINI_API_KEY=***
# Or via interactive config wizard (saves to ~/.imagemine.db)
imagemine --config
bash
# Transform a single photo
imagemine photo.jpg
# Pick a random photo from a macOS Photos album
imagemine --input-album "Camera Roll"
# Save output to a specific directory
imagemine photo.jpg --output-dir ~/Desktop/output
# Use a specific visual style instead of random
imagemine photo.jpg --style "Ukiyo-e woodblock print, bold outlines, flat color"
# Tune creativity (default 1.0 for both)
imagemine photo.jpg --desc-temp 1.5 --img-temp 0.8
# Pick style interactively from a numbered table
imagemine photo.jpg --choose-style
# Blend multiple styles (enter comma-separated numbers)
imagemine photo.jpg --choose-style # then enter: 1,5,12
# JSON output (for scripting)
imagemine photo.jpg --json
# Show recent run history with timing sparklines
imagemine --history
35+ built-in styles including: Watercolor, 8-Bit Pixel Art, Ukiyo-e Woodblock, Neon Noir, Tarot Card, Vaporwave, Glitch Art, Renaissance Painting, and more.
bash
imagemine --list-styles # show all styles with usage count
imagemine --add-style # add a custom style interactively
imagemine --remove-style # remove styles interactively
imagemine reads face-detection names from Photos albums and uses them in prompts. Use character mappings to rename people before they reach the AI (e.g. "John" → "Captain America").
bash
# Pick input from album, save generated image back to another album
imagemine --input-album "Camera Roll" --destination-album "AI Art"
# Manage character name mappings
imagemine --add-character-mapping
imagemine --list-character-mappings
imagemine --remove-character-mapping
Run photo-alchemy on a schedule to continuously generate new art into a shared Photos album, then set that album as your Apple TV screensaver for a living, ever-changing art display.
bash
imagemine --config
# Set INPUT_ALBUM and DESTINATION_ALBUM
bash
imagemine --launchd 30
# Writes ~/Library/LaunchAgents/imagemine.plist and prints the launchctl command
launchctl load ~/Library/LaunchAgents/imagemine.plist
--config-path if you want a non-default DB location with launchdKeyDefaultDescriptionANTHROPIC_API_KEY—Claude API keyGEMINI_API_KEY—Gemini API keyCLAUDE_MODEL``claude-sonnet-4-6Claude model for story/prompt generationGEMINI_MODEL``gemini-3-pro-image-previewGemini model for image generationDEFAULT_DESC_TEMP``1.0Claude sampling temperatureDEFAULT_IMG_TEMP``1.0Gemini sampling temperatureINPUT_ALBUM—macOS Photos album to pick input fromDESTINATION_ALBUM—macOS Photos album to save output toASPECT_RATIO``4:3Output image aspect ratio (1:1, 3:4, 4:3, 9:16, 16:9)
--style)~/.imagemine.db (SQLite)Every run is recorded in ~/.imagemine.db with input path, generated story, style used,
model names, per-step timing (ms), and output path.
bash
imagemine --history # show recent runs with timing sparklines
imagemine --config-path ~/custom.db # use a different DB location
--fresh picks from least-used styles (good for variety over time)--session-svg saves a styled SVG of the terminal session alongside the output image