Commit Graph

15 Commits

Author SHA1 Message Date
Jeff Emmett ef5152bb4f fix: enforce 1.55 aspect ratio (750x1163px) for zine pages
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 01:19:23 +01:00
Jeff Emmett 8dc3145e5c fix: use Nano Banana directly and enforce 750x1200px zine dimensions
- Switch from RunPod proxy to direct Gemini API (no geo-blocking on gemini-2.5-flash-image)
- Add sharp post-processing to resize all images to exact 750x1200px
- Dimensions: 1/8 letter (2.5" x 4.0" content area with 0.125" margins) at 300 DPI
- Update regenerate-page FLUX img2img to use same dimensions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 13:41:31 +01:00
Jeff Emmett 23ace0a7f3 fix: use RunPod US proxy for Nano Banana Pro to bypass geo-blocking
Routes Gemini API calls through RunPod serverless endpoint in the US
to avoid geo-blocking issues when server is in Germany.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 21:01:31 +01:00
Jeff Emmett fd1fc4e0df fix: use Nano Banana Pro directly without RunPod proxy
- Remove RunPod proxy dependency for image generation
- Call Gemini API directly with gemini-2.0-flash-exp-image-generation
- Keep enhanced prompt with text rendering instructions
- Use IMAGE-only response modality for better results

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 20:12:22 +01:00
Jeff Emmett 9eff93d275 fix: resize mask to match image dimensions for FLUX inpainting
The mask was generated at a fixed 768x1024 size but the actual page
image could be different dimensions, causing Fal.ai to return a 400
error. Now using sharp to resize the mask to match the image before
sending to the API.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 23:58:01 -05:00
Jeff Emmett f09b1cc0b9 feat: add text inpainting for zine page refinement
- Add TextSelectionCanvas component for drawing rectangle selections
- Add inpaint-text API endpoint using Fal.ai FLUX Pro Fill
- Integrate "Edit Text Region" UI in the refine step
- Users can now select text areas and replace them without regenerating the full page

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 19:11:20 -05:00
Jeff Emmett c6eb3e5363 fix: use synchronous Fal.ai endpoint for FLUX img2img
The queue polling was timing out. Switch to fal.run synchronous
endpoint which waits for the result directly.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 19:59:51 -05:00
Jeff Emmett f78cf1d0cd feat: add FLUX img2img for zine page refinement
- Add Refine/Revise/Regenerate mode selection in zine creator
- Refine (0.25 strength): keeps most of image, minor tweaks
- Revise (0.5 strength): keeps composition, changes elements
- Regenerate: creates completely new image (existing behavior)
- Use Fal.ai FLUX dev model for img2img processing
- Better UX for iterative refinement without losing good work

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 16:44:26 -05:00
Jeff Emmett 3309f7e5de fix: restore RunPod proxy for Nano Banana image generation
Direct Gemini API calls are geo-blocked in Germany. Must use
RunPod US proxy endpoint to bypass the restriction.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 16:26:22 -05:00
Jeff Emmett e011fb0c46 fix: use correct Gemini image generation model and API
Replace deprecated Imagen 3 and RunPod proxy with direct Gemini
2.0 Flash Image Generation API call. Removes unused model functions
and simplifies the image generation flow.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:05:26 -05:00
Jeff Emmett fd6f16f299 feat: add Imagen 3 as primary image generator
- Try Imagen 3 first (best quality, $0.03/image)
- Fall back to Gemini via RunPod if Imagen fails
- Uses 3:4 aspect ratio for portrait zine pages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 13:08:46 -05:00
Jeff Emmett a5f067e5a6 feat: upgrade to gemini-2.0-flash-exp-image-generation model
- Use dedicated image generation model for better quality
- Add enhanced prompt instructions for better text rendering
- Use IMAGE-only responseModality for cleaner output

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 12:29:33 -05:00
Jeff Emmett 956ebb6dc7 fix: use RunPod Gemini proxy in generate-page route
The route was calling Gemini directly instead of using the US proxy.
Now uses the same RunPod endpoint as mycro-zine to bypass geo-blocks.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 02:01:24 -05:00
Jeff Emmett 12a147fd61 fix: rename MycoZine to MycroZine across zine pages
Updated all branding references from MycoZine to MycroZine for
consistency with the mycro-zine project naming convention.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 01:30:26 -05:00
Jeff Emmett 0743f6080d feat: add MycoZine - AI-powered mini-zine generator
- Add /zine landing page with topic input, style & tone selectors
- Add /zine/create page with full generation flow
- Add /zine/z/[id] shareable zine viewer
- Add API routes for outline generation, page creation, print layout
- Add Gemini AI integration for content generation
- Add Sharp for image processing and print layout creation
- Add punk zine styles (borders, text effects, xerox texture)
- Custom MycoFi styles: Mycelial style, Regenerative tone

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 01:16:53 -05:00