mirror of
https://github.com/HBAI-Ltd/Toonflow-app.git
synced 2026-05-30 23:34:20 +08:00
731 lines
32 KiB
Markdown
731 lines
32 KiB
Markdown
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=6,11,20&height=200§ion=header&text=Toonflow&fontSize=90&fontColor=ffffff&animation=fadeIn&fontAlignY=50" width="100%"/>
|
||
|
||
<p>
|
||
<a href="https://github.com/HBAI-Ltd/Toonflow-app">
|
||
<img src="https://img.shields.io/badge/GitHub-181717?style=flat-square&logo=github&logoColor=white" alt="GitHub" />
|
||
</a>
|
||
|
|
||
<a href="https://gitee.com/HBAI-Ltd/Toonflow-app">
|
||
<img src="https://img.shields.io/badge/Gitee-C71D23?style=flat-square&logo=gitee&logoColor=white" alt="Gitee" />
|
||
</a>
|
||
|
|
||
<a href="https://gitcode.com/HBAI-Ltd/Toonflow-app">
|
||
<img src="./atomgitLogo.svg" alt="Atomgit" style="height:20px"/>
|
||
</a>
|
||
</p>
|
||
|
||
<p align="center">
|
||
<a href="../README.md">简体中文</a> |
|
||
<a href="./README.zhtw.md">繁體中文</a> |
|
||
<a href="./README.en.md">English</a> |
|
||
<a href="./README.th.md">ไทย</a> |
|
||
<strong>Tiếng Việt</strong> |
|
||
<a href="./README.ja.md">日本語</a> |
|
||
<a href="./README.ru.md">Русский</a>
|
||
</p>
|
||
|
||
<div align="center">
|
||
|
||
<img src="./logo.png" alt="Toonflow Logo" height="120"/>
|
||
|
||
[](https://git.io/typing-svg)
|
||
|
||
<p align="center">
|
||
<a href="https://github.com/HBAI-Ltd/Toonflow-app/stargazers">
|
||
<img src="https://img.shields.io/github/stars/HBAI-Ltd/Toonflow-app?style=for-the-badge&logo=github" alt="Huy hiệu Sao" />
|
||
</a>
|
||
<a href="https://www.apache.org/licenses/LICENSE-2.0" target="_blank">
|
||
<img src="https://img.shields.io/badge/Giấy phép-Apache%202.0-blue.svg?style=for-the-badge" alt="Huy hiệu Giấy phép Apache-2.0" />
|
||
</a>
|
||
<a href="https://github.com/HBAI-Ltd/Toonflow-app/releases">
|
||
<img alt="release" src="https://img.shields.io/github/v/release/HBAI-Ltd/Toonflow-app?style=for-the-badge" />
|
||
</a>
|
||
</p>
|
||
<p align="center">
|
||
<a href="https://github.com/HBAI-Ltd/Toonflow-app/network/members">
|
||
<img src="https://img.shields.io/github/forks/HBAI-Ltd/Toonflow-app?style=for-the-badge&logo=github&color=orange" alt="Huy hiệu Fork" />
|
||
</a>
|
||
<a href="https://atomgit.com/HBAI-Ltd/Toonflow-app">
|
||
<img src="https://img.shields.io/badge/AtomGit-G--Star%20No.540-FF6B35?style=for-the-badge&logo=git&logoColor=white" alt="AtomGit G-Star Số 540" />
|
||
</a>
|
||
<a href="https://discord.gg/HEjKmpNpAZ">
|
||
<img src="https://img.shields.io/badge/Discord-Cộng+đồng-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Discord" />
|
||
</a>
|
||
</p>
|
||
<p align="center">
|
||
<a href="https://github.com/HBAI-Ltd/Toonflow-app/issues">
|
||
<img src="https://img.shields.io/github/issues/HBAI-Ltd/Toonflow-app?style=for-the-badge&color=F48D73" alt="Vấn đề" />
|
||
</a>
|
||
<a href="https://github.com/HBAI-Ltd/Toonflow-app/graphs/contributors">
|
||
<img src="https://img.shields.io/github/contributors/HBAI-Ltd/Toonflow-app?style=for-the-badge&color=2088FF" alt="Người đóng góp" />
|
||
</a>
|
||
<a href="https://github.com/HBAI-Ltd/Toonflow-app/commits">
|
||
<img src="https://img.shields.io/github/last-commit/HBAI-Ltd/Toonflow-app?style=for-the-badge&color=blueviolet" alt="Cam kết cuối" />
|
||
</a>
|
||
</p>
|
||
<p align="center">
|
||
<img src="https://ziadoua.github.io/m3-Markdown-Badges/badges/TypeScript/typescript2.svg" alt="TypeScript" />
|
||
<img src="https://ziadoua.github.io/m3-Markdown-Badges/badges/NodeJS/nodejs2.svg" alt="Node.js" />
|
||
<img src="https://ziadoua.github.io/m3-Markdown-Badges/badges/Docker/docker2.svg" alt="Docker" />
|
||
<img src="https://ziadoua.github.io/m3-Markdown-Badges/badges/Electron/electron2.svg" alt="Electron" />
|
||
</p>
|
||
<p align="center">
|
||
<img src="https://mobaicons.com/icons/typescript,nodejs,electron,docker,socket?perline=5" alt="Biểu tượng Công nghệ" />
|
||
</p>
|
||
<p align="center">
|
||
<img src="https://widgetbite.com/stats/HBAI-Ltd" alt="Khách truy cập" />
|
||
</p>
|
||
|
||
> 🚀 **Quy trình sản xuất phim ngắn tất cả trong một**: Từ văn bản đến nhân vật, từ phân cảnh đến video, toàn bộ quy trình AI không rào cản, nâng cao hiệu suất sáng tạo lên hơn 10 lần!
|
||
</div>
|
||
|
||
<div align="center">
|
||
<a href="./g-star.png" target="_blank">
|
||
<img src="./g-star.png" alt="Chứng nhận AtomGit G-Star" width="100%"/>
|
||
</a>
|
||
</div>
|
||
|
||
---
|
||
|
||
# 🌐 Hỗ trợ đa ngôn ngữ
|
||
|
||
Toonflow hỗ trợ giao diện các ngôn ngữ sau:
|
||
|
||
| Ngôn ngữ | Ngôn ngữ |
|
||
| ---------- | --------------------- |
|
||
| 简体中文 | Tiếng Trung (Giản thể) |
|
||
| 繁體中文 | Tiếng Trung (Phồn thể) |
|
||
| English | Tiếng Anh |
|
||
| ไทย | Tiếng Thái |
|
||
| Tiếng Việt | Tiếng Việt |
|
||
| 日本語 | Tiếng Nhật |
|
||
| Русский | Tiếng Nga |
|
||
|
||
> 💡 Đang thích ứng thêm nhiều ngôn ngữ, hoan nghênh đóng góp bản dịch!
|
||
|
||
---
|
||
|
||
# 🌟 Chức năng chính
|
||
|
||
Toonflow là một bàn làm việc AI dành cho sản xuất phim ngắn, xoay quanh quy trình "Lên kế hoạch → Viết kịch bản → Phân cảnh → Xuất phim" để tạo thành một vòng lặp hoàn chỉnh, đồng thời hỗ trợ quy trình sản xuất có thể bản địa hóa, có thể lập trình và liên tục cải tiến.
|
||
|
||
- ✅ **Bàn làm việc sản xuất trên Canvas vô hạn**
|
||
Tổ chức kịch bản, nhân vật, phân cảnh, tài liệu và nút video dưới dạng canvas vô hạn, hỗ trợ sắp xếp tự do, quay lui và sản xuất song song, không bị giới hạn bởi các bước tuyến tính.
|
||
- ✅ **Hệ thống cộng tác Agent ba lớp**
|
||
Lớp ra quyết định, lớp thực thi và lớp giám sát làm việc cùng nhau, bao gồm phân rã nhiệm vụ, tạo nội dung, đánh giá chất lượng và phản hồi sửa đổi, nâng cao tính ổn định và nhất quán của thành phẩm.
|
||
- ✅ **Bộ nhớ Agent bền vững**
|
||
Hệ thống bộ nhớ xuyên phiên dựa trên truy xuất vector ONNX cục bộ, hỗ trợ tin nhắn ngắn hạn, tóm tắt dài hạn và truy xuất ngữ nghĩa, đảm bảo tính liên tục của sáng tạo qua nhiều vòng.
|
||
- ✅ **Hệ thống nhà cung cấp có thể lập trình**
|
||
Hỗ trợ viết trực tiếp logic TypeScript của nhà cung cấp trong trung tâm cài đặt và có hiệu lực ngay lập tức, không cần sửa mã nguồn hoặc khởi động lại, thuận tiện cho việc tư nhân hóa và kết nối đa mô hình.
|
||
- ✅ **Chuyển thể dựa trên đồ thị sự kiện chương**
|
||
Tự động trích xuất các sự kiện chương của tác phẩm gốc và lưu trữ có cấu trúc, chuyển thể kịch bản gọi ngữ cảnh chính xác theo đồ thị sự kiện, giảm mất thông tin văn bản dài.
|
||
- ✅ **Cấu hình Skill dưới dạng tệp**
|
||
Lời nhắc cốt lõi của ScriptAgent và ProductionAgent được ngoại hóa thành các tệp Markdown Skill, hỗ trợ chỉnh sửa trực tuyến và tối ưu hóa nhanh chóng.
|
||
|
||
---
|
||
|
||
# 📦 Kịch bản ứng dụng
|
||
|
||
- Sáng tạo nội dung video ngắn
|
||
- Thử nghiệm điện ảnh hóa tiểu thuyết
|
||
- Công cụ chuyển thể văn học AI
|
||
- Phát triển kịch bản và tạo mẫu nhanh
|
||
- Tạo tài liệu video
|
||
|
||
---
|
||
|
||
# 🔰 Hướng dẫn sử dụng
|
||
|
||
## Bắt đầu nhanh
|
||
|
||
1. Khởi động ứng dụng và đăng nhập (tài khoản mặc định: `admin` / `admin123`).
|
||
2. Hoàn tất cấu hình nhà cung cấp mô hình trong trung tâm cài đặt (mô hình văn bản/hình ảnh/video).
|
||
3. Tạo dự án mới và nhập tác phẩm gốc, thực hiện trích xuất sự kiện chương.
|
||
4. Vào ScriptAgent để tạo khung cốt truyện, chiến lược chuyển thể và kịch bản có cấu trúc.
|
||
5. Chuyển sang ProductionAgent, tổ chức các nút phân cảnh, tài liệu và video trong canvas vô hạn.
|
||
6. Tinh chỉnh từng nút cho ảnh phân cảnh rồi đưa trở lại bàn làm việc, hoàn tất ghép nối và xuất video.
|
||
|
||
## 📺 Hướng dẫn bằng video
|
||
|
||
https://www.bilibili.com/video/BV1oXD7BqEqJ
|
||
[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||
|
||
**Toonflow 12 phút bắt đầu nhanh với AI Video**
|
||
👉 [Nhấp để xem](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||
|
||
📱 Quét mã QR bằng WeChat để xem
|
||
|
||
<img src="./videoQR.png" alt="Quét mã QR WeChat để xem" width="150"/>
|
||
|
||
---
|
||
|
||
# 📸 Ảnh chụp màn hình và video trình diễn
|
||
|
||
Các ảnh chụp màn hình và video dưới đây đến từ một bản demo phim ngắn AI được tạo bằng Toonflow, toàn bộ quá trình hoàn thành trong khoảng 2 giờ, bao gồm tạo kịch bản, làm phân cảnh và chỉnh sửa.
|
||
|
||
<div align="center">
|
||
<table>
|
||
<tr>
|
||
<td width="50%"><a href="./screenshot/1.png" target="_blank"><img src="./screenshot/1.png" width="100%"/></a></td>
|
||
<td width="50%"><a href="./screenshot/2.png" target="_blank"><img src="./screenshot/2.png" width="100%"/></a></td>
|
||
</tr>
|
||
<tr>
|
||
<td width="50%"><a href="./screenshot/3.png" target="_blank"><img src="./screenshot/3.png" width="100%"/></a></td>
|
||
<td width="50%"><a href="./screenshot/4.png" target="_blank"><img src="./screenshot/4.png" width="100%"/></a></td>
|
||
</tr>
|
||
<tr>
|
||
<td width="50%"><a href="./screenshot/5.png" target="_blank"><img src="./screenshot/5.png" width="100%"/></a></td>
|
||
<td width="50%"><a href="./screenshot/6.png" target="_blank"><img src="./screenshot/6.png" width="100%"/></a></td>
|
||
</tr>
|
||
<tr>
|
||
<td width="50%"><a href="./screenshot/7.png" target="_blank"><img src="./screenshot/7.png" width="100%"/></a></td>
|
||
<td width="50%"><a href="./screenshot/8.png" target="_blank"><img src="./screenshot/8.png" width="100%"/></a></td>
|
||
</tr>
|
||
<tr>
|
||
<td width="50%"><a href="./screenshot/9.png" target="_blank"><img src="./screenshot/9.png" width="100%"/></a></td>
|
||
<td width="50%"><a href="./screenshot/10.png" target="_blank"><img src="./screenshot/10.png" width="100%"/></a></td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
## 🎬 Video Demo
|
||
|
||
<div align="center">
|
||
|
||
https://github.com/user-attachments/assets/2d9fddac-dfdf-4640-b030-b09d7f7287e9
|
||
|
||
Nếu không phát được, vui lòng [nhấp để tải video](./screenshot/demo.mp4)
|
||
|
||
</div>
|
||
|
||
## Thông tin Demo
|
||
|
||
| Dự án | Chi tiết |
|
||
| :--- | :--- |
|
||
| Thời gian sản xuất | Khoảng 2 giờ |
|
||
| Mô hình video | Seedance 2.0 |
|
||
| Mô hình hình ảnh | GPT Image 2 |
|
||
| Mô hình ngôn ngữ | Claude Opus 4.6 |
|
||
| Tổng thời lượng thành phẩm | Khoảng 2 phút (tài liệu gốc 3 phút, cắt bỏ cảnh lỗi khoảng 1 phút) |
|
||
|
||
## Chi phí chi tiết
|
||
|
||
| Loại mô hình | Chi phí |
|
||
| :--- | :--- |
|
||
| Mô hình ngôn ngữ | Khoảng ¥10 |
|
||
| Mô hình video (tạo toàn bộ) | Khoảng ¥120 |
|
||
| Mô hình hình ảnh | Dưới ¥1 |
|
||
| **Tổng cộng** | **Khoảng ¥130** |
|
||
|
||
> **Tuyên bố**: Độ phân giải gốc của Demo là 1080×1882, phiên bản phát hành đã được nén xuống 480p. Nếu có vấn đề về bản quyền, vui lòng liên hệ chúng tôi để xóa bỏ.
|
||
|
||
---
|
||
|
||
# 🚀 Cài đặt
|
||
|
||
## Điều kiện tiên quyết
|
||
|
||
Trước khi cài đặt và sử dụng phần mềm này, vui lòng chuẩn bị những nội dung sau:
|
||
|
||
- ✅ Địa chỉ giao diện dịch vụ AI mô hình ngôn ngữ lớn
|
||
- ✅ Địa chỉ giao diện dịch vụ video Sora hoặc Doubao
|
||
- ✅ Giao diện dịch vụ mô hình tạo hình ảnh Nano Banana Pro
|
||
|
||
## Cài đặt máy
|
||
|
||
### 1. Tải xuống và cài đặt
|
||
|
||
| Hệ điều hành | GitHub | Ghi chú |
|
||
| :------: |:------------------------------------------------------------|:------------- |
|
||
| Windows | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | Gói cài đặt chính thức |
|
||
| Linux | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | Gói cài đặt chính thức |
|
||
| macOS | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | Gói cài đặt chính thức |
|
||
|
||
> [!CAUTION]
|
||
> Hệ thống MacOS vui lòng vào Cài đặt-Quyền riêng tư & Bảo mật để cấu hình bảo mật, nếu không có thể không mở được do vấn đề chứng chỉ
|
||
>
|
||
> Tham khảo tài liệu Zhihu: [https://www.zhihu.com/question/433389276](https://www.zhihu.com/question/433389276)
|
||
|
||
> Do hạn chế về môi trường của Gitee OS và giới hạn kích thước tải lên tệp Release, tạm thời không cung cấp địa chỉ tải xuống Gitee Release.
|
||
|
||
### 2. Khởi động dịch vụ
|
||
|
||
Sau khi cài đặt hoàn tất, khởi động chương trình để bắt đầu sử dụng dịch vụ này.
|
||
|
||
> ⚠️ **Đăng nhập lần đầu**
|
||
> Tài khoản: `admin`
|
||
> Mật khẩu: `admin123`
|
||
|
||
## Triển khai Docker
|
||
|
||
### Điều kiện tiên quyết
|
||
|
||
- Đã cài đặt [Docker](https://docs.docker.com/get-docker/) (phiên bản 20.10+)
|
||
|
||
### Cách 1: Triển khai trực tuyến
|
||
|
||
Đang hoàn thiện, tạm thời sử dụng bản dựng cục bộ.
|
||
|
||
### Cách 2: Dựng cục bộ
|
||
|
||
Sử dụng mã nguồn có sẵn tại địa phương để xây dựng trực tiếp, phù hợp với nhà phát triển hoặc người dùng đã clone kho lưu trữ, điều này yêu cầu bạn cài đặt git cục bộ:
|
||
|
||
```shell
|
||
# Đầu tiên clone dự án (nếu đã có thì bỏ qua)
|
||
git clone https://github.com/HBAI-Ltd/Toonflow-app.git
|
||
cd Toonflow-app
|
||
|
||
# Sử dụng docker-compose để xây dựng và khởi động cục bộ
|
||
yarn docker:local
|
||
|
||
# Hoặc xây dựng thủ công
|
||
docker build -t toonflow .
|
||
docker run -d -p <cổng_local>:10588 -v <đường_dẫn_dữ_liệu_local>:/app/data toonflow
|
||
|
||
# Lúc này, tại đường dẫn /web/index.html của cổng tương ứng có thể truy cập trang
|
||
# Ví dụ http://localhost:10588/web/index.html
|
||
```
|
||
|
||
### Giải thích cổng dịch vụ
|
||
|
||
| Cổng | Mục đích | Ánh xạ triển khai |
|
||
| ------- | -------- | ------------- |
|
||
| `10588` | Giao diện phần mềm | `10588:10588` |
|
||
|
||
**Giải thích biến môi trường:**
|
||
|
||
| Biến | Giải thích |
|
||
| ---------- | ---------------------------------- |
|
||
| `NODE_ENV` | Môi trường chạy, `prod` là môi trường sản xuất |
|
||
| `PORT` | Cổng lắng nghe dịch vụ (mặc định 10588) |
|
||
| `OSSURL` | Địa chỉ truy cập lưu trữ tệp, dùng để truy cập tài nguyên tĩnh |
|
||
|
||
---
|
||
|
||
## Triển khai đám mây
|
||
|
||
### I. Yêu cầu môi trường máy chủ
|
||
|
||
- **Hệ thống**: Ubuntu 20.04+ / CentOS 7+
|
||
- **Node.js**: 24.x (khuyến nghị, tối thiểu 23.11.1+)
|
||
- **Bộ nhớ**: 2GB+
|
||
|
||
### II. Triển khai máy chủ
|
||
|
||
#### 1. Cài đặt môi trường
|
||
|
||
```bash
|
||
# Cài đặt Node.js
|
||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
||
source ~/.bashrc
|
||
nvm install 24
|
||
# Cài đặt Yarn và PM2
|
||
npm install -g yarn pm2
|
||
```
|
||
|
||
#### 2. Triển khai dự án
|
||
|
||
**Clone từ GitHub:**
|
||
|
||
```bash
|
||
cd /opt
|
||
git clone https://github.com/HBAI-Ltd/Toonflow-app.git
|
||
cd Toonflow-app
|
||
yarn install
|
||
yarn build
|
||
```
|
||
|
||
**Clone từ Gitee (khuyến nghị cho nội địa Trung Quốc):**
|
||
|
||
```bash
|
||
cd /opt
|
||
git clone https://gitee.com/HBAI-Ltd/Toonflow-app.git
|
||
cd Toonflow-app
|
||
yarn install
|
||
yarn build
|
||
```
|
||
|
||
#### 3. Cấu hình PM2
|
||
|
||
Tạo tệp `pm2.json`:
|
||
|
||
```json
|
||
{
|
||
"name": "toonflow-app",
|
||
"script": "data/serve/app.js",
|
||
"instances": "max",
|
||
"exec_mode": "cluster",
|
||
"env": {
|
||
"NODE_ENV": "prod",
|
||
"PORT": 10588,
|
||
"OSSURL": "http://127.0.0.1:10588/"
|
||
}
|
||
}
|
||
```
|
||
|
||
**Giải thích biến môi trường:**
|
||
|
||
| Biến | Giải thích |
|
||
| ---------- | ---------------------------------- |
|
||
| `NODE_ENV` | Môi trường chạy, `prod` là môi trường sản xuất |
|
||
| `PORT` | Cổng lắng nghe dịch vụ |
|
||
| `OSSURL` | Địa chỉ truy cập lưu trữ tệp, dùng để truy cập tài nguyên tĩnh |
|
||
|
||
---
|
||
|
||
#### 4. Khởi động dịch vụ
|
||
|
||
```bash
|
||
pm2 start pm2.json
|
||
pm2 startup
|
||
pm2 save
|
||
```
|
||
|
||
#### 5. Các lệnh thường dùng
|
||
|
||
```bash
|
||
pm2 list # Xem tiến trình
|
||
pm2 logs toonflow-app # Xem nhật ký
|
||
pm2 restart all # Khởi động lại dịch vụ
|
||
pm2 monit # Bảng điều khiển giám sát
|
||
```
|
||
|
||
> ⚠️ **Đăng nhập lần đầu**
|
||
> Tài khoản: `admin`
|
||
> Mật khẩu: `admin123`
|
||
|
||
#### 6. Triển khai trang web frontend
|
||
|
||
Nếu cần triển khai riêng lẻ hoặc tùy chỉnh giao diện frontend, vui lòng tham khảo kho lưu trữ frontend:
|
||
|
||
- **GitHub**: [Toonflow-web](https://github.com/HBAI-Ltd/Toonflow-web)
|
||
- **Gitee**: [Toonflow-web](https://gitee.com/HBAI-Ltd/Toonflow-web)
|
||
|
||
> 💡 **Ghi chú**: Kho lưu trữ này đã được tích hợp sẵn tài nguyên frontend đã biên dịch, người dùng thông thường không cần triển khai riêng frontend. Kho lưu trữ frontend chỉ dành cho các nhà phát triển cần phát triển thứ cấp.
|
||
|
||
---
|
||
|
||
# 🔧 Hướng dẫn quy trình phát triển
|
||
|
||
> [!CAUTION]
|
||
> 🚧 **Quy tắc gửi PR** 🚧
|
||
>
|
||
> ⛔ Nhánh `master` không chấp nhận bất kỳ PR nào | ✅ Vui lòng gửi PR đến nhánh `develop`
|
||
>
|
||
> Chào mừng các nhà phát triển cùng tham gia xây dựng Toonflow. Nếu có hứng thú tham gia, vui lòng liên hệ quản lý ACT trong nhóm trao đổi.
|
||
|
||
## 🛠️ Tech Stack
|
||
|
||
| Danh mục | Công nghệ |
|
||
| ---------- | ----------------------------------------------------------------------------------------- |
|
||
| Môi trường chạy | Node.js 23.11.1+ |
|
||
| Ngôn ngữ | TypeScript 5.x |
|
||
| Backend Framework | Express 5 |
|
||
| Cơ sở dữ liệu | SQLite (better-sqlite3 / knex) |
|
||
| Tích hợp AI | Vercel AI SDK (OpenAI / Anthropic / Google / DeepSeek / Zhipu / MiniMax / Tongyi Qianwen / xAI) |
|
||
| Suy luận cục bộ | @huggingface/transformers (ONNX) |
|
||
| Giao tiếp thời gian thực | Socket.IO |
|
||
| Ứng dụng desktop | Electron 40 |
|
||
| Xử lý hình ảnh | Sharp |
|
||
| Container hóa | Docker |
|
||
|
||
## Chuẩn bị môi trường phát triển
|
||
|
||
- **Node.js**: Yêu cầu phiên bản 23.11.1 trở lên
|
||
- **Yarn**: Khuyến nghị sử dụng làm trình quản lý gói cho dự án
|
||
|
||
## Khởi động nhanh dự án
|
||
|
||
1. **Clone dự án**
|
||
|
||
**Clone từ GitHub:**
|
||
|
||
```bash
|
||
git clone https://github.com/HBAI-Ltd/Toonflow-app.git
|
||
cd Toonflow-app
|
||
```
|
||
|
||
**Clone từ Gitee (khuyến nghị cho nội địa Trung Quốc):**
|
||
|
||
```bash
|
||
git clone https://gitee.com/HBAI-Ltd/Toonflow-app.git
|
||
cd Toonflow-app
|
||
```
|
||
|
||
2. **Cài đặt phụ thuộc**
|
||
|
||
Vui lòng thực hiện lệnh sau trong thư mục gốc của dự án để cài đặt các phụ thuộc:
|
||
|
||
```bash
|
||
yarn install
|
||
```
|
||
|
||
3. **Khởi động môi trường phát triển**
|
||
|
||
Dự án này bao gồm **Dịch vụ API backend** và **Trang frontend** hai phần, vui lòng chọn cách khởi động theo nhu cầu:
|
||
|
||
- **Cách 1: Chỉ khởi động dịch vụ backend**
|
||
|
||
```bash
|
||
yarn dev
|
||
```
|
||
|
||
> ⚠️ Lệnh này chỉ khởi động dịch vụ API backend (cổng 10588), **không bao gồm trang frontend**. Truy cập trực tiếp `http://localhost:10588` chỉ có thể gọi các API, không thấy được giao diện web đầy đủ. Nếu muốn sử dụng đồng thời trang frontend, vui lòng kết hợp với dự án frontend khởi động riêng, hoặc sử dụng chế độ GUI bên dưới.
|
||
|
||
- **Cách 2: Khởi động ứng dụng desktop Electron**
|
||
|
||
```bash
|
||
yarn dev:gui
|
||
```
|
||
|
||
> Lệnh này sẽ đồng thời khởi động dịch vụ backend và cửa sổ desktop Electron, có sẵn trang frontend tích hợp, dùng ngay, không cần cấu hình thêm. Phù hợp với nhà phát triển muốn trải nghiệm đầy đủ tất cả chức năng.
|
||
|
||
- **Cách 3: Khởi động chế độ sản xuất**
|
||
|
||
```bash
|
||
yarn start
|
||
```
|
||
|
||
> Chạy trực tiếp dịch vụ đã biên dịch ở chế độ sản xuất (cần thực hiện `yarn build` trước).
|
||
|
||
4. **Đóng gói dự án**
|
||
|
||
- Biên dịch và tạo tệp TypeScript:
|
||
|
||
```bash
|
||
yarn build
|
||
```
|
||
|
||
- Đóng gói thành chương trình thực thi cho Windows:
|
||
|
||
```bash
|
||
yarn dist:win
|
||
```
|
||
|
||
- Đóng gói thành chương trình thực thi cho Mac:
|
||
|
||
```bash
|
||
yarn dist:mac
|
||
```
|
||
|
||
- Đóng gói thành chương trình thực thi cho Linux:
|
||
|
||
```bash
|
||
yarn dist:linux
|
||
```
|
||
|
||
5. **Kiểm tra chất lượng mã**
|
||
|
||
- Thực hiện kiểm tra cú pháp và quy tắc toàn cục:
|
||
|
||
```bash
|
||
yarn lint
|
||
```
|
||
|
||
6. **Bảng điều khiển gỡ lỗi AI (Tùy chọn)**
|
||
|
||
Khởi động công cụ gỡ lỗi trực quan của AI SDK, tiện lợi cho việc gỡ lỗi các cuộc gọi AI:
|
||
|
||
```bash
|
||
yarn debug:ai
|
||
```
|
||
|
||
## Phát triển Frontend
|
||
|
||
Nếu muốn sửa đổi giao diện frontend, vui lòng đến kho lưu trữ frontend để phát triển:
|
||
|
||
- **GitHub**: [Toonflow-web](https://github.com/HBAI-Ltd/Toonflow-web)
|
||
- **Gitee**: [Toonflow-web](https://gitee.com/HBAI-Ltd/Toonflow-web)
|
||
|
||
Sau khi xây dựng frontend, sao chép nội dung thư mục `dist` vào thư mục `data/web` của dự án này để tích hợp.
|
||
|
||
## Cấu trúc dự án
|
||
|
||
```
|
||
📂 build/ # Sản phẩm biên dịch
|
||
📂 data/ # Dữ liệu thời gian chạy
|
||
│ ├─ 📂 models/ # Mô hình suy luận cục bộ (ONNX)
|
||
│ ├─ 📂 oss/ # Lưu trữ đối tượng (tài liệu/nhân vật/bối cảnh)
|
||
│ ├─ 📂 serve/ # Điểm vào môi trường sản xuất
|
||
│ ├─ 📂 skills/ # Lời nhắc kỹ năng Agent
|
||
│ └─ 📂 web/ # Sản phẩm biên dịch frontend (tích hợp sẵn)
|
||
📂 docs/ # Tài liệu
|
||
📂 env/ # Cấu hình môi trường
|
||
📂 scripts/ # Tập lệnh xây dựng và hỗ trợ
|
||
📂 src/
|
||
├─ 📂 agents/ # Mô-đun AI Agent
|
||
│ ├─ 📂 productionAgent/ # Agent sản xuất
|
||
│ └─ 📂 scriptAgent/ # Agent kịch bản
|
||
├─ 📂 lib/ # Thư viện công cộng (khởi tạo cơ sở dữ liệu, định dạng phản hồi)
|
||
├─ 📂 middleware/ # Middleware
|
||
├─ 📂 routes/ # Mô-đun định tuyến
|
||
│ ├─ 📂 agents/ # Quản lý bộ nhớ Agent
|
||
│ ├─ 📂 artStyle/ # Quản lý phong cách
|
||
│ ├─ 📂 assets/ # Quản lý tài liệu
|
||
│ ├─ 📂 assetsGenerate/ # Tạo tài liệu
|
||
│ ├─ 📂 cornerScape/ # Quản lý phân cảnh
|
||
│ ├─ 📂 general/ # API chung
|
||
│ ├─ 📂 login/ # Xác thực đăng nhập
|
||
│ ├─ 📂 migrate/ # Di chuyển dữ liệu
|
||
│ ├─ 📂 modelSelect/ # Lựa chọn mô hình
|
||
│ ├─ 📂 novel/ # Quản lý tiểu thuyết
|
||
│ ├─ 📂 other/ # Chức năng khác
|
||
│ ├─ 📂 production/ # Quản lý sản xuất
|
||
│ ├─ 📂 project/ # Quản lý dự án
|
||
│ ├─ 📂 script/ # Tạo kịch bản
|
||
│ ├─ 📂 scriptAgent/ # API Agent kịch bản
|
||
│ ├─ 📂 setting/ # Cài đặt hệ thống
|
||
│ ├─ 📂 task/ # Quản lý tác vụ
|
||
│ └─ 📂 test/ # API kiểm thử
|
||
├─ 📂 socket/ # Giao tiếp thời gian thực WebSocket
|
||
├─ 📂 types/ # Khai báo kiểu TypeScript
|
||
├─ 📂 utils/ # Hàm tiện ích
|
||
├─ 📄 app.ts # Điểm vào ứng dụng
|
||
├─ 📄 core.ts # Khởi tạo lõi
|
||
├─ 📄 env.ts # Xử lý biến môi trường
|
||
├─ 📄 err.ts # Xử lý lỗi
|
||
├─ 📄 logger.ts # Mô-đun nhật ký
|
||
├─ 📄 router.ts # Đăng ký định tuyến
|
||
└─ 📄 utils.ts # Tiện ích chung
|
||
📄 Dockerfile # Tệp xây dựng Docker
|
||
📄 electron-builder.yml # Cấu hình đóng gói Electron
|
||
📄 skillList.json # Danh sách kỹ năng
|
||
📄 LICENSE # Giấy phép (Apache-2.0)
|
||
📄 NOTICES.txt # Tuyên bố phụ thuộc bên thứ ba
|
||
📄 package.json # Cấu hình dự án
|
||
📄 tsconfig.json # Cấu hình TypeScript
|
||
```
|
||
|
||
---
|
||
|
||
# 🔗 Kho lưu trữ liên quan
|
||
|
||
| Kho lưu trữ | Giải thích | GitHub | Gitee |
|
||
| ---------------- | ---------------------------------- | -------------------------------------------------- | ------------------------------------------------ |
|
||
| **Toonflow-app** | Ứng dụng đầy đủ (kho lưu trữ này, khuyến nghị cho người dùng thông thường) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-app) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-app) |
|
||
| **Toonflow-web** | Mã nguồn frontend (phù hợp với nhà phát triển frontend) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-web) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-web) |
|
||
|
||
> 💡 **Gợi ý**: Nếu bạn chỉ muốn sử dụng Toonflow, hãy tải trực tiếp ứng dụng từ kho lưu trữ này. Kho lưu trữ frontend chỉ dành cho các nhà phát triển cần phát triển thứ cấp hoặc tùy chỉnh giao diện frontend.
|
||
|
||
---
|
||
|
||
# 👨👩👧👦 Nhóm WeChat
|
||
|
||
Trợ lý thêm nhóm:
|
||
|
||
<img src="./QR.png" alt="Toonflow QR" height="400"/>
|
||
|
||
Cũng có thể nhấp vào biểu tượng để tham gia Discord:
|
||
|
||
[](https://discord.gg/HEjKmpNpAZ)
|
||
|
||
Hoặc nhấp vào liên kết mời: [https://discord.gg/HEjKmpNpAZ](https://discord.gg/HEjKmpNpAZ)
|
||
|
||
---
|
||
|
||
# 💌 Liên hệ với chúng tôi
|
||
|
||
📧 Email: [ltlctools@outlook.com](mailto:ltlctools@outlook.com?subject=Toonflow咨询)
|
||
|
||
---
|
||
|
||
# 📜 Giấy phép
|
||
|
||
Toonflow được phát hành dưới dạng mã nguồn mở dựa trên giấy phép Apache-2.0, kèm theo thỏa thuận thương mại bổ sung.
|
||
|
||
Chi tiết giấy phép: https://www.apache.org/licenses/LICENSE-2.0
|
||
|
||
## Thỏa thuận bổ sung
|
||
|
||
- Nếu phân phối phần mềm này dưới dạng sản phẩm cho **2 bên thứ ba độc lập trở lên** sử dụng, phải có **giấy phép thương mại bằng văn bản** từ HBAI-Ltd.
|
||
- **≤ 5 pháp nhân** đồng vận hành sử dụng nội bộ, không cung cấp dịch vụ ra bên ngoài, được coi là sử dụng nội bộ, **không cần cấp phép**.
|
||
- Không được xóa hoặc sửa đổi nhãn hiệu hoặc thông tin bản quyền trong Toonflow.
|
||
|
||
## Kịch bản miễn phí vĩnh viễn
|
||
|
||
- ✅ Sử dụng Toonflow để tạo nội dung và nhận chia sẻ doanh thu từ nền tảng
|
||
- ✅ Phát triển thứ cấp cho nhóm của riêng bạn sử dụng nội bộ
|
||
- ✅ ≤ 5 pháp nhân đồng vận hành sử dụng nội bộ
|
||
- ✅ Học tập, nghiên cứu cá nhân, mục đích phi thương mại
|
||
|
||
## Định giá cấp phép thương mại
|
||
|
||
| Giai đoạn | Doanh thu hàng năm | Phí hàng năm |
|
||
|------|---------|------|
|
||
| 🌱 Giai đoạn hỗ trợ | < ¥100.000 | **Đăng ký là được cấp phép miễn phí** |
|
||
| 🚀 Giai đoạn khởi nghiệp | ¥100.000–500.000 | ¥5.000/năm |
|
||
| 📈 Giai đoạn tăng trưởng | ¥500.000–1.500.000 | ¥20.000/năm |
|
||
| 🏢 Giai đoạn quy mô | ¥1.500.000–5.000.000 | ¥80.000/năm |
|
||
| 🌐 Cấp doanh nghiệp | > ¥5.000.000 | Thương lượng |
|
||
|
||
> **Điều khoản không truy thu**: Người dùng đã sử dụng theo AGPL-3.0 trước khi phát hành v1.0.8 tiếp tục thực hiện theo AGPL-3.0, không bị ràng buộc bởi các thay đổi của thỏa thuận này.
|
||
|
||
Thỏa thuận đầy đủ xem trong tệp [LICENSE](./LICENSE).
|
||
|
||
---
|
||
|
||
# ⭐️ Lịch sử Star
|
||
|
||
[](https://www.star-history.com/#HBAI-Ltd/Toonflow-app)
|
||
|
||
[](https://www.star-history.com/#HBAI-Ltd/Toonflow-app&type=timeline&legend=top-left)
|
||
|
||
---
|
||
|
||
|
||
# 🙏 Lời cảm ơn
|
||
|
||
Cảm ơn các dự án mã nguồn mở sau đã cung cấp hỗ trợ mạnh mẽ cho Toonflow:
|
||
|
||
- [Express](https://expressjs.com/) - Framework Web Node.js nhanh, mở, tối giản
|
||
- [AI SDK](https://ai-sdk.dev/) - Bộ công cụ AI dành cho TypeScript
|
||
- [Better-SQLite3](https://github.com/WiseLibs/better-sqlite3) - Thư viện liên kết SQLite3 hiệu suất cao
|
||
- [Sharp](https://sharp.pixelplumbing.com/) - Thư viện xử lý hình ảnh Node.js hiệu suất cao
|
||
- [Axios](https://axios-http.com/) - HTTP client dựa trên Promise
|
||
- [Zod](https://zod.dev/) - Thư viện xác thực lược đồ ưu tiên TypeScript
|
||
- [Socket.IO](https://socket.io/) - Công cụ giao tiếp sự kiện hai chiều thời gian thực
|
||
- [Electron](https://www.electronjs.org/) - Framework phát triển ứng dụng desktop đa nền tảng
|
||
- [Hugging Face Transformers](https://huggingface.co/docs/transformers.js) - Thư viện suy luận ML cục bộ
|
||
|
||
Cảm ơn các tổ chức/đơn vị/cá nhân sau đã cung cấp hỗ trợ cho Toonflow:
|
||
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th align="center">Logo</th>
|
||
<th align="center">Tên</th>
|
||
<th align="center">Hình thức hỗ trợ</th>
|
||
<th>Giới thiệu</th>
|
||
<th align="center">Trang web</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td align="center"><img src="./sponsored/sophnet.png" alt="Sophnet Logo" width="48"></td>
|
||
<td align="center"><b>Sophnet</b></td>
|
||
<td align="center">💻 Tài trợ sức mạnh tính toán</td>
|
||
<td>Cam kết tạo nền tảng dịch vụ API suy luận mô hình tất cả trong một nhanh hơn, ổn định hơn, tiết kiệm hơn</td>
|
||
<td align="center"><a href="https://www.sophnet.com/">Trang web</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center"><img src="./sponsored/atlascloud.png" alt="Atlas Cloud Logo" width="48"></td>
|
||
<td align="center"><b>Atlas Cloud</b></td>
|
||
<td align="center">💻 Tài trợ sức mạnh tính toán</td>
|
||
<td>Nền tảng suy luận đa phương thức toàn diện đầu tiên trên thế giới. Hội thoại, hình ảnh, video, âm thanh - tất cả API thống nhất. Hơn 300 mô hình, tương thích OpenAI.</td>
|
||
<td align="center"><a href="https://www.atlascloud.ai/">Trang web</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center"><img src="./sponsored/hunyuan.webp" alt="Tencent Hunyuan 3D Logo" width="48"></td>
|
||
<td align="center"><b>Tencent Hunyuan 3D</b></td>
|
||
<td align="center">🌐 Hỗ trợ kỹ thuật mô hình thế giới</td>
|
||
<td>Tencent Hunyuan 3D AI Creation Engine dựa trên phiên bản 2.5 của mô hình tạo 3D lớn Hunyuan, nền tảng tạo nội dung 3D AI tất cả trong một đầu tiên trong ngành. Có các chức năng như tạo 3D từ văn bản, hình ảnh, tạo hoạt ảnh 3D, tạo kết cấu, hỗ trợ tạo 3D từ phác thảo, tạo nhân vật 3D, có lợi thế trong việc tạo mô hình đa giác thấp.</td>
|
||
<td align="center"><a href="https://3d.hunyuan.tencent.com/">Trang web</a></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
Danh sách đầy đủ các phụ thuộc bên thứ ba vui lòng tham khảo `NOTICES.txt`
|
||
|
||
##### copyright © Beijing Ai'ah Technology Co., Ltd.
|
||
|
||
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=6,11,20&height=100§ion=footer" width="100%"/> |