# FORGE AI A unified AI platform for creative media generation, processing, and management. ## Features ### Image - **Generate** - AI image generation with multiple providers (OpenAI DALL-E, Google Gemini/Imagen, Leonardo AI, Bria AI, Stability AI) - **Upscale** - Enhance image resolution with Topaz Labs AI - **Remove Background** - Remove backgrounds from images ### Video - **Generate** - AI video generation - **Upscale** - Enhance video resolution with Topaz Labs AI - **Subtitles** - Generate and add subtitles to videos ### Audio - **Text to Speech** - Convert text to natural-sounding speech (ElevenLabs) - **Voice to Text** - Transcribe audio/video to text (OpenAI Whisper) - **Sound Effects** - Generate AI sound effects (ElevenLabs) ### Text - **Prompt Studio** - AI-powered prompt enhancement and generation - **Alt Text Generator** - Generate accessible alt text for images ## Tech Stack - **Frontend**: Next.js 15, React 19, TypeScript, TailwindCSS - **Backend**: FastAPI, Python 3.11 - **Database**: PostgreSQL 16 - **Cache**: Redis - **Task Queue**: Celery - **Containerization**: Docker Compose ## Quick Start ### Prerequisites - Docker and Docker Compose - API Keys for services you want to use (OpenAI, Google AI, ElevenLabs, etc.) ### Setup 1. Clone the repository: ```bash git clone cd forge-ai ``` 2. Copy the example environment file: ```bash cp .env.example .env ``` 3. Configure your API keys in `.env`: ```bash # Required for basic functionality OPENAI_API_KEY=your-openai-key # Optional - for additional providers GOOGLE_AI_API_KEY=your-google-ai-key ELEVENLABS_API_KEY=your-elevenlabs-key LEONARDO_API_KEY=your-leonardo-key BRIA_API_KEY=your-bria-key STABILITY_API_KEY=your-stability-key ANTHROPIC_API_KEY=your-anthropic-key ``` 4. Start the application: ```bash docker compose up -d ``` 5. Access the application: - **Frontend**: http://localhost:3020 - **API**: http://localhost:8020 - **API Docs**: http://localhost:8020/docs ## Test Accounts ### Admin User - **Email**: test@forge.ai - **Password**: password123 - **Role**: Admin (full access including admin panel) You can also create new accounts via the signup page. ## Architecture ``` forge-ai/ ├── frontend/ # Next.js frontend application │ ├── app/ # App router pages │ ├── components/ # React components │ └── lib/ # Utilities and API client ├── backend/ # FastAPI backend │ └── app/ │ ├── api/ # API routes │ ├── models/ # SQLAlchemy models │ ├── schemas/ # Pydantic schemas │ └── services/ # Business logic ├── docker/ # Docker configuration │ ├── init.sql # Database initialization │ └── *.dockerfile # Service Dockerfiles └── storage/ # File storage (mounted volume) ``` ## API Providers ### Image Generation | Provider | Models | Features | |----------|--------|----------| | OpenAI | DALL-E 3, DALL-E 2 | Text to image | | Google Gemini | Imagen 3, Gemini 2.0 Flash (Nano Banana) | Text to image, iterative editing | | Leonardo AI | Multiple models with style presets | Text to image, style control | | Bria AI | Bria 2.3, Bria Fast | Text to image, fast generation | | Stability AI | Stable Diffusion 3 | Text to image | ### Audio Generation | Provider | Features | |----------|----------| | ElevenLabs | Text-to-speech, voice cloning, sound effects | | OpenAI Whisper | Speech-to-text transcription | ## Admin Panel The admin panel is accessible at `/admin` for users with admin role: - **Dashboard** - System stats and recent activity - **Users** - User management - **Reports** - Usage analytics - **Audit Logs** - System audit trail - **Voices** - ElevenLabs voice management ## Development ### Running locally without Docker **Backend:** ```bash cd backend pip install -r requirements.txt uvicorn app.main:app --reload --port 8020 ``` **Frontend:** ```bash cd frontend npm install npm run dev ``` ### Environment Variables See `.env.example` for all available configuration options. ## Troubleshooting ### Common Issues **Login not working:** - Ensure the database is initialized with test data - Check that bcrypt==4.0.1 is installed (for passlib compatibility) **API calls failing:** - Verify your API keys are configured correctly - Check backend logs: `docker compose logs backend` **File uploads/downloads not working:** - Ensure the storage volume is mounted correctly - Check file permissions in `/app/storage` ## License Proprietary - All rights reserved.