157 lines
4.5 KiB
Markdown
157 lines
4.5 KiB
Markdown
# CreaBook - AI Book Generation Application
|
|
|
|
A web application for generating books with AI, featuring book cover design and AI-powered book content generation.
|
|
|
|
## Features
|
|
|
|
### Cover Designer
|
|
- **Gallery View**: Browse and manage all your book covers
|
|
- **AI Generation**: Generate covers using AI with style presets and genre templates
|
|
- **Manual Editor**: Edit covers with text layers, adjust fonts, colors, and positioning
|
|
- **Export**: Download covers in high quality (PNG, JPEG)
|
|
|
|
### Book Generator
|
|
- **Genre Templates**: 12 genres including Fiction, Mystery, Romance, Sci-Fi, Fantasy, Horror, Thriller, Children's Books, Non-Fiction, Self-Help, Business, and Memoir
|
|
- **AI Outline Generation**: Create detailed chapter outlines based on your book idea
|
|
- **Chapter Writing**: Generate chapters with AI or write manually
|
|
- **Character Development**: Generate AI-suggested characters with traits, motivations, and backstories
|
|
- **Writing Assistant**: AI-powered text expansion and improvement tools
|
|
|
|
## Tech Stack
|
|
|
|
- **Frontend**: React 18 + Vite + TypeScript + Tailwind CSS
|
|
- **State Management**: Zustand
|
|
- **Canvas Editing**: react-konva
|
|
- **Backend**: Node.js + Express + TypeScript
|
|
- **AI**: Ollama (local AI - llama3 for text, stable-diffusion for images)
|
|
- **HTTP**: Axios + TanStack Query
|
|
|
|
## Prerequisites
|
|
|
|
1. **Node.js** (v18 or higher)
|
|
2. **Ollama** installed and running locally
|
|
|
|
### Install Ollama
|
|
|
|
```bash
|
|
# macOS
|
|
brew install ollama
|
|
|
|
# Linux
|
|
curl -fsSL https://ollama.com/install.sh | sh
|
|
|
|
# Windows
|
|
# Download from https://ollama.com/download
|
|
```
|
|
|
|
### Pull Required Models
|
|
|
|
```bash
|
|
ollama pull llama3
|
|
ollama pull flux
|
|
```
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Start development servers (both client and server)
|
|
npm run dev
|
|
```
|
|
|
|
The application will be available at:
|
|
- Frontend: http://localhost:3000
|
|
- Backend API: http://localhost:3001
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
CreaBook/
|
|
├── client/ # React frontend
|
|
│ ├── src/
|
|
│ │ ├── components/
|
|
│ │ │ ├── cover-designer/ # Cover gallery, editor, AI generator
|
|
│ │ │ ├── book-generator/ # Genre selector, outline, editor
|
|
│ │ │ └── SettingsPage.tsx
|
|
│ │ ├── stores/ # Zustand stores (cover, book)
|
|
│ │ ├── services/ # API clients
|
|
│ │ └── App.tsx
|
|
├── server/ # Node.js backend
|
|
│ ├── src/
|
|
│ │ ├── api/ # Express routes
|
|
│ │ ├── services/ # Business logic
|
|
│ │ └── prompts/ # Genre templates
|
|
└── uploads/ # Uploaded/generated covers
|
|
```
|
|
|
|
## API Endpoints
|
|
|
|
### Ollama
|
|
- `POST /api/ollama/generate` - Generate text
|
|
- `POST /api/ollama/stream` - Stream text generation (SSE)
|
|
- `POST /api/ollama/image` - Generate images
|
|
- `GET /api/ollama/models` - List available models
|
|
|
|
### Covers
|
|
- `GET /api/covers` - List all covers
|
|
- `POST /api/covers/upload` - Upload a cover
|
|
- `POST /api/covers/process` - Process/edit a cover
|
|
- `DELETE /api/covers/:id` - Delete a cover
|
|
|
|
### Books
|
|
- `GET /api/books/genres` - List all genre templates
|
|
- `POST /api/books/outline` - Generate book outline
|
|
- `POST /api/books/chapter` - Generate a chapter
|
|
- `POST /api/books/expand` - Expand/improve text
|
|
- `POST /api/books/characters` - Generate characters
|
|
- `POST /api/books/plot` - Get plot suggestions
|
|
|
|
## Usage Guide
|
|
|
|
### 1. Design a Book Cover
|
|
|
|
1. Navigate to **Cover Designer**
|
|
2. Choose between:
|
|
- **Gallery**: Upload or browse existing covers
|
|
- **AI Generate**: Create covers with AI prompts
|
|
- **Editor**: Edit covers with text layers
|
|
3. For AI generation:
|
|
- Select a style (Modern, Minimalist, Vintage, etc.)
|
|
- Describe your desired cover or use a genre preset
|
|
- Click "Generate Cover"
|
|
|
|
### 2. Generate a Book
|
|
|
|
1. Navigate to **Book Generator**
|
|
2. Select a genre
|
|
3. Enter your book title (optional) and core idea
|
|
4. Click "Generate Outline"
|
|
5. Review the AI-generated chapter outline
|
|
6. Navigate to **Write** tab
|
|
7. Generate chapters individually or write manually
|
|
8. Use **Characters** tab to develop your cast
|
|
|
|
### 3. Combine Cover and Book
|
|
|
|
After creating both a cover and a book, you can assign the cover to your book for a complete package.
|
|
|
|
## Scripts
|
|
|
|
```bash
|
|
# Development
|
|
npm run dev # Start both servers
|
|
npm run dev:client # Start frontend only
|
|
npm run dev:server # Start backend only
|
|
|
|
# Build
|
|
npm run build # Build both
|
|
npm run build:client # Build frontend
|
|
npm run build:server # Build backend
|
|
```
|
|
|
|
## License
|
|
|
|
MIT
|