2.9 KiB
2.9 KiB
| id | title | status | assignee | created_date | updated_date | labels | dependencies | priority | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| task-055 | Integrate MycroZine generator tool into canvas | In Progress | 2025-12-15 23:41 | 2025-12-18 23:24 |
|
high |
Description
Create a MycroZineGeneratorShape - an interactive tool on the canvas that allows users to generate complete 8-page mini-zines from a topic/prompt.
5-phase iterative workflow:
- Ideation: User discusses content with Claude (conversational)
- Drafts: Claude generates 8 draft pages using Gemini, spawns on canvas
- Feedback: User gives spatial feedback on each page
- Finalization: Claude integrates feedback into final versions
- Print: Aggregate into single-page printable (2x4 grid)
Key requirements:
- Always use Gemini for image generation (latest model)
- Store completed zines as templates for reprinting
- Individual image shapes spawned on canvas for spatial feedback
- Single-page print layout (all 8 pages on one 8.5"x11" sheet)
References mycro-zine repo at /home/jeffe/Github/mycro-zine for layout utilities and prompt templates.
Acceptance Criteria
- #1 MycroZineGeneratorShapeUtil.tsx created
- #2 MycroZineGeneratorTool.ts created and registered
- #3 Ideation phase with embedded chat UI
- #4 Drafts phase generates 8 images via Gemini and spawns on canvas
- #5 Feedback phase collects user input per page
- #6 Finalizing phase regenerates pages with feedback
- #7 Complete phase with print-ready download and template save
- #8 Templates stored in localStorage for reprinting
Implementation Notes
Starting implementation of full 5-phase MycroZineGenerator shape
Created MycroZineGeneratorShapeUtil.tsx with full 5-phase workflow (ideation, drafts, feedback, finalizing, complete)
Created MycroZineGeneratorTool.ts
Registered in Board.tsx
Build successful - no TypeScript errors
Integrated Gemini Nano Banana Pro for image generation:
- Updated standalone mycro-zine app (generate-page/route.ts) with fallback chain: Nano Banana Pro → Imagen 3 → Gemini 2.0 Flash → placeholder
- Updated canvas MycroZineGeneratorShapeUtil.tsx to call Gemini API directly with proper types
- Added getGeminiConfig() to clientConfig.ts for API key management
- Aspect ratio: 3:4 portrait for zine pages (825x1275 target dimensions)
2025-12-18: Fixed geo-restriction issue for image generation
- Direct Gemini API calls were blocked in EU (Netcup server location)
- Created RunPod serverless proxy (US-based) to bypass geo-restrictions
- Added /api/generate-image endpoint to zine.jeffemmett.com that returns base64
- Updated canvas MycroZineGeneratorShapeUtil to call zine.jeffemmett.com API instead of Gemini directly
- Image generation now works reliably from any location