mirror of
https://github.com/Wan-Video/Wan2.1.git
synced 2025-11-03 22:04:21 +00:00
This commit adds a production-ready Progressive Web App for AI-powered video generation using Wan2.1 models. Features: - Next.js 15 frontend with App Router and PWA support - FastAPI backend with Replicate integration - 50+ prompt templates across 7 categories - Supabase authentication and database - Credit system with usage tracking - Text-to-Video and Image-to-Video generation - Complete documentation (setup, deployment, contributing) Project Structure: - apps/web: Next.js frontend with shadcn/ui components - apps/api: FastAPI backend with GPU processing via Replicate - packages/db: Database schema and migrations for Supabase Tech Stack: - Frontend: Next.js 15, shadcn/ui, Tailwind, Zustand, React Hook Form, Zod - Backend: FastAPI, Replicate, Supabase - Database: Supabase (Postgres) with RLS - Infrastructure: Turborepo monorepo, Vercel/Modal deployment Documentation: - README.md: Project overview and features - SETUP.md: Complete setup guide (5-minute quickstart) - DEPLOYMENT.md: Production deployment instructions - CONTRIBUTING.md: Contribution guidelines - PROJECT_SUMMARY.md: Comprehensive project documentation Ready for development and deployment. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
302 lines
7.5 KiB
Markdown
302 lines
7.5 KiB
Markdown
# Wan2.1 PWA - Project Summary
|
|
|
|
## What Has Been Built
|
|
|
|
A complete, production-ready Progressive Web App for AI video generation using Wan2.1 models.
|
|
|
|
### Features Implemented
|
|
|
|
✅ **Frontend (Next.js 15)**
|
|
- Modern UI with shadcn/ui components
|
|
- 50+ prompt templates across 7 categories
|
|
- Responsive design with Tailwind CSS
|
|
- PWA support (installable, offline-capable)
|
|
- Authentication flows with Supabase
|
|
- Credit system UI
|
|
- Video generation interface
|
|
|
|
✅ **Backend (FastAPI)**
|
|
- RESTful API with FastAPI
|
|
- Replicate integration for GPU processing
|
|
- User authentication with Supabase
|
|
- Credit system with transaction tracking
|
|
- Video generation endpoints (T2V, I2V)
|
|
- Real-time status tracking
|
|
- Error handling and validation
|
|
|
|
✅ **Database (Supabase)**
|
|
- Complete schema with migrations
|
|
- Row-level security (RLS)
|
|
- User profiles and credits
|
|
- Generation history
|
|
- Transaction logging
|
|
- Storage for user images
|
|
|
|
✅ **Infrastructure**
|
|
- Monorepo setup with Turborepo
|
|
- Environment configuration
|
|
- Deployment guides (Vercel, Modal, Railway)
|
|
- Development workflow
|
|
- Documentation
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
wan-pwa/
|
|
├── apps/
|
|
│ ├── web/ # Next.js frontend
|
|
│ │ ├── src/
|
|
│ │ │ ├── app/ # App router pages
|
|
│ │ │ ├── components/ # React components
|
|
│ │ │ │ └── ui/ # shadcn/ui components
|
|
│ │ │ └── lib/ # Utilities
|
|
│ │ │ ├── prompts/ # 50+ templates
|
|
│ │ │ ├── supabase/ # DB client
|
|
│ │ │ └── utils.ts # Helper functions
|
|
│ │ └── public/
|
|
│ │ ├── icons/ # PWA icons
|
|
│ │ └── manifest.json # PWA manifest
|
|
│ │
|
|
│ └── api/ # FastAPI backend
|
|
│ ├── routes/ # API endpoints
|
|
│ │ ├── generation.py # Video generation
|
|
│ │ ├── auth.py # Authentication
|
|
│ │ └── users.py # User management
|
|
│ ├── services/ # Business logic
|
|
│ │ ├── replicate_service.py
|
|
│ │ └── credit_service.py
|
|
│ ├── models/ # Pydantic models
|
|
│ ├── core/ # Config & utilities
|
|
│ └── main.py # FastAPI app
|
|
│
|
|
├── packages/
|
|
│ └── db/ # Database
|
|
│ ├── migrations/ # SQL migrations
|
|
│ └── README.md
|
|
│
|
|
├── README.md # Project overview
|
|
├── SETUP.md # Setup instructions
|
|
├── DEPLOYMENT.md # Deployment guide
|
|
├── CONTRIBUTING.md # Contribution guide
|
|
└── LICENSE # MIT License
|
|
```
|
|
|
|
## Technology Stack
|
|
|
|
### Frontend
|
|
- **Framework**: Next.js 15 (App Router)
|
|
- **UI Library**: shadcn/ui + Radix UI
|
|
- **Styling**: Tailwind CSS
|
|
- **State Management**: Zustand (ready to integrate)
|
|
- **Forms**: React Hook Form + Zod
|
|
- **PWA**: next-pwa
|
|
- **Auth**: Supabase SSR
|
|
|
|
### Backend
|
|
- **Framework**: FastAPI
|
|
- **GPU Processing**: Replicate API
|
|
- **Validation**: Pydantic v2
|
|
- **Async**: uvicorn + httpx
|
|
|
|
### Database & Auth
|
|
- **Database**: Supabase (Postgres)
|
|
- **Authentication**: Supabase Auth
|
|
- **Storage**: Supabase Storage
|
|
- **RLS**: Row Level Security enabled
|
|
|
|
### DevOps
|
|
- **Monorepo**: Turborepo
|
|
- **Package Manager**: npm
|
|
- **Linting**: ESLint + Prettier
|
|
- **TypeScript**: Strict mode
|
|
|
|
## Key Features
|
|
|
|
### 1. Prompt Template System (50+ Templates)
|
|
Located in `apps/web/src/lib/prompts/templates.ts`
|
|
|
|
Categories:
|
|
- Cinematic (6 templates)
|
|
- Animation (6 templates)
|
|
- Realistic (6 templates)
|
|
- Abstract (5 templates)
|
|
- Nature (6 templates)
|
|
- People (5 templates)
|
|
- Animals (5 templates)
|
|
|
|
Features:
|
|
- Search templates
|
|
- Filter by category
|
|
- Featured templates
|
|
- Tag-based discovery
|
|
|
|
### 2. Video Generation
|
|
|
|
**Text-to-Video (T2V)**
|
|
- Models: T2V-14B, T2V-1.3B
|
|
- Resolutions: 480p, 720p
|
|
- Duration: 1-10 seconds
|
|
- Custom prompts + negative prompts
|
|
- Seed for reproducibility
|
|
|
|
**Image-to-Video (I2V)**
|
|
- Model: I2V-14B
|
|
- Resolutions: 480p, 720p
|
|
- Upload image from device
|
|
- Animate with text prompts
|
|
|
|
### 3. Credit System
|
|
|
|
**Pricing**
|
|
- T2V-14B 720p: 20 credits
|
|
- T2V-14B 480p: 10 credits
|
|
- T2V-1.3B 480p: 5 credits
|
|
- I2V-14B 720p: 25 credits
|
|
- I2V-14B 480p: 15 credits
|
|
|
|
**Features**
|
|
- Free tier: 100 credits
|
|
- Transaction history
|
|
- Automatic refunds on errors
|
|
- Subscription tiers ready
|
|
|
|
### 4. Authentication
|
|
|
|
- Email/Password signup
|
|
- Supabase Auth integration
|
|
- JWT token handling
|
|
- Automatic profile creation
|
|
- RLS for data security
|
|
|
|
### 5. PWA Features
|
|
|
|
- Installable on mobile/desktop
|
|
- Offline-capable (configured)
|
|
- App manifest
|
|
- Service worker (next-pwa)
|
|
- iOS and Android support
|
|
|
|
## API Endpoints
|
|
|
|
### Authentication
|
|
- `POST /api/auth/signup` - Create account
|
|
- `POST /api/auth/signin` - Sign in
|
|
- `POST /api/auth/signout` - Sign out
|
|
|
|
### Video Generation
|
|
- `POST /api/generation/text-to-video` - Generate from text
|
|
- `POST /api/generation/image-to-video` - Generate from image
|
|
- `GET /api/generation/status/{id}` - Get status
|
|
- `GET /api/generation/history` - Get history
|
|
|
|
### User Management
|
|
- `GET /api/users/me` - Get profile
|
|
- `GET /api/users/credits` - Get credits
|
|
- `GET /api/users/transactions` - Get transactions
|
|
|
|
## Database Schema
|
|
|
|
### Tables
|
|
1. **users** - User profiles, credits, subscription
|
|
2. **generations** - Video generation requests
|
|
3. **credit_transactions** - Credit history
|
|
|
|
### Storage
|
|
- **images** - User-uploaded images for I2V
|
|
|
|
## Getting Started
|
|
|
|
### Quick Start (5 Minutes)
|
|
|
|
1. **Clone and install**
|
|
```bash
|
|
cd wan-pwa
|
|
npm install
|
|
```
|
|
|
|
2. **Set up Supabase**
|
|
- Create project at supabase.com
|
|
- Run migrations from `packages/db/migrations/`
|
|
- Copy credentials to `.env.local`
|
|
|
|
3. **Set up Replicate**
|
|
- Get API token from replicate.com
|
|
- Add to `.env` files
|
|
|
|
4. **Start development**
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
Frontend: http://localhost:3000
|
|
Backend: http://localhost:8000
|
|
|
|
### Detailed Setup
|
|
See [SETUP.md](./SETUP.md) for complete instructions.
|
|
|
|
## Deployment
|
|
|
|
### Production Stack
|
|
- **Frontend**: Vercel
|
|
- **Backend**: Modal or Railway
|
|
- **Database**: Supabase
|
|
- **Storage**: Supabase Storage
|
|
|
|
See [DEPLOYMENT.md](./DEPLOYMENT.md) for deployment instructions.
|
|
|
|
## Next Steps
|
|
|
|
### Recommended Additions
|
|
|
|
1. **Real-time Updates**
|
|
- WebSocket support for live progress
|
|
- Server-sent events for notifications
|
|
|
|
2. **Batch Processing**
|
|
- Generate multiple videos
|
|
- Queue management with Celery + Redis
|
|
|
|
3. **Payment Integration**
|
|
- Stripe for credit purchases
|
|
- Subscription management
|
|
|
|
4. **Enhanced Features**
|
|
- Video editing
|
|
- Frame interpolation
|
|
- Style transfer
|
|
|
|
5. **Analytics**
|
|
- Usage tracking
|
|
- Performance monitoring
|
|
- User insights
|
|
|
|
6. **Mobile App**
|
|
- React Native wrapper
|
|
- Native features
|
|
|
|
## Credits & Attribution
|
|
|
|
Built using:
|
|
- [Wan2.1](https://github.com/Wan-Video/Wan2.1) - AI video models
|
|
- [Next.js](https://nextjs.org) - React framework
|
|
- [FastAPI](https://fastapi.tiangolo.com) - Python API
|
|
- [Supabase](https://supabase.com) - Backend as a Service
|
|
- [Replicate](https://replicate.com) - GPU inference
|
|
- [shadcn/ui](https://ui.shadcn.com) - UI components
|
|
|
|
## License
|
|
|
|
MIT License - see [LICENSE](./LICENSE)
|
|
|
|
## Support
|
|
|
|
- Documentation: See README.md, SETUP.md, DEPLOYMENT.md
|
|
- Issues: GitHub Issues
|
|
- Contributing: See CONTRIBUTING.md
|
|
|
|
---
|
|
|
|
**Status**: ✅ Ready for development and testing
|
|
**Version**: 1.0.0
|
|
**Last Updated**: 2024
|