Skip to content

komly/autoreels

Repository files navigation

AutoReels - AI Video Generator

Приложение для автоматической генерации коротких видео (рилсов) с использованием 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

Установка

1. Клонирование и установка зависимостей

pnpm install

2. Настройка базы данных

Создайте PostgreSQL базу данных:

createdb autoreels

3. Переменные окружения

Создайте файл .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_...

4. Настройка Clerk

  1. Создайте аккаунт на clerk.com
  2. Создайте новое приложение
  3. Скопируйте API ключи в .env.local
  4. В настройках Clerk добавьте URL:
    • Development: http://localhost:3000
    • Sign-in URL: /sign-in
    • Sign-up URL: /sign-up
    • After sign-in: /dashboard

5. Инициализация базы данных

pnpm db:push

6. Запуск приложения

pnpm 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

Workflow

  1. Создание проекта: Пользователь создает новый проект с темой
  2. Контент-план: AI генерирует 20 идей для рилсов
  3. Выбор темы: Пользователь выбирает одну из идей
  4. Генерация сценариев: AI создает 5 вариантов сценария
  5. Выбор сценария: Пользователь выбирает лучший вариант
  6. Генерация контента:
    • Изображения для каждой сцены (начало и конец)
    • Видео из изображений
    • Озвучка всего сценария
  7. Редактор: Предпросмотр и редактирование
  8. Финальная сборка: Создание итогового видео

Обработка ошибок

При ошибке генерации:

  • Статус элемента меняется на error
  • Отображается красный индикатор с иконкой ошибки
  • Появляется кнопка "Перегенерировать" для повторной попытки
  • Старые данные удаляются перед перегенерацией

Команды

# Разработка
pnpm dev

# Сборка
pnpm build

# Запуск продакшн версии
pnpm start

# Линтинг
pnpm lint

# База данных
pnpm db:push      # Применить изменения схемы
pnpm db:studio    # Открыть Prisma Studio
pnpm db:generate  # Сгенерировать Prisma Client

API Endpoints

Projects

  • GET /api/projects - Список проектов
  • POST /api/projects - Создать проект
  • GET /api/projects/[id] - Получить проект
  • DELETE /api/projects/[id] - Удалить проект

Content Plan

  • POST /api/content-plan/generate - Генерация контент-плана
  • GET /api/content-plan/[projectId] - Получить контент-план

Scenarios

  • POST /api/scenario/generate - Генерация сценариев
  • POST /api/scenario/select - Выбрать сценарий

Scenes

  • POST /api/scene/[id]/generate-images - Генерация изображений
  • POST /api/scene/[id]/generate-video - Генерация видео

Audio

  • POST /api/audio/generate - Генерация озвучки

Video

  • POST /api/video/assemble - Финальная сборка видео

Лицензия

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages