Help us improve
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
By chufucious
AI-assisted photo gallery creation with Smith/Colberg/Szarkowski-informed layout curation. Orchestrates EXIF extraction, image review, and Astro page generation.
npx claudepluginhub joshuarweaver/cascade-content-creation-misc-1 --plugin chufucious-chu-gallery-pluginExtract EXIF metadata from images to JSON. Works with any image folder. Outputs structured data including dimensions, orientation, and timestamps.
Create photo galleries with AI-assisted layout curation. Orchestrates atomic scripts and sub-agents. Use when user wants to create a gallery from photos, mentions "/gallery", or asks about photo layout and sequencing.
Generate Astro page files from an existing gallery manifest. Internal step of /gallery workflow - use directly only to regenerate from completed manifests.
Review a batch of images and output layout suggestions to an isolated batch file. Designed for parallel execution - each batch writes to its own file.
Upload files to Cloudflare R2 storage. Supports images and videos with optional optimization. Returns public URLs.
AI-assisted photo gallery creation with Smith/Colberg/Szarkowski-informed layout curation.
This plugin applies principles from masters of photo sequencing:
"The individual pages have to give up their independence in order to form a union." — Keith Smith
See docs/photo-layout-principles.md for the complete philosophy guide.
# Add as a marketplace
/plugin marketplace add ericchu/chu-gallery-plugin
# Install the plugin
/plugin install chu-gallery
Clone to your plugins directory:
git clone https://github.com/ericchu/chu-gallery-plugin ~/.claude/plugins/chu-gallery
| Skill | Trigger | Purpose |
|---|---|---|
gallery | /gallery, "create gallery" | Orchestrates the full workflow |
review-image-batch | (sub-agent) | Reviews images and suggests layouts |
generate-astro-gallery | /generate-astro-gallery | Generates Astro pages from manifest |
extract-exif | /extract-exif | Extracts EXIF metadata to JSON |
upload-to-r2 | /upload-to-r2 | Uploads videos to Cloudflare R2 |
/gallery cabo-2025 "CABO 2025" cabo
This:
# Extract EXIF from any folder
/extract-exif ./photos output.json
# Regenerate pages from existing manifest
/generate-astro-gallery src/data/gallery-manifests/cabo-2025.json
# Upload videos to R2
/upload-to-r2 ./videos/ cabo-2025/ --optimize
| Component | Images | Purpose |
|---|---|---|
| FullBleed | 1 | Hero shots, climactic moments (max 2-4/gallery) |
| WideImage | 1 | Strong standalone shots — DEFAULT |
| OffsetImage | 1 | Verticals, quiet moments |
| InsetImage | 1 | Maximum restraint, intimate moments |
| Spacer | 0 | Visual pause between sections |
| TwoUp | 2 | Pairs with visual connection (max 2-3/gallery) |
| ThreeUp | 3 | Sequences, triptychs (max 1-2/gallery) |
| SplitLayout | 2 | Asymmetric pairs (max 1-2/gallery) |
| FourUp | 4 | Detail collections (max 0-1/gallery) |
| Chapter | 0 | Start new page section |
80%+ of layouts should be single-image (WideImage, OffsetImage, FullBleed).
Multi-image layouts are rare exceptions, not defaults.
Only use TwoUp when pairing creates meaning beyond either image alone:
Vary intensity like music:
LOUD → medium → quiet → LOUD → soft → pause → medium...
Never create monotonous sequences of same-weight layouts.
Assess images using the Five Characteristics:
Helper scripts for the workflow (require bun):
| Script | Purpose |
|---|---|
init-gallery-manifest.ts | Create manifest from EXIF |
merge-gallery-batches.ts | Combine batch review files |
validate-gallery-manifest.ts | Fix common errors |
generate-gallery-files.ts | Generate Astro pages |
optimize-videos.sh | Optimize videos for web |
chu-gallery-plugin/
├── .claude-plugin/
│ └── plugin.json
├── skills/
│ ├── gallery/
│ │ └── SKILL.md
│ ├── review-image-batch/
│ │ ├── SKILL.md
│ │ └── references/
│ │ └── layout-guide.md
│ ├── generate-astro-gallery/
│ │ └── SKILL.md
│ ├── extract-exif/
│ │ └── SKILL.md
│ └── upload-to-r2/
│ └── SKILL.md
├── scripts/
│ ├── init-gallery-manifest.ts
│ ├── merge-gallery-batches.ts
│ ├── validate-gallery-manifest.ts
│ ├── generate-gallery-files.ts
│ └── optimize-videos.sh
├── docs/
│ └── photo-layout-principles.md
└── README.md
MIT
Share bugs, ideas, or general feedback.
Based on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
MCP server for intelligent photo management with Immich — interactive HTML galleries with Cowork Actions Panel, geographic album curation, library cleanup, duplicate detection, people & face management, trash management, metadata repair, and 36 MCP tools. The first MCP server for self-hosted photo management.
AI-powered visual asset management for Claude Code. Search, tag, analyze, edit, and organize your media library using natural language.
Strip sensitive EXIF metadata from images before publishing. Auto-strips on commit, or use /exif:strip manually.
AI image generation Creative Director powered by Google Gemini Nano Banana models. Claude interprets intent, selects domain expertise, constructs optimized prompts, and orchestrates Gemini for best results.
Media asset processing plugin with skills for visual content creation.
Generate optimized prompts for Gemini 2.5 Flash Image (Nano Banana). Use for image generation, crafting photo prompts, art styles, or multi-turn editing workflows with best practices.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claim