feat:修改readme关于我们
This commit is contained in:
60
README-EN.md
60
README-EN.md
@@ -61,22 +61,26 @@ Experience AI short drama generation:
|
|||||||
## ✨ Features
|
## ✨ Features
|
||||||
|
|
||||||
### 🎭 Character Management
|
### 🎭 Character Management
|
||||||
|
|
||||||
- ✅ AI-generated character portraits
|
- ✅ AI-generated character portraits
|
||||||
- ✅ Batch character generation
|
- ✅ Batch character generation
|
||||||
- ✅ Character image upload and management
|
- ✅ Character image upload and management
|
||||||
|
|
||||||
### 🎬 Storyboard Production
|
### 🎬 Storyboard Production
|
||||||
|
|
||||||
- ✅ Automatic storyboard script generation
|
- ✅ Automatic storyboard script generation
|
||||||
- ✅ Scene descriptions and shot design
|
- ✅ Scene descriptions and shot design
|
||||||
- ✅ Storyboard image generation (text-to-image)
|
- ✅ Storyboard image generation (text-to-image)
|
||||||
- ✅ Frame type selection (first frame/key frame/last frame/panel)
|
- ✅ Frame type selection (first frame/key frame/last frame/panel)
|
||||||
|
|
||||||
### 🎥 Video Generation
|
### 🎥 Video Generation
|
||||||
|
|
||||||
- ✅ Automatic image-to-video generation
|
- ✅ Automatic image-to-video generation
|
||||||
- ✅ Video composition and editing
|
- ✅ Video composition and editing
|
||||||
- ✅ Transition effects
|
- ✅ Transition effects
|
||||||
|
|
||||||
### 📦 Asset Management
|
### 📦 Asset Management
|
||||||
|
|
||||||
- ✅ Unified asset library management
|
- ✅ Unified asset library management
|
||||||
- ✅ Local storage support
|
- ✅ Local storage support
|
||||||
- ✅ Asset import/export
|
- ✅ Asset import/export
|
||||||
@@ -88,22 +92,24 @@ Experience AI short drama generation:
|
|||||||
|
|
||||||
### 📋 Prerequisites
|
### 📋 Prerequisites
|
||||||
|
|
||||||
| Software | Version | Description |
|
| Software | Version | Description |
|
||||||
|----------|---------|-------------|
|
| ----------- | ------- | ------------------------------- |
|
||||||
| **Go** | 1.23+ | Backend runtime |
|
| **Go** | 1.23+ | Backend runtime |
|
||||||
| **Node.js** | 18+ | Frontend build environment |
|
| **Node.js** | 18+ | Frontend build environment |
|
||||||
| **npm** | 9+ | Package manager |
|
| **npm** | 9+ | Package manager |
|
||||||
| **FFmpeg** | 4.0+ | Video processing (**Required**) |
|
| **FFmpeg** | 4.0+ | Video processing (**Required**) |
|
||||||
| **SQLite** | 3.x | Database (built-in) |
|
| **SQLite** | 3.x | Database (built-in) |
|
||||||
|
|
||||||
#### Installing FFmpeg
|
#### Installing FFmpeg
|
||||||
|
|
||||||
**macOS:**
|
**macOS:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
brew install ffmpeg
|
brew install ffmpeg
|
||||||
```
|
```
|
||||||
|
|
||||||
**Ubuntu/Debian:**
|
**Ubuntu/Debian:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install ffmpeg
|
sudo apt install ffmpeg
|
||||||
@@ -113,6 +119,7 @@ sudo apt install ffmpeg
|
|||||||
Download from [FFmpeg Official Site](https://ffmpeg.org/download.html) and configure environment variables
|
Download from [FFmpeg Official Site](https://ffmpeg.org/download.html) and configure environment variables
|
||||||
|
|
||||||
Verify installation:
|
Verify installation:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ffmpeg -version
|
ffmpeg -version
|
||||||
```
|
```
|
||||||
@@ -132,7 +139,7 @@ Configuration file format (`configs/config.yaml`):
|
|||||||
app:
|
app:
|
||||||
name: "Huobao Drama API"
|
name: "Huobao Drama API"
|
||||||
version: "1.0.0"
|
version: "1.0.0"
|
||||||
debug: true # Set to true for development, false for production
|
debug: true # Set to true for development, false for production
|
||||||
|
|
||||||
server:
|
server:
|
||||||
port: 5678
|
port: 5678
|
||||||
@@ -160,6 +167,7 @@ ai:
|
|||||||
```
|
```
|
||||||
|
|
||||||
**Key Configuration Items:**
|
**Key Configuration Items:**
|
||||||
|
|
||||||
- `app.debug`: Debug mode switch (recommended true for development)
|
- `app.debug`: Debug mode switch (recommended true for development)
|
||||||
- `server.port`: Service port
|
- `server.port`: Service port
|
||||||
- `server.cors_origins`: Allowed CORS origins for frontend
|
- `server.cors_origins`: Allowed CORS origins for frontend
|
||||||
@@ -260,12 +268,14 @@ docker logs -f huobao-drama
|
|||||||
```
|
```
|
||||||
|
|
||||||
**Local Build** (optional):
|
**Local Build** (optional):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker build -t huobao-drama:latest .
|
docker build -t huobao-drama:latest .
|
||||||
docker run -d --name huobao-drama -p 5678:5678 -v $(pwd)/data:/app/data huobao-drama:latest
|
docker run -d --name huobao-drama -p 5678:5678 -v $(pwd)/data:/app/data huobao-drama:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
**Docker Deployment Advantages:**
|
**Docker Deployment Advantages:**
|
||||||
|
|
||||||
- ✅ Ready to use with default configuration
|
- ✅ Ready to use with default configuration
|
||||||
- ✅ Environment consistency, avoiding dependency issues
|
- ✅ Environment consistency, avoiding dependency issues
|
||||||
- ✅ One-click start, no need to install Go, Node.js, FFmpeg
|
- ✅ One-click start, no need to install Go, Node.js, FFmpeg
|
||||||
@@ -280,6 +290,7 @@ The container is configured to access host services using `http://host.docker.in
|
|||||||
**Configuration Steps:**
|
**Configuration Steps:**
|
||||||
|
|
||||||
1. **Start service on host (listen on all interfaces)**
|
1. **Start service on host (listen on all interfaces)**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export OLLAMA_HOST=0.0.0.0:11434 && ollama serve
|
export OLLAMA_HOST=0.0.0.0:11434 && ollama serve
|
||||||
```
|
```
|
||||||
@@ -306,12 +317,14 @@ go build -o huobao-drama .
|
|||||||
```
|
```
|
||||||
|
|
||||||
Generated files:
|
Generated files:
|
||||||
|
|
||||||
- `huobao-drama` - Backend executable
|
- `huobao-drama` - Backend executable
|
||||||
- `web/dist/` - Frontend static files (embedded in backend)
|
- `web/dist/` - Frontend static files (embedded in backend)
|
||||||
|
|
||||||
#### 2. Prepare Deployment Files
|
#### 2. Prepare Deployment Files
|
||||||
|
|
||||||
Files to upload to server:
|
Files to upload to server:
|
||||||
|
|
||||||
```
|
```
|
||||||
huobao-drama # Backend executable
|
huobao-drama # Backend executable
|
||||||
configs/config.yaml # Configuration file
|
configs/config.yaml # Configuration file
|
||||||
@@ -372,6 +385,7 @@ WantedBy=multi-user.target
|
|||||||
```
|
```
|
||||||
|
|
||||||
Start service:
|
Start service:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
sudo systemctl enable huobao-drama
|
sudo systemctl enable huobao-drama
|
||||||
@@ -401,11 +415,13 @@ sudo systemctl restart huobao-drama
|
|||||||
```
|
```
|
||||||
|
|
||||||
**Reason:**
|
**Reason:**
|
||||||
|
|
||||||
- SQLite requires write permission on both the database file **and** its directory
|
- SQLite requires write permission on both the database file **and** its directory
|
||||||
- Needs to create temporary files in the directory (e.g., `-wal`, `-journal`)
|
- Needs to create temporary files in the directory (e.g., `-wal`, `-journal`)
|
||||||
- **Key**: Ensure systemd `User` matches data directory owner
|
- **Key**: Ensure systemd `User` matches data directory owner
|
||||||
|
|
||||||
**Common Usernames:**
|
**Common Usernames:**
|
||||||
|
|
||||||
- Ubuntu/Debian: `www-data`, `ubuntu`
|
- Ubuntu/Debian: `www-data`, `ubuntu`
|
||||||
- CentOS/RHEL: `nginx`, `apache`
|
- CentOS/RHEL: `nginx`, `apache`
|
||||||
- Custom deployment: `deploy`, `app`, current logged-in user
|
- Custom deployment: `deploy`, `app`, current logged-in user
|
||||||
@@ -436,6 +452,7 @@ server {
|
|||||||
## 🎨 Tech Stack
|
## 🎨 Tech Stack
|
||||||
|
|
||||||
### Backend
|
### Backend
|
||||||
|
|
||||||
- **Language**: Go 1.23+
|
- **Language**: Go 1.23+
|
||||||
- **Web Framework**: Gin 1.9+
|
- **Web Framework**: Gin 1.9+
|
||||||
- **ORM**: GORM
|
- **ORM**: GORM
|
||||||
@@ -445,6 +462,7 @@ server {
|
|||||||
- **AI Services**: OpenAI, Gemini, Doubao, etc.
|
- **AI Services**: OpenAI, Gemini, Doubao, etc.
|
||||||
|
|
||||||
### Frontend
|
### Frontend
|
||||||
|
|
||||||
- **Framework**: Vue 3.4+
|
- **Framework**: Vue 3.4+
|
||||||
- **Language**: TypeScript 5+
|
- **Language**: TypeScript 5+
|
||||||
- **Build Tool**: Vite 5
|
- **Build Tool**: Vite 5
|
||||||
@@ -454,6 +472,7 @@ server {
|
|||||||
- **Router**: Vue Router 4
|
- **Router**: Vue Router 4
|
||||||
|
|
||||||
### Development Tools
|
### Development Tools
|
||||||
|
|
||||||
- **Package Management**: Go Modules, npm
|
- **Package Management**: Go Modules, npm
|
||||||
- **Code Standards**: ESLint, Prettier
|
- **Code Standards**: ESLint, Prettier
|
||||||
- **Version Control**: Git
|
- **Version Control**: Git
|
||||||
@@ -463,19 +482,24 @@ server {
|
|||||||
## 📝 FAQ
|
## 📝 FAQ
|
||||||
|
|
||||||
### Q: How can Docker containers access Ollama on the host?
|
### Q: How can Docker containers access Ollama on the host?
|
||||||
|
|
||||||
A: Use `http://host.docker.internal:11434/v1` as Base URL. Note two things:
|
A: Use `http://host.docker.internal:11434/v1` as Base URL. Note two things:
|
||||||
|
|
||||||
1. Host Ollama needs to listen on `0.0.0.0`: `export OLLAMA_HOST=0.0.0.0:11434 && ollama serve`
|
1. Host Ollama needs to listen on `0.0.0.0`: `export OLLAMA_HOST=0.0.0.0:11434 && ollama serve`
|
||||||
2. Linux users using `docker run` need to add: `--add-host=host.docker.internal:host-gateway`
|
2. Linux users using `docker run` need to add: `--add-host=host.docker.internal:host-gateway`
|
||||||
|
|
||||||
See: [DOCKER_HOST_ACCESS.md](docs/DOCKER_HOST_ACCESS.md)
|
See: [DOCKER_HOST_ACCESS.md](docs/DOCKER_HOST_ACCESS.md)
|
||||||
|
|
||||||
### Q: FFmpeg not installed or not found?
|
### Q: FFmpeg not installed or not found?
|
||||||
|
|
||||||
A: Ensure FFmpeg is installed and in the PATH environment variable. Verify with `ffmpeg -version`.
|
A: Ensure FFmpeg is installed and in the PATH environment variable. Verify with `ffmpeg -version`.
|
||||||
|
|
||||||
### Q: Frontend cannot connect to backend API?
|
### Q: Frontend cannot connect to backend API?
|
||||||
|
|
||||||
A: Check if backend is running and port is correct. In development mode, frontend proxy config is in `web/vite.config.ts`.
|
A: Check if backend is running and port is correct. In development mode, frontend proxy config is in `web/vite.config.ts`.
|
||||||
|
|
||||||
### Q: Database tables not created?
|
### Q: Database tables not created?
|
||||||
|
|
||||||
A: GORM automatically creates tables on first startup, check logs to confirm migration success.
|
A: GORM automatically creates tables on first startup, check logs to confirm migration success.
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -485,6 +509,7 @@ A: GORM automatically creates tables on first startup, check logs to confirm mig
|
|||||||
### v1.0.2 (2026-01-16)
|
### v1.0.2 (2026-01-16)
|
||||||
|
|
||||||
#### 🚀 Major Updates
|
#### 🚀 Major Updates
|
||||||
|
|
||||||
- Pure Go SQLite driver (`modernc.org/sqlite`), supports `CGO_ENABLED=0` cross-platform compilation
|
- Pure Go SQLite driver (`modernc.org/sqlite`), supports `CGO_ENABLED=0` cross-platform compilation
|
||||||
- Optimized concurrency performance (WAL mode), resolved "database is locked" errors
|
- Optimized concurrency performance (WAL mode), resolved "database is locked" errors
|
||||||
- Docker cross-platform support for `host.docker.internal` to access host services
|
- Docker cross-platform support for `host.docker.internal` to access host services
|
||||||
@@ -493,6 +518,7 @@ A: GORM automatically creates tables on first startup, check logs to confirm mig
|
|||||||
### v1.0.1 (2026-01-14)
|
### v1.0.1 (2026-01-14)
|
||||||
|
|
||||||
#### 🐛 Bug Fixes / 🔧 Improvements
|
#### 🐛 Bug Fixes / 🔧 Improvements
|
||||||
|
|
||||||
- Fixed video generation API response parsing issues
|
- Fixed video generation API response parsing issues
|
||||||
- Added OpenAI Sora video endpoint configuration
|
- Added OpenAI Sora video endpoint configuration
|
||||||
- Optimized error handling and logging
|
- Optimized error handling and logging
|
||||||
@@ -512,13 +538,27 @@ Issues and Pull Requests are welcome!
|
|||||||
---
|
---
|
||||||
|
|
||||||
## API Configuration Site
|
## API Configuration Site
|
||||||
|
|
||||||
Configure in 2 minutes: [API Aggregation Site](https://api.chatfire.site/models)
|
Configure in 2 minutes: [API Aggregation Site](https://api.chatfire.site/models)
|
||||||
|
|
||||||
## 📧 Contact
|
---
|
||||||
Business Contact (WeChat): dangbao1117
|
|
||||||
|
## 👨💻 About Us
|
||||||
|
|
||||||
|
**AI Huobao - AI Studio Startup**
|
||||||
|
|
||||||
|
- 🏠 **Location**: Nanjing, China
|
||||||
|
- 🚀 **Status**: Startup in Progress
|
||||||
|
- 📧 **Email**: [18550175439@163.com](mailto:18550175439@163.com)
|
||||||
|
- 💬 **WeChat**: dangbao1117 (Personal WeChat - No technical support)
|
||||||
|
- 🐙 **GitHub**: [https://github.com/chatfire-AI/huobao-drama](https://github.com/chatfire-AI/huobao-drama)
|
||||||
|
|
||||||
|
> _"Let AI help us do more creative things"_
|
||||||
|
|
||||||
## Community Group
|
## Community Group
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
- Submit [Issue](../../issues)
|
- Submit [Issue](../../issues)
|
||||||
- Email project maintainers
|
- Email project maintainers
|
||||||
|
|
||||||
|
|||||||
172
README-JA.md
172
README-JA.md
@@ -1,8 +1,8 @@
|
|||||||
# 🎬 Huobao Drama - AIショートドラマ制作プラットフォーム
|
# 🎬 Huobao Drama - AI ショートドラマ制作プラットフォーム
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
**Go + Vue3 ベースのフルスタックAIショートドラマ自動化プラットフォーム**
|
**Go + Vue3 ベースのフルスタック AI ショートドラマ自動化プラットフォーム**
|
||||||
|
|
||||||
[](https://golang.org)
|
[](https://golang.org)
|
||||||
[](https://vuejs.org)
|
[](https://vuejs.org)
|
||||||
@@ -18,12 +18,12 @@
|
|||||||
|
|
||||||
## 📖 概要
|
## 📖 概要
|
||||||
|
|
||||||
Huobao Dramaは、脚本生成、キャラクターデザイン、絵コンテ作成から動画合成までの全ワークフローを自動化するAI駆動のショートドラマ制作プラットフォームです。
|
Huobao Drama は、脚本生成、キャラクターデザイン、絵コンテ作成から動画合成までの全ワークフローを自動化する AI 駆動のショートドラマ制作プラットフォームです。
|
||||||
|
|
||||||
### 🎯 主要機能
|
### 🎯 主要機能
|
||||||
|
|
||||||
- **🤖 AI駆動**: 大規模言語モデルを使用して脚本を解析し、キャラクター、シーン、絵コンテ情報を抽出
|
- **🤖 AI 駆動**: 大規模言語モデルを使用して脚本を解析し、キャラクター、シーン、絵コンテ情報を抽出
|
||||||
- **🎨 インテリジェント創作**: AIによるキャラクターポートレートとシーン背景の生成
|
- **🎨 インテリジェント創作**: AI によるキャラクターポートレートとシーン背景の生成
|
||||||
- **📹 動画生成**: テキストから動画、画像から動画モデルによる絵コンテ動画の自動生成
|
- **📹 動画生成**: テキストから動画、画像から動画モデルによる絵コンテ動画の自動生成
|
||||||
- **🔄 完全なワークフロー**: アイデアから完成動画までのエンドツーエンド制作ワークフロー
|
- **🔄 完全なワークフロー**: アイデアから完成動画までのエンドツーエンド制作ワークフロー
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ Huobao Dramaは、脚本生成、キャラクターデザイン、絵コンテ
|
|||||||
|
|
||||||
### 🎥 デモ動画
|
### 🎥 デモ動画
|
||||||
|
|
||||||
AIショートドラマ生成を体験:
|
AI ショートドラマ生成を体験:
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ AIショートドラマ生成を体験:
|
|||||||
|
|
||||||
<video src="https://ffile.chatfire.site/cf/public/fcede75e8aeafe22031dbf78f86285b8.mp4" controls width="640"></video>
|
<video src="https://ffile.chatfire.site/cf/public/fcede75e8aeafe22031dbf78f86285b8.mp4" controls width="640"></video>
|
||||||
|
|
||||||
[動画1を見る](https://ffile.chatfire.site/cf/public/20260114094337396.mp4) | [動画2を見る](https://ffile.chatfire.site/cf/public/fcede75e8aeafe22031dbf78f86285b8.mp4)
|
[動画 1 を見る](https://ffile.chatfire.site/cf/public/20260114094337396.mp4) | [動画 2 を見る](https://ffile.chatfire.site/cf/public/fcede75e8aeafe22031dbf78f86285b8.mp4)
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -61,22 +61,26 @@ AIショートドラマ生成を体験:
|
|||||||
## ✨ 機能
|
## ✨ 機能
|
||||||
|
|
||||||
### 🎭 キャラクター管理
|
### 🎭 キャラクター管理
|
||||||
- ✅ AI生成キャラクターポートレート
|
|
||||||
|
- ✅ AI 生成キャラクターポートレート
|
||||||
- ✅ バッチキャラクター生成
|
- ✅ バッチキャラクター生成
|
||||||
- ✅ キャラクター画像のアップロードと管理
|
- ✅ キャラクター画像のアップロードと管理
|
||||||
|
|
||||||
### 🎬 絵コンテ制作
|
### 🎬 絵コンテ制作
|
||||||
|
|
||||||
- ✅ 自動絵コンテスクリプト生成
|
- ✅ 自動絵コンテスクリプト生成
|
||||||
- ✅ シーン説明とショットデザイン
|
- ✅ シーン説明とショットデザイン
|
||||||
- ✅ 絵コンテ画像生成(テキストから画像)
|
- ✅ 絵コンテ画像生成(テキストから画像)
|
||||||
- ✅ フレームタイプ選択(先頭フレーム/キーフレーム/末尾フレーム/パネル)
|
- ✅ フレームタイプ選択(先頭フレーム/キーフレーム/末尾フレーム/パネル)
|
||||||
|
|
||||||
### 🎥 動画生成
|
### 🎥 動画生成
|
||||||
|
|
||||||
- ✅ 画像から動画の自動生成
|
- ✅ 画像から動画の自動生成
|
||||||
- ✅ 動画合成と編集
|
- ✅ 動画合成と編集
|
||||||
- ✅ トランジション効果
|
- ✅ トランジション効果
|
||||||
|
|
||||||
### 📦 アセット管理
|
### 📦 アセット管理
|
||||||
|
|
||||||
- ✅ 統合アセットライブラリ管理
|
- ✅ 統合アセットライブラリ管理
|
||||||
- ✅ ローカルストレージサポート
|
- ✅ ローカルストレージサポート
|
||||||
- ✅ アセットのインポート/エクスポート
|
- ✅ アセットのインポート/エクスポート
|
||||||
@@ -88,31 +92,34 @@ AIショートドラマ生成を体験:
|
|||||||
|
|
||||||
### 📋 前提条件
|
### 📋 前提条件
|
||||||
|
|
||||||
| ソフトウェア | バージョン | 説明 |
|
| ソフトウェア | バージョン | 説明 |
|
||||||
|-------------|----------|------|
|
| ------------ | ---------- | ------------------------ |
|
||||||
| **Go** | 1.23+ | バックエンドランタイム |
|
| **Go** | 1.23+ | バックエンドランタイム |
|
||||||
| **Node.js** | 18+ | フロントエンドビルド環境 |
|
| **Node.js** | 18+ | フロントエンドビルド環境 |
|
||||||
| **npm** | 9+ | パッケージマネージャー |
|
| **npm** | 9+ | パッケージマネージャー |
|
||||||
| **FFmpeg** | 4.0+ | 動画処理(**必須**) |
|
| **FFmpeg** | 4.0+ | 動画処理(**必須**) |
|
||||||
| **SQLite** | 3.x | データベース(内蔵) |
|
| **SQLite** | 3.x | データベース(内蔵) |
|
||||||
|
|
||||||
#### FFmpegのインストール
|
#### FFmpeg のインストール
|
||||||
|
|
||||||
**macOS:**
|
**macOS:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
brew install ffmpeg
|
brew install ffmpeg
|
||||||
```
|
```
|
||||||
|
|
||||||
**Ubuntu/Debian:**
|
**Ubuntu/Debian:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install ffmpeg
|
sudo apt install ffmpeg
|
||||||
```
|
```
|
||||||
|
|
||||||
**Windows:**
|
**Windows:**
|
||||||
[FFmpeg公式サイト](https://ffmpeg.org/download.html)からダウンロードし、環境変数を設定
|
[FFmpeg 公式サイト](https://ffmpeg.org/download.html)からダウンロードし、環境変数を設定
|
||||||
|
|
||||||
インストール確認:
|
インストール確認:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ffmpeg -version
|
ffmpeg -version
|
||||||
```
|
```
|
||||||
@@ -132,7 +139,7 @@ vim configs/config.yaml
|
|||||||
app:
|
app:
|
||||||
name: "Huobao Drama API"
|
name: "Huobao Drama API"
|
||||||
version: "1.0.0"
|
version: "1.0.0"
|
||||||
debug: true # 開発環境ではtrue、本番環境ではfalseに設定
|
debug: true # 開発環境ではtrue、本番環境ではfalseに設定
|
||||||
|
|
||||||
server:
|
server:
|
||||||
port: 5678
|
port: 5678
|
||||||
@@ -160,13 +167,14 @@ ai:
|
|||||||
```
|
```
|
||||||
|
|
||||||
**主要設定項目:**
|
**主要設定項目:**
|
||||||
- `app.debug`: デバッグモードスイッチ(開発環境ではtrueを推奨)
|
|
||||||
|
- `app.debug`: デバッグモードスイッチ(開発環境では true を推奨)
|
||||||
- `server.port`: サービスポート
|
- `server.port`: サービスポート
|
||||||
- `server.cors_origins`: フロントエンドの許可CORSオリジン
|
- `server.cors_origins`: フロントエンドの許可 CORS オリジン
|
||||||
- `database.path`: SQLiteデータベースファイルパス
|
- `database.path`: SQLite データベースファイルパス
|
||||||
- `storage.local_path`: ローカルファイルストレージパス
|
- `storage.local_path`: ローカルファイルストレージパス
|
||||||
- `storage.base_url`: 静的リソースアクセスURL
|
- `storage.base_url`: 静的リソースアクセス URL
|
||||||
- `ai.default_*_provider`: AIサービスプロバイダー設定(APIキーはWeb UIで設定)
|
- `ai.default_*_provider`: AI サービスプロバイダー設定(API キーは Web UI で設定)
|
||||||
|
|
||||||
### 📥 インストール
|
### 📥 インストール
|
||||||
|
|
||||||
@@ -186,7 +194,7 @@ cd ..
|
|||||||
|
|
||||||
### 🎯 プロジェクトの起動
|
### 🎯 プロジェクトの起動
|
||||||
|
|
||||||
#### 方法1: 開発モード(推奨)
|
#### 方法 1: 開発モード(推奨)
|
||||||
|
|
||||||
**フロントエンドとバックエンドを分離、ホットリロード対応**
|
**フロントエンドとバックエンドを分離、ホットリロード対応**
|
||||||
|
|
||||||
@@ -200,12 +208,12 @@ npm run dev
|
|||||||
```
|
```
|
||||||
|
|
||||||
- フロントエンド: `http://localhost:3012`
|
- フロントエンド: `http://localhost:3012`
|
||||||
- バックエンドAPI: `http://localhost:5678/api/v1`
|
- バックエンド API: `http://localhost:5678/api/v1`
|
||||||
- フロントエンドはAPIリクエストを自動的にバックエンドにプロキシ
|
- フロントエンドは API リクエストを自動的にバックエンドにプロキシ
|
||||||
|
|
||||||
#### 方法2: シングルサービスモード
|
#### 方法 2: シングルサービスモード
|
||||||
|
|
||||||
**バックエンドがAPIとフロントエンド静的ファイルの両方を提供**
|
**バックエンドが API とフロントエンド静的ファイルの両方を提供**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. フロントエンドをビルド
|
# 1. フロントエンドをビルド
|
||||||
@@ -221,15 +229,15 @@ go run main.go
|
|||||||
|
|
||||||
### 🗄️ データベース初期化
|
### 🗄️ データベース初期化
|
||||||
|
|
||||||
データベーステーブルは初回起動時に自動作成されます(GORM AutoMigrateを使用)。手動マイグレーションは不要です。
|
データベーステーブルは初回起動時に自動作成されます(GORM AutoMigrate を使用)。手動マイグレーションは不要です。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📦 デプロイ
|
## 📦 デプロイ
|
||||||
|
|
||||||
### 🐳 Dockerデプロイ(推奨)
|
### 🐳 Docker デプロイ(推奨)
|
||||||
|
|
||||||
#### 方法1: Docker Compose(推奨)
|
#### 方法 1: Docker Compose(推奨)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# サービスを起動
|
# サービスを起動
|
||||||
@@ -242,9 +250,9 @@ docker-compose logs -f
|
|||||||
docker-compose down
|
docker-compose down
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 方法2: Dockerコマンド
|
#### 方法 2: Docker コマンド
|
||||||
|
|
||||||
> **注意**: Linuxユーザーはホストサービスにアクセスするために `--add-host=host.docker.internal:host-gateway` を追加する必要があります
|
> **注意**: Linux ユーザーはホストサービスにアクセスするために `--add-host=host.docker.internal:host-gateway` を追加する必要があります
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Docker Hubから実行
|
# Docker Hubから実行
|
||||||
@@ -260,15 +268,17 @@ docker logs -f huobao-drama
|
|||||||
```
|
```
|
||||||
|
|
||||||
**ローカルビルド**(オプション):
|
**ローカルビルド**(オプション):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker build -t huobao-drama:latest .
|
docker build -t huobao-drama:latest .
|
||||||
docker run -d --name huobao-drama -p 5678:5678 -v $(pwd)/data:/app/data huobao-drama:latest
|
docker run -d --name huobao-drama -p 5678:5678 -v $(pwd)/data:/app/data huobao-drama:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
**Dockerデプロイの利点:**
|
**Docker デプロイの利点:**
|
||||||
|
|
||||||
- ✅ デフォルト設定ですぐに使用可能
|
- ✅ デフォルト設定ですぐに使用可能
|
||||||
- ✅ 環境の一貫性、依存関係の問題を回避
|
- ✅ 環境の一貫性、依存関係の問題を回避
|
||||||
- ✅ ワンクリック起動、Go、Node.js、FFmpegのインストール不要
|
- ✅ ワンクリック起動、Go、Node.js、FFmpeg のインストール不要
|
||||||
- ✅ 移行とスケーリングが容易
|
- ✅ 移行とスケーリングが容易
|
||||||
- ✅ 自動ヘルスチェックと再起動
|
- ✅ 自動ヘルスチェックと再起動
|
||||||
- ✅ ファイル権限の自動処理
|
- ✅ ファイル権限の自動処理
|
||||||
@@ -280,11 +290,12 @@ docker run -d --name huobao-drama -p 5678:5678 -v $(pwd)/data:/app/data huobao-d
|
|||||||
**設定手順:**
|
**設定手順:**
|
||||||
|
|
||||||
1. **ホストでサービスを起動(全インターフェースでリッスン)**
|
1. **ホストでサービスを起動(全インターフェースでリッスン)**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export OLLAMA_HOST=0.0.0.0:11434 && ollama serve
|
export OLLAMA_HOST=0.0.0.0:11434 && ollama serve
|
||||||
```
|
```
|
||||||
|
|
||||||
2. **フロントエンドAIサービス設定**
|
2. **フロントエンド AI サービス設定**
|
||||||
- Base URL: `http://host.docker.internal:11434/v1`
|
- Base URL: `http://host.docker.internal:11434/v1`
|
||||||
- Provider: `openai`
|
- Provider: `openai`
|
||||||
- Model: `qwen2.5:latest`
|
- Model: `qwen2.5:latest`
|
||||||
@@ -306,12 +317,14 @@ go build -o huobao-drama .
|
|||||||
```
|
```
|
||||||
|
|
||||||
生成ファイル:
|
生成ファイル:
|
||||||
|
|
||||||
- `huobao-drama` - バックエンド実行ファイル
|
- `huobao-drama` - バックエンド実行ファイル
|
||||||
- `web/dist/` - フロントエンド静的ファイル(バックエンドに埋め込み)
|
- `web/dist/` - フロントエンド静的ファイル(バックエンドに埋め込み)
|
||||||
|
|
||||||
#### 2. デプロイファイルの準備
|
#### 2. デプロイファイルの準備
|
||||||
|
|
||||||
サーバーにアップロードするファイル:
|
サーバーにアップロードするファイル:
|
||||||
|
|
||||||
```
|
```
|
||||||
huobao-drama # バックエンド実行ファイル
|
huobao-drama # バックエンド実行ファイル
|
||||||
configs/config.yaml # 設定ファイル
|
configs/config.yaml # 設定ファイル
|
||||||
@@ -347,7 +360,7 @@ chmod +x huobao-drama
|
|||||||
./huobao-drama
|
./huobao-drama
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 4. systemdでサービス管理
|
#### 4. systemd でサービス管理
|
||||||
|
|
||||||
サービスファイル `/etc/systemd/system/huobao-drama.service` を作成:
|
サービスファイル `/etc/systemd/system/huobao-drama.service` を作成:
|
||||||
|
|
||||||
@@ -372,6 +385,7 @@ WantedBy=multi-user.target
|
|||||||
```
|
```
|
||||||
|
|
||||||
サービスを起動:
|
サービスを起動:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
sudo systemctl enable huobao-drama
|
sudo systemctl enable huobao-drama
|
||||||
@@ -379,7 +393,7 @@ sudo systemctl start huobao-drama
|
|||||||
sudo systemctl status huobao-drama
|
sudo systemctl status huobao-drama
|
||||||
```
|
```
|
||||||
|
|
||||||
**⚠️ よくある問題: SQLite書き込み権限エラー**
|
**⚠️ よくある問題: SQLite 書き込み権限エラー**
|
||||||
|
|
||||||
`attempt to write a readonly database` エラーが発生した場合:
|
`attempt to write a readonly database` エラーが発生した場合:
|
||||||
|
|
||||||
@@ -401,16 +415,18 @@ sudo systemctl restart huobao-drama
|
|||||||
```
|
```
|
||||||
|
|
||||||
**原因:**
|
**原因:**
|
||||||
- SQLiteはデータベースファイル**と**そのディレクトリの両方に書き込み権限が必要
|
|
||||||
|
- SQLite はデータベースファイル**と**そのディレクトリの両方に書き込み権限が必要
|
||||||
- ディレクトリ内に一時ファイル(例: `-wal`、`-journal`)を作成する必要がある
|
- ディレクトリ内に一時ファイル(例: `-wal`、`-journal`)を作成する必要がある
|
||||||
- **重要**: systemdの`User`がデータディレクトリの所有者と一致していることを確認
|
- **重要**: systemd の`User`がデータディレクトリの所有者と一致していることを確認
|
||||||
|
|
||||||
**一般的なユーザー名:**
|
**一般的なユーザー名:**
|
||||||
|
|
||||||
- Ubuntu/Debian: `www-data`、`ubuntu`
|
- Ubuntu/Debian: `www-data`、`ubuntu`
|
||||||
- CentOS/RHEL: `nginx`、`apache`
|
- CentOS/RHEL: `nginx`、`apache`
|
||||||
- カスタムデプロイ: `deploy`、`app`、現在ログインしているユーザー
|
- カスタムデプロイ: `deploy`、`app`、現在ログインしているユーザー
|
||||||
|
|
||||||
#### 5. Nginxリバースプロキシ
|
#### 5. Nginx リバースプロキシ
|
||||||
|
|
||||||
```nginx
|
```nginx
|
||||||
server {
|
server {
|
||||||
@@ -436,24 +452,27 @@ server {
|
|||||||
## 🎨 技術スタック
|
## 🎨 技術スタック
|
||||||
|
|
||||||
### バックエンド
|
### バックエンド
|
||||||
|
|
||||||
- **言語**: Go 1.23+
|
- **言語**: Go 1.23+
|
||||||
- **Webフレームワーク**: Gin 1.9+
|
- **Web フレームワーク**: Gin 1.9+
|
||||||
- **ORM**: GORM
|
- **ORM**: GORM
|
||||||
- **データベース**: SQLite
|
- **データベース**: SQLite
|
||||||
- **ログ**: Zap
|
- **ログ**: Zap
|
||||||
- **動画処理**: FFmpeg
|
- **動画処理**: FFmpeg
|
||||||
- **AIサービス**: OpenAI、Gemini、Doubaoなど
|
- **AI サービス**: OpenAI、Gemini、Doubao など
|
||||||
|
|
||||||
### フロントエンド
|
### フロントエンド
|
||||||
|
|
||||||
- **フレームワーク**: Vue 3.4+
|
- **フレームワーク**: Vue 3.4+
|
||||||
- **言語**: TypeScript 5+
|
- **言語**: TypeScript 5+
|
||||||
- **ビルドツール**: Vite 5
|
- **ビルドツール**: Vite 5
|
||||||
- **UIコンポーネント**: Element Plus
|
- **UI コンポーネント**: Element Plus
|
||||||
- **CSSフレームワーク**: TailwindCSS
|
- **CSS フレームワーク**: TailwindCSS
|
||||||
- **状態管理**: Pinia
|
- **状態管理**: Pinia
|
||||||
- **ルーター**: Vue Router 4
|
- **ルーター**: Vue Router 4
|
||||||
|
|
||||||
### 開発ツール
|
### 開発ツール
|
||||||
|
|
||||||
- **パッケージ管理**: Go Modules、npm
|
- **パッケージ管理**: Go Modules、npm
|
||||||
- **コード規約**: ESLint、Prettier
|
- **コード規約**: ESLint、Prettier
|
||||||
- **バージョン管理**: Git
|
- **バージョン管理**: Git
|
||||||
@@ -462,21 +481,26 @@ server {
|
|||||||
|
|
||||||
## 📝 よくある質問
|
## 📝 よくある質問
|
||||||
|
|
||||||
### Q: DockerコンテナからホストのOllamaにアクセスするには?
|
### Q: Docker コンテナからホストの Ollama にアクセスするには?
|
||||||
A: Base URLとして `http://host.docker.internal:11434/v1` を使用します。注意点:
|
|
||||||
1. ホストのOllamaは `0.0.0.0` でリッスンする必要があります: `export OLLAMA_HOST=0.0.0.0:11434 && ollama serve`
|
A: Base URL として `http://host.docker.internal:11434/v1` を使用します。注意点:
|
||||||
2. `docker run` を使用するLinuxユーザーは追加が必要: `--add-host=host.docker.internal:host-gateway`
|
|
||||||
|
1. ホストの Ollama は `0.0.0.0` でリッスンする必要があります: `export OLLAMA_HOST=0.0.0.0:11434 && ollama serve`
|
||||||
|
2. `docker run` を使用する Linux ユーザーは追加が必要: `--add-host=host.docker.internal:host-gateway`
|
||||||
|
|
||||||
詳細: [DOCKER_HOST_ACCESS.md](docs/DOCKER_HOST_ACCESS.md)
|
詳細: [DOCKER_HOST_ACCESS.md](docs/DOCKER_HOST_ACCESS.md)
|
||||||
|
|
||||||
### Q: FFmpegがインストールされていない、または見つからない?
|
### Q: FFmpeg がインストールされていない、または見つからない?
|
||||||
A: FFmpegがインストールされ、PATH環境変数に含まれていることを確認してください。`ffmpeg -version` で確認。
|
|
||||||
|
A: FFmpeg がインストールされ、PATH 環境変数に含まれていることを確認してください。`ffmpeg -version` で確認。
|
||||||
|
|
||||||
|
### Q: フロントエンドがバックエンド API に接続できない?
|
||||||
|
|
||||||
### Q: フロントエンドがバックエンドAPIに接続できない?
|
|
||||||
A: バックエンドが実行中で、ポートが正しいか確認してください。開発モードでは、フロントエンドプロキシ設定は `web/vite.config.ts` にあります。
|
A: バックエンドが実行中で、ポートが正しいか確認してください。開発モードでは、フロントエンドプロキシ設定は `web/vite.config.ts` にあります。
|
||||||
|
|
||||||
### Q: データベーステーブルが作成されない?
|
### Q: データベーステーブルが作成されない?
|
||||||
A: GORMは初回起動時にテーブルを自動作成します。ログでマイグレーション成功を確認してください。
|
|
||||||
|
A: GORM は初回起動時にテーブルを自動作成します。ログでマイグレーション成功を確認してください。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -485,40 +509,56 @@ A: GORMは初回起動時にテーブルを自動作成します。ログでマ
|
|||||||
### v1.0.2 (2026-01-16)
|
### v1.0.2 (2026-01-16)
|
||||||
|
|
||||||
#### 🚀 主要アップデート
|
#### 🚀 主要アップデート
|
||||||
- 純粋なGo SQLiteドライバー(`modernc.org/sqlite`)、`CGO_ENABLED=0` クロスプラットフォームコンパイルをサポート
|
|
||||||
- 並行性能を最適化(WALモード)、"database is locked" エラーを解決
|
- 純粋な Go SQLite ドライバー(`modernc.org/sqlite`)、`CGO_ENABLED=0` クロスプラットフォームコンパイルをサポート
|
||||||
- ホストサービスへのアクセス用 `host.docker.internal` のDockerクロスプラットフォームサポート
|
- 並行性能を最適化(WAL モード)、"database is locked" エラーを解決
|
||||||
|
- ホストサービスへのアクセス用 `host.docker.internal` の Docker クロスプラットフォームサポート
|
||||||
- ドキュメントとデプロイガイドの簡素化
|
- ドキュメントとデプロイガイドの簡素化
|
||||||
|
|
||||||
### v1.0.1 (2026-01-14)
|
### v1.0.1 (2026-01-14)
|
||||||
|
|
||||||
#### 🐛 バグ修正 / 🔧 改善
|
#### 🐛 バグ修正 / 🔧 改善
|
||||||
- 動画生成APIレスポンスのパース問題を修正
|
|
||||||
- OpenAI Sora動画エンドポイント設定を追加
|
- 動画生成 API レスポンスのパース問題を修正
|
||||||
|
- OpenAI Sora 動画エンドポイント設定を追加
|
||||||
- エラー処理とログ出力を最適化
|
- エラー処理とログ出力を最適化
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🤝 コントリビューション
|
## 🤝 コントリビューション
|
||||||
|
|
||||||
IssueとPull Requestを歓迎します!
|
Issue と Pull Request を歓迎します!
|
||||||
|
|
||||||
1. このプロジェクトをフォーク
|
1. このプロジェクトをフォーク
|
||||||
2. フィーチャーブランチを作成 (`git checkout -b feature/AmazingFeature`)
|
2. フィーチャーブランチを作成 (`git checkout -b feature/AmazingFeature`)
|
||||||
3. 変更をコミット (`git commit -m 'Add some AmazingFeature'`)
|
3. 変更をコミット (`git commit -m 'Add some AmazingFeature'`)
|
||||||
4. ブランチにプッシュ (`git push origin feature/AmazingFeature`)
|
4. ブランチにプッシュ (`git push origin feature/AmazingFeature`)
|
||||||
5. Pull Requestを作成
|
5. Pull Request を作成
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## API設定サイト
|
## API 設定サイト
|
||||||
2分で設定完了: [API集約サイト](https://api.chatfire.site/models)
|
|
||||||
|
|
||||||
## 📧 連絡先
|
2 分で設定完了: [API 集約サイト](https://api.chatfire.site/models)
|
||||||
ビジネス連絡先(WeChat): dangbao1117
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 👨💻 私たちについて
|
||||||
|
|
||||||
|
**AI 火宝 - AI スタジオ起業中**
|
||||||
|
|
||||||
|
- 🏠 **所在地**: 中国南京
|
||||||
|
- 🚀 **ステータス**: 起業中
|
||||||
|
- 📧 **Email**: [18550175439@163.com](mailto:18550175439@163.com)
|
||||||
|
- 💬 **WeChat**: dangbao1117 (個人 WeChat - 技術的な質問には対応しません)
|
||||||
|
- 🐙 **GitHub**: [https://github.com/chatfire-AI/huobao-drama](https://github.com/chatfire-AI/huobao-drama)
|
||||||
|
|
||||||
|
> _「AI に私たちのより創造的なことを手伝ってもらおう」_
|
||||||
|
|
||||||
## コミュニティグループ
|
## コミュニティグループ
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
- [Issue](../../issues)を提出
|
- [Issue](../../issues)を提出
|
||||||
- プロジェクトメンテナにメール
|
- プロジェクトメンテナにメール
|
||||||
|
|
||||||
@@ -526,9 +566,9 @@ IssueとPull Requestを歓迎します!
|
|||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
**⭐ このプロジェクトが役に立ったら、Starをお願いします!**
|
**⭐ このプロジェクトが役に立ったら、Star をお願いします!**
|
||||||
|
|
||||||
## Star履歴
|
## Star 履歴
|
||||||
|
|
||||||
[](https://www.star-history.com/#chatfire-AI/huobao-drama&type=date&legend=top-left)
|
[](https://www.star-history.com/#chatfire-AI/huobao-drama&type=date&legend=top-left)
|
||||||
|
|
||||||
|
|||||||
116
README.md
116
README.md
@@ -1,8 +1,8 @@
|
|||||||
# 🎬 Huobao Drama - AI短剧生成平台
|
# 🎬 Huobao Drama - AI 短剧生成平台
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
**基于 Go + Vue3 的全栈AI短剧自动化生产平台**
|
**基于 Go + Vue3 的全栈 AI 短剧自动化生产平台**
|
||||||
|
|
||||||
[](https://golang.org)
|
[](https://golang.org)
|
||||||
[](https://vuejs.org)
|
[](https://vuejs.org)
|
||||||
@@ -18,20 +18,20 @@
|
|||||||
|
|
||||||
## 📖 项目简介 / About
|
## 📖 项目简介 / About
|
||||||
|
|
||||||
Huobao Drama 是一个基于AI的短剧自动化生产平台,实现从剧本生成、角色设计、分镜制作到视频合成的全流程自动化。
|
Huobao Drama 是一个基于 AI 的短剧自动化生产平台,实现从剧本生成、角色设计、分镜制作到视频合成的全流程自动化。
|
||||||
|
|
||||||
Huobao Drama is an AI-powered short drama production platform that automates the entire workflow from script generation, character design, storyboarding to video composition.
|
Huobao Drama is an AI-powered short drama production platform that automates the entire workflow from script generation, character design, storyboarding to video composition.
|
||||||
|
|
||||||
### 🎯 核心价值 / Core Features
|
### 🎯 核心价值 / Core Features
|
||||||
|
|
||||||
- **🤖 AI驱动 / AI-Driven**:使用大语言模型解析剧本,提取角色、场景和分镜信息 | Parse scripts using large language models to extract characters, scenes, and storyboards
|
- **🤖 AI 驱动 / AI-Driven**:使用大语言模型解析剧本,提取角色、场景和分镜信息 | Parse scripts using large language models to extract characters, scenes, and storyboards
|
||||||
- **🎨 智能创作 / Intelligent Creation**:AI绘图生成角色形象和场景背景 | AI-generated character portraits and scene backgrounds
|
- **🎨 智能创作 / Intelligent Creation**:AI 绘图生成角色形象和场景背景 | AI-generated character portraits and scene backgrounds
|
||||||
- **📹 视频生成 / Video Generation**:基于文生视频和图生视频模型自动生成分镜视频 | Automatic storyboard video generation using text-to-video and image-to-video models
|
- **📹 视频生成 / Video Generation**:基于文生视频和图生视频模型自动生成分镜视频 | Automatic storyboard video generation using text-to-video and image-to-video models
|
||||||
- **🔄 工作流 / Workflow**:完整的短剧制作工作流,从创意到成片一站式完成 | Complete production workflow from idea to final video
|
- **🔄 工作流 / Workflow**:完整的短剧制作工作流,从创意到成片一站式完成 | Complete production workflow from idea to final video
|
||||||
|
|
||||||
### 🛠️ 技术架构
|
### 🛠️ 技术架构
|
||||||
|
|
||||||
采用**DDD领域驱动设计**,清晰分层:
|
采用**DDD 领域驱动设计**,清晰分层:
|
||||||
|
|
||||||
```
|
```
|
||||||
├── API层 (Gin HTTP)
|
├── API层 (Gin HTTP)
|
||||||
@@ -63,22 +63,26 @@ Huobao Drama is an AI-powered short drama production platform that automates the
|
|||||||
## ✨ 功能特性
|
## ✨ 功能特性
|
||||||
|
|
||||||
### 🎭 角色管理
|
### 🎭 角色管理
|
||||||
- ✅ AI生成角色形象
|
|
||||||
|
- ✅ AI 生成角色形象
|
||||||
- ✅ 批量角色生成
|
- ✅ 批量角色生成
|
||||||
- ✅ 角色图片上传和管理
|
- ✅ 角色图片上传和管理
|
||||||
|
|
||||||
### 🎬 分镜制作
|
### 🎬 分镜制作
|
||||||
|
|
||||||
- ✅ 自动生成分镜脚本
|
- ✅ 自动生成分镜脚本
|
||||||
- ✅ 场景描述和镜头设计
|
- ✅ 场景描述和镜头设计
|
||||||
- ✅ 分镜图片生成(文生图)
|
- ✅ 分镜图片生成(文生图)
|
||||||
- ✅ 帧类型选择(首帧/关键帧/尾帧/分镜板)
|
- ✅ 帧类型选择(首帧/关键帧/尾帧/分镜板)
|
||||||
|
|
||||||
### 🎥 视频生成
|
### 🎥 视频生成
|
||||||
|
|
||||||
- ✅ 图生视频自动生成
|
- ✅ 图生视频自动生成
|
||||||
- ✅ 视频合成和剪辑
|
- ✅ 视频合成和剪辑
|
||||||
- ✅ 转场效果
|
- ✅ 转场效果
|
||||||
|
|
||||||
### 📦 资源管理
|
### 📦 资源管理
|
||||||
|
|
||||||
- ✅ 素材库统一管理
|
- ✅ 素材库统一管理
|
||||||
- ✅ 本地存储支持
|
- ✅ 本地存储支持
|
||||||
- ✅ 资源导入导出
|
- ✅ 资源导入导出
|
||||||
@@ -90,31 +94,34 @@ Huobao Drama is an AI-powered short drama production platform that automates the
|
|||||||
|
|
||||||
### 📋 环境要求
|
### 📋 环境要求
|
||||||
|
|
||||||
| 软件 | 版本要求 | 说明 |
|
| 软件 | 版本要求 | 说明 |
|
||||||
|------|---------|------|
|
| ----------- | -------- | -------------------- |
|
||||||
| **Go** | 1.23+ | 后端运行环境 |
|
| **Go** | 1.23+ | 后端运行环境 |
|
||||||
| **Node.js** | 18+ | 前端构建环境 |
|
| **Node.js** | 18+ | 前端构建环境 |
|
||||||
| **npm** | 9+ | 包管理工具 |
|
| **npm** | 9+ | 包管理工具 |
|
||||||
| **FFmpeg** | 4.0+ | 视频处理(**必需**) |
|
| **FFmpeg** | 4.0+ | 视频处理(**必需**) |
|
||||||
| **SQLite** | 3.x | 数据库(已内置) |
|
| **SQLite** | 3.x | 数据库(已内置) |
|
||||||
|
|
||||||
#### 安装 FFmpeg
|
#### 安装 FFmpeg
|
||||||
|
|
||||||
**macOS:**
|
**macOS:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
brew install ffmpeg
|
brew install ffmpeg
|
||||||
```
|
```
|
||||||
|
|
||||||
**Ubuntu/Debian:**
|
**Ubuntu/Debian:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install ffmpeg
|
sudo apt install ffmpeg
|
||||||
```
|
```
|
||||||
|
|
||||||
**Windows:**
|
**Windows:**
|
||||||
从 [FFmpeg官网](https://ffmpeg.org/download.html) 下载并配置环境变量
|
从 [FFmpeg 官网](https://ffmpeg.org/download.html) 下载并配置环境变量
|
||||||
|
|
||||||
验证安装:
|
验证安装:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ffmpeg -version
|
ffmpeg -version
|
||||||
```
|
```
|
||||||
@@ -134,7 +141,7 @@ vim configs/config.yaml
|
|||||||
app:
|
app:
|
||||||
name: "Huobao Drama API"
|
name: "Huobao Drama API"
|
||||||
version: "1.0.0"
|
version: "1.0.0"
|
||||||
debug: true # 开发环境设为true,生产环境设为false
|
debug: true # 开发环境设为true,生产环境设为false
|
||||||
|
|
||||||
server:
|
server:
|
||||||
port: 5678
|
port: 5678
|
||||||
@@ -162,13 +169,14 @@ ai:
|
|||||||
```
|
```
|
||||||
|
|
||||||
**重要配置项:**
|
**重要配置项:**
|
||||||
- `app.debug`: 调试模式开关(开发环境建议设为true)
|
|
||||||
|
- `app.debug`: 调试模式开关(开发环境建议设为 true)
|
||||||
- `server.port`: 服务运行端口
|
- `server.port`: 服务运行端口
|
||||||
- `server.cors_origins`: 允许跨域访问的前端地址
|
- `server.cors_origins`: 允许跨域访问的前端地址
|
||||||
- `database.path`: SQLite数据库文件路径
|
- `database.path`: SQLite 数据库文件路径
|
||||||
- `storage.local_path`: 本地文件存储路径
|
- `storage.local_path`: 本地文件存储路径
|
||||||
- `storage.base_url`: 静态资源访问URL
|
- `storage.base_url`: 静态资源访问 URL
|
||||||
- `ai.default_*_provider`: AI服务提供商配置(在Web界面中配置具体的API Key)
|
- `ai.default_*_provider`: AI 服务提供商配置(在 Web 界面中配置具体的 API Key)
|
||||||
|
|
||||||
### 📥 安装依赖
|
### 📥 安装依赖
|
||||||
|
|
||||||
@@ -202,12 +210,12 @@ npm run dev
|
|||||||
```
|
```
|
||||||
|
|
||||||
- 前端地址: `http://localhost:3012`
|
- 前端地址: `http://localhost:3012`
|
||||||
- 后端API: `http://localhost:5678/api/v1`
|
- 后端 API: `http://localhost:5678/api/v1`
|
||||||
- 前端自动代理API请求到后端
|
- 前端自动代理 API 请求到后端
|
||||||
|
|
||||||
#### 方式二:单服务模式
|
#### 方式二:单服务模式
|
||||||
|
|
||||||
**后端同时提供API和前端静态文件**
|
**后端同时提供 API 和前端静态文件**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. 构建前端
|
# 1. 构建前端
|
||||||
@@ -223,7 +231,7 @@ go run main.go
|
|||||||
|
|
||||||
### 🗄️ 数据库初始化
|
### 🗄️ 数据库初始化
|
||||||
|
|
||||||
数据库表会在首次启动时自动创建(使用GORM AutoMigrate),无需手动迁移。
|
数据库表会在首次启动时自动创建(使用 GORM AutoMigrate),无需手动迁移。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -262,12 +270,14 @@ docker logs -f huobao-drama
|
|||||||
```
|
```
|
||||||
|
|
||||||
**本地构建**(可选):
|
**本地构建**(可选):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker build -t huobao-drama:latest .
|
docker build -t huobao-drama:latest .
|
||||||
docker run -d --name huobao-drama -p 5678:5678 -v $(pwd)/data:/app/data huobao-drama:latest
|
docker run -d --name huobao-drama -p 5678:5678 -v $(pwd)/data:/app/data huobao-drama:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
**Docker 部署优势:**
|
**Docker 部署优势:**
|
||||||
|
|
||||||
- ✅ 开箱即用,内置默认配置
|
- ✅ 开箱即用,内置默认配置
|
||||||
- ✅ 环境一致性,避免依赖问题
|
- ✅ 环境一致性,避免依赖问题
|
||||||
- ✅ 一键启动,无需安装 Go、Node.js、FFmpeg
|
- ✅ 一键启动,无需安装 Go、Node.js、FFmpeg
|
||||||
@@ -282,6 +292,7 @@ docker run -d --name huobao-drama -p 5678:5678 -v $(pwd)/data:/app/data huobao-d
|
|||||||
**配置步骤:**
|
**配置步骤:**
|
||||||
|
|
||||||
1. **宿主机启动服务(监听所有接口)**
|
1. **宿主机启动服务(监听所有接口)**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export OLLAMA_HOST=0.0.0.0:11434 && ollama serve
|
export OLLAMA_HOST=0.0.0.0:11434 && ollama serve
|
||||||
```
|
```
|
||||||
@@ -308,12 +319,14 @@ go build -o huobao-drama .
|
|||||||
```
|
```
|
||||||
|
|
||||||
生成文件:
|
生成文件:
|
||||||
|
|
||||||
- `huobao-drama` - 后端可执行文件
|
- `huobao-drama` - 后端可执行文件
|
||||||
- `web/dist/` - 前端静态文件(已嵌入后端)
|
- `web/dist/` - 前端静态文件(已嵌入后端)
|
||||||
|
|
||||||
#### 2. 准备部署文件
|
#### 2. 准备部署文件
|
||||||
|
|
||||||
需要上传到服务器的文件:
|
需要上传到服务器的文件:
|
||||||
|
|
||||||
```
|
```
|
||||||
huobao-drama # 后端可执行文件
|
huobao-drama # 后端可执行文件
|
||||||
configs/config.yaml # 配置文件
|
configs/config.yaml # 配置文件
|
||||||
@@ -374,6 +387,7 @@ WantedBy=multi-user.target
|
|||||||
```
|
```
|
||||||
|
|
||||||
启动服务:
|
启动服务:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
sudo systemctl enable huobao-drama
|
sudo systemctl enable huobao-drama
|
||||||
@@ -403,11 +417,13 @@ sudo systemctl restart huobao-drama
|
|||||||
```
|
```
|
||||||
|
|
||||||
**原因说明**:
|
**原因说明**:
|
||||||
|
|
||||||
- SQLite 需要对数据库文件 **和** 所在目录都有写权限
|
- SQLite 需要对数据库文件 **和** 所在目录都有写权限
|
||||||
- 需要在目录中创建临时文件(如 `-wal`、`-journal`)
|
- 需要在目录中创建临时文件(如 `-wal`、`-journal`)
|
||||||
- **关键**:确保 systemd 配置中的 `User` 与数据目录所有者一致
|
- **关键**:确保 systemd 配置中的 `User` 与数据目录所有者一致
|
||||||
|
|
||||||
**常用用户名**:
|
**常用用户名**:
|
||||||
|
|
||||||
- Ubuntu/Debian: `www-data`、`ubuntu`
|
- Ubuntu/Debian: `www-data`、`ubuntu`
|
||||||
- CentOS/RHEL: `nginx`、`apache`
|
- CentOS/RHEL: `nginx`、`apache`
|
||||||
- 自定义部署: `deploy`、`app`、当前登录用户
|
- 自定义部署: `deploy`、`app`、当前登录用户
|
||||||
@@ -438,24 +454,27 @@ server {
|
|||||||
## 🎨 技术栈
|
## 🎨 技术栈
|
||||||
|
|
||||||
### 后端技术
|
### 后端技术
|
||||||
|
|
||||||
- **语言**: Go 1.23+
|
- **语言**: Go 1.23+
|
||||||
- **Web框架**: Gin 1.9+
|
- **Web 框架**: Gin 1.9+
|
||||||
- **ORM**: GORM
|
- **ORM**: GORM
|
||||||
- **数据库**: SQLite
|
- **数据库**: SQLite
|
||||||
- **日志**: Zap
|
- **日志**: Zap
|
||||||
- **视频处理**: FFmpeg
|
- **视频处理**: FFmpeg
|
||||||
- **AI服务**: OpenAI、Gemini、火山等
|
- **AI 服务**: OpenAI、Gemini、火山等
|
||||||
|
|
||||||
### 前端技术
|
### 前端技术
|
||||||
|
|
||||||
- **框架**: Vue 3.4+
|
- **框架**: Vue 3.4+
|
||||||
- **语言**: TypeScript 5+
|
- **语言**: TypeScript 5+
|
||||||
- **构建工具**: Vite 5
|
- **构建工具**: Vite 5
|
||||||
- **UI组件**: Element Plus
|
- **UI 组件**: Element Plus
|
||||||
- **CSS框架**: TailwindCSS
|
- **CSS 框架**: TailwindCSS
|
||||||
- **状态管理**: Pinia
|
- **状态管理**: Pinia
|
||||||
- **路由**: Vue Router 4
|
- **路由**: Vue Router 4
|
||||||
|
|
||||||
### 开发工具
|
### 开发工具
|
||||||
|
|
||||||
- **包管理**: Go Modules, npm
|
- **包管理**: Go Modules, npm
|
||||||
- **代码规范**: ESLint, Prettier
|
- **代码规范**: ESLint, Prettier
|
||||||
- **版本控制**: Git
|
- **版本控制**: Git
|
||||||
@@ -465,20 +484,25 @@ server {
|
|||||||
## 📝 常见问题
|
## 📝 常见问题
|
||||||
|
|
||||||
### Q: Docker 容器如何访问宿主机的 Ollama?
|
### Q: Docker 容器如何访问宿主机的 Ollama?
|
||||||
|
|
||||||
A: 使用 `http://host.docker.internal:11434/v1` 作为 Base URL。注意两点:
|
A: 使用 `http://host.docker.internal:11434/v1` 作为 Base URL。注意两点:
|
||||||
|
|
||||||
1. 宿主机 Ollama 需监听 `0.0.0.0`:`export OLLAMA_HOST=0.0.0.0:11434 && ollama serve`
|
1. 宿主机 Ollama 需监听 `0.0.0.0`:`export OLLAMA_HOST=0.0.0.0:11434 && ollama serve`
|
||||||
2. Linux 用户使用 `docker run` 需添加:`--add-host=host.docker.internal:host-gateway`
|
2. Linux 用户使用 `docker run` 需添加:`--add-host=host.docker.internal:host-gateway`
|
||||||
|
|
||||||
详见:[DOCKER_HOST_ACCESS.md](docs/DOCKER_HOST_ACCESS.md)
|
详见:[DOCKER_HOST_ACCESS.md](docs/DOCKER_HOST_ACCESS.md)
|
||||||
|
|
||||||
### Q: FFmpeg未安装或找不到?
|
### Q: FFmpeg 未安装或找不到?
|
||||||
A: 确保FFmpeg已安装并在PATH环境变量中。运行 `ffmpeg -version` 验证。
|
|
||||||
|
A: 确保 FFmpeg 已安装并在 PATH 环境变量中。运行 `ffmpeg -version` 验证。
|
||||||
|
|
||||||
|
### Q: 前端无法连接后端 API?
|
||||||
|
|
||||||
### Q: 前端无法连接后端API?
|
|
||||||
A: 检查后端是否启动,端口是否正确。开发模式下前端代理配置在 `web/vite.config.ts`。
|
A: 检查后端是否启动,端口是否正确。开发模式下前端代理配置在 `web/vite.config.ts`。
|
||||||
|
|
||||||
### Q: 数据库表未创建?
|
### Q: 数据库表未创建?
|
||||||
A: GORM会在首次启动时自动创建表,检查日志确认迁移是否成功。
|
|
||||||
|
A: GORM 会在首次启动时自动创建表,检查日志确认迁移是否成功。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -487,6 +511,7 @@ A: GORM会在首次启动时自动创建表,检查日志确认迁移是否成
|
|||||||
### v1.0.2 (2026-01-16)
|
### v1.0.2 (2026-01-16)
|
||||||
|
|
||||||
#### 🚀 重大更新
|
#### 🚀 重大更新
|
||||||
|
|
||||||
- SQLite 纯 Go 驱动(`modernc.org/sqlite`),支持 `CGO_ENABLED=0` 跨平台编译
|
- SQLite 纯 Go 驱动(`modernc.org/sqlite`),支持 `CGO_ENABLED=0` 跨平台编译
|
||||||
- 优化并发性能(WAL 模式),解决 "database is locked" 错误
|
- 优化并发性能(WAL 模式),解决 "database is locked" 错误
|
||||||
- Docker 跨平台支持 `host.docker.internal` 访问宿主机服务
|
- Docker 跨平台支持 `host.docker.internal` 访问宿主机服务
|
||||||
@@ -495,6 +520,7 @@ A: GORM会在首次启动时自动创建表,检查日志确认迁移是否成
|
|||||||
### v1.0.1 (2026-01-14)
|
### v1.0.1 (2026-01-14)
|
||||||
|
|
||||||
#### 🐛 Bug Fixes / 🔧 Improvements
|
#### 🐛 Bug Fixes / 🔧 Improvements
|
||||||
|
|
||||||
- 修复视频生成 API 响应解析问题
|
- 修复视频生成 API 响应解析问题
|
||||||
- 添加 OpenAI Sora 视频端点配置
|
- 添加 OpenAI Sora 视频端点配置
|
||||||
- 优化错误处理和日志输出
|
- 优化错误处理和日志输出
|
||||||
@@ -513,13 +539,28 @@ A: GORM会在首次启动时自动创建表,检查日志确认迁移是否成
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## API配置站点
|
## API 配置站点
|
||||||
2分钟完成配置:[API聚合站点](https://api.chatfire.site/models)
|
|
||||||
|
2 分钟完成配置:[API 聚合站点](https://api.chatfire.site/models)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 👨💻 关于我们
|
||||||
|
|
||||||
|
**AI 火宝 - AI 工作室创业中**
|
||||||
|
|
||||||
|
- 🏠 **位置**: 中国南京
|
||||||
|
- 🚀 **状态**: 创业中
|
||||||
|
- 📧 **Email**: [18550175439@163.com](mailto:18550175439@163.com)
|
||||||
|
- 💬 **微信**: dangbao1117 (私人微信不解答任何技术问题)
|
||||||
|
- 🐙 **GitHub**: [https://github.com/chatfire-AI/huobao-drama](https://github.com/chatfire-AI/huobao-drama)
|
||||||
|
|
||||||
|
> _"让 AI 帮我们做更有创造力的事"_
|
||||||
|
|
||||||
## 📧 联系方式
|
|
||||||
商务联系V:dangbao1117
|
|
||||||
## 项目交流群
|
## 项目交流群
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
- 提交 [Issue](../../issues)
|
- 提交 [Issue](../../issues)
|
||||||
- 发送邮件至项目维护者
|
- 发送邮件至项目维护者
|
||||||
|
|
||||||
@@ -527,7 +568,8 @@ A: GORM会在首次启动时自动创建表,检查日志确认迁移是否成
|
|||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
**⭐ 如果这个项目对你有帮助,请给一个Star!**
|
**⭐ 如果这个项目对你有帮助,请给一个 Star!**
|
||||||
|
|
||||||
## Star History
|
## Star History
|
||||||
|
|
||||||
[](https://www.star-history.com/#chatfire-AI/huobao-drama&type=date&legend=top-left)
|
[](https://www.star-history.com/#chatfire-AI/huobao-drama&type=date&legend=top-left)
|
||||||
|
|||||||
Reference in New Issue
Block a user