Приложение для автоматической генерации коротких видео (рилсов) с использованием AI.
- 📝 Генерация контент-планов на основе темы
- 🎬 Создание сценариев с драматической структурой
- 🖼️ Генерация изображений для каждой сцены (Flux-dev)
- 🎥 Создание видео из изображений (Wan 2.1)
- 🔊 Генерация озвучки (ElevenLabs)
- ✂️ Финальная сборка видео с помощью FFmpeg
- 🔄 Возможность перегенерации при ошибках
- Frontend: Next.js 15, React 19, TypeScript, Tailwind CSS
- Backend: Next.js API Routes
- Database: PostgreSQL + Prisma ORM
- Authentication: Clerk
- AI Models:
- OpenAI GPT-4 (контент-план, сценарии)
- Flux-dev via Replicate (изображения 9:16)
- Wan 2.2 i2v Fast via Replicate (видео 480p, 16fps)
- ElevenLabs (озвучка)
- Storage: Vercel Blob
- Video Processing: FFmpeg
pnpm installСоздайте PostgreSQL базу данных:
createdb autoreelsСоздайте файл .env.local в корне проекта:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/autoreels"
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...
# OpenAI
OPENAI_API_KEY=sk-...
# Replicate
REPLICATE_API_TOKEN=r8_...
# Google AI (опционально, для Gemini Flash Image)
GOOGLE_AI_API_KEY=...
# ElevenLabs
ELEVENLABS_API_KEY=...
# Vercel Blob
BLOB_READ_WRITE_TOKEN=vercel_blob_...- Создайте аккаунт на clerk.com
- Создайте новое приложение
- Скопируйте API ключи в
.env.local - В настройках Clerk добавьте URL:
- Development:
http://localhost:3000 - Sign-in URL:
/sign-in - Sign-up URL:
/sign-up - After sign-in:
/dashboard
- Development:
pnpm db:pushpnpm devПриложение будет доступно по адресу: http://localhost:3000
autoreels/
├── prisma/
│ └── schema.prisma # Схема базы данных
├── src/
│ ├── app/
│ │ ├── api/ # API Routes
│ │ │ ├── audio/ # Генерация аудио
│ │ │ ├── content-plan/ # Контент-план
│ │ │ ├── projects/ # CRUD проектов
│ │ │ ├── scenario/ # Генерация сценариев
│ │ │ ├── scene/ # Генерация изображений и видео
│ │ │ └── video/ # Финальная сборка
│ │ ├── dashboard/ # Дашборд пользователя
│ │ ├── project/ # Страницы проекта
│ │ │ └── [id]/
│ │ │ ├── content-plan/
│ │ │ ├── scenario/
│ │ │ ├── scenes/
│ │ │ └── editor/
│ │ ├── sign-in/ # Вход
│ │ ├── sign-up/ # Регистрация
│ │ └── page.tsx # Главная страница
│ └── lib/
│ ├── clerk.ts # Утилиты Clerk
│ └── prisma.ts # Prisma клиент
├── scenario_prompt.txt # Шаблон для сценариев
└── package.json
- Создание проекта: Пользователь создает новый проект с темой
- Контент-план: AI генерирует 20 идей для рилсов
- Выбор темы: Пользователь выбирает одну из идей
- Генерация сценариев: AI создает 5 вариантов сценария
- Выбор сценария: Пользователь выбирает лучший вариант
- Генерация контента:
- Изображения для каждой сцены (начало и конец)
- Видео из изображений
- Озвучка всего сценария
- Редактор: Предпросмотр и редактирование
- Финальная сборка: Создание итогового видео
При ошибке генерации:
- Статус элемента меняется на
error - Отображается красный индикатор с иконкой ошибки
- Появляется кнопка "Перегенерировать" для повторной попытки
- Старые данные удаляются перед перегенерацией
# Разработка
pnpm dev
# Сборка
pnpm build
# Запуск продакшн версии
pnpm start
# Линтинг
pnpm lint
# База данных
pnpm db:push # Применить изменения схемы
pnpm db:studio # Открыть Prisma Studio
pnpm db:generate # Сгенерировать Prisma ClientGET /api/projects- Список проектовPOST /api/projects- Создать проектGET /api/projects/[id]- Получить проектDELETE /api/projects/[id]- Удалить проект
POST /api/content-plan/generate- Генерация контент-планаGET /api/content-plan/[projectId]- Получить контент-план
POST /api/scenario/generate- Генерация сценариевPOST /api/scenario/select- Выбрать сценарий
POST /api/scene/[id]/generate-images- Генерация изображенийPOST /api/scene/[id]/generate-video- Генерация видео
POST /api/audio/generate- Генерация озвучки
POST /api/video/assemble- Финальная сборка видео
MIT