An iOS application that democratizes comic creation by combining AI-generated artwork with intuitive text placement tools. Create professional-looking comic strips in minutes by describing what you want to see and adding your own dialogue and narration.
- AI-Powered Image Generation: Uses Google Nano Banana Pro (Gemini 3 Pro Image Preview) by default, with optional OpenAI support
- Multiple Panel Layouts: Support for 1-panel and 3-panel comic formats
- Interactive Text Elements: Add speech bubbles, thought bubbles, captions, and sound effects
- Character Stand-ins: Position placeholder characters that get replaced in AI generation
- Style Themes: Choose from Classic, Manga, Noir, and Sci-Fi art styles
- Export & Share: Save to Photos or share directly via iOS share sheet
- No Artistic Skill Required: Focus on storytelling while AI handles the artwork
- iOS 17.0+
- Xcode 15.0+
- Google API key (for image generation) or OpenAI API key (optional fallback)
- Clone the repository:
git clone https://github.com/your-username/StoryPanels.git
cd StoryPanels-
Open
StoryPanels.xcodeprojin Xcode -
Build and run on iPhone 16 simulator or device:
xcodebuild -project StoryPanels.xcodeproj -scheme StoryPanels -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 16' build- Get a Google Gemini API key from Google AI Studio (recommended)
- Open the app and go to Settings (gear icon)
- Select Google (Nano Banana Pro) and enter your API key
- Optionally add an OpenAI API key if you want to switch providers
- Start creating comics!
Note: API keys are stored securely in your device Keychain.
- Select Layout: Choose between 1-panel or 3-panel format on the home screen
- Generate Images:
- Tap a panel to select it
- Enter a description (e.g., "superhero flying over city skyline")
- Choose an art style theme
- Tap "Generate" to create the image
- Add Text Elements:
- Use the toolbar to add speech bubbles, thought bubbles, captions, or sound effects
- Drag elements to position them
- Tap to edit text content
- Pinch to resize elements
- Add Characters (Optional):
- Add character stand-ins to help AI understand positioning
- These blue circles with numbers get replaced by actual characters in generation
- Export: Tap "Export" to save or share your completed comic
StoryPanels supports an advanced workflow where you can:
- Place character stand-ins and text elements first
- Generate images that incorporate these elements
- The AI analyzes your layout and creates images that respect character positioning and text placement
- ContentView.swift: Main app interface and navigation
- ComicEditorView: Primary editing interface with canvas and tools
- ImageGenerationService: Routes requests to Google or OpenAI providers
- PanelView: Individual comic panel with interactive elements
- TextElementView: Draggable and resizable text components
- CharacterStandInView: Positioning helpers for character placement
- Comic: Top-level structure containing panels and theme
- ComicPanel: Individual panel with image, text elements, and characters
- TextElement: Speech bubbles, captions, etc. with position and content
- CharacterStandIn: Placeholder characters for AI generation
- StyleTheme: Art style definitions with prompt modifiers
| Type | Description | Visual Style |
|---|---|---|
| Speech Bubble | Character dialogue | White bubble with tail |
| Thought Bubble | Internal monologue | Cloud-like shape |
| Caption | Narration text | Yellow rectangular box |
| Sound Effect | Action words | Starburst with bold text |
- Classic: Golden Age comic book style with bold lines
- Manga: Highly detailed Japanese manga style
- Noir: Black-and-white with dramatic shadows
- Sci-Fi: Futuristic style with glowing tech elements
StoryPanels/
βββ StoryPanels/
β βββ StoryPanelsApp.swift # App entry point with SwiftData setup
β βββ ContentView.swift # Main UI with all components
β βββ Item.swift # SwiftData model (placeholder)
β βββ Assets.xcassets/ # App icons and images
βββ StoryPanelsTests/ # Unit tests
βββ StoryPanelsUITests/ # UI automation tests
βββ Product Definition # Detailed product requirements
βββ CLAUDE.md # Development guidelines
βββ README.md # This file
xcodebuild -project StoryPanels.xcodeproj -scheme StoryPanels -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 16' buildxcodebuild test -project StoryPanels.xcodeproj -scheme StoryPanels -destination 'platform=iOS Simulator,name=iPhone 16'- API keys are stored in Keychain via the in-app Settings screen
- Primary: Creative individuals (16-35) who want to tell visual stories without drawing skills
- Secondary: Social media content creators and educators
- Tertiary: Professional content creators for rapid prototyping
- β 1 & 3 panel layouts
- β AI image generation
- β Four text element types
- β Character positioning system
- β Export to Photos
- β Style theme selection
- v1.1: Premium subscription with extended layouts and higher resolution
- v1.2: Custom image uploads and advanced editing tools
- v2.0: Cloud storage and social features
- API keys are stored locally on device using UserDefaults
- No user-generated content is stored on external servers
- All comic creation happens locally with direct API calls to the selected provider (Google or OpenAI)
This project is licensed under the MIT License - see the LICENSE file for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
For support or questions:
- Check the in-app FAQ and help sections
- Review the Product Definition document for detailed requirements
- Open an issue on GitHub for bugs or feature requests
- Google Gemini image generation capabilities (Nano Banana Pro)
- OpenAI image generation as an optional provider
- The comic book community for inspiration and feedback
- Beta testers and early adopters
Made with β€οΈ for storytellers everywhere
