Compare commits
No commits in common. "16652ffdb07b3cbf3a764baf3ad46165ae149067" and "e1cd187d3a662ccd0741720cb11457e92eb50759" have entirely different histories.
16652ffdb0
...
e1cd187d3a
@ -5,7 +5,6 @@ logs
|
||||
uploads
|
||||
.git
|
||||
.gitignore
|
||||
.DS_Store
|
||||
*.md
|
||||
LICENSE
|
||||
NOTICES.txt
|
||||
@ -15,6 +14,3 @@ env
|
||||
docs
|
||||
*.log
|
||||
.env*
|
||||
data/db2.sqlite
|
||||
data/logs
|
||||
data/oss
|
||||
|
||||
@ -1,117 +0,0 @@
|
||||
name: Build and Deploy
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- airlabs
|
||||
|
||||
jobs:
|
||||
build-and-deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
run: |
|
||||
git clone --depth=1 --branch=${{ github.ref_name }} https://gitea.airlabs.art/${{ github.repository }}.git .
|
||||
|
||||
- name: Set environment by branch
|
||||
run: |
|
||||
SHORT_SHA=$(echo "${{ github.sha }}" | cut -c1-7)
|
||||
BUILD_DATE=$(date +%Y%m%d)
|
||||
|
||||
echo "IMAGE_TAG=internal-${BUILD_DATE}-${SHORT_SHA}" >> $GITHUB_ENV
|
||||
echo "CR_SERVER_ACTIVE=${{ secrets.CR_SERVER }}" >> $GITHUB_ENV
|
||||
echo "CR_USERNAME_ACTIVE=${{ secrets.CR_USERNAME }}" >> $GITHUB_ENV
|
||||
echo "CR_PASSWORD_ACTIVE=${{ secrets.CR_PASSWORD }}" >> $GITHUB_ENV
|
||||
echo "CR_ORG=internal" >> $GITHUB_ENV
|
||||
echo "DEPLOY_ENV=internal" >> $GITHUB_ENV
|
||||
echo "DOMAIN_APP=videoflow.airlabs.art" >> $GITHUB_ENV
|
||||
|
||||
- name: Validate deploy domain
|
||||
run: |
|
||||
if [ "$DOMAIN_APP" = "toonflow.example.com" ]; then
|
||||
echo "DOMAIN_APP is still toonflow.example.com. Replace it with the real domain before deploying."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Login to Volcano Engine CR
|
||||
run: |
|
||||
echo "${{ env.CR_PASSWORD_ACTIVE }}" | docker login --username "${{ env.CR_USERNAME_ACTIVE }}" --password-stdin ${{ env.CR_SERVER_ACTIVE }}
|
||||
|
||||
- name: Build and Push ToonFlow
|
||||
id: build_toonflow
|
||||
run: |
|
||||
set -o pipefail
|
||||
for attempt in 1 2 3; do
|
||||
echo "Build ToonFlow attempt $attempt/3..."
|
||||
DOCKER_BUILDKIT=0 docker build \
|
||||
--tag ${{ env.CR_SERVER_ACTIVE }}/${{ env.CR_ORG }}/toonflow:${{ env.IMAGE_TAG }} \
|
||||
--tag ${{ env.CR_SERVER_ACTIVE }}/${{ env.CR_ORG }}/toonflow:latest \
|
||||
. 2>&1 | tee /tmp/build.log && break
|
||||
echo "Attempt $attempt failed, retrying in 10s..." && sleep 10
|
||||
done
|
||||
for attempt in 1 2 3; do
|
||||
docker push ${{ env.CR_SERVER_ACTIVE }}/${{ env.CR_ORG }}/toonflow:${{ env.IMAGE_TAG }} && \
|
||||
docker push ${{ env.CR_SERVER_ACTIVE }}/${{ env.CR_ORG }}/toonflow:latest && break
|
||||
echo "Push attempt $attempt failed, retrying in 10s..." && sleep 10
|
||||
done
|
||||
|
||||
- name: Setup Kubectl
|
||||
run: |
|
||||
if [ -f /usr/local/bin/kubectl ]; then
|
||||
echo "Using mounted kubectl"
|
||||
elif command -v kubectl &>/dev/null; then
|
||||
echo "kubectl already in PATH"
|
||||
else
|
||||
echo "Downloading kubectl..."
|
||||
curl -sLO "https://dl.k8s.io/release/v1.28.0/bin/linux/amd64/kubectl"
|
||||
chmod +x kubectl && mv kubectl /usr/local/bin/kubectl
|
||||
fi
|
||||
kubectl version --client
|
||||
|
||||
- name: Set kubeconfig
|
||||
run: |
|
||||
mkdir -p $HOME/.kube
|
||||
printf '%s\n' '${{ secrets.VOLCANO_INTERNAL_KUBE_CONFIG }}' > $HOME/.kube/config
|
||||
chmod 600 $HOME/.kube/config
|
||||
echo "kubeconfig lines: $(wc -l < $HOME/.kube/config)"
|
||||
grep server $HOME/.kube/config || echo "WARNING: no server found in kubeconfig"
|
||||
kubectl cluster-info 2>&1 | head -3 || true
|
||||
|
||||
- name: Deploy to K3s
|
||||
id: deploy
|
||||
run: |
|
||||
echo "Environment: ${{ env.DEPLOY_ENV }}"
|
||||
CR_IMAGE="${{ env.CR_SERVER_ACTIVE }}/${{ env.CR_ORG }}"
|
||||
|
||||
sed -i "s|\${CI_REGISTRY_IMAGE}/toonflow:latest|${CR_IMAGE}/toonflow:${{ env.IMAGE_TAG }}|g" k8s/toonflow-deployment.yaml
|
||||
sed -i "s|toonflow.example.com|${{ env.DOMAIN_APP }}|g" k8s/toonflow-deployment.yaml k8s/toonflow-ingress.yaml
|
||||
|
||||
for attempt in 1 2 3; do
|
||||
echo "Deploy attempt $attempt/3..."
|
||||
{
|
||||
kubectl create secret docker-registry cr-pull-secret \
|
||||
--docker-server="${{ env.CR_SERVER_ACTIVE }}" \
|
||||
--docker-username="${{ env.CR_USERNAME_ACTIVE }}" \
|
||||
--docker-password="${{ env.CR_PASSWORD_ACTIVE }}" \
|
||||
--dry-run=client -o yaml | kubectl apply -f -
|
||||
|
||||
kubectl apply -f k8s/cert-manager-issuer.yaml
|
||||
kubectl apply -f k8s/redirect-https-middleware.yaml
|
||||
kubectl apply -f k8s/toonflow-pvc.yaml
|
||||
kubectl apply -f k8s/toonflow-deployment.yaml
|
||||
kubectl apply -f k8s/toonflow-ingress.yaml
|
||||
|
||||
kubectl rollout restart deployment/toonflow
|
||||
kubectl rollout status deployment/toonflow --timeout=300s
|
||||
} 2>&1 | tee /tmp/deploy.log && break
|
||||
echo "Attempt $attempt failed, retrying in 10s..."
|
||||
sleep 10
|
||||
done
|
||||
|
||||
- name: Docker Cleanup
|
||||
if: always()
|
||||
run: |
|
||||
docker container prune -f
|
||||
docker image prune -f
|
||||
echo "Disk usage:"
|
||||
df -h / | tail -1
|
||||
2
.gitignore
vendored
@ -36,6 +36,8 @@ report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
|
||||
|
||||
build/*
|
||||
|
||||
data/serve/
|
||||
|
||||
upload/*
|
||||
uploads/*
|
||||
|
||||
|
||||
24
Dockerfile
@ -2,31 +2,21 @@ FROM node:24-bookworm-slim
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --no-install-recommends ca-certificates python3 make g++ && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
npm config set registry https://registry.npmmirror.com/ && \
|
||||
RUN npm config set registry https://registry.npmmirror.com/ && \
|
||||
yarn config set registry https://registry.npmmirror.com/
|
||||
|
||||
COPY package.json yarn.lock ./
|
||||
# Copy the repository contents into the image and install all dependencies
|
||||
COPY . .
|
||||
|
||||
# The container runs the web/API service only, so strip Electron-only packages
|
||||
# before installing to avoid downloading desktop binaries in CI.
|
||||
# The container only runs the backend dev server, so strip Electron-only
|
||||
# packages before installing to avoid downloading desktop binaries.
|
||||
RUN node -e "const fs=require('fs');const pkg=JSON.parse(fs.readFileSync('package.json','utf8'));for(const section of ['dependencies','devDependencies']){if(!pkg[section]) continue;for(const name of ['custom-electron-titlebar','electron','electron-builder','electron-rebuild','electronmon']) delete pkg[section][name];}fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2)+'\n');" && \
|
||||
yarn install --frozen-lockfile && \
|
||||
yarn cache clean
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN yarn build && \
|
||||
mkdir -p /opt/toonflow-data && \
|
||||
cp -a data/. /opt/toonflow-data/ && \
|
||||
chmod +x scripts/docker-entrypoint.sh
|
||||
|
||||
ENV NODE_ENV=prod
|
||||
ENV NODE_ENV=dev
|
||||
ENV PORT=10588
|
||||
|
||||
EXPOSE 10588
|
||||
|
||||
ENTRYPOINT ["scripts/docker-entrypoint.sh"]
|
||||
CMD ["node", "data/serve/app.js"]
|
||||
CMD ["yarn", "dev"]
|
||||
143
README.md
@ -1,5 +1,3 @@
|
||||
<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" />
|
||||
@ -28,8 +26,17 @@
|
||||
|
||||
<img src="./docs/logo.png" alt="Toonflow Logo" height="120"/>
|
||||
|
||||
[](https://git.io/typing-svg)
|
||||
# Toonflow
|
||||
|
||||
<p align="center">
|
||||
<b>
|
||||
AI短剧工厂
|
||||
<br />
|
||||
动动手指,小说秒变剧集!
|
||||
<br />
|
||||
AI剧本 × AI影像 × 极速生成 🔥
|
||||
</b>
|
||||
</p>
|
||||
<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="Stars Badge" />
|
||||
@ -41,50 +48,10 @@
|
||||
<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="Forks Badge" />
|
||||
</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 No.540" />
|
||||
</a>
|
||||
<a href="https://discord.gg/HEjKmpNpAZ">
|
||||
<img src="https://img.shields.io/badge/Discord-Community-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="Issues" />
|
||||
</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="Contributors" />
|
||||
</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="Last Commit" />
|
||||
</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="Tech Stack Icons" />
|
||||
</p>
|
||||
<p align="center">
|
||||
<img src="https://widgetbite.com/stats/HBAI-Ltd" alt="Visitors" />
|
||||
</p>
|
||||
|
||||
> 🚀 **一站式短剧工程**:从文本到角色,从分镜到视频,0门槛全流程AI化,创作效率提升10倍+!
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
<a href="./docs/g-star.png" target="_blank">
|
||||
<img src="./docs/g-star.png" alt="AtomGit G-Star 认证证书" width="100%"/>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 🌐 多语言支持
|
||||
@ -136,7 +103,7 @@ Toonflow 是面向短剧生产的 AI 工作台,围绕“策划 → 编剧 →
|
||||
|
||||
# 🔰 使用指南
|
||||
|
||||
## 快速上手
|
||||
## 🚀 v1.0.8 快速上手
|
||||
|
||||
1. 启动应用并登录(默认账号:`admin` / `admin123`)。
|
||||
2. 在设置中心完成模型供应商配置(文本/图像/视频模型)。
|
||||
@ -159,68 +126,6 @@ https://www.bilibili.com/video/BV1oXD7BqEqJ
|
||||
|
||||
---
|
||||
|
||||
# 📸 演示截图与视频
|
||||
|
||||
以下截图及视频来自使用 Toonflow 制作的一段 AI 短剧 Demo,全程约 2 小时完成,涵盖剧本生成、分镜制作及剪辑环节。
|
||||
|
||||
<div align="center">
|
||||
<table>
|
||||
<tr>
|
||||
<td width="50%"><a href="./docs/screenshot/1.png" target="_blank"><img src="./docs/screenshot/1.png" width="100%"/></a></td>
|
||||
<td width="50%"><a href="./docs/screenshot/2.png" target="_blank"><img src="./docs/screenshot/2.png" width="100%"/></a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="50%"><a href="./docs/screenshot/3.png" target="_blank"><img src="./docs/screenshot/3.png" width="100%"/></a></td>
|
||||
<td width="50%"><a href="./docs/screenshot/4.png" target="_blank"><img src="./docs/screenshot/4.png" width="100%"/></a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="50%"><a href="./docs/screenshot/5.png" target="_blank"><img src="./docs/screenshot/5.png" width="100%"/></a></td>
|
||||
<td width="50%"><a href="./docs/screenshot/6.png" target="_blank"><img src="./docs/screenshot/6.png" width="100%"/></a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="50%"><a href="./docs/screenshot/7.png" target="_blank"><img src="./docs/screenshot/7.png" width="100%"/></a></td>
|
||||
<td width="50%"><a href="./docs/screenshot/8.png" target="_blank"><img src="./docs/screenshot/8.png" width="100%"/></a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="50%"><a href="./docs/screenshot/9.png" target="_blank"><img src="./docs/screenshot/9.png" width="100%"/></a></td>
|
||||
<td width="50%"><a href="./docs/screenshot/10.png" target="_blank"><img src="./docs/screenshot/10.png" width="100%"/></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
## 🎬 Demo 视频
|
||||
|
||||
<div align="center">
|
||||
|
||||
https://github.com/user-attachments/assets/2d9fddac-dfdf-4640-b030-b09d7f7287e9
|
||||
|
||||
如无法播放,请[点击下载视频](./docs/screenshot/demo.mp4)
|
||||
|
||||
</div>
|
||||
|
||||
## Demo 信息
|
||||
|
||||
| 项目 | 详情 |
|
||||
| :--- | :--- |
|
||||
| 制作周期 | 约 2 小时 |
|
||||
| 视频模型 | Seedance 2.0 |
|
||||
| 图片模型 | GPT Image 2 |
|
||||
| 语言模型 | Claude Opus 4.6 |
|
||||
| 成片总时长 | 约 2 分钟(原始素材 3 分钟,剪除废片约 1 分钟) |
|
||||
|
||||
## 成本明细
|
||||
|
||||
| 模型类型 | 费用 |
|
||||
| :--- | :--- |
|
||||
| 语言模型 | 约 ¥10 |
|
||||
| 视频模型(全量生成) | 约 ¥120 |
|
||||
| 图片模型 | 不足 ¥1 |
|
||||
| **合计** | **约 ¥130** |
|
||||
|
||||
> **声明**:Demo 原始分辨率为 1080×1882,发布版本已压缩至 480p。如涉及版权问题,请联系我们删除处理。
|
||||
|
||||
---
|
||||
|
||||
# 🚀 安装
|
||||
|
||||
## 前置条件
|
||||
@ -235,11 +140,11 @@ https://github.com/user-attachments/assets/2d9fddac-dfdf-4640-b030-b09d7f7287e9
|
||||
|
||||
### 1. 下载与安装
|
||||
|
||||
| 操作系统 | GitHub | 说明 |
|
||||
| :------: | :----------------------------------------------------------- | :------------- |
|
||||
| Windows | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | 官方发布安装包 |
|
||||
| Linux | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | 官方发布安装包 |
|
||||
| macOS | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | 官方发布安装包 |
|
||||
| 操作系统 | GitHub | Atomgit | 夸克网盘下载 | 说明 |
|
||||
| :------: | :----------------------------------------------------------- | :------------------------------------------------------------ | :---------------------------------------------- | :------------- |
|
||||
| Windows | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [夸克网盘](https://pan.quark.cn/s/94ef07509df0) | 官方发布安装包 |
|
||||
| Linux | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [夸克网盘](https://pan.quark.cn/s/94ef07509df0) | 官方发布安装包 |
|
||||
| macOS | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [夸克网盘](https://pan.quark.cn/s/94ef07509df0) | 官方发布安装包 |
|
||||
|
||||
> [!CAUTION]
|
||||
> MacOS 系统请到 设置-隐私与安全性 配置安全性否则可能因证书问题无法正常打开
|
||||
@ -666,13 +571,10 @@ Toonflow 基于 Apache-2.0 协议开源发布,并附有补充商业协议。
|
||||
|
||||
# ⭐️ 星标历史
|
||||
|
||||
[](https://www.star-history.com/#HBAI-Ltd/Toonflow-app)
|
||||
|
||||
[](https://www.star-history.com/#HBAI-Ltd/Toonflow-app&type=timeline&legend=top-left)
|
||||
|
||||
---
|
||||
|
||||
|
||||
# 🙏 致谢
|
||||
|
||||
感谢以下开源项目为 Toonflow 提供强大支持:
|
||||
@ -714,20 +616,9 @@ Toonflow 基于 Apache-2.0 协议开源发布,并附有补充商业协议。
|
||||
<td>全球首个全模态推理平台。对话、图像、视频、音频——全部统一 API。300+ 模型,OpenAI 兼容。</td>
|
||||
<td align="center"><a href="https://www.atlascloud.ai/">官网</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><img src="./docs/sponsored/hunyuan.webp" alt="腾讯混元3D Logo" width="48"></td>
|
||||
<td align="center"><b>腾讯混元3D</b></td>
|
||||
<td align="center">🌐 世界模型技术支持</td>
|
||||
<td>腾讯混元3D AI创作引擎基于腾讯混元3D生成大模型2.5版本,业界首个一站式3D内容AI创作平台。具备文生、图生3D、3D动画生成、纹理生成等功能,支持草图生3D、3D人物生成,有低多边形模型生成优势。</td>
|
||||
<td align="center"><a href="https://3d.hunyuan.tencent.com/">官网</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
完整的第三方依赖清单请查阅 `NOTICES.txt`
|
||||
|
||||
##### copyright © 北京爱阿科技有限公司
|
||||
|
||||
|
||||
|
||||
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=6,11,20&height=100§ion=footer" width="100%"/>
|
||||
##### copyright © 淮北艾阿网络科技有限公司
|
||||
|
||||
259074
data/serve/app.js
BIN
docs/QR.png
|
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 139 KiB |
@ -1,5 +1,3 @@
|
||||
<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" />
|
||||
@ -28,8 +26,17 @@
|
||||
|
||||
<img src="./logo.png" alt="Toonflow Logo" height="120"/>
|
||||
|
||||
[](https://git.io/typing-svg)
|
||||
# Toonflow
|
||||
|
||||
<p align="center">
|
||||
<b>
|
||||
AI Short Drama Factory
|
||||
<br />
|
||||
Turn your novel into episodes with just a few clicks!
|
||||
<br />
|
||||
AI Scripts × AI Visuals × Ultra-fast Generation 🔥
|
||||
</b>
|
||||
</p>
|
||||
<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="Stars Badge" />
|
||||
@ -41,183 +48,74 @@
|
||||
<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="Forks Badge" />
|
||||
</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 No.540" />
|
||||
</a>
|
||||
<a href="https://discord.gg/HEjKmpNpAZ">
|
||||
<img src="https://img.shields.io/badge/Discord-Community-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="Issues" />
|
||||
</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="Contributors" />
|
||||
</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="Last Commit" />
|
||||
</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="Tech Stack Icons" />
|
||||
</p>
|
||||
<p align="center">
|
||||
<img src="https://widgetbite.com/stats/HBAI-Ltd" alt="Visitors" />
|
||||
</p>
|
||||
|
||||
> 🚀 **All-in-One Short Drama Workflow**: From text to characters, from storyboards to videos — zero-threshold full-process AI automation, boosting creative efficiency by 10x+!
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
<a href="./g-star.png" target="_blank">
|
||||
<img src="./g-star.png" alt="AtomGit G-Star Certificate" width="100%"/>
|
||||
</a>
|
||||
> 🚀 **All-in-One Short Drama Studio**: From text to characters, from storyboard to final video.
|
||||
> Fully AI-powered workflow with zero barrier to entry — boosting your creative efficiency by 10x or more!
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 🌐 Multi-language Support
|
||||
# 🌐 Multi-Language Support
|
||||
|
||||
Toonflow supports the following interface languages:
|
||||
|
||||
| Language | Language |
|
||||
| -------------------- | --------------------- |
|
||||
| Chinese (Simplified) | 简体中文 |
|
||||
| Chinese (Traditional)| 繁體中文 |
|
||||
| English | English |
|
||||
| Thai | ไทย |
|
||||
| Vietnamese | Tiếng Việt |
|
||||
| Japanese | 日本語 |
|
||||
| Russian | Русский |
|
||||
| Language | Language Name |
|
||||
|------|----------|
|
||||
| 简体中文 | Chinese (Simplified) |
|
||||
| 繁體中文 | Chinese (Traditional) |
|
||||
| English | English |
|
||||
| ไทย | Thai |
|
||||
| Tiếng Việt | Vietnamese |
|
||||
| 日本語 | Japanese |
|
||||
| Русский | Russian |
|
||||
|
||||
> 💡 More languages are being adapted — contributions for translations are welcome!
|
||||
> 💡 More languages are on the way. Translation contributions are highly welcome!
|
||||
|
||||
---
|
||||
|
||||
# 🌟 Key Features
|
||||
# 🌟 Main Features
|
||||
|
||||
Toonflow is an AI workstation designed for short drama production, building a complete closed loop around "Planning → Scriptwriting → Storyboarding → Final Output," supporting a localized, programmable, and continuously iterable production workflow.
|
||||
Toonflow is an AI-powered tool for creating short dramas, short films, and comics. It can automatically transform novels into scripts, then combine AI-generated characters, images, and videos to produce high-quality content efficiently.
|
||||
|
||||
- ✅ **Infinite Canvas Production Workbench**
|
||||
Organize scripts, characters, storyboards, assets, and video nodes in an infinite canvas-like layout, supporting free arrangement, backtracking, and parallel production without linear constraints.
|
||||
- ✅ **Three-layer Agent Collaboration System**
|
||||
Decision, execution, and supervision layers work together, covering task decomposition, content generation, quality review, and revision feedback, improving stability and output consistency.
|
||||
- ✅ **Persistent Agent Memory**
|
||||
Cross-session memory system based on local ONNX vector retrieval, supporting short-term messages, long-term summaries, and semantic recall, ensuring multi-round creative continuity.
|
||||
- ✅ **Programmable Provider System**
|
||||
Write vendor TypeScript logic directly in the settings center, taking effect instantly without modifying source code or restarting, making it easy to privatize and integrate multiple models.
|
||||
- ✅ **Chapter Event Graph-driven Adaptation**
|
||||
Automatically extract chapter events from original novels and store them structurally. Script adaptation uses event graphs to precisely invoke context, reducing information loss in long texts.
|
||||
- ✅ **Skill File Configuration**
|
||||
Core prompts for ScriptAgent and ProductionAgent are externalized as Markdown Skill files, supporting online editing and rapid tuning.
|
||||
With Toonflow, you can complete the entire workflow from text to final video with ease — making short-form video and drama production significantly smarter and more convenient.
|
||||
|
||||
- ✅ **Character Generation**
|
||||
Automatically analyzes the original novel text, intelligently identifies key elements, and generates detailed character profiles including appearance, personality, background, and relationships — laying a strong foundation for scriptwriting and visual production.
|
||||
|
||||
- ✅ **Script Generation**
|
||||
Based on selected events and chapters, the system automatically creates well-structured scripts with natural dialogue, scene descriptions, and plot development, enabling efficient adaptation from literature to cinematic format.
|
||||
|
||||
- ✅ **Storyboard Creation**
|
||||
From the generated script, Toonflow intelligently creates storyboard prompts and visual layouts. It details foreground, midground, and background elements, character movements, props, and scene composition — providing a complete and ready-to-use blueprint for video production.
|
||||
|
||||
- ✅ **Video Synthesis**
|
||||
Integrates advanced AI image and video generation technologies to produce high-quality video clips. The built-in online editor allows flexible personalization and fine-tuning, making the entire creative process smooth, fast, and highly efficient.
|
||||
|
||||
---
|
||||
|
||||
# 📦 Application Scenarios
|
||||
# 📦 Use Cases
|
||||
|
||||
- Short video content creation
|
||||
- Novel-to-film experimentation
|
||||
- AI literary adaptation tool
|
||||
- Short video content creation (Shorts, Reels, TikTok)
|
||||
- Novel-to-film / drama adaptation experiments
|
||||
- AI-powered literary adaptation tool
|
||||
- Script development and rapid prototyping
|
||||
- Video asset generation
|
||||
- Video asset and footage generation
|
||||
|
||||
---
|
||||
|
||||
# 🔰 User Guide
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. Launch the application and log in (default: `admin` / `admin123`).
|
||||
2. Complete model vendor configuration in the settings center (text/image/video models).
|
||||
3. Create a new project and import the original novel, then execute chapter event extraction.
|
||||
4. Enter ScriptAgent to generate the story skeleton, adaptation strategy, and structured script.
|
||||
5. Switch to ProductionAgent to organize storyboards, assets, and video nodes on the infinite canvas.
|
||||
6. Perform node-based refinement on storyboard images, then return them to the workbench for video stitching and export.
|
||||
|
||||
## 📺 Video Tutorial
|
||||
|
||||
https://www.bilibili.com/video/BV1oXD7BqEqJ
|
||||
[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
[https://www.bilibili.com/video/BV1oXD7BqEqJ](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
|
||||
**Toonflow 12-minute Quick Start AI Video**
|
||||
👉 [Click to Watch](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
**Toonflow: 8-Minute AI Video Quick Start**
|
||||
👉 [Click to Watch](https://www.bilibili.com/video/BV1oXD7BqEqJ/?share_source=copy_web&vd_source=5b718c25439a901a34c7bc0c1d35b38e)
|
||||
|
||||
📱 Scan with WeChat to watch
|
||||
📱 Scan the QR code to watch on mobile
|
||||
|
||||
<img src="./videoQR.png" alt="Scan with WeChat" width="150"/>
|
||||
|
||||
---
|
||||
|
||||
# 📸 Demo Screenshots & Video
|
||||
|
||||
The following screenshots and video are from a short AI drama demo made with Toonflow, completed in about 2 hours, covering script generation, storyboard creation, and editing.
|
||||
|
||||
<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>
|
||||
|
||||
## 🎬 Demo Video
|
||||
|
||||
<div align="center">
|
||||
|
||||
https://github.com/user-attachments/assets/2d9fddac-dfdf-4640-b030-b09d7f7287e9
|
||||
|
||||
If the video cannot play, please [click to download](./screenshot/demo.mp4)
|
||||
|
||||
</div>
|
||||
|
||||
## Demo Info
|
||||
|
||||
| Item | Details |
|
||||
| :---------------- | :--------------------------------------- |
|
||||
| Production Cycle | Approximately 2 hours |
|
||||
| Video Model | Seedance 2.0 |
|
||||
| Image Model | GPT Image 2 |
|
||||
| Language Model | Claude Opus 4.6 |
|
||||
| Total Duration | Approximately 2 minutes (raw 3 min, cut ~1 min of unusable footage) |
|
||||
|
||||
## Cost Breakdown
|
||||
|
||||
| Model Type | Cost |
|
||||
| :------------- | :----------- |
|
||||
| Language Model | ~¥10 |
|
||||
| Video Model (full generation) | ~¥120 |
|
||||
| Image Model | Less than ¥1|
|
||||
| **Total** | **~¥130** |
|
||||
|
||||
> **Disclaimer**: The demo's original resolution is 1080×1882; the release version has been compressed to 480p. If there are any copyright issues, please contact us to delete it.
|
||||
<img src="./videoQR.png" alt="Scan QR code to watch on mobile" width="150"/>
|
||||
|
||||
---
|
||||
|
||||
@ -225,34 +123,34 @@ If the video cannot play, please [click to download](./screenshot/demo.mp4)
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before installing and using this software, please prepare the following:
|
||||
Before installing and using Toonflow, please prepare the following:
|
||||
|
||||
- ✅ Large language model AI service API endpoint
|
||||
- ✅ Sora or Doubao video service API endpoint
|
||||
- ✅ Nano Banana Pro image generation model service API
|
||||
- ✅ API endpoint for Large Language Model (LLM)
|
||||
- ✅ API endpoint for video generation services (Sora or Doubao)
|
||||
- ✅ API endpoint for image generation model (Nano Banana Pro)
|
||||
|
||||
## Local Installation
|
||||
|
||||
### 1. Download & Install
|
||||
### 1. Download and Install
|
||||
|
||||
| OS | GitHub | Notes |
|
||||
| :-----: | :----------------------------------------------------------- | :---------------------------- |
|
||||
| Windows | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | Official release package |
|
||||
| Linux | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | Official release package |
|
||||
| macOS | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | Official release package |
|
||||
| OS | GitHub | Atomgit | Quark Drive Download | Description |
|
||||
| :------: | :----------------------------------------------------------- | :------------------------------------------------------------ | :---------------------------------------------- | :------------- |
|
||||
| Windows | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [Quark Drive](https://pan.quark.cn/s/94ef07509df0) | Official Installer |
|
||||
| Linux | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [Quark Drive](https://pan.quark.cn/s/94ef07509df0) | Official Installer |
|
||||
| macOS | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [Quark Drive](https://pan.quark.cn/s/94ef07509df0) | Official Installer |
|
||||
|
||||
> [!CAUTION]
|
||||
> On macOS, go to Settings > Privacy & Security to configure security settings; otherwise, the app may not open due to certificate issues.
|
||||
> **MacOS Users:** Please go to `System Settings > Privacy & Security` to allow the application to run; otherwise, it may fail to open due to certificate issues.
|
||||
>
|
||||
> Reference: [https://www.zhihu.com/question/433389276](https://www.zhihu.com/question/433389276)
|
||||
> Reference (Zhihu): [https://www.zhihu.com/question/433389276](https://www.zhihu.com/question/433389276)
|
||||
|
||||
> Due to Gitee OS environment limitations and Release file upload size restrictions, we currently do not provide a Gitee Release download link.
|
||||
> Due to Gitee OS environment constraints and Release file size upload limits, Gitee Release download links are currently unavailable.
|
||||
|
||||
### 2. Start the Service
|
||||
|
||||
After installation, launch the program to start using the service.
|
||||
After installation, simply launch the program to start using the service.
|
||||
|
||||
> ⚠️ **First Login**
|
||||
> ⚠️ **Default Login**
|
||||
> Username: `admin`
|
||||
> Password: `admin123`
|
||||
|
||||
@ -260,18 +158,18 @@ After installation, launch the program to start using the service.
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- [Docker](https://docs.docker.com/get-docker/) installed (version 20.10+)
|
||||
- [Docker](https://docs.docker.com/get-docker/) installed (Version 20.10+)
|
||||
|
||||
### Method 1: Online Deployment
|
||||
|
||||
To be completed; use local build for now.
|
||||
To be updated. Please use local build for now.
|
||||
|
||||
### Method 2: Local Build
|
||||
|
||||
Build directly from existing local source code, suitable for developers or users who have already cloned the repository. Requires git installed locally:
|
||||
Build directly using the local source code. This is suitable for developers or users who have cloned the repository. You will need `git` installed locally:
|
||||
|
||||
```shell
|
||||
# Clone the project first (skip if already cloned)
|
||||
# Clone the repository first (skip if already cloned)
|
||||
git clone https://github.com/HBAI-Ltd/Toonflow-app.git
|
||||
cd Toonflow-app
|
||||
|
||||
@ -280,37 +178,37 @@ yarn docker:local
|
||||
|
||||
# Or build manually
|
||||
docker build -t toonflow .
|
||||
docker run -d -p <local_port>:10588 -v <local_data_path>:/app/data toonflow
|
||||
docker run -d -p <Local_Port>:10588 -v <Local_Data_Path>:/app/data toonflow
|
||||
|
||||
# Access the page at the corresponding port path /web/index.html
|
||||
# You can now access the page at the corresponding port at /web/index.html
|
||||
# Example: http://localhost:10588/web/index.html
|
||||
```
|
||||
|
||||
### Service Port Description
|
||||
|
||||
| Port | Purpose | Deployment Mapping |
|
||||
| ------ | ---------------- | ------------------ |
|
||||
| `10588`| Software UI | `10588:10588` |
|
||||
| Port | Purpose | Deployment Mapping |
|
||||
| ------- | -------- | ------------- |
|
||||
| `10588` | Software UI | `10588:10588` |
|
||||
|
||||
**Environment Variables:**
|
||||
|
||||
| Variable | Description |
|
||||
| --------- | ------------------------------------------ |
|
||||
| `NODE_ENV`| Running environment; `prod` for production |
|
||||
| `PORT` | Service listening port (default 10588) |
|
||||
| `OSSURL` | File storage access URL for static assets |
|
||||
| Variable | Description |
|
||||
| ---------- | ----------------------------------------- |
|
||||
| `NODE_ENV` | Operating environment, `prod` for production |
|
||||
| `PORT` | Service listening port (Default: 10588) |
|
||||
| `OSSURL` | File storage access URL, used for static resources |
|
||||
|
||||
---
|
||||
|
||||
## Cloud Deployment
|
||||
|
||||
### I. Server Environment Requirements
|
||||
### 1. Server Requirements
|
||||
|
||||
- **OS**: Ubuntu 20.04+ / CentOS 7+
|
||||
- **Node.js**: 24.x (recommended, minimum 23.11.1+)
|
||||
- **Node.js**: 24.x (Recommended, Minimum 23.11.1+)
|
||||
- **Memory**: 2GB+
|
||||
|
||||
### II. Server Deployment
|
||||
### 2. Server Deployment
|
||||
|
||||
#### 1. Install Environment
|
||||
|
||||
@ -323,7 +221,7 @@ nvm install 24
|
||||
npm install -g yarn pm2
|
||||
```
|
||||
|
||||
#### 2. Deploy the Project
|
||||
#### 2. Deploy Project
|
||||
|
||||
**Clone from GitHub:**
|
||||
|
||||
@ -335,7 +233,7 @@ yarn install
|
||||
yarn build
|
||||
```
|
||||
|
||||
**Clone from Gitee (recommended for China):**
|
||||
**Clone from Gitee (Recommended for users in China):**
|
||||
|
||||
```bash
|
||||
cd /opt
|
||||
@ -347,7 +245,7 @@ yarn build
|
||||
|
||||
#### 3. Configure PM2
|
||||
|
||||
Create `pm2.json` file:
|
||||
Create a `pm2.json` file:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -363,13 +261,13 @@ Create `pm2.json` file:
|
||||
}
|
||||
```
|
||||
|
||||
**Environment Variable Description:**
|
||||
**Environment Variables:**
|
||||
|
||||
| Variable | Description |
|
||||
| --------- | ------------------------------------------ |
|
||||
| `NODE_ENV`| Running environment; `prod` for production |
|
||||
| `PORT` | Service listening port |
|
||||
| `OSSURL` | File storage access URL for static assets |
|
||||
| Variable | Description |
|
||||
| ---------- | ----------------------------------------------------- |
|
||||
| `NODE_ENV` | Operating environment (`prod` = Production) |
|
||||
| `PORT` | Service listening port (default: 10588) |
|
||||
| `OSSURL` | Object Storage URL for storing and serving static files |
|
||||
|
||||
---
|
||||
|
||||
@ -390,62 +288,65 @@ pm2 restart all # Restart services
|
||||
pm2 monit # Monitoring dashboard
|
||||
```
|
||||
|
||||
> ⚠️ **First Login**
|
||||
> ⚠️ **Default Login**
|
||||
> Username: `admin`
|
||||
> Password: `admin123`
|
||||
|
||||
#### 6. Deploy the Frontend
|
||||
#### 6. Deploy Frontend
|
||||
|
||||
If you need to deploy or customize the frontend separately, please refer to the frontend repository:
|
||||
If you need to deploy or customize the frontend interface separately, please refer to the frontend repository:
|
||||
|
||||
- **GitHub**: [Toonflow-web](https://github.com/HBAI-Ltd/Toonflow-web)
|
||||
- **Gitee**: [Toonflow-web](https://gitee.com/HBAI-Ltd/Toonflow-web)
|
||||
|
||||
> 💡 **Note**: This repository already includes pre-built frontend resources; regular users do not need to deploy the frontend separately. The frontend repository is for developers who need secondary development.
|
||||
> 💡 **Note**: This repository already includes the compiled frontend resources.
|
||||
> Regular users do not need to deploy the frontend separately. The Toonflow-web repository is intended only for developers who want to make custom modifications or contribute to the frontend.
|
||||
|
||||
---
|
||||
|
||||
# 🔧 Development Guide
|
||||
# 🔧 Development Workflow Guide
|
||||
|
||||
> [!CAUTION]
|
||||
> 🚧 **PR Submission Guidelines** 🚧
|
||||
>
|
||||
> ⛔ Do not submit PRs to the `master` branch. ✅ Please submit PRs to the `develop` branch.
|
||||
>
|
||||
> Developers are welcome to contribute to Toonflow. If interested, please contact the maintainer ACT in the community group.
|
||||
> ⛔ **No PRs accepted on the `master` branch**
|
||||
> ✅ **Please submit all Pull Requests to the `develop` branch**
|
||||
|
||||
We welcome all developers who want to contribute to Toonflow.
|
||||
If you're interested in joining, please contact the project maintainer (ACT) in our community group.
|
||||
|
||||
## 🛠️ Tech Stack
|
||||
|
||||
| Category | Technology |
|
||||
| ------------- | --------------------------------------------------------------------------------------------- |
|
||||
| Runtime | Node.js 23.11.1+ |
|
||||
| Language | TypeScript 5.x |
|
||||
| Backend | Express 5 |
|
||||
| Database | SQLite (better-sqlite3 / knex) |
|
||||
| AI Integration| Vercel AI SDK (OpenAI / Anthropic / Google / DeepSeek / Zhipu / MiniMax / Tongyi Qianwen / xAI)|
|
||||
| Local Inference| @huggingface/transformers (ONNX) |
|
||||
| Real-time | Socket.IO |
|
||||
| Desktop | Electron 40 |
|
||||
| Image Processing| Sharp |
|
||||
| Containerization| Docker |
|
||||
| Category | Technology |
|
||||
| ---------- | ----------------------------------------------------------------------------------------- |
|
||||
| Runtime | Node.js 23.11.1+ |
|
||||
| Language | TypeScript 5.x |
|
||||
| Backend | Express 5 |
|
||||
| Database | SQLite (better-sqlite3 / knex) |
|
||||
| AI Integ. | Vercel AI SDK (OpenAI / Anthropic / Google / DeepSeek / Zhipu / MiniMax / Qwen / xAI) |
|
||||
| Local Inf. | @huggingface/transformers (ONNX) |
|
||||
| Real-time | Socket.IO |
|
||||
| Desktop UI | Electron 40 |
|
||||
| Image Proc.| Sharp |
|
||||
| Container | Docker |
|
||||
|
||||
## Development Environment Setup
|
||||
## Development Environment Prep
|
||||
|
||||
- **Node.js**: Version 23.11.1 or higher
|
||||
- **Yarn**: Recommended as package manager
|
||||
- **Node.js**: Version 23.11.1 or higher required
|
||||
- **Yarn**: Recommended package manager
|
||||
|
||||
## Quick Start Project
|
||||
## Quick Start
|
||||
|
||||
1. **Clone the Project**
|
||||
|
||||
**Clone from GitHub:**
|
||||
**From GitHub:**
|
||||
|
||||
```bash
|
||||
git clone https://github.com/HBAI-Ltd/Toonflow-app.git
|
||||
cd Toonflow-app
|
||||
```
|
||||
|
||||
**Clone from Gitee (recommended for China):**
|
||||
**From Gitee (Recommended for China):**
|
||||
|
||||
```bash
|
||||
git clone https://gitee.com/HBAI-Ltd/Toonflow-app.git
|
||||
@ -454,23 +355,23 @@ If you need to deploy or customize the frontend separately, please refer to the
|
||||
|
||||
2. **Install Dependencies**
|
||||
|
||||
Run the following command in the project root to install dependencies:
|
||||
Run the following command in the project root directory:
|
||||
|
||||
```bash
|
||||
yarn install
|
||||
```
|
||||
|
||||
3. **Start Development Environment**
|
||||
3. **Start the Development Environment**
|
||||
|
||||
This project includes both the **backend API service** and **frontend pages**. Choose the appropriate startup method:
|
||||
This project consists of two parts: the **Backend API Service** and the **Frontend Pages**. Choose your startup method based on your needs:
|
||||
|
||||
- **Method 1: Start backend only**
|
||||
- **Method 1: Start Backend Service Only**
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
> ⚠️ This command starts only the backend API service (port 10588), **without the frontend**. Accessing `http://localhost:10588` will only call API endpoints, not display the full UI. To use the frontend, either run the frontend project separately or use the GUI mode below.
|
||||
> ⚠️ This command only starts the backend API service (Port 10588) and **does not include the frontend pages**. Visiting `http://localhost:10588` directly will only allow API calls without a UI. To use the frontend, start the frontend project separately or use the GUI mode below.
|
||||
|
||||
- **Method 2: Start Electron Desktop Client**
|
||||
|
||||
@ -478,17 +379,17 @@ If you need to deploy or customize the frontend separately, please refer to the
|
||||
yarn dev:gui
|
||||
```
|
||||
|
||||
> This command starts both the backend service and the Electron desktop window with a built-in frontend page, ready to use out of the box. Ideal for developers who want the full experience.
|
||||
> This command launches both the backend service and the Electron desktop window simultaneously. It comes with built-in frontend pages ready out-of-the-box, requiring no extra configuration. Ideal for developers who want to experience the full feature set.
|
||||
|
||||
- **Method 3: Production Mode**
|
||||
- **Method 3: Start in Production Mode**
|
||||
|
||||
```bash
|
||||
yarn start
|
||||
```
|
||||
|
||||
> Runs the compiled service in production mode (requires `yarn build` first).
|
||||
> Run the compiled service directly in production mode (requires running `yarn build` first).
|
||||
|
||||
4. **Package the Project**
|
||||
4. **Project Build & Packaging**
|
||||
|
||||
- Compile and generate TypeScript files:
|
||||
|
||||
@ -496,27 +397,27 @@ If you need to deploy or customize the frontend separately, please refer to the
|
||||
yarn build
|
||||
```
|
||||
|
||||
- Package as Windows executable:
|
||||
- Package as a Windows executable:
|
||||
|
||||
```bash
|
||||
yarn dist:win
|
||||
```
|
||||
|
||||
- Package as macOS executable:
|
||||
- Package as a Mac executable:
|
||||
|
||||
```bash
|
||||
yarn dist:mac
|
||||
```
|
||||
|
||||
- Package as Linux executable:
|
||||
- Package as a Linux executable:
|
||||
|
||||
```bash
|
||||
yarn dist:linux
|
||||
```
|
||||
|
||||
5. **Code Quality Check**
|
||||
5. **Code Quality Checks (Linting)**
|
||||
|
||||
- Run global syntax and lint checks:
|
||||
- Run global syntax and styling checks:
|
||||
|
||||
```bash
|
||||
yarn lint
|
||||
@ -524,7 +425,7 @@ If you need to deploy or customize the frontend separately, please refer to the
|
||||
|
||||
6. **AI Debug Panel (Optional)**
|
||||
|
||||
Launch a visual debugging tool for the AI SDK to facilitate debugging AI calls:
|
||||
Launch the AI SDK visual debugging tool to easily trace AI calls:
|
||||
|
||||
```bash
|
||||
yarn debug:ai
|
||||
@ -532,63 +433,63 @@ If you need to deploy or customize the frontend separately, please refer to the
|
||||
|
||||
## Frontend Development
|
||||
|
||||
To modify the frontend, please use the frontend repository:
|
||||
If you need to modify or customize the frontend interface, please go to the frontend repository:
|
||||
|
||||
- **GitHub**: [Toonflow-web](https://github.com/HBAI-Ltd/Toonflow-web)
|
||||
- **Gitee**: [Toonflow-web](https://gitee.com/HBAI-Ltd/Toonflow-web)
|
||||
|
||||
After building the frontend, copy the `dist` directory contents into the `data/web` directory of this project to integrate.
|
||||
After building the frontend, copy the entire `dist` folder into the `data/web` directory of this project to integrate it.
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
📂 build/ # Build artifacts
|
||||
📂 data/ # Runtime data
|
||||
│ ├─ 📂 models/ # Local inference models (ONNX)
|
||||
│ ├─ 📂 oss/ # Object storage (assets/characters/scenes)
|
||||
│ ├─ 📂 serve/ # Production entry point
|
||||
│ ├─ 📂 skills/ # Agent skill prompts
|
||||
│ └─ 📂 web/ # Frontend build artifacts (built-in)
|
||||
📂 docs/ # Documentation resources
|
||||
📂 env/ # Environment configuration
|
||||
📂 scripts/ # Build and helper scripts
|
||||
│ ├─ 📂 models/ # Local inference models (ONNX)
|
||||
│ ├─ 📂 oss/ # Object storage (images, characters, scenes)
|
||||
│ ├─ 📂 serve/ # Production environment entry point
|
||||
│ ├─ 📂 skills/ # Agent skill prompts
|
||||
│ └─ 📂 web/ # Built frontend assets (embedded)
|
||||
📂 docs/ # Documentation and resources
|
||||
📂 env/ # Environment configurations
|
||||
📂 scripts/ # Build and utility scripts
|
||||
📂 src/
|
||||
├─ 📂 agents/ # AI Agent modules
|
||||
│ ├─ 📂 productionAgent/ # Production Agent
|
||||
│ └─ 📂 scriptAgent/ # Script Agent
|
||||
├─ 📂 lib/ # Common libraries (DB init, response formats)
|
||||
├─ 📂 middleware/ # Middleware
|
||||
├─ 📂 routes/ # Route modules
|
||||
│ ├─ 📂 agents/ # Agent memory management
|
||||
│ ├─ 📂 artStyle/ # Art style management
|
||||
│ ├─ 📂 assets/ # Asset management
|
||||
│ ├─ 📂 assetsGenerate/ # Asset generation
|
||||
│ ├─ 📂 cornerScape/ # Storyboard management
|
||||
│ ├─ 📂 general/ # General interfaces
|
||||
│ ├─ 📂 login/ # Login authentication
|
||||
│ ├─ 📂 migrate/ # Data migration
|
||||
│ ├─ 📂 modelSelect/ # Model selection
|
||||
│ ├─ 📂 novel/ # Novel management
|
||||
│ ├─ 📂 other/ # Other features
|
||||
│ ├─ 📂 production/ # Production management
|
||||
│ ├─ 📂 project/ # Project management
|
||||
│ ├─ 📂 script/ # Script generation
|
||||
│ ├─ 📂 scriptAgent/ # Script Agent API
|
||||
│ ├─ 📂 setting/ # System settings
|
||||
│ ├─ 📂 task/ # Task management
|
||||
│ └─ 📂 test/ # Test interfaces
|
||||
├─ 📂 socket/ # WebSocket real-time communication
|
||||
├─ 📂 types/ # TypeScript type declarations
|
||||
├─ 📂 utils/ # Utility functions
|
||||
├─ 📄 app.ts # Application entry
|
||||
├─ 📄 core.ts # Core initialization
|
||||
├─ 📄 env.ts # Environment variable handling
|
||||
├─ 📄 err.ts # Error handling
|
||||
├─ 📄 logger.ts # Logging module
|
||||
├─ 📄 router.ts # Route registration
|
||||
└─ 📄 utils.ts # Common utilities
|
||||
├─ 📂 agents/ # AI Agent modules
|
||||
│ ├─ 📂 productionAgent/ # Production Agent
|
||||
│ └─ 📂 scriptAgent/ # Script Agent
|
||||
├─ 📂 lib/ # Shared libraries (DB initialization, response formatting)
|
||||
├─ 📂 middleware/ # Express middlewares
|
||||
├─ 📂 routes/ # Routing modules
|
||||
│ ├─ 📂 agents/ # Agent memory management
|
||||
│ ├─ 📂 artStyle/ # Art style management
|
||||
│ ├─ 📂 assets/ # Asset management
|
||||
│ ├─ 📂 assetsGenerate/ # Asset generation
|
||||
│ ├─ 📂 cornerScape/ # Storyboard management
|
||||
│ ├─ 📂 general/ # General APIs
|
||||
│ ├─ 📂 login/ # Authentication
|
||||
│ ├─ 📂 migrate/ # Data migration
|
||||
│ ├─ 📂 modelSelect/ # Model selection
|
||||
│ ├─ 📂 novel/ # Novel management
|
||||
│ ├─ 📂 other/ # Other functionalities
|
||||
│ ├─ 📂 production/ # Production and editing management
|
||||
│ ├─ 📂 project/ # Project management
|
||||
│ ├─ 📂 script/ # Script generation
|
||||
│ ├─ 📂 scriptAgent/ # Script Agent interface
|
||||
│ ├─ 📂 setting/ # System settings
|
||||
│ ├─ 📂 task/ # Task management
|
||||
│ └─ 📂 test/ # Test APIs
|
||||
├─ 📂 socket/ # Real-time communication via WebSocket
|
||||
├─ 📂 types/ # TypeScript type declarations
|
||||
├─ 📂 utils/ # Utility functions
|
||||
├─ 📄 app.ts # Application entry point
|
||||
├─ 📄 core.ts # Core system initialization
|
||||
├─ 📄 env.ts # Environment variables handling
|
||||
├─ 📄 err.ts # Error handling
|
||||
├─ 📄 logger.ts # Logging module
|
||||
├─ 📄 router.ts # Route registration
|
||||
└─ 📄 utils.ts # General utilities
|
||||
📄 Dockerfile # Docker build file
|
||||
📄 electron-builder.yml # Electron packaging config
|
||||
📄 electron-builder.yml # Electron packaging configuration
|
||||
📄 skillList.json # Skill list
|
||||
📄 LICENSE # License (Apache-2.0)
|
||||
📄 NOTICES.txt # Third-party dependency notices
|
||||
@ -600,94 +501,87 @@ After building the frontend, copy the `dist` directory contents into the `data/w
|
||||
|
||||
# 🔗 Related Repositories
|
||||
|
||||
| Repository | Description | GitHub | Gitee |
|
||||
| ---------------- | ---------------------------------------- | -------------------------------------------------- | ------------------------------------------------ |
|
||||
| **Toonflow-app** | Full client (this repo, recommended for regular users) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-app) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-app) |
|
||||
| **Toonflow-web** | Frontend source code (for frontend developers) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-web) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-web) |
|
||||
| Repository | Description | GitHub | Gitee |
|
||||
|------------------|-----------------------------------------------------------------------------|----------------------------------------------------|--------------------------------------------------|
|
||||
| **Toonflow-app** | Full client (This repository — recommended for most users) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-app) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-app) |
|
||||
| **Toonflow-web** | Frontend source code (For frontend developers) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-web) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-web) |
|
||||
|
||||
> 💡 **Tip**: If you simply want to use Toonflow, download the client from this repository. The frontend repository is for developers who need secondary development or UI customization.
|
||||
> 💡 **Tip**: If you just want to use Toonflow, downloading the client from this repository is sufficient. The Toonflow-web repository is intended only for developers who need to customize the UI or perform secondary development.
|
||||
|
||||
---
|
||||
|
||||
# 👨👩👧👦 WeChat Group
|
||||
# 👨👩👧👦 Discord Community
|
||||
|
||||
Helper bot:
|
||||
|
||||
<img src="./QR.png" alt="Toonflow QR" height="400"/>
|
||||
|
||||
You can also click the icon to join Discord:
|
||||
Click the icon below to join our Discord:
|
||||
|
||||
[](https://discord.gg/HEjKmpNpAZ)
|
||||
|
||||
Or click the invite link: [https://discord.gg/HEjKmpNpAZ](https://discord.gg/HEjKmpNpAZ)
|
||||
Or click the direct link: [https://discord.gg/HEjKmpNpAZ](https://discord.gg/HEjKmpNpAZ)
|
||||
|
||||
---
|
||||
|
||||
# 💌 Contact Us
|
||||
|
||||
📧 Email: [ltlctools@outlook.com](mailto:ltlctools@outlook.com?subject=Toonflow Inquiry)
|
||||
📧 Email: [ltlctools@outlook.com](mailto:ltlctools@outlook.com?subject=Toonflow%20Inquiry)
|
||||
|
||||
---
|
||||
|
||||
# 📜 License
|
||||
|
||||
Toonflow is open-sourced under the Apache-2.0 license, with supplementary commercial terms.
|
||||
Toonflow is open-sourced under the Apache-2.0 License with an additional supplementary commercial agreement.
|
||||
|
||||
License details: https://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
## Supplementary Agreement
|
||||
## Supplementary Commercial Agreement
|
||||
|
||||
- If you distribute this software as a product to **2 or more independent third parties**, you must obtain **written commercial authorization** from HBAI-Ltd.
|
||||
- **≤ 5 legal entities** jointly operating for internal use without providing services externally is considered internal use and **does not require authorization**.
|
||||
- Do not remove or modify any Toonflow identifiers or copyright information.
|
||||
- If this software is distributed as a product to **2 or more independent third parties**, a **written commercial license** from HBAI-Ltd is required.
|
||||
- Joint operation and internal use by **≤ 5 legal entities** (without providing services to external users) is considered internal use and **does not require a license**.
|
||||
- It is strictly prohibited to remove or modify any logos or copyright information within Toonflow.
|
||||
|
||||
## Permanent Free Use Cases
|
||||
## Forever Free Usage Scenarios
|
||||
|
||||
- ✅ Creating content with Toonflow and receiving platform revenue shares
|
||||
- ✅ Using Toonflow to create content and earning revenue share from video platforms
|
||||
- ✅ Secondary development for internal team use
|
||||
- ✅ ≤ 5 legal entities joint internal operation
|
||||
- ✅ Personal learning, research, non-commercial use
|
||||
- ✅ Joint/internal use by up to 5 legal entities
|
||||
- ✅ Personal learning, research, and non-commercial purposes
|
||||
|
||||
## Commercial License Pricing
|
||||
|
||||
| Stage | Annual Revenue | Annual Fee |
|
||||
| ------------- | -------------- | ----------------------------- |
|
||||
| 🌱 Support | < ¥100,000 | **Free license upon request** |
|
||||
| 🚀 Startup | ¥100–500,000 | ¥5,000/year |
|
||||
| 📈 Growth | ¥500k–1.5M | ¥20,000/year |
|
||||
| 🏢 Scale | ¥1.5M–5M | ¥80,000/year |
|
||||
| 🌐 Enterprise | > ¥5M | Negotiable |
|
||||
| Phase | Annual Revenue | Annual Fee |
|
||||
|----------------|-------------------------|---------------------|
|
||||
| 🌱 Incubation | < $15,000 | **Free** |
|
||||
| 🚀 Startup | $15,000 – $75,000 | $750 / year |
|
||||
| 📈 Growth | $75,000 – $200,000 | $2,900 / year |
|
||||
| 🏢 Scale | $200,000 – $750,000 | $11,500 / year |
|
||||
| 🌐 Enterprise | > $750,000 | Negotiable |
|
||||
|
||||
> **Non-retroactive clause**: Users who used Toonflow under AGPL-3.0 before the v1.0.8 release will continue to be governed by AGPL-3.0 and are not affected by this agreement change.
|
||||
> **Non-Retroactivity Clause**: Users who were using Toonflow under the AGPL-3.0 license before version v1.0.8 will continue to be governed by AGPL-3.0 and are not affected by this agreement change.
|
||||
|
||||
See the full agreement in the [LICENSE](./LICENSE) file.
|
||||
For the full agreement, please refer to the [LICENSE](./LICENSE) file.
|
||||
|
||||
---
|
||||
|
||||
# ⭐️ Star History
|
||||
|
||||
[](https://www.star-history.com/#HBAI-Ltd/Toonflow-app)
|
||||
|
||||
[](https://www.star-history.com/#HBAI-Ltd/Toonflow-app&type=timeline&legend=top-left)
|
||||
|
||||
---
|
||||
|
||||
|
||||
# 🙏 Acknowledgements
|
||||
|
||||
We thank the following open-source projects for providing powerful support to Toonflow:
|
||||
We sincerely thank the following open-source projects for providing robust support to Toonflow:
|
||||
|
||||
- [Express](https://expressjs.com/) - Fast, unopinionated, minimalist web framework for Node.js
|
||||
- [AI SDK](https://ai-sdk.dev/) - AI toolkit for TypeScript
|
||||
- [Better-SQLite3](https://github.com/WiseLibs/better-sqlite3) - High-performance SQLite3 binding
|
||||
- [AI SDK](https://ai-sdk.dev/) - The AI toolkit for TypeScript
|
||||
- [Better-SQLite3](https://github.com/WiseLibs/better-sqlite3) - High-performance SQLite3 binding library
|
||||
- [Sharp](https://sharp.pixelplumbing.com/) - High-performance Node.js image processing
|
||||
- [Axios](https://axios-http.com/) - Promise-based HTTP client
|
||||
- [Zod](https://zod.dev/) - TypeScript-first schema validation
|
||||
- [Socket.IO](https://socket.io/) - Real-time bidirectional event-based communication
|
||||
- [Electron](https://www.electronjs.org/) - Cross-platform desktop application framework
|
||||
- [Hugging Face Transformers](https://huggingface.co/docs/transformers.js) - Local ML inference library
|
||||
- [Hugging Face Transformers](https://huggingface.co/docs/transformers.js) - State-of-the-art Machine Learning for the web
|
||||
|
||||
We also thank the following organizations/units/individuals for their support:
|
||||
Thanks to the following organizations/individuals for supporting Toonflow:
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
@ -695,7 +589,7 @@ We also thank the following organizations/units/individuals for their support:
|
||||
<th align="center">Logo</th>
|
||||
<th align="center">Name</th>
|
||||
<th align="center">Support Type</th>
|
||||
<th>Introduction</th>
|
||||
<th>Description</th>
|
||||
<th align="center">Website</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -703,31 +597,20 @@ We also thank the following organizations/units/individuals for their support:
|
||||
<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">💻 Computing Sponsorship</td>
|
||||
<td>Committed to building a faster, more stable, and more cost-effective one-stop model inference API service platform</td>
|
||||
<td align="center">💻 Computing Sponsor</td>
|
||||
<td>Committed to creating a faster, more stable, and more cost-effective one-stop model inference API service platform</td>
|
||||
<td align="center"><a href="https://www.sophnet.com/">Website</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">💻 Computing Sponsorship</td>
|
||||
<td>The world's first full-modality reasoning platform. Dialogue, image, video, audio — all unified API. 300+ models, OpenAI compatible.</td>
|
||||
<td align="center">💻 Computing Sponsor</td>
|
||||
<td>The world's first full-modal inference platform built for developers. Run AI across every modality—chat, reasoning, image, audio, video—through one unified API. 300+ models including DeepSeek, Minimax, Seedance 2.0, Flux. OpenAI-compatible, no provider switching. Explore, test, scale inference seamlessly.</td>
|
||||
<td align="center"><a href="https://www.atlascloud.ai/">Website</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">🌐 World Model Technical Support</td>
|
||||
<td>Tencent Hunyuan 3D AI creation engine based on version 2.5 of the Hunyuan 3D generation large model, the industry's first one-stop 3D content AI creation platform. Features text-to-3D, image-to-3D, 3D animation generation, texture generation, supports sketch-to-3D, 3D character generation, with advantages in low-poly model generation.</td>
|
||||
<td align="center"><a href="https://3d.hunyuan.tencent.com/">Website</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
For the complete list of third-party dependencies, please refer to `NOTICES.txt`
|
||||
For a complete list of third-party dependencies, please refer to `NOTICES.txt`.
|
||||
|
||||
##### copyright © Beijing Ai'a 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%"/>
|
||||
##### Copyright © Huaibei AIA Network Technology Co., Ltd.
|
||||
@ -1,5 +1,3 @@
|
||||
<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" />
|
||||
@ -28,8 +26,17 @@
|
||||
|
||||
<img src="./logo.png" alt="Toonflow Logo" height="120"/>
|
||||
|
||||
[](https://git.io/typing-svg)
|
||||
# Toonflow
|
||||
|
||||
<p align="center">
|
||||
<b>
|
||||
AI ショートドラマ制作スタジオ
|
||||
<br />
|
||||
指先一つで、小説があっという間にドラマに!
|
||||
<br />
|
||||
AI脚本 × AI映像 × 超高速生成 🔥
|
||||
</b>
|
||||
</p>
|
||||
<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="Stars Badge" />
|
||||
@ -41,278 +48,163 @@
|
||||
<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="Forks Badge" />
|
||||
</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 No.540" />
|
||||
</a>
|
||||
<a href="https://discord.gg/HEjKmpNpAZ">
|
||||
<img src="https://img.shields.io/badge/Discord-Community-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="Issues" />
|
||||
</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="Contributors" />
|
||||
</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="Last Commit" />
|
||||
</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="Tech Stack Icons" />
|
||||
</p>
|
||||
<p align="center">
|
||||
<img src="https://widgetbite.com/stats/HBAI-Ltd" alt="Visitors" />
|
||||
</p>
|
||||
|
||||
> 🚀 **オールインワンのショートドラマエンジン**:テキストからキャラクター、絵コンテから動画まで、ゼロハードルで全工程をAI化、制作効率10倍以上!
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
<a href="./g-star.png" target="_blank">
|
||||
<img src="./g-star.png" alt="AtomGit G-Star 認証証明書" width="100%"/>
|
||||
</a>
|
||||
> 🚀 **オールインワン制作環境**:テキストからキャラクター、絵コンテから動画まで。
|
||||
専門知識ゼロでも全プロセスをAIが**アシスト**し、創作効率を10倍以上に引き上げます!
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 🌐 多言語サポート
|
||||
# 🌐 多言語対応
|
||||
|
||||
Toonflow は以下の言語のインターフェースに対応しています:
|
||||
Toonflow は以下の言語インターフェースに対応しています:
|
||||
|
||||
| 言語 | Language |
|
||||
| ---------- | --------------------- |
|
||||
| 简体中文 | Chinese (Simplified) |
|
||||
| 繁體中文 | Chinese (Traditional) |
|
||||
| English | English |
|
||||
| ไทย | Thai |
|
||||
| Tiếng Việt | Vietnamese |
|
||||
| 日本語 | Japanese |
|
||||
| Русский | Russian |
|
||||
| 言語 | Language |
|
||||
|------|----------|
|
||||
| 简体中文 | Chinese (Simplified) |
|
||||
| 繁體中文 | Chinese (Traditional) |
|
||||
| English | English |
|
||||
| ไทย | Thai |
|
||||
| Tiếng Việt | Vietnamese |
|
||||
| 日本語 | Japanese |
|
||||
| Русский | Russian |
|
||||
|
||||
> 💡 他の言語も準備中です。翻訳のご協力をお待ちしています!
|
||||
> 💡 さらに多くの言語に対応予定です。多言語翻訳へのご協力(貢献)を歓迎します!
|
||||
|
||||
---
|
||||
|
||||
# 🌟 主な機能
|
||||
|
||||
Toonflow はショートドラマ制作のためのAIワークベンチです。「企画→脚本→絵コンテ→映像出力」の完全なクローズドループを構築し、ローカライズ・プログラマブル・持続的イテレーションが可能な制作フローをサポートします。
|
||||
Toonflow は、AI技術を活用して小説を自動的に脚本へ変換し、AIが生成した画像や動画と組み合わせることで、効率的なショートドラマ制作を強力に**アシスト**するツールです。Toonflow を使えば、テキストから映像までの全工程を簡単に完結でき、ドラマ制作がよりスマートで便利になります。
|
||||
|
||||
- ✅ **無限キャンバス制作ワークベンチ**
|
||||
無限キャンバス状に脚本、キャラクター、絵コンテ、素材、動画ノードを整理。自由な配置、巻き戻し、並行制作が可能で、線形ステップに制限されません。
|
||||
- ✅ **3層エージェント協調システム**
|
||||
意思決定層、実行層、監督層が連携し、タスク分解、コンテンツ生成、品質レビュー、修正フィードバックをカバー。安定性と出力の一貫性を向上します。
|
||||
- ✅ **永続化エージェントメモリ**
|
||||
ローカルONNXベクトル検索によるセッションを跨ぐメモリシステム。短期メッセージ、長期要約、意味検索をサポートし、複数ラウンドの創作の連続性を確保します。
|
||||
- ✅ **プログラマブルベンダーシステム**
|
||||
設定センターでベンダーのTypeScriptロジックを直接記述し、即座に反映。ソースコードの変更や再起動は不要で、プライベート化や複数モデルの統合に便利です。
|
||||
- ✅ **章イベントグラフ駆動の翻案**
|
||||
原作の各章のイベントを自動抽出して構造化保存。脚本翻案はイベントグラフに基づいてコンテキストを正確に呼び出し、長文の情報損失を低減します。
|
||||
- ✅ **Skill ファイル化構成**
|
||||
ScriptAgent と ProductionAgent の核心プロンプトをMarkdown Skillファイルとして外部化。オンライン編集と迅速なチューニングが可能です。
|
||||
- ✅ **キャラクター生成** 原作の小説テキストを自動分析し、容姿、性格、身分などの詳細情報をインテリジェントに認識・生成します。これにより、後の脚本や画面作りにおいて信頼できる土台を提供します。
|
||||
|
||||
- ✅ **脚本生成** 選択したイベントや章に基づき、セリフ、シーンの描写、ストーリー展開を含む構造化された脚本を自動生成します。文学テキストから映像用脚本への高効率な変換を**アシスト**します。
|
||||
|
||||
- ✅ **絵コンテ制作** 脚本の内容から、絵コンテ用のプロンプト(指示文)と画面構成をインテリジェントに生成します。前景・中景・背景、キャラクターの動き、小道具の配置などを細分化し、動画制作の道筋を完全に**アシスト**します。
|
||||
|
||||
- ✅ **動画合成** AI画像および動画技術を統合し、AIによる動画クリップ生成を可能にします。オンライン編集機能も備えており、個別の微調整に対応。映像制作の効率的な連携とスピーディな完成を**アシスト**します。
|
||||
|
||||
---
|
||||
|
||||
# 📦 応用シーン
|
||||
# 📦 活用シーン
|
||||
|
||||
- ショート動画コンテンツ制作
|
||||
- 小説の映像化実験
|
||||
- AI文学翻案ツール
|
||||
- 脚本開発とラピッドプロトタイピング
|
||||
- 動画素材生成
|
||||
- ショート動画コンテンツの制作
|
||||
- 小説の映像化テスト
|
||||
- AIによる文学作品の翻案(脚色)ツール
|
||||
- 脚本開発および迅速なプロトタイプ作成
|
||||
- 動画素材の生成
|
||||
|
||||
---
|
||||
|
||||
# 🔰 使い方ガイド
|
||||
# 🔰 ご利用ガイド
|
||||
|
||||
## クイックスタート
|
||||
## 📺 動画チュートリアル
|
||||
|
||||
1. アプリを起動しログイン(デフォルトアカウント:`admin` / `admin123`)。
|
||||
2. 設定センターでモデルベンダーを設定(テキスト/画像/動画モデル)。
|
||||
3. 新規プロジェクトを作成し原作をインポート、章イベント抽出を実行。
|
||||
4. ScriptAgent に入り、ストーリー骨格、翻案戦略、構造化脚本を生成。
|
||||
5. ProductionAgent に切り替え、無限キャンバス上で絵コンテ、素材、動画ノードを整理。
|
||||
6. 絵コンテ画像をノード化して微調整後、ワークベンチに戻し動画結合とエクスポートを完了。
|
||||
[https://www.bilibili.com/video/BV1oXD7BqEqJ](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
|
||||
## 📺 ビデオチュートリアル
|
||||
**Toonflow 12分でわかるクイックスタート AI動画作成**
|
||||
👉 [クリックして視聴](https://www.bilibili.com/video/BV1oXD7BqEqJ/?share_source=copy_web&vd_source=5b718c25439a901a34c7bc0c1d35b38e)
|
||||
|
||||
https://www.bilibili.com/video/BV1oXD7BqEqJ
|
||||
[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
📱 QRコードをスキャンして視聴
|
||||
|
||||
**Toonflow 12分でわかるAI動画クイックスタート**
|
||||
👉 [クリックして視聴](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
|
||||
📱 スマホでWeChatスキャンして視聴
|
||||
|
||||
<img src="./videoQR.png" alt="WeChatスキャンで視聴" width="150"/>
|
||||
|
||||
---
|
||||
|
||||
# 📸 デモスクリーンショットと動画
|
||||
|
||||
以下のスクリーンショットと動画は、Toonflow を使って制作したAIショートドラマデモです。全体で約2時間で完成し、脚本生成、絵コンテ制作、編集を含みます。
|
||||
|
||||
<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>
|
||||
|
||||
## 🎬 デモ動画
|
||||
|
||||
<div align="center">
|
||||
|
||||
https://github.com/user-attachments/assets/2d9fddac-dfdf-4640-b030-b09d7f7287e9
|
||||
|
||||
再生できない場合は、[動画をダウンロード](./screenshot/demo.mp4) してください。
|
||||
|
||||
</div>
|
||||
|
||||
## デモ情報
|
||||
|
||||
| 項目 | 詳細 |
|
||||
| :--- | :--- |
|
||||
| 制作期間 | 約2時間 |
|
||||
| 動画モデル | Seedance 2.0 |
|
||||
| 画像モデル | GPT Image 2 |
|
||||
| 言語モデル | Claude Opus 4.6 |
|
||||
| 完成動画長 | 約2分(元素材3分、不要部分を約1分カット) |
|
||||
|
||||
## コスト明細
|
||||
|
||||
| モデル種類 | 費用 |
|
||||
| :--- | :--- |
|
||||
| 言語モデル | 約 ¥10 |
|
||||
| 動画モデル(全量生成) | 約 ¥120 |
|
||||
| 画像モデル | ¥1未満 |
|
||||
| **合計** | **約 ¥130** |
|
||||
|
||||
> **声明**:デモの元解像度は1080×1882、公開版は480pに圧縮しています。著作権に関する問題があれば、お問い合わせいただければ削除対応いたします。
|
||||
<img src="./videoQR.png" alt="WeChat スキャンして視聴" width="150"/>
|
||||
|
||||
---
|
||||
|
||||
# 🚀 インストール
|
||||
|
||||
## 前提条件
|
||||
## 必須環境(前提条件)
|
||||
|
||||
本ソフトウェアをインストールして使用する前に、以下を準備してください:
|
||||
本ソフトウェアをインストールして使用する前に、以下の準備をお願いします:
|
||||
|
||||
- ✅ 大規模言語モデルAIサービスのAPIエンドポイント
|
||||
- ✅ Sora または 豆包 動画サービスのAPIエンドポイント
|
||||
- ✅ Nano Banana Pro 画像生成モデルサービスのエンドポイント
|
||||
- ✅ 大規模言語モデル (LLM) の AI サービス API エンドポイント
|
||||
- ✅ Sora または 豆包 (Doubao) の動画サービス API エンドポイント
|
||||
- ✅ Nano Banana Pro の画像生成モデルサービス API エンドポイント
|
||||
|
||||
## ローカルインストール
|
||||
## ローカル環境へのインストール
|
||||
|
||||
### 1. ダウンロードとインストール
|
||||
|
||||
| オペレーティングシステム | GitHub | 説明 |
|
||||
| :------: | :----------------------------------------------------------- | :--------------------- |
|
||||
| Windows | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | 公式リリースインストーラ |
|
||||
| Linux | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | 公式リリースインストーラ |
|
||||
| macOS | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | 公式リリースインストーラ |
|
||||
| OS | GitHub | Atomgit | Quark Drive | 説明 |
|
||||
| :------: | :----------------------------------------------------------- | :------------------------------------------------------------ | :---------------------------------------------- | :------------- |
|
||||
| Windows | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [Quark Drive](https://pan.quark.cn/s/94ef07509df0) | 公式インストーラ |
|
||||
| Linux | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [Quark Drive](https://pan.quark.cn/s/94ef07509df0) | 公式インストーラ |
|
||||
| macOS | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [Quark Drive](https://pan.quark.cn/s/94ef07509df0) | 公式インストーラ |
|
||||
|
||||
> [!CAUTION]
|
||||
> MacOS システムの場合は、設定→プライバシーとセキュリティ でセキュリティ設定を行ってください。証明書の問題で正常に開けない場合があります。
|
||||
> MacOS システムをご利用の場合、「システム設定」-「プライバシーとセキュリティ」からセキュリティ設定を行ってください。そうしないと、証明書の問題で正常に開けない場合があります。
|
||||
>
|
||||
> 参考:知乎ドキュメント:[https://www.zhihu.com/question/433389276](https://www.zhihu.com/question/433389276)
|
||||
> 参考ドキュメント(Zhihu):[https://www.zhihu.com/question/433389276](https://www.zhihu.com/question/433389276)
|
||||
|
||||
> Gitee OS 環境の制限および Release ファイルのアップロードサイズ制限のため、Gitee Release のダウンロードリンクは現在提供しておりません。
|
||||
> Gitee OS 環境の制限および Release ファイルのアップロード容量制限により、現在 Gitee Release のダウンロードリンクは提供していません。
|
||||
|
||||
### 2. サービスの起動
|
||||
|
||||
インストール完了後、プログラムを起動してサービスをご利用いただけます。
|
||||
インストール完了後、プログラムを起動すればサービスを利用開始できます。
|
||||
|
||||
> ⚠️ **初回ログイン**
|
||||
> アカウント:`admin`
|
||||
> ⚠️ **初回ログイン**
|
||||
> ユーザー名:`admin`
|
||||
> パスワード:`admin123`
|
||||
|
||||
## Docker デプロイ
|
||||
## Docker を利用した導入
|
||||
|
||||
### 前提条件
|
||||
### 必須環境
|
||||
|
||||
- [Docker](https://docs.docker.com/get-docker/) がインストール済み(バージョン20.10以上)
|
||||
- [Docker](https://docs.docker.com/get-docker/) がインストール済みであること(バージョン 20.10+)
|
||||
|
||||
### 方法1:オンラインデプロイ
|
||||
### 方法1:オンライン展開
|
||||
|
||||
準備中です。当面はローカルビルドをご利用ください。
|
||||
現在準備中です。一時的にローカルでのビルドをご利用ください。
|
||||
|
||||
### 方法2:ローカルビルド
|
||||
### 方法2:ローカルでのビルド
|
||||
|
||||
ローカルのソースコードを使って直接ビルドします。開発者やリポジトリをクローン済みのユーザー向けです。事前にgitをインストールしておく必要があります:
|
||||
既存のソースコードを使用して直接ビルドします。開発者やリポジトリをクローンしたユーザーに適しています(ローカルに git がインストールされている必要があります):
|
||||
|
||||
```shell
|
||||
# プロジェクトをクローン(既にある場合はスキップ)
|
||||
# まずプロジェクトをクローン(既に存在する場合はスキップ)
|
||||
git clone https://github.com/HBAI-Ltd/Toonflow-app.git
|
||||
cd Toonflow-app
|
||||
|
||||
# docker-compose でローカルビルド&起動
|
||||
# docker-compose を使用してローカルでビルド・起動
|
||||
yarn docker:local
|
||||
|
||||
# または手動ビルド
|
||||
# または手動でビルド
|
||||
docker build -t toonflow .
|
||||
docker run -d -p <ローカルポート>:10588 -v <ローカルデータパス>:/app/data toonflow
|
||||
|
||||
# 該当ポートの /web/index.html にアクセス
|
||||
# 例:http://localhost:10588/web/index.html
|
||||
# これで指定したポートの /web/index.html にアクセスできます
|
||||
# 例: http://localhost:10588/web/index.html
|
||||
```
|
||||
|
||||
### サービスポート説明
|
||||
### サービスポートの説明
|
||||
|
||||
| ポート | 用途 | デプロイマッピング |
|
||||
| -------- | ------------- | ------------------ |
|
||||
| `10588` | ソフトウェアUI | `10588:10588` |
|
||||
| ポート | 用途 | デプロイマッピング |
|
||||
| ------- | -------- | ------------- |
|
||||
| `10588` | ソフトウェア画面 | `10588:10588` |
|
||||
|
||||
**環境変数の説明:**
|
||||
|
||||
| 変数 | 説明 |
|
||||
| ---------- | -------------------------------- |
|
||||
| `NODE_ENV` | 実行環境。`prod`は本番環境 |
|
||||
| `PORT` | サービス待受ポート(デフォルト10588) |
|
||||
| `OSSURL` | ファイルストレージアクセスURL(静的リソース用) |
|
||||
| 変数名 | 説明 |
|
||||
| ---------- | ---------------------------------- |
|
||||
| `NODE_ENV` | 実行環境。`prod` は本番環境を示します |
|
||||
| `PORT` | サービスの待受ポート(デフォルト 10588) |
|
||||
| `OSSURL` | ファイルストレージのアクセスURL(静的リソース用) |
|
||||
|
||||
---
|
||||
|
||||
## クラウドデプロイ
|
||||
## クラウド(サーバー)への導入
|
||||
|
||||
### 一、サーバー環境要件
|
||||
### 1. サーバー環境の要件
|
||||
|
||||
- **OS**:Ubuntu 20.04+ / CentOS 7+
|
||||
- **Node.js**:24.x(推奨、最低23.11.1以上)
|
||||
- **Node.js**:24.x(推奨、最低 23.11.1+)
|
||||
- **メモリ**:2GB以上
|
||||
|
||||
### 二、サーバーデプロイ
|
||||
### 2. サーバーへの配置
|
||||
|
||||
#### 1. 環境インストール
|
||||
#### 1. 環境構築
|
||||
|
||||
```bash
|
||||
# Node.js のインストール
|
||||
@ -323,7 +215,7 @@ nvm install 24
|
||||
npm install -g yarn pm2
|
||||
```
|
||||
|
||||
#### 2. プロジェクトのデプロイ
|
||||
#### 2. プロジェクトの配置
|
||||
|
||||
**GitHub からクローン:**
|
||||
|
||||
@ -335,7 +227,7 @@ yarn install
|
||||
yarn build
|
||||
```
|
||||
|
||||
**Gitee からクローン(国内ユーザー向け):**
|
||||
**Gitee からクローン(中国国内推奨):**
|
||||
|
||||
```bash
|
||||
cd /opt
|
||||
@ -347,7 +239,7 @@ yarn build
|
||||
|
||||
#### 3. PM2 の設定
|
||||
|
||||
`pm2.json` ファイルを作成:
|
||||
`pm2.json` ファイルを作成します:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -365,11 +257,11 @@ yarn build
|
||||
|
||||
**環境変数の説明:**
|
||||
|
||||
| 変数 | 説明 |
|
||||
| ---------- | -------------------------------- |
|
||||
| `NODE_ENV` | 実行環境。`prod`は本番環境 |
|
||||
| `PORT` | サービス待受ポート |
|
||||
| `OSSURL` | ファイルストレージアクセスURL(静的リソース用) |
|
||||
| 変数名 | 説明 |
|
||||
| ---------- | ---------------------------------- |
|
||||
| `NODE_ENV` | 実行環境。`prod` は本番環境を示します |
|
||||
| `PORT` | サービスの待受ポート |
|
||||
| `OSSURL` | ファイルストレージのアクセスURL(静的リソース用) |
|
||||
|
||||
---
|
||||
|
||||
@ -384,54 +276,54 @@ pm2 save
|
||||
#### 5. よく使うコマンド
|
||||
|
||||
```bash
|
||||
pm2 list # プロセス一覧
|
||||
pm2 logs toonflow-app # ログ表示
|
||||
pm2 restart all # サービス再起動
|
||||
pm2 monit # モニタリングパネル
|
||||
pm2 list # プロセス一覧の確認
|
||||
pm2 logs toonflow-app # ログの確認
|
||||
pm2 restart all # サービスの再起動
|
||||
pm2 monit # 監視パネルの表示
|
||||
```
|
||||
|
||||
> ⚠️ **初回ログイン**
|
||||
> アカウント:`admin`
|
||||
> ⚠️ **初回ログイン**
|
||||
> ユーザー名:`admin`
|
||||
> パスワード:`admin123`
|
||||
|
||||
#### 6. フロントエンドのデプロイ
|
||||
#### 6. フロントエンドサイトの配置
|
||||
|
||||
フロントエンドを個別にデプロイまたはカスタマイズする場合は、フロントエンドリポジトリを参照してください:
|
||||
フロントエンド画面を単独で配置、またはカスタマイズしたい場合は、フロントエンドのリポジトリを参照してください:
|
||||
|
||||
- **GitHub**:[Toonflow-web](https://github.com/HBAI-Ltd/Toonflow-web)
|
||||
- **Gitee**:[Toonflow-web](https://gitee.com/HBAI-Ltd/Toonflow-web)
|
||||
|
||||
> 💡 **説明**:本リポジトリにはコンパイル済みのフロントエンドリソースが組み込まれているため、一般ユーザーはフロントエンドを個別にデプロイする必要はありません。フロントエンドリポジトリは二次開発を行う開発者向けです。
|
||||
> 💡 **補足**:本リポジトリには既にコンパイル済みのフロントエンド成果物が組み込まれているため、一般ユーザーはフロントエンドを個別に配置する必要はありません。フロントエンドのリポジトリは、二次開発を行う開発者向けです。
|
||||
|
||||
---
|
||||
|
||||
# 🔧 開発フローガイド
|
||||
|
||||
> [!CAUTION]
|
||||
> 🚧 **PR 提出ルール** 🚧
|
||||
> 🚧 **PR(プルリクエスト)提出のルール** 🚧
|
||||
>
|
||||
> ⛔ `master` ブランチへのPRは受け付けていません。✅ `develop` ブランチにPRを提出してください。
|
||||
> ⛔ `master` ブランチへの PR は受け付けていません | ✅ PR は `develop` ブランチへ提出してください
|
||||
>
|
||||
> 開発者の皆様のToonflowへの共同参加を歓迎します。参加ご希望の方は、交流グループ内で主催者ACTまでご連絡ください。
|
||||
> 開発者の皆様の Toonflow への共同参加を歓迎します。興味のある方は、交流グループ内で管理者の ACT までご連絡ください。
|
||||
|
||||
## 🛠️ 技術スタック
|
||||
## 🛠️ 採用技術
|
||||
|
||||
| カテゴリ | 技術 |
|
||||
| ------------ | ----------------------------------------------------------------------------------------- |
|
||||
| ランタイム | Node.js 23.11.1+ |
|
||||
| 言語 | TypeScript 5.x |
|
||||
| カテゴリ | 技術 |
|
||||
| ---------- | ----------------------------------------------------------------------------------------- |
|
||||
| 実行環境 | Node.js 23.11.1+ |
|
||||
| 言語 | TypeScript 5.x |
|
||||
| バックエンド | Express 5 |
|
||||
| データベース | SQLite(better-sqlite3 / knex) |
|
||||
| AI統合 | Vercel AI SDK(OpenAI / Anthropic / Google / DeepSeek / 智谱 / MiniMax / 通义千问 / xAI) |
|
||||
| AI 統合 | Vercel AI SDK(OpenAI / Anthropic / Google / DeepSeek / 智譜 / MiniMax / 通義千問 / xAI) |
|
||||
| ローカル推論 | @huggingface/transformers(ONNX) |
|
||||
| リアルタイム通信 | Socket.IO |
|
||||
| デスクトップクライアント | Electron 40 |
|
||||
| 画像処理 | Sharp |
|
||||
| コンテナ化 | Docker |
|
||||
| リアルタイム通信 | Socket.IO |
|
||||
| デスクトップアプリ | Electron 40 |
|
||||
| 画像処理 | Sharp |
|
||||
| コンテナ化 | Docker |
|
||||
|
||||
## 開発環境の準備
|
||||
|
||||
- **Node.js**:バージョン23.11.1以上
|
||||
- **Node.js**:バージョン 23.11.1 以上が必要
|
||||
- **Yarn**:プロジェクトのパッケージマネージャーとして推奨
|
||||
|
||||
## プロジェクトのクイックスタート
|
||||
@ -445,16 +337,16 @@ pm2 monit # モニタリングパネル
|
||||
cd Toonflow-app
|
||||
```
|
||||
|
||||
**Gitee からクローン(国内ユーザー向け):**
|
||||
**Gitee からクローン(中国国内推奨):**
|
||||
|
||||
```bash
|
||||
git clone https://gitee.com/HBAI-Ltd/Toonflow-app.git
|
||||
cd Toonflow-app
|
||||
```
|
||||
|
||||
2. **依存関係のインストール**
|
||||
2. **依存関係(パッケージ)のインストール**
|
||||
|
||||
プロジェクトルートで以下のコマンドを実行して依存関係をインストールしてください:
|
||||
プロジェクトのルートディレクトリで以下のコマンドを実行します:
|
||||
|
||||
```bash
|
||||
yarn install
|
||||
@ -462,7 +354,7 @@ pm2 monit # モニタリングパネル
|
||||
|
||||
3. **開発環境の起動**
|
||||
|
||||
本プロジェクトは **バックエンドAPIサービス** と **フロントエンドページ** の2つの部分からなります。必要に応じて起動方法を選択してください:
|
||||
本プロジェクトは **バックエンド API サービス** と **フロントエンド画面** の2つの部分を含みます。必要に応じて起動方法を選択してください:
|
||||
|
||||
- **方法1:バックエンドサービスのみ起動**
|
||||
|
||||
@ -470,7 +362,7 @@ pm2 monit # モニタリングパネル
|
||||
yarn dev
|
||||
```
|
||||
|
||||
> ⚠️ このコマンドはバックエンドAPIサービスのみ起動(ポート10588)し、**フロントエンドページは含みません**。`http://localhost:10588` に直接アクセスするとAPIインターフェースのみ呼び出せ、完全なWebインターフェースは表示されません。フロントエンドページも使用する場合は、フロントエンドプロジェクトを別途起動するか、下記のGUIモードを使用してください。
|
||||
> ⚠️ このコマンドはバックエンド API サービス(ポート 10588)のみを起動し、**フロントエンド画面は含まれません**。直接 `http://localhost:10588` にアクセスしても API を呼び出せるだけで、完全な Web 画面は見えません。画面を利用する場合はフロントエンドプロジェクトを別途起動するか、以下の GUI モードを使用してください。
|
||||
|
||||
- **方法2:Electron デスクトップクライアントの起動**
|
||||
|
||||
@ -478,45 +370,45 @@ pm2 monit # モニタリングパネル
|
||||
yarn dev:gui
|
||||
```
|
||||
|
||||
> このコマンドはバックエンドサービスとElectronデスクトップウィンドウを同時に起動します。組み込みのフロントエンドページが含まれており、追加設定なしで即座に使用できます。全機能を完全に体験したい開発者に適しています。
|
||||
> このコマンドはバックエンドサービスと Electron のデスクトップウィンドウを同時に起動します。フロントエンド画面が内蔵されており、追加の設定なしですぐに使えます。すべての機能を体験したい開発者に最適です。
|
||||
|
||||
- **方法3:本番モードでの起動**
|
||||
- **方法3:本番(Production)モードで起動**
|
||||
|
||||
```bash
|
||||
yarn start
|
||||
```
|
||||
|
||||
> 本番モードでコンパイル済みのサービスを直接実行します(事前に `yarn build` が必要です)。
|
||||
> コンパイル済みのサービスを本番モードで直接実行します(事前に `yarn build` を実行しておく必要があります)。
|
||||
|
||||
4. **プロジェクトのパッケージング**
|
||||
4. **プロジェクトのパッケージ化(ビルド)**
|
||||
|
||||
- TypeScriptファイルのコンパイルと生成:
|
||||
- コンパイルして TypeScript ファイルを生成:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
- Windows プラットフォーム用実行可能プログラムのパッケージング:
|
||||
- Windows 用の実行ファイルをパッケージ化:
|
||||
|
||||
```bash
|
||||
yarn dist:win
|
||||
```
|
||||
|
||||
- Mac プラットフォーム用実行可能プログラムのパッケージング:
|
||||
- Mac 用の実行ファイルをパッケージ化:
|
||||
|
||||
```bash
|
||||
yarn dist:mac
|
||||
```
|
||||
|
||||
- Linux プラットフォーム用実行可能プログラムのパッケージング:
|
||||
- Linux 用の実行ファイルをパッケージ化:
|
||||
|
||||
```bash
|
||||
yarn dist:linux
|
||||
```
|
||||
|
||||
5. **コード品質チェック**
|
||||
5. **コード品質チェック(Lint)**
|
||||
|
||||
- グローバルな構文と規約のチェック:
|
||||
- グローバルな構文およびコーディング規約のチェックを実行:
|
||||
|
||||
```bash
|
||||
yarn lint
|
||||
@ -524,7 +416,7 @@ pm2 monit # モニタリングパネル
|
||||
|
||||
6. **AI デバッグパネル(オプション)**
|
||||
|
||||
AI SDKの可視化デバッグツールを起動し、AI呼び出しをデバッグしやすくします:
|
||||
AI SDK のビジュアルデバッグツールを起動し、AI の呼び出しを簡単にデバッグできます:
|
||||
|
||||
```bash
|
||||
yarn debug:ai
|
||||
@ -532,66 +424,66 @@ pm2 monit # モニタリングパネル
|
||||
|
||||
## フロントエンド開発
|
||||
|
||||
フロントエンドインターフェースを変更する場合は、フロントエンドリポジトリで開発を行ってください:
|
||||
フロントエンド画面を修正する必要がある場合は、フロントエンドのリポジトリで開発を行ってください:
|
||||
|
||||
- **GitHub**:[Toonflow-web](https://github.com/HBAI-Ltd/Toonflow-web)
|
||||
- **Gitee**:[Toonflow-web](https://gitee.com/HBAI-Ltd/Toonflow-web)
|
||||
|
||||
フロントエンドをビルド後、`dist` ディレクトリの内容を本プロジェクトの `data/web` ディレクトリにコピーすれば統合完了です。
|
||||
フロントエンドのビルド後、`dist` ディレクトリの内容を本プロジェクトの `data/web` ディレクトリにコピーするだけで統合できます。
|
||||
|
||||
## プロジェクト構造
|
||||
## プロジェクト構成
|
||||
|
||||
```
|
||||
📂 build/ # ビルド成果物
|
||||
📂 data/ # ランタイムデータ
|
||||
│ ├─ 📂 models/ # ローカル推論モデル(ONNX)
|
||||
│ ├─ 📂 oss/ # オブジェクトストレージ(素材/キャラクター/シーン)
|
||||
│ ├─ 📂 serve/ # 本番環境エントリ
|
||||
│ ├─ 📂 skills/ # Agent スキルプロンプト
|
||||
│ └─ 📂 web/ # フロントエンドビルド成果物(組み込み)
|
||||
📂 docs/ # ドキュメントリソース
|
||||
📂 data/ # 実行時データ
|
||||
│ ├─ 📂 models/ # ローカル推論モデル(ONNX)
|
||||
│ ├─ 📂 oss/ # オブジェクトストレージ(素材/キャラクター/背景)
|
||||
│ ├─ 📂 serve/ # 本番環境のエントリー
|
||||
│ ├─ 📂 skills/ # Agent スキルのプロンプト
|
||||
│ └─ 📂 web/ # フロントエンドビルド成果物(内蔵)
|
||||
📂 docs/ # ドキュメントや画像リソース
|
||||
📂 env/ # 環境設定
|
||||
📂 scripts/ # ビルドと補助スクリプト
|
||||
📂 scripts/ # ビルドや補助スクリプト
|
||||
📂 src/
|
||||
├─ 📂 agents/ # AI Agent モジュール
|
||||
│ ├─ 📂 productionAgent/ # プロダクション Agent
|
||||
│ └─ 📂 scriptAgent/ # 脚本 Agent
|
||||
├─ 📂 lib/ # 共通ライブラリ(DB初期化、レスポンスフォーマット)
|
||||
├─ 📂 agents/ # AI Agent モジュール
|
||||
│ ├─ 📂 productionAgent/ # 制作 Agent
|
||||
│ └─ 📂 scriptAgent/ # 脚本 Agent
|
||||
├─ 📂 lib/ # 共通ライブラリ(DB初期化、レスポンス形式など)
|
||||
├─ 📂 middleware/ # ミドルウェア
|
||||
├─ 📂 routes/ # ルートモジュール
|
||||
│ ├─ 📂 agents/ # Agent メモリ管理
|
||||
│ ├─ 📂 artStyle/ # 画風管理
|
||||
│ ├─ 📂 assets/ # 素材管理
|
||||
│ ├─ 📂 assetsGenerate/ # 素材生成
|
||||
│ ├─ 📂 cornerScape/ # 絵コンテ管理
|
||||
│ ├─ 📂 general/ # 汎用インターフェース
|
||||
│ ├─ 📂 login/ # ログイン認証
|
||||
│ ├─ 📂 migrate/ # データマイグレーション
|
||||
│ ├─ 📂 modelSelect/ # モデル選択
|
||||
│ ├─ 📂 novel/ # 小説管理
|
||||
│ ├─ 📂 other/ # その他機能
|
||||
│ ├─ 📂 production/ # 制作管理
|
||||
│ ├─ 📂 project/ # プロジェクト管理
|
||||
│ ├─ 📂 script/ # 脚本生成
|
||||
│ ├─ 📂 scriptAgent/ # 脚本 Agent インターフェース
|
||||
│ ├─ 📂 setting/ # システム設定
|
||||
│ ├─ 📂 task/ # タスク管理
|
||||
│ └─ 📂 test/ # テストインターフェース
|
||||
├─ 📂 socket/ # WebSocket リアルタイム通信
|
||||
├─ 📂 types/ # TypeScript 型宣言
|
||||
├─ 📂 utils/ # ユーティリティ関数
|
||||
├─ 📄 app.ts # アプリケーションエントリ
|
||||
├─ 📄 core.ts # コア初期化
|
||||
├─ 📄 env.ts # 環境変数処理
|
||||
├─ 📄 err.ts # エラー処理
|
||||
├─ 📄 logger.ts # ログモジュール
|
||||
├─ 📄 router.ts # ルート登録
|
||||
└─ 📄 utils.ts # 汎用ツール
|
||||
├─ 📂 routes/ # ルーティングモジュール
|
||||
│ ├─ 📂 agents/ # Agent メモリ管理
|
||||
│ ├─ 📂 artStyle/ # 画風(アートスタイル)管理
|
||||
│ ├─ 📂 assets/ # 素材管理
|
||||
│ ├─ 📂 assetsGenerate/ # 素材生成
|
||||
│ ├─ 📂 cornerScape/ # 絵コンテ管理
|
||||
│ ├─ 📂 general/ # 汎用 API
|
||||
│ ├─ 📂 login/ # ログイン認証
|
||||
│ ├─ 📂 migrate/ # データ移行
|
||||
│ ├─ 📂 modelSelect/ # モデル選択
|
||||
│ ├─ 📂 novel/ # 小説管理
|
||||
│ ├─ 📂 other/ # その他機能
|
||||
│ ├─ 📂 production/ # 制作進行管理
|
||||
│ ├─ 📂 project/ # プロジェクト管理
|
||||
│ ├─ 📂 script/ # 脚本生成
|
||||
│ ├─ 📂 scriptAgent/ # 脚本 Agent インターフェース
|
||||
│ ├─ 📂 setting/ # システム設定
|
||||
│ ├─ 📂 task/ # タスク管理
|
||||
│ └─ 📂 test/ # テスト用 API
|
||||
├─ 📂 socket/ # WebSocket リアルタイム通信
|
||||
├─ 📂 types/ # TypeScript 型定義
|
||||
├─ 📂 utils/ # ユーティリティ関数
|
||||
├─ 📄 app.ts # アプリケーションエントリー
|
||||
├─ 📄 core.ts # コア初期化
|
||||
├─ 📄 env.ts # 環境変数の処理
|
||||
├─ 📄 err.ts # エラーハンドリング
|
||||
├─ 📄 logger.ts # ログモジュール
|
||||
├─ 📄 router.ts # ルーティング登録
|
||||
└─ 📄 utils.ts # 汎用ツール
|
||||
📄 Dockerfile # Docker ビルドファイル
|
||||
📄 electron-builder.yml # Electron パッケージング設定
|
||||
📄 skillList.json # スキル一覧
|
||||
📄 electron-builder.yml # Electron パッケージ設定
|
||||
📄 skillList.json # スキルリスト
|
||||
📄 LICENSE # ライセンス(Apache-2.0)
|
||||
📄 NOTICES.txt # サードパーティ依存関係の声明
|
||||
📄 NOTICES.txt # 依存パッケージに関する表記
|
||||
📄 package.json # プロジェクト設定
|
||||
📄 tsconfig.json # TypeScript 設定
|
||||
```
|
||||
@ -600,134 +492,116 @@ pm2 monit # モニタリングパネル
|
||||
|
||||
# 🔗 関連リポジトリ
|
||||
|
||||
| リポジトリ | 説明 | GitHub | Gitee |
|
||||
| リポジトリ | 説明 | GitHub | Gitee |
|
||||
| ---------------- | ---------------------------------- | -------------------------------------------------- | ------------------------------------------------ |
|
||||
| **Toonflow-app** | 完全なクライアント(本リポジトリ、一般ユーザー向け) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-app) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-app) |
|
||||
| **Toonflow-web** | フロントエンドソース(フロントエンド開発者向け) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-web) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-web) |
|
||||
| **Toonflow-app** | 完全版クライアント(本リポジトリ、一般ユーザー向け) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-app) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-app) |
|
||||
| **Toonflow-web** | フロントエンドソースコード(フロントエンド開発者向け) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-web) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-web) |
|
||||
|
||||
> 💡 **ヒント**:Toonflow をただ使いたいだけの場合は、本リポジトリのクライアントをダウンロードしてください。フロントエンドリポジトリは二次開発やフロントエンドのカスタマイズを行う開発者向けです。
|
||||
> 💡 **ヒント**:Toonflow を使用するだけであれば、本リポジトリのクライアントを直接ダウンロードするだけで十分です。フロントエンドのリポジトリは、二次開発やフロントエンド画面のカスタマイズが必要な開発者向けです。
|
||||
|
||||
---
|
||||
|
||||
# 👨👩👧👦 WeChat 交流グループ
|
||||
# 👨👩👧👦 Discord 交流グループ
|
||||
|
||||
グループ追加用アシスタント:
|
||||
|
||||
<img src="./QR.png" alt="Toonflow QR" height="400"/>
|
||||
|
||||
アイコンをクリックして Discord に参加することもできます:
|
||||
下のアイコンをクリックして Discord に参加:
|
||||
|
||||
[](https://discord.gg/HEjKmpNpAZ)
|
||||
|
||||
または招待リンク: [https://discord.gg/HEjKmpNpAZ](https://discord.gg/HEjKmpNpAZ)
|
||||
または直接リンクをクリック: [https://discord.gg/HEjKmpNpAZ](https://discord.gg/HEjKmpNpAZ)
|
||||
|
||||
---
|
||||
|
||||
# 💌 お問い合わせ
|
||||
|
||||
📧 メール:[ltlctools@outlook.com](mailto:ltlctools@outlook.com?subject=Toonflow問い合わせ)
|
||||
📧 メール:[ltlctools@outlook.com](mailto:ltlctools@outlook.com?subject=Toonflowのお問い合わせ)
|
||||
|
||||
---
|
||||
|
||||
# 📜 ライセンス
|
||||
|
||||
Toonflow は Apache-2.0 ライセンスのもとでオープンソース公開されており、補足的な商用利用規約が付帯しています。
|
||||
Toonflow は Apache-2.0 ライセンスに基づいてオープンソースとして公開されており、補足的な商業契約が付随しています。
|
||||
|
||||
ライセンス詳細:https://www.apache.org/licenses/LICENSE-2.0
|
||||
ライセンスの詳細:https://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
## 補足契約
|
||||
## 補足条項
|
||||
|
||||
- 本ソフトウェアを製品として **2つ以上の独立した第三者** に配布する場合は、HBAI-Ltd の **書面による商用ライセンス** を取得する必要があります。
|
||||
- **5法人以下** が共同運営で内部利用し、外部にサービスを提供しない場合は内部利用とみなし、**ライセンスは不要** です。
|
||||
- Toonflow の識別表示や著作権情報を削除または変更してはなりません。
|
||||
- 本ソフトウェアを製品として **2つ以上の独立した第三者** に配布・提供する場合、HBAI-Ltd からの **書面による商業ライセンス(許諾)** を取得する必要があります。
|
||||
- **5法人以下** が共同で運営し、外部にサービスを提供せずに内部利用のみとする場合は、内部利用と見なされ、**商業ライセンスの取得は不要**です。
|
||||
- Toonflow 内のロゴや著作権情報を削除または変更することは禁止されています。
|
||||
|
||||
## 永久無料のケース
|
||||
## 永久無料となるケース
|
||||
|
||||
- ✅ Toonflow を使ってコンテンツを制作し、プラットフォームから収益を得る
|
||||
- ✅ 二次開発して自分のチーム内で使用する
|
||||
- ✅ 5法人以下が共同運営で内部利用する
|
||||
- ✅ 個人の学習、研究、非商用利用
|
||||
- ✅ Toonflow を利用してコンテンツを制作し、プラットフォームから収益分配を得る場合
|
||||
- ✅ 自分のチーム内で使用するために二次開発を行う場合
|
||||
- ✅ 5法人以下の共同運営による内部利用
|
||||
- ✅ 個人の学習、研究、非営利目的
|
||||
|
||||
## 商用ライセンス価格
|
||||
## 商業ライセンス価格
|
||||
|
||||
| 段階 | 年間売上 | 年会費 |
|
||||
|------|---------|--------|
|
||||
| 🌱 支援期 | < ¥10万 | **申請すれば無料ライセンス** |
|
||||
| 🚀 創業期 | ¥10–50万 | ¥5,000/年 |
|
||||
| 📈 成長期 | ¥50–150万 | ¥20,000/年 |
|
||||
| 🏢 規模期 | ¥150–500万 | ¥80,000/年 |
|
||||
| 🌐 エンタープライズ | > ¥500万 | 要相談 |
|
||||
| フェーズ | 年間売上高 | 年間費用 |
|
||||
|------|---------|------|
|
||||
| 🌱 支援期 | 200万円 未満 | **無料** |
|
||||
| 🚀 創業期 | 200万円 ~ 1,000万円 | 108,000 円/年 |
|
||||
| 📈 成長期 | 1,000万円 ~ 3,000万円 | 420,000 円/年 |
|
||||
| 🏢 規模拡大期 | 3,000万円 ~ 1億円 | 1,680,000 円/年 |
|
||||
| 🌐 エンタープライズ | 1億円 超 | 応相談 |
|
||||
|
||||
> **不遡及条項**:v1.0.8 リリース前に AGPL-3.0 に基づいて使用していたユーザーは、引き続き AGPL-3.0 に従うものとし、本契約の変更の影響を受けません。
|
||||
> **遡及(そきゅう)適用除外条項**:v1.0.8 リリース以前に AGPL-3.0 に基づいて使用していたユーザーは、引き続き AGPL-3.0 に従い、本契約変更の制約を受けません。
|
||||
|
||||
完全な契約は [LICENSE](./LICENSE) ファイルを参照してください。
|
||||
契約の全文については [LICENSE](./LICENSE) ファイルを参照してください。
|
||||
|
||||
---
|
||||
|
||||
# ⭐️ スター履歴
|
||||
|
||||
[](https://www.star-history.com/#HBAI-Ltd/Toonflow-app)
|
||||
# ⭐️ Star 獲得履歴
|
||||
|
||||
[](https://www.star-history.com/#HBAI-Ltd/Toonflow-app&type=timeline&legend=top-left)
|
||||
|
||||
---
|
||||
|
||||
|
||||
# 🙏 謝辞
|
||||
|
||||
以下のオープンソースプロジェクトが Toonflow に強力なサポートを提供しています:
|
||||
Toonflow に強力なサポートを提供してくださる以下のオープンソースプロジェクトに感謝いたします:
|
||||
|
||||
- [Express](https://expressjs.com/) - 高速でオープンな Node.js Web フレームワーク
|
||||
- [Express](https://expressjs.com/) - 高速でオープン、ミニマルな Node.js Web フレームワーク
|
||||
- [AI SDK](https://ai-sdk.dev/) - TypeScript 向け AI ツールキット
|
||||
- [Better-SQLite3](https://github.com/WiseLibs/better-sqlite3) - 高性能 SQLite3 バインディングライブラリ
|
||||
- [Sharp](https://sharp.pixelplumbing.com/) - 高性能 Node.js 画像処理ライブラリ
|
||||
- [Axios](https://axios-http.com/) - Promise ベースの HTTP クライアント
|
||||
- [Zod](https://zod.dev/) - TypeScript ファーストのスキーマバリデーションライブラリ
|
||||
- [Socket.IO](https://socket.io/) - リアルタイム双方向イベント通信エンジン
|
||||
- [Zod](https://zod.dev/) - TypeScript ファーストのスキーマ検証ライブラリ
|
||||
- [Socket.IO](https://socket.io/) - リアルタイムの双方向イベント通信エンジン
|
||||
- [Electron](https://www.electronjs.org/) - クロスプラットフォームデスクトップアプリ開発フレームワーク
|
||||
- [Hugging Face Transformers](https://huggingface.co/docs/transformers.js) - ローカル ML 推論ライブラリ
|
||||
|
||||
以下の組織・団体・個人が Toonflow をサポートしています:
|
||||
Toonflow を支援してくださる以下の組織・団体・個人に感謝いたします:
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th align="center">ロゴ</th>
|
||||
<th align="center">名称</th>
|
||||
<th align="center">サポート方法</th>
|
||||
<th>概要</th>
|
||||
<th align="center">Logo</th>
|
||||
<th align="center">名前</th>
|
||||
<th align="center">サポート種別</th>
|
||||
<th>説明</th>
|
||||
<th align="center">公式サイト</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center"><img src="./sponsored/sophnet.png" alt="算能雲 ロゴ" width="48"></td>
|
||||
<td align="center"><b>算能雲</b></td>
|
||||
<td align="center">💻 計算リソーススポンサー</td>
|
||||
<td>より速く、より安定し、より経済的なワンストップモデル推論APIサービスの提供を目指す</td>
|
||||
<td align="center"><img src="./sponsored/sophnet.png" alt="Sophnet Logo" width="48"></td>
|
||||
<td align="center"><b>算能雲 (Sophnet)</b></td>
|
||||
<td align="center">💻 計算リソース提供</td>
|
||||
<td>より高速・安定・低コストなワンストップモデル推論 API サービスプラットフォームの構築に取り組んでいます</td>
|
||||
<td align="center"><a href="https://www.sophnet.com/">公式サイト</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><img src="./sponsored/atlascloud.png" alt="Atlas Cloud ロゴ" width="48"></td>
|
||||
<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">💻 計算リソーススポンサー</td>
|
||||
<td>世界初の全モーダル推論プラットフォーム。対話、画像、動画、音声—すべて統一API。300以上のモデル、OpenAI互換。</td>
|
||||
<td align="center">💻 計算リソース提供</td>
|
||||
<td>世界初のオムニモーダル推論プラットフォーム。チャット・画像・動画・音声すべてを統一 API で。300+ モデル、OpenAI 互換。</td>
|
||||
<td align="center"><a href="https://www.atlascloud.ai/">公式サイト</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><img src="./sponsored/hunyuan.webp" alt="Tencent Hunyuan 3D ロゴ" width="48"></td>
|
||||
<td align="center"><b>Tencent Hunyuan 3D</b></td>
|
||||
<td align="center">🌐 ワールドモデル技術サポート</td>
|
||||
<td>Tencent Hunyuan 3D AI 創作エンジンは、Hunyuan 3D 生成大モデル v2.5 をベースにした、業界初のワンストップ3DコンテンツAI創作プラットフォーム。テキストからの3D生成、画像からの3D生成、3Dアニメーション生成、テクスチャ生成などをサポートし、スケッチからの3D生成、3Dキャラクター生成、ローポリゴンモデル生成に強み。</td>
|
||||
<td align="center"><a href="https://3d.hunyuan.tencent.com/">公式サイト</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
完全なサードパーティ依存関係リストは `NOTICES.txt` を参照してください。
|
||||
完全なサードパーティの依存関係リストについては `NOTICES.txt` をご参照ください。
|
||||
|
||||
##### copyright © 北京愛阿科技有限公司
|
||||
|
||||
|
||||
|
||||
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=6,11,20&height=100§ion=footer" width="100%"/>
|
||||
##### copyright © Huaibei AIA Network Technology Co., Ltd.
|
||||
@ -1,5 +1,3 @@
|
||||
<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" />
|
||||
@ -28,8 +26,17 @@
|
||||
|
||||
<img src="./logo.png" alt="Toonflow Logo" height="120"/>
|
||||
|
||||
[](https://git.io/typing-svg)
|
||||
# Toonflow
|
||||
|
||||
<p align="center">
|
||||
<b>
|
||||
Фабрика AI-мини-сериалов и короткометражных фильмов
|
||||
<br />
|
||||
Всего несколько кликов — и ваша новелла превращается в фильм или сериал!
|
||||
<br />
|
||||
AI-сценарий × AI-изображения × Сверхбыстрая генерация 🔥
|
||||
</b>
|
||||
</p>
|
||||
<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="Stars Badge" />
|
||||
@ -41,183 +48,72 @@
|
||||
<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="Forks Badge" />
|
||||
</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 No.540" />
|
||||
</a>
|
||||
<a href="https://discord.gg/HEjKmpNpAZ">
|
||||
<img src="https://img.shields.io/badge/Discord-Community-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="Issues" />
|
||||
</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="Contributors" />
|
||||
</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="Last Commit" />
|
||||
</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="Tech Stack Icons" />
|
||||
</p>
|
||||
<p align="center">
|
||||
<img src="https://widgetbite.com/stats/HBAI-Ltd" alt="Visitors" />
|
||||
</p>
|
||||
|
||||
> 🚀 **Комплексная платформа для создания сериалов**: от текста до персонажей, от раскадровки до видео — полный AI-конвейер с нулевым порогом входа, повышающий эффективность творчества в 10+ раз!
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
<a href="./g-star.png" target="_blank">
|
||||
<img src="./g-star.png" alt="AtomGit G-Star 认证证书" width="100%"/>
|
||||
</a>
|
||||
> 🚀 **All-in-One платформа для коротких сериалов и фильмов**: От текста до персонажей, от раскадровки до готового видео. Полная автоматизация с помощью ИИ с нулевым порогом входа — повышает эффективность творчества в 10 раз и более!
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 🌐 Многоязычная поддержка
|
||||
# 🌐 Мультиязычная поддержка
|
||||
|
||||
Toonflow поддерживает интерфейс на следующих языках:
|
||||
Toonflow поддерживает следующие языки интерфейса:
|
||||
|
||||
| Язык | Language |
|
||||
| ----------------------- | --------------------- |
|
||||
| 简体中文 | Chinese (Simplified) |
|
||||
| 繁體中文 | Chinese (Traditional) |
|
||||
| English | English |
|
||||
| ไทย | Thai |
|
||||
| Tiếng Việt | Vietnamese |
|
||||
| 日本語 | Japanese |
|
||||
| Русский | Russian |
|
||||
| Язык | Language |
|
||||
|---------------|---------------------------|
|
||||
| 简体中文 | Chinese (Simplified) |
|
||||
| 繁體中文 | Chinese (Traditional) |
|
||||
| English | English |
|
||||
| ไทย | Thai |
|
||||
| Tiếng Việt | Vietnamese |
|
||||
| 日本語 | Japanese |
|
||||
| Русский | Russian |
|
||||
|
||||
> 💡 Скоро будут добавлены другие языки. Приветствуется помощь с переводами!
|
||||
> 💡 В настоящее время мы активно добавляем новые языки. Будем рады вашей помощи с переводами!
|
||||
|
||||
---
|
||||
|
||||
# 🌟 Основные функции
|
||||
# 🌟 Основные возможности
|
||||
|
||||
Toonflow — это AI-рабочее место для производства сериалов, выстроенное вокруг полного цикла «планирование → сценарий → раскадровка → вывод», с поддержкой локализации, программируемости и непрерывной итерации.
|
||||
Toonflow — это мощный ИИ-инструмент для создания коротких видео, мини-сериалов и комиксов. Он автоматически превращает новеллы в сценарии, а затем с помощью ИИ генерирует изображения и видео, позволяя быстро и эффективно создавать качественный контент.
|
||||
С Toonflow вы можете пройти весь цикл производства — от текста до готового видео — легко и удобно, без специальных навыков.
|
||||
|
||||
- ✅ **Бесконечный холст для производства**
|
||||
Организация сценариев, персонажей, раскадровок, материалов и видеоузлов в формате бесконечного холста со свободным редактированием, возможностью отката и параллельным производством, без ограничений линейными шагами.
|
||||
- ✅ **Трёхуровневая система Agent-взаимодействия**
|
||||
Совместная работа уровня принятия решений, уровня исполнения и уровня контроля, охватывающая декомпозицию задач, генерацию контента, проверку качества и обратную связь для повышения стабильности и согласованности результатов.
|
||||
- ✅ **Персистентная память Agent**
|
||||
Межсессионная система памяти на основе локального векторного поиска ONNX с поддержкой краткосрочных сообщений, долгосрочных сводок и семантического поиска для обеспечения непрерывности многораундового творчества.
|
||||
- ✅ **Программируемая система провайдеров**
|
||||
Поддержка написания TypeScript-логики провайдера непосредственно в центре настроек с мгновенным вступлением в силу, без изменения исходного кода или перезапуска, для лёгкой кастомизации и подключения множества моделей.
|
||||
- ✅ **Адаптация на основе графа событий глав**
|
||||
Автоматическое извлечение и структурированное хранение событий глав оригинального произведения; адаптация сценария с точным вызовом контекста по графу событий для уменьшения потери информации в длинных текстах.
|
||||
- ✅ **Конфигурация навыков (Skill) в файлах**
|
||||
Ключевые промпты ScriptAgent и ProductionAgent вынесены в Markdown-файлы навыков с поддержкой онлайн-редактирования и быстрой настройки.
|
||||
- ✅ **Генерация персонажей**
|
||||
Автоматический анализ оригинального текста новеллы, интеллектуальное распознавание и создание подробных профилей персонажей (внешность, характер, личность, отношения и другие детали). Это закладывает прочную основу для сценария и визуальной части.
|
||||
|
||||
- ✅ **Генерация сценария**
|
||||
На основе выбранных событий и глав система автоматически создаёт структурированный сценарий с естественными диалогами, описаниями сцен и развитием сюжета, обеспечивая эффективную адаптацию литературного произведения в видеоформат.
|
||||
|
||||
- ✅ **Создание раскадровки (Storyboard)**
|
||||
Автоматическая генерация промптов и дизайн кадров на основе сценария. Детальная проработка переднего, среднего и заднего планов, движений персонажей, реквизита и композиции — готовая раскадровка становится точным планом для производства видео.
|
||||
|
||||
- ✅ **Синтез видео**
|
||||
Интеграция современных ИИ-технологий для генерации изображений и видеоклипов. Встроенный онлайн-редактор позволяет гибко настраивать результат, делая процесс создания видео быстрым, удобным и плавным.
|
||||
|
||||
---
|
||||
|
||||
# 📦 Сценарии применения
|
||||
# 📦 Сценарии использования
|
||||
|
||||
- Создание коротких видеороликов
|
||||
- Эксперименты по экранизации романов
|
||||
- Инструменты AI-адаптации литературы
|
||||
- Создание контента для коротких видео (Shorts, Reels, TikTok)
|
||||
- Экранизация и визуализация новелл
|
||||
- ИИ-инструмент для адаптации литературных произведений
|
||||
- Разработка сценариев и быстрое прототипирование
|
||||
- Генерация видеоматериалов
|
||||
- Генерация видеоматериалов и футажей
|
||||
|
||||
---
|
||||
|
||||
# 🔰 Руководство по использованию
|
||||
# 🔰 Руководство пользователя
|
||||
|
||||
## Быстрый старт
|
||||
## 📺 Видеоуроки
|
||||
|
||||
1. Запустите приложение и войдите (учётные данные по умолчанию: `admin` / `admin123`).
|
||||
2. В центре настроек выполните конфигурацию провайдеров моделей (текстовые/изображения/видеомодели).
|
||||
3. Создайте новый проект и импортируйте оригинальное произведение, выполните извлечение событий глав.
|
||||
4. Перейдите в ScriptAgent для генерации сюжетного каркаса, стратегии адаптации и структурированного сценария.
|
||||
5. Переключитесь в ProductionAgent для организации раскадровок, материалов и видеоузлов на бесконечном холсте.
|
||||
6. Выполните узловую точную настройку изображений раскадровки, после чего верните их на рабочее место для склейки видео и экспорта.
|
||||
[https://www.bilibili.com/video/BV1oXD7BqEqJ](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
|
||||
## 📺 Видеоурок
|
||||
**Toonflow: Быстрый старт в AI-видео за 12 минут**
|
||||
👉 [Нажмите для просмотра](https://www.bilibili.com/video/BV1oXD7BqEqJ/?share_source=copy_web&vd_source=5b718c25439a901a34c7bc0c1d35b38e)
|
||||
|
||||
https://www.bilibili.com/video/BV1oXD7BqEqJ
|
||||
[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
📱 Отсканируйте QR-код для просмотра видео на телефоне
|
||||
|
||||
**Toonflow: быстрый старт с AI-видео за 12 минут**
|
||||
👉 [Нажмите для просмотра](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
|
||||
📱 Отсканируйте QR-код в WeChat для просмотра
|
||||
|
||||
<img src="./videoQR.png" alt="微信扫码观看" width="150"/>
|
||||
|
||||
---
|
||||
|
||||
# 📸 Скриншоты и видео демонстрации
|
||||
|
||||
Следующие скриншоты и видео взяты из AI-сериала-демо, созданного с помощью Toonflow. Весь процесс занял около 2 часов, включая генерацию сценария, создание раскадровки и монтаж.
|
||||
|
||||
<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>
|
||||
|
||||
## 🎬 Демо-видео
|
||||
|
||||
<div align="center">
|
||||
|
||||
https://github.com/user-attachments/assets/2d9fddac-dfdf-4640-b030-b09d7f7287e9
|
||||
|
||||
Если видео не воспроизводится, [скачайте его](./screenshot/demo.mp4)
|
||||
|
||||
</div>
|
||||
|
||||
## Информация о демо
|
||||
|
||||
| Параметр | Значение |
|
||||
| :------------------ | :------------------------------ |
|
||||
| Время производства | Около 2 часов |
|
||||
| Видеомодель | Seedance 2.0 |
|
||||
| Модель изображений | GPT Image 2 |
|
||||
| Языковая модель | Claude Opus 4.6 |
|
||||
| Общая длительность | Около 2 минут (исходно 3 мин, вырезано около 1 мин неудачных дублей) |
|
||||
|
||||
## Детализация затрат
|
||||
|
||||
| Тип модели | Стоимость |
|
||||
| :----------------- | :---------- |
|
||||
| Языковая модель | ~ ¥10 |
|
||||
| Видеомодель (полная генерация) | ~ ¥120 |
|
||||
| Модель изображений | менее ¥1 |
|
||||
| **Итого** | **~ ¥130** |
|
||||
|
||||
> **Примечание**: Исходное разрешение демо — 1080×1882, опубликованная версия сжата до 480p. В случае нарушения авторских прав просьба свяжитесь с нами для удаления.
|
||||
<img src="./videoQR.png" alt="Сканировать QR-код для просмотра видео" width="150"/>
|
||||
|
||||
---
|
||||
|
||||
@ -225,92 +121,94 @@ https://github.com/user-attachments/assets/2d9fddac-dfdf-4640-b030-b09d7f7287e9
|
||||
|
||||
## Предварительные требования
|
||||
|
||||
Перед установкой и использованием программного обеспечения подготовьте следующее:
|
||||
Перед установкой и использованием Toonflow подготовьте следующее:
|
||||
|
||||
- ✅ Адрес API-интерфейса большой языковой модели AI
|
||||
- ✅ Адрес API-интерфейса видеосервиса Sora или Doubao
|
||||
- ✅ API-интерфейс сервиса генерации изображений Nano Banana Pro
|
||||
- ✅ URL API для LLM (большой языковой модели)
|
||||
- ✅ URL API для генерации видео (Sora или Doubao)
|
||||
- ✅ URL API для генерации изображений (Nano Banana Pro)
|
||||
|
||||
## Локальная установка
|
||||
## Локальная установка (на ПК)
|
||||
|
||||
### 1. Загрузка и установка
|
||||
### 1. Скачивание и установка
|
||||
|
||||
| Операционная система | GitHub | Примечание |
|
||||
| :------------------: | :----------------------------------------------------------- | :-------------------------- |
|
||||
| Windows | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | Официальный установочный пакет |
|
||||
| Linux | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | Официальный установочный пакет |
|
||||
| macOS | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | Официальный установочный пакет |
|
||||
| ОС | GitHub | Atomgit | Скачать (Quark Drive) | Описание |
|
||||
| :------: | :----------------------------------------------------------- | :------------------------------------------------------------ | :---------------------------------------------- | :------------- |
|
||||
| Windows | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [Quark Drive](https://pan.quark.cn/s/94ef07509df0) | Официальный установщик |
|
||||
| Linux | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [Quark Drive](https://pan.quark.cn/s/94ef07509df0) | Официальный установщик |
|
||||
| macOS | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [Quark Drive](https://pan.quark.cn/s/94ef07509df0) | Официальный установщик |
|
||||
|
||||
> [!CAUTION]
|
||||
> Пользователям MacOS необходимо перейти в Настройки → Конфиденциальность и безопасность, чтобы настроить безопасность, иначе приложение может не открыться из-за проблем с сертификатом.
|
||||
> Пользователям macOS необходимо перейти в **Системные настройки → Конфиденциальность и безопасность** и разрешить запуск приложения. В противном случае программа может не открыться из-за проблем с сертификатом.
|
||||
>
|
||||
> Справочная статья на Zhihu: [https://www.zhihu.com/question/433389276](https://www.zhihu.com/question/433389276)
|
||||
> Подробнее (на китайском): [https://www.zhihu.com/question/433389276](https://www.zhihu.com/question/433389276)
|
||||
|
||||
> Из-за ограничений среды Gitee OS и ограничений на размер загружаемых файлов Release, ссылки для скачивания с Gitee Release временно не предоставляются.
|
||||
> Из-за технических ограничений Gitee Release (размер файлов и окружение) ссылки для скачивания на Gitee временно недоступны.
|
||||
|
||||
### 2. Запуск сервиса
|
||||
|
||||
После завершения установки запустите программу, чтобы начать использование.
|
||||
После завершения установки просто откройте программу Toonflow — сервис будет готов к работе.
|
||||
|
||||
> ⚠️ **Первый вход**
|
||||
> ⚠️ **Данные для первого входа**
|
||||
> Логин: `admin`
|
||||
> Пароль: `admin123`
|
||||
|
||||
## Развёртывание через Docker
|
||||
## Развертывание через Docker
|
||||
|
||||
### Предварительные требования
|
||||
|
||||
- Установлен [Docker](https://docs.docker.com/get-docker/) (версия 20.10+)
|
||||
- Установлен [Docker](https://docs.docker.com/get-docker/) версии 20.10 или выше
|
||||
|
||||
### Способ 1: Онлайн-развёртывание
|
||||
### Способ 1: Онлайн-развертывание
|
||||
|
||||
В разработке. Пока используйте локальную сборку.
|
||||
В настоящее время в стадии разработки.
|
||||
Рекомендуется использовать локальную сборку.
|
||||
|
||||
### Способ 2: Локальная сборка
|
||||
|
||||
Соберите проект из исходного кода. Подходит для разработчиков или пользователей, уже клонировавших репозиторий. Для этого требуется локально установленный git:
|
||||
Сборка проекта непосредственно из исходного кода на вашем компьютере.
|
||||
Подходит для разработчиков и пользователей, которые уже клонировали репозиторий. Требуется установленная система контроля версий Git:
|
||||
|
||||
```shell
|
||||
# Клонируйте проект (пропустите, если уже есть)
|
||||
# Сначала клонируйте проект (пропустите, если уже сделано)
|
||||
git clone https://github.com/HBAI-Ltd/Toonflow-app.git
|
||||
cd Toonflow-app
|
||||
|
||||
# Локальная сборка и запуск через docker-compose
|
||||
# Локальная сборка и запуск с помощью docker-compose
|
||||
yarn docker:local
|
||||
|
||||
# Или соберите вручную
|
||||
# Или ручная сборка
|
||||
docker build -t toonflow .
|
||||
docker run -d -p <локальный_порт>:10588 -v <локальный_путь_данных>:/app/data toonflow
|
||||
docker run -d -p <локальный_порт>:10588 -v <путь_к_локальным_данным>:/app/data toonflow
|
||||
|
||||
# После этого страница будет доступна по пути /web/index.html на соответствующем порту
|
||||
# Например: http://localhost:10588/web/index.html
|
||||
# После этого интерфейс будет доступен по пути /web/index.html на указанном порту
|
||||
# Пример: http://localhost:10588/web/index.html
|
||||
```
|
||||
|
||||
### Описание портов сервиса
|
||||
|
||||
| Порт | Назначение | Маппинг при развёртывании |
|
||||
| -------- | ---------------- | ------------------------- |
|
||||
| `10588` | Веб-интерфейс | `10588:10588` |
|
||||
| Порт | Назначение | Маппинг |
|
||||
| ------- | --------------------------- | ---------------- |
|
||||
| `10588` | Основной порт сервиса (API) | `10588:10588` |
|
||||
|
||||
**Описание переменных окружения:**
|
||||
**Переменные окружения (Environment Variables):**
|
||||
|
||||
| Переменная | Описание |
|
||||
| ---------- | -------------------------------------------------- |
|
||||
| `NODE_ENV` | Среда выполнения, `prod` — производственная среда |
|
||||
| `PORT` | Порт прослушивания сервиса (по умолчанию 10588) |
|
||||
| `OSSURL` | Адрес доступа к файловому хранилищу для статики |
|
||||
| Переменная | Описание |
|
||||
| ---------- | ----------------------------------------------------- |
|
||||
| `NODE_ENV` | Среда выполнения (`prod` = Production) |
|
||||
| `PORT` | Порт сервиса (по умолчанию 10588) |
|
||||
| `OSSURL` | Адрес Object Storage для хранения и отдачи статических файлов |
|
||||
|
||||
---
|
||||
|
||||
## Облачное развёртывание
|
||||
## Облачное развертывание / Установка на сервер
|
||||
|
||||
### 1. Требования к серверу
|
||||
### I. Требования к серверу
|
||||
|
||||
- **ОС**: Ubuntu 20.04+ / CentOS 7+
|
||||
- **Операционная система**: Ubuntu 20.04+ / CentOS 7+
|
||||
- **Node.js**: 24.x (рекомендуется, минимум 23.11.1+)
|
||||
- **Память**: 2GB+
|
||||
- **ОЗУ**: 2 ГБ и более
|
||||
|
||||
### 2. Развёртывание на сервере
|
||||
### II. Развертывание
|
||||
|
||||
#### 1. Установка окружения
|
||||
|
||||
@ -323,7 +221,7 @@ nvm install 24
|
||||
npm install -g yarn pm2
|
||||
```
|
||||
|
||||
#### 2. Развёртывание проекта
|
||||
#### 2. Загрузка и сборка проекта
|
||||
|
||||
**Клонирование с GitHub:**
|
||||
|
||||
@ -363,13 +261,13 @@ yarn build
|
||||
}
|
||||
```
|
||||
|
||||
**Описание переменных окружения:**
|
||||
**Переменные окружения (Environment Variables):**
|
||||
|
||||
| Переменная | Описание |
|
||||
| ---------- | -------------------------------------------------- |
|
||||
| `NODE_ENV` | Среда выполнения, `prod` — производственная среда |
|
||||
| `PORT` | Порт прослушивания сервиса |
|
||||
| `OSSURL` | Адрес доступа к файловому хранилищу для статики |
|
||||
| Переменная | Описание |
|
||||
| ---------- | ----------------------------------------------------- |
|
||||
| `NODE_ENV` | Среда выполнения (`prod` = Production) |
|
||||
| `PORT` | Порт сервиса (по умолчанию 10588) |
|
||||
| `OSSURL` | Адрес Object Storage для хранения и отдачи статических файлов |
|
||||
|
||||
---
|
||||
|
||||
@ -381,71 +279,72 @@ pm2 startup
|
||||
pm2 save
|
||||
```
|
||||
|
||||
#### 5. Часто используемые команды
|
||||
#### 5. Полезные команды
|
||||
|
||||
```bash
|
||||
pm2 list # Просмотр процессов
|
||||
pm2 list # Список процессов
|
||||
pm2 logs toonflow-app # Просмотр логов
|
||||
pm2 restart all # Перезапуск сервиса
|
||||
pm2 restart all # Перезапуск сервисов
|
||||
pm2 monit # Панель мониторинга
|
||||
```
|
||||
|
||||
> ⚠️ **Первый вход**
|
||||
> ⚠️ **Данные для первого входа**
|
||||
> Логин: `admin`
|
||||
> Пароль: `admin123`
|
||||
|
||||
#### 6. Развёртывание фронтенда
|
||||
#### 6. Развертывание Frontend
|
||||
|
||||
Для отдельного развёртывания или кастомизации фронтенда обратитесь к репозиторию фронтенда:
|
||||
Если вам нужно отдельно развернуть или кастомизировать фронтенд, перейдите в репозиторий Toonflow-web:
|
||||
|
||||
- **GitHub**: [Toonflow-web](https://github.com/HBAI-Ltd/Toonflow-web)
|
||||
- **Gitee**: [Toonflow-web](https://gitee.com/HBAI-Ltd/Toonflow-web)
|
||||
|
||||
> 💡 **Примечание**: Данный репозиторий уже содержит скомпилированные фронтенд-ресурсы. Обычным пользователям не требуется отдельно развёртывать фронтенд. Репозиторий фронтенда предназначен только для разработчиков, которым нужна доработка.
|
||||
> 💡 **Примечание**: Этот репозиторий уже содержит скомпилированные файлы Frontend. Обычным пользователям не требуется отдельно устанавливать фронтенд. Репозиторий Toonflow-web предназначен только для разработчиков, которые хотят внести изменения или доработать интерфейс.
|
||||
|
||||
---
|
||||
|
||||
# 🔧 Руководство по процессу разработки
|
||||
# 🔧 Руководство разработчика
|
||||
|
||||
> [!CAUTION]
|
||||
> 🚧 **Правила отправки PR** 🚧
|
||||
> 🚧 **Правила отправки Pull Request** 🚧
|
||||
>
|
||||
> ⛔ Ветка `master` не принимает PR | ✅ Пожалуйста, отправляйте PR в ветку `develop`
|
||||
> ⛔ **Ветка `master` не принимает PR** | ✅ **Отправляйте все PR в ветку `develop`**
|
||||
>
|
||||
> Приветствуется совместное участие разработчиков в создании Toonflow. Если вы заинтересованы, свяжитесь с руководителем ACT в группе общения.
|
||||
> Приглашаем всех желающих разработчиков присоединиться к развитию Toonflow.
|
||||
> Если вы хотите участвовать, свяжитесь с куратором проекта ACT в нашей группе сообщества.
|
||||
|
||||
## 🛠️ Технологический стек
|
||||
## 🛠️ Стек технологий
|
||||
|
||||
| Категория | Технологии |
|
||||
| ------------------ | ---------------------------------------------------------------------------------------- |
|
||||
| Среда выполнения | Node.js 23.11.1+ |
|
||||
| Язык | TypeScript 5.x |
|
||||
| Бэкенд-фреймворк | Express 5 |
|
||||
| База данных | SQLite (better-sqlite3 / knex) |
|
||||
| AI-интеграция | Vercel AI SDK (OpenAI / Anthropic / Google / DeepSeek / Zhipu / MiniMax / Tongyi / xAI) |
|
||||
| Локальный инференс | @huggingface/transformers (ONNX) |
|
||||
| Реалтайм-связь | Socket.IO |
|
||||
| Десктопный клиент | Electron 40 |
|
||||
| Обработка изображений | Sharp |
|
||||
| Контейнеризация | Docker |
|
||||
| Категория | Технология |
|
||||
|------------------------|-----------------------------------------------------------------------------------------|
|
||||
| Runtime | Node.js 23.11.1+ |
|
||||
| Язык | TypeScript 5.x |
|
||||
| Backend-фреймворк | Express 5 |
|
||||
| База данных | SQLite (better-sqlite3 / knex) |
|
||||
| Интеграция ИИ | Vercel AI SDK (OpenAI / Anthropic / Google / DeepSeek / Zhipu / MiniMax / Qwen / xAI) |
|
||||
| Локальный инференс | @huggingface/transformers (ONNX) |
|
||||
| Real-time связь | Socket.IO |
|
||||
| Desktop-клиент | Electron 40 |
|
||||
| Обработка изображений | Sharp |
|
||||
| Контейнеризация | Docker |
|
||||
|
||||
## Подготовка среды разработки
|
||||
|
||||
- **Node.js**: версия 23.11.1 и выше
|
||||
- **Yarn**: рекомендуется в качестве менеджера пакетов
|
||||
- **Yarn**: рекомендуется использовать в качестве пакетного менеджера
|
||||
|
||||
## Быстрый запуск проекта
|
||||
|
||||
1. **Клонирование проекта**
|
||||
|
||||
**Клонирование с GitHub:**
|
||||
**С GitHub:**
|
||||
|
||||
```bash
|
||||
git clone https://github.com/HBAI-Ltd/Toonflow-app.git
|
||||
cd Toonflow-app
|
||||
```
|
||||
|
||||
**Клонирование с Gitee (рекомендуется для Китая):**
|
||||
**С Gitee:**
|
||||
|
||||
```bash
|
||||
git clone https://gitee.com/HBAI-Ltd/Toonflow-app.git
|
||||
@ -454,7 +353,7 @@ pm2 monit # Панель мониторинга
|
||||
|
||||
2. **Установка зависимостей**
|
||||
|
||||
Выполните следующую команду в корневой директории проекта для установки зависимостей:
|
||||
Выполните следующую команду в корневой папке проекта:
|
||||
|
||||
```bash
|
||||
yarn install
|
||||
@ -462,35 +361,39 @@ pm2 monit # Панель мониторинга
|
||||
|
||||
3. **Запуск среды разработки**
|
||||
|
||||
Проект состоит из **бэкенд-сервиса API** и **фронтенда**. Выберите способ запуска по необходимости:
|
||||
Проект состоит из **Backend API** и **Frontend страниц**. Выберите нужный способ запуска:
|
||||
|
||||
- **Способ 1: Запуск только бэкенда**
|
||||
- **Способ 1: Запуск только Backend**
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
> ⚠️ Эта команда запускает только бэкенд-сервис API (порт 10588), **не включая фронтенд**. При прямом обращении к `http://localhost:10588` будут доступны только API, но не полный веб-интерфейс. Для одновременного использования фронтенда запустите его отдельно или используйте режим GUI ниже.
|
||||
> ⚠️ Эта команда запускает **только Backend API** (порт 10588) **без интерфейса Frontend**.
|
||||
> При переходе по адресу `http://localhost:10588` вы сможете только обращаться к API. Полноценный графический интерфейс отображаться не будет.
|
||||
> Чтобы работать с UI, запустите Frontend отдельно или используйте режим GUI (см. ниже).
|
||||
|
||||
- **Способ 2: Запуск Electron-клиента**
|
||||
- **Способ 2: Запуск клиента Electron (GUI)**
|
||||
|
||||
```bash
|
||||
yarn dev:gui
|
||||
```
|
||||
|
||||
> Эта команда одновременно запускает бэкенд и окно Electron Desktop со встроенным фронтендом — готовое решение «из коробки», не требующее дополнительных настроек. Подходит для разработчиков, желающих опробовать все функции.
|
||||
> Эта команда одновременно запускает Backend и десктопное приложение Electron со встроенным Frontend.
|
||||
> Программа готова к работе сразу после запуска, без дополнительных настроек.
|
||||
> Идеально подходит для разработчиков, которые хотят быстро протестировать весь функционал приложения.
|
||||
|
||||
- **Способ 3: Запуск в production-режиме**
|
||||
- **Способ 3: Запуск в режиме Production**
|
||||
|
||||
```bash
|
||||
yarn start
|
||||
```
|
||||
|
||||
> Запуск предварительно скомпилированного сервиса в production-режиме (требуется предварительно выполнить `yarn build`).
|
||||
> Запуск скомпилированного сервиса в режиме Production (сначала необходимо выполнить `yarn build`).
|
||||
|
||||
4. **Сборка проекта**
|
||||
4. **Сборка проекта (Build & Package)**
|
||||
|
||||
- Компиляция TypeScript-файлов:
|
||||
- Компиляция и генерация TypeScript:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
@ -502,7 +405,7 @@ pm2 monit # Панель мониторинга
|
||||
yarn dist:win
|
||||
```
|
||||
|
||||
- Сборка исполняемого файла для macOS:
|
||||
- Сборка исполняемого файла для Mac:
|
||||
|
||||
```bash
|
||||
yarn dist:mac
|
||||
@ -514,80 +417,80 @@ pm2 monit # Панель мониторинга
|
||||
yarn dist:linux
|
||||
```
|
||||
|
||||
5. **Проверка качества кода**
|
||||
5. **Проверка качества кода (Linting)**
|
||||
|
||||
- Глобальная проверка синтаксиса и соответствия стандартам:
|
||||
- Запуск глобальной проверки синтаксиса:
|
||||
|
||||
```bash
|
||||
yarn lint
|
||||
```
|
||||
|
||||
6. **Отладочная панель AI (опционально)**
|
||||
6. **Панель отладки AI (Опционально)**
|
||||
|
||||
Запуск визуального инструмента отладки AI SDK для удобства отладки AI-вызовов:
|
||||
Запуск визуального инструмента отладки AI SDK:
|
||||
|
||||
```bash
|
||||
yarn debug:ai
|
||||
```
|
||||
|
||||
## Разработка фронтенда
|
||||
## Разработка Frontend
|
||||
|
||||
Для изменения фронтенда перейдите в соответствующий репозиторий:
|
||||
Если вам нужно внести изменения в пользовательский интерфейс, перейдите в репозиторий фронтенда:
|
||||
|
||||
- **GitHub**: [Toonflow-web](https://github.com/HBAI-Ltd/Toonflow-web)
|
||||
- **Gitee**: [Toonflow-web](https://gitee.com/HBAI-Ltd/Toonflow-web)
|
||||
|
||||
После сборки фронтенда скопируйте содержимое директории `dist` в директорию `data/web` данного проекта.
|
||||
После сборки (build) фронтенда скопируйте всю папку `dist` в директорию `data/web` этого проекта для интеграции.
|
||||
|
||||
## Структура проекта
|
||||
|
||||
```
|
||||
📂 build/ # Результаты компиляции
|
||||
📂 data/ # Данные времени выполнения
|
||||
│ ├─ 📂 models/ # Локальные модели инференса (ONNX)
|
||||
│ ├─ 📂 oss/ # Объектное хранилище (материалы/персонажи/сцены)
|
||||
│ ├─ 📂 serve/ # Точка входа production-среды
|
||||
│ ├─ 📂 skills/ # Промпты навыков Agent
|
||||
│ └─ 📂 web/ # Скомпилированный фронтенд (встроенный)
|
||||
📂 docs/ # Документация
|
||||
📂 env/ # Конфигурация окружения
|
||||
📂 build/ # Артефакты сборки
|
||||
📂 data/ # Данные времени выполнения (Runtime)
|
||||
│ ├─ 📂 models/ # Локальные модели (ONNX)
|
||||
│ ├─ 📂 oss/ # Object Storage (изображения, персонажи, сцены)
|
||||
│ ├─ 📂 serve/ # Точка входа в Production-режим
|
||||
│ ├─ 📂 skills/ # Промпты навыков Agent
|
||||
│ └─ 📂 web/ # Скомпилированный Frontend (встроен в проект)
|
||||
📂 docs/ # Документация и ресурсы
|
||||
📂 env/ # Конфигурации окружения
|
||||
📂 scripts/ # Скрипты сборки и вспомогательные скрипты
|
||||
📂 src/
|
||||
├─ 📂 agents/ # Модули AI Agent
|
||||
│ ├─ 📂 productionAgent/ # Production Agent
|
||||
│ └─ 📂 scriptAgent/ # Script Agent
|
||||
├─ 📂 lib/ # Общие библиотеки (инициализация БД, формат ответов)
|
||||
├─ 📂 middleware/ # Промежуточное ПО
|
||||
├─ 📂 routes/ # Модули маршрутов
|
||||
│ ├─ 📂 agents/ # Управление памятью Agent
|
||||
│ ├─ 📂 artStyle/ # Управление художественным стилем
|
||||
│ ├─ 📂 assets/ # Управление материалами
|
||||
│ ├─ 📂 assetsGenerate/ # Генерация материалов
|
||||
│ ├─ 📂 cornerScape/ # Управление раскадровками
|
||||
│ ├─ 📂 general/ # Общие интерфейсы
|
||||
│ ├─ 📂 login/ # Аутентификация
|
||||
│ ├─ 📂 migrate/ # Миграция данных
|
||||
│ ├─ 📂 modelSelect/ # Выбор модели
|
||||
│ ├─ 📂 novel/ # Управление романами
|
||||
│ ├─ 📂 other/ # Прочие функции
|
||||
│ ├─ 📂 production/ # Управление производством
|
||||
│ ├─ 📂 project/ # Управление проектами
|
||||
│ ├─ 📂 script/ # Генерация сценариев
|
||||
│ ├─ 📂 scriptAgent/ # Интерфейс Script Agent
|
||||
│ ├─ 📂 setting/ # Системные настройки
|
||||
│ ├─ 📂 task/ # Управление задачами
|
||||
│ └─ 📂 test/ # Тестовые интерфейсы
|
||||
├─ 📂 socket/ # WebSocket-реалтайм-связь
|
||||
├─ 📂 types/ # Объявления типов TypeScript
|
||||
├─ 📂 utils/ # Вспомогательные функции
|
||||
├─ 📄 app.ts # Точка входа приложения
|
||||
├─ 📄 core.ts # Базовая инициализация
|
||||
├─ 📄 env.ts # Обработка переменных окружения
|
||||
├─ 📄 err.ts # Обработка ошибок
|
||||
├─ 📄 logger.ts # Модуль логирования
|
||||
├─ 📄 router.ts # Регистрация маршрутов
|
||||
└─ 📄 utils.ts # Общие утилиты
|
||||
📄 Dockerfile # Файл сборки Docker
|
||||
├─ 📂 agents/ # Модули AI Agent
|
||||
│ ├─ 📂 productionAgent/ # Production Agent (агент производства)
|
||||
│ └─ 📂 scriptAgent/ # Script Agent (агент сценариев)
|
||||
├─ 📂 lib/ # Общие библиотеки (инициализация БД, форматы ответов)
|
||||
├─ 📂 middleware/ # Middleware
|
||||
├─ 📂 routes/ # Модули маршрутизации
|
||||
│ ├─ 📂 agents/ # Управление памятью Agent
|
||||
│ ├─ 📂 artStyle/ # Управление художественными стилями
|
||||
│ ├─ 📂 assets/ # Управление ассетами
|
||||
│ ├─ 📂 assetsGenerate/ # Генерация ассетов
|
||||
│ ├─ 📂 cornerScape/ # Управление раскадровкой (Storyboard)
|
||||
│ ├─ 📂 general/ # Общие API
|
||||
│ ├─ 📂 login/ # Аутентификация
|
||||
│ ├─ 📂 migrate/ # Миграция данных
|
||||
│ ├─ 📂 modelSelect/ # Выбор моделей
|
||||
│ ├─ 📂 novel/ # Управление новеллами
|
||||
│ ├─ 📂 other/ # Прочие функции
|
||||
│ ├─ 📂 production/ # Управление производством и монтажом
|
||||
│ ├─ 📂 project/ # Управление проектами
|
||||
│ ├─ 📂 script/ # Генерация сценариев
|
||||
│ ├─ 📂 scriptAgent/ # Интерфейс Script Agent
|
||||
│ ├─ 📂 setting/ # Системные настройки
|
||||
│ ├─ 📂 task/ # Управление задачами
|
||||
│ └─ 📂 test/ # Тестовые API
|
||||
├─ 📂 socket/ # Real-time коммуникация через WebSocket
|
||||
├─ 📂 types/ # Типы TypeScript
|
||||
├─ 📂 utils/ # Вспомогательные утилиты
|
||||
├─ 📄 app.ts # Точка входа приложения (App Entry)
|
||||
├─ 📄 core.ts # Инициализация ядра системы
|
||||
├─ 📄 env.ts # Обработка переменных окружения
|
||||
├─ 📄 err.ts # Обработка ошибок
|
||||
├─ 📄 logger.ts # Модуль логирования
|
||||
├─ 📄 router.ts # Регистрация маршрутов
|
||||
└─ 📄 utils.ts # Общие утилиты
|
||||
📄 Dockerfile # Файл для сборки Docker
|
||||
📄 electron-builder.yml # Конфигурация сборки Electron
|
||||
📄 skillList.json # Список навыков
|
||||
📄 LICENSE # Лицензия (Apache-2.0)
|
||||
@ -600,132 +503,116 @@ pm2 monit # Панель мониторинга
|
||||
|
||||
# 🔗 Связанные репозитории
|
||||
|
||||
| Репозиторий | Описание | GitHub | Gitee |
|
||||
| ---------------- | ----------------------------------------------- | -------------------------------------------------- | ------------------------------------------------ |
|
||||
| **Toonflow-app** | Полный клиент (данный репозиторий, рекомендуется обычным пользователям) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-app) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-app) |
|
||||
| **Toonflow-web** | Исходный код фронтенда (для фронтенд-разработчиков) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-web) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-web) |
|
||||
| Репозиторий | Описание | GitHub | Gitee |
|
||||
|------------------|---------------------------------------------------------------|----------------------------------------------------|--------------------------------------------------|
|
||||
| **Toonflow-app** | Полноценный клиент (этот репозиторий, рекомендуется для большинства пользователей) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-app) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-app) |
|
||||
| **Toonflow-web** | Исходный код Frontend (для frontend-разработчиков) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-web) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-web) |
|
||||
|
||||
> 💡 **Подсказка**: Если вы просто хотите использовать Toonflow, скачайте клиент из этого репозитория. Репозиторий фронтенда предназначен только для разработчиков, которым требуется доработка или кастомизация интерфейса.
|
||||
> 💡 **Совет**: Если вы просто хотите использовать Toonflow, достаточно скачать клиент из этого репозитория. Репозиторий Toonflow-web предназначен только для разработчиков, желающих внести изменения или доработать интерфейс.
|
||||
|
||||
---
|
||||
|
||||
# 👨👩👧👦 Группа в WeChat
|
||||
# 👨👩👧👦 Discord сообщество
|
||||
|
||||
Помощник для добавления в группу:
|
||||
|
||||
<img src="./QR.png" alt="Toonflow QR" height="400"/>
|
||||
|
||||
Вы также можете присоединиться к Discord, нажав на иконку:
|
||||
Нажмите на иконку ниже, чтобы присоединиться к Discord:
|
||||
|
||||
[](https://discord.gg/HEjKmpNpAZ)
|
||||
|
||||
Или перейдя по ссылке-приглашению: [https://discord.gg/HEjKmpNpAZ](https://discord.gg/HEjKmpNpAZ)
|
||||
Или перейдите по прямой ссылке: [https://discord.gg/HEjKmpNpAZ](https://discord.gg/HEjKmpNpAZ)
|
||||
|
||||
---
|
||||
|
||||
# 💌 Контакты
|
||||
# 💌 Свяжитесь с нами
|
||||
|
||||
📧 Эл. почта: [ltlctools@outlook.com](mailto:ltlctools@outlook.com?subject=Toonflow咨询)
|
||||
📧 Email: [ltlctools@outlook.com](mailto:ltlctools@outlook.com?subject=Запрос%20Toonflow)
|
||||
|
||||
---
|
||||
|
||||
# 📜 Лицензия
|
||||
|
||||
Toonflow распространяется с открытым исходным кодом по лицензии Apache-2.0 с дополнительным коммерческим соглашением.
|
||||
Toonflow распространяется как open-source проект под лицензией Apache-2.0 с дополнительным коммерческим соглашением.
|
||||
|
||||
Подробности лицензии: https://www.apache.org/licenses/LICENSE-2.0
|
||||
Подробнее о лицензии Apache-2.0: https://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
## Дополнительное соглашение
|
||||
## Дополнительное коммерческое соглашение
|
||||
|
||||
- Если данное программное обеспечение распространяется в виде продукта **двум и более независимым третьим сторонам**, необходимо получить **письменное коммерческое разрешение** от HBAI-Ltd.
|
||||
- **Совместное внутреннее использование ≤ 5 юридическими лицами** без предоставления услуг внешним сторонам считается внутренним использованием и **не требует разрешения**.
|
||||
- Запрещается удалять или изменять идентификационные знаки и информацию об авторских правах Toonflow.
|
||||
- Если данное ПО распространяется в виде продукта для **2 и более независимых третьих лиц**, необходимо получить **письменную коммерческую лицензию** от HBAI-Ltd.
|
||||
- Если ПО используется совместно **не более чем 5 юридическими лицами** только для внутренних нужд (без оказания услуг внешним пользователям), это считается внутренним использованием и **лицензия не требуется**.
|
||||
- Запрещается удалять или изменять логотипы и информацию об авторских правах в Toonflow.
|
||||
|
||||
## Сценарии постоянного бесплатного использования
|
||||
## Сценарии бессрочного бесплатного использования
|
||||
|
||||
- ✅ Создание контента с помощью Toonflow и получение дохода от платформы
|
||||
- ✅ Доработка для внутреннего использования в своей команде
|
||||
- ✅ Совместное внутреннее использование ≤ 5 юридическими лицами
|
||||
- ✅ Личное обучение, исследования, некоммерческое использование
|
||||
- ✅ Создание контента с помощью Toonflow и монетизация через видеоплатформы
|
||||
- ✅ Вторичная разработка (secondary development) для внутреннего использования команды
|
||||
- ✅ Совместное использование группой из ≤ 5 юридических лиц только внутри организации
|
||||
- ✅ Личное обучение, научные исследования и любые некоммерческие цели
|
||||
|
||||
## Цены на коммерческое лицензирование
|
||||
## Тарифы коммерческой лицензии
|
||||
|
||||
| Этап | Годовой объём продаж | Годовая плата |
|
||||
| -------------- | -------------------- | -------------- |
|
||||
| 🌱 Поддержка | < ¥100 000 | **Бесплатная лицензия по запросу** |
|
||||
| 🚀 Старт | ¥100 000 – 500 000 | ¥5 000/год |
|
||||
| 📈 Рост | ¥500 000 – 1 500 000 | ¥20 000/год |
|
||||
| 🏢 Масштабирование | ¥1 500 000 – 5 000 000 | ¥80 000/год |
|
||||
| 🌐 Корпоративный | > ¥5 000 000 | Обсуждается |
|
||||
| Стадия | Годовая выручка | Годовой взнос |
|
||||
|---------------------|-----------------------------|-----------------------|
|
||||
| 🌱 Старт / Поддержка | < ¥100 000 RMB | **Бесплатно** |
|
||||
| 🚀 Стартап | ¥100 000 – 500 000 RMB | ¥5,000 / год |
|
||||
| 📈 Рост | ¥500 000 – 1 500 000 RMB | ¥20,000 / год |
|
||||
| 🏢 Масштабирование | ¥1 500 000 – 5 000 000 RMB | ¥80,000 / год |
|
||||
| 🌐 Корпоративный | > ¥5 000 000 RMB | Договорная цена |
|
||||
|
||||
> **Положение о неретроактивности**: Пользователи, использовавшие программное обеспечение на условиях AGPL-3.0 до выхода версии v1.0.8, продолжают действовать в соответствии с AGPL-3.0 и не подпадают под действие изменений данного соглашения.
|
||||
> **Оговорка о необратной силе**: Пользователи, которые использовали Toonflow под лицензией AGPL-3.0 до выхода версии v1.0.8, продолжают работать по правилам AGPL-3.0. Изменения данного соглашения на них не распространяются.
|
||||
|
||||
Полный текст соглашения см. в файле [LICENSE](./LICENSE).
|
||||
Полный текст соглашения доступен в файле [LICENSE](./LICENSE).
|
||||
|
||||
---
|
||||
|
||||
# ⭐️ Звёзды
|
||||
|
||||
[](https://www.star-history.com/#HBAI-Ltd/Toonflow-app)
|
||||
# ⭐️ История звезд (Star History)
|
||||
|
||||
[](https://www.star-history.com/#HBAI-Ltd/Toonflow-app&type=timeline&legend=top-left)
|
||||
|
||||
---
|
||||
|
||||
|
||||
# 🙏 Благодарности
|
||||
|
||||
Благодарим следующие проекты с открытым исходным кодом за мощную поддержку Toonflow:
|
||||
Выражаем благодарность следующим open-source проектам за мощную поддержку Toonflow:
|
||||
|
||||
- [Express](https://expressjs.com/) — Быстрый, свободный и минималистичный веб-фреймворк для Node.js
|
||||
- [AI SDK](https://ai-sdk.dev/) — AI-инструментарий для TypeScript
|
||||
- [Better-SQLite3](https://github.com/WiseLibs/better-sqlite3) — Высокопроизводительная библиотека привязки SQLite3
|
||||
- [Sharp](https://sharp.pixelplumbing.com/) — Высокопроизводительная библиотека обработки изображений для Node.js
|
||||
- [Axios](https://axios-http.com/) — HTTP-клиент на основе Promise
|
||||
- [Zod](https://zod.dev/) — TypeScript-ориентированная библиотека валидации схем
|
||||
- [Socket.IO](https://socket.io/) — Двунаправленный движок реалтайм-коммуникаций
|
||||
- [Electron](https://www.electronjs.org/) — Кроссплатформенный фреймворк для разработки десктопных приложений
|
||||
- [Hugging Face Transformers](https://huggingface.co/docs/transformers.js) — Локальная библиотека ML-инференса
|
||||
- [Express](https://expressjs.com/) - Быстрый, гибкий и минималистичный веб-фреймворк для Node.js
|
||||
- [AI SDK](https://ai-sdk.dev/) - AI инструментарий для TypeScript
|
||||
- [Better-SQLite3](https://github.com/WiseLibs/better-sqlite3) - Библиотека с высокой производительностью для SQLite3
|
||||
- [Sharp](https://sharp.pixelplumbing.com/) - Высокопроизводительная библиотека Node.js для обработки изображений
|
||||
- [Axios](https://axios-http.com/) - Promise-based HTTP клиент
|
||||
- [Zod](https://zod.dev/) - Библиотека валидации схем, ориентированная на TypeScript
|
||||
- [Socket.IO](https://socket.io/) - Движок для двунаправленной real-time связи на основе событий
|
||||
- [Electron](https://www.electronjs.org/) - Фреймворк для кроссплатформенных десктоп-приложений
|
||||
- [Hugging Face Transformers](https://huggingface.co/docs/transformers.js) - Библиотека для локального ML инференса
|
||||
|
||||
Благодарим следующие организации и лица за поддержку Toonflow:
|
||||
Спасибо следующим организациям/лицам за поддержку Toonflow:
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th align="center">Логотип</th>
|
||||
<th align="center">Logo</th>
|
||||
<th align="center">Название</th>
|
||||
<th align="center">Форма поддержки</th>
|
||||
<th align="center">Тип поддержки</th>
|
||||
<th>Описание</th>
|
||||
<th align="center">Веб-сайт</th>
|
||||
<th align="center">Сайт</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center"><img src="./sponsored/sophnet.png" alt="SuanNeng Cloud Logo" width="48"></td>
|
||||
<td align="center"><b>SuanNeng Cloud</b></td>
|
||||
<td align="center">💻 Спонсорство вычислительных мощностей</td>
|
||||
<td>Стремится создать более быструю, стабильную и экономичную универсальную платформу API-сервисов для инференса моделей.</td>
|
||||
<td align="center"><a href="https://www.sophnet.com/">Веб-сайт</a></td>
|
||||
<td align="center"><img src="./sponsored/sophnet.png" alt="Sophnet Logo" width="48"></td>
|
||||
<td align="center"><b>Sophnet</b></td>
|
||||
<td align="center">💻 Спонсор</td>
|
||||
<td>Создание быстрой, стабильной и экономичной платформы API для инференса моделей</td>
|
||||
<td align="center"><a href="https://www.sophnet.com/">Сайт</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">💻 Спонсорство вычислительных мощностей</td>
|
||||
<td>Первая в мире универсальная мультимодальная платформа инференса. Диалог, изображения, видео, аудио — всё через единый API. Более 300 моделей, совместимость с OpenAI.</td>
|
||||
<td align="center"><a href="https://www.atlascloud.ai/">Веб-сайт</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">🌐 Техническая поддержка мировых моделей</td>
|
||||
<td>AI-движок создания 3D-контента на основе большой модели генерации 3D Tencent Hunyuan версии 2.5 — первая в отрасли универсальная AI-платформа для создания 3D. Поддерживает генерацию 3D из текста и изображений, 3D-анимацию, генерацию текстур и многое другое, включая генерацию 3D из набросков, создание 3D-персонажей и преимущества в создании low-poly моделей.</td>
|
||||
<td align="center"><a href="https://3d.hunyuan.tencent.com/">Веб-сайт</a></td>
|
||||
<td align="center">💻 Спонсор</td>
|
||||
<td>Первая в мире мультимодальная платформа вывода. Чат, изображения, видео, аудио — единый API. 300+ моделей, совместимость с OpenAI.</td>
|
||||
<td align="center"><a href="https://www.atlascloud.ai/">Сайт</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
Полный список сторонних зависимостей см. в файле `NOTICES.txt`
|
||||
Полный список зависимостей третьих сторон находится в файле `NOTICES.txt`.
|
||||
|
||||
##### copyright © Beijing Ai'a 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%"/>
|
||||
##### copyright © Huaibei AIA Network Technology Co., Ltd.
|
||||
@ -1,5 +1,3 @@
|
||||
<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" />
|
||||
@ -28,8 +26,17 @@
|
||||
|
||||
<img src="./logo.png" alt="Toonflow Logo" height="120"/>
|
||||
|
||||
[](https://git.io/typing-svg)
|
||||
# Toonflow
|
||||
|
||||
<p align="center">
|
||||
<b>
|
||||
โรงงานผลิตภาพยนตร์สั้น AI
|
||||
<br />
|
||||
เพียงคลิกไม่กี่ครั้ง นิยายก็กลายเป็นภาพยนตร์ได้ในพริบตา!
|
||||
<br />
|
||||
บทภาพยนตร์ AI × ภาพ AI × สร้างวิดีโอความเร็วสูง 🔥
|
||||
</b>
|
||||
</p>
|
||||
<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="Stars Badge" />
|
||||
@ -41,183 +48,69 @@
|
||||
<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="Forks Badge" />
|
||||
</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 No.540" />
|
||||
</a>
|
||||
<a href="https://discord.gg/HEjKmpNpAZ">
|
||||
<img src="https://img.shields.io/badge/Discord-Community-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="Issues" />
|
||||
</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="Contributors" />
|
||||
</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="Last Commit" />
|
||||
</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="Tech Stack Icons" />
|
||||
</p>
|
||||
<p align="center">
|
||||
<img src="https://widgetbite.com/stats/HBAI-Ltd" alt="Visitors" />
|
||||
</p>
|
||||
|
||||
> 🚀 **โรงงานซีรีส์สั้นแบบครบวงจร**: จากข้อความสู่ตัวละคร จากสตอรี่บอร์ดสู่คลิปวิดีโอ ครบวงจรด้วย AI โดยไม่ต้องมีทักษะ เพิ่มประสิทธิภาพการสร้างสรรค์มากกว่า 10 เท่า!
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
<a href="./g-star.png" target="_blank">
|
||||
<img src="./g-star.png" alt="AtomGit G-Star ใบรับรอง" width="100%"/>
|
||||
</a>
|
||||
> 🚀 **สตูดิโอภาพยนตร์สั้น All-in-One**: จากข้อความสู่ตัวละคร จากสตอรี่บอร์ดสู่ภาพยนตร์ ใช้ AI อัตโนมัติทั้งกระบวนการ ไม่ต้องมีพื้นฐานใด ๆ เพิ่มประสิทธิภาพการสร้างสรรค์มากกว่า 10 เท่า!
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 🌐 รองรับหลายภาษา
|
||||
# 🌐 การรองรับหลายภาษา
|
||||
|
||||
Toonflow รองรับอินเทอร์เฟซภาษาดังต่อไปนี้:
|
||||
|
||||
| ภาษา | Language |
|
||||
| ---------- | --------------------- |
|
||||
| 简体中文 | Chinese (Simplified) |
|
||||
| 繁體中文 | Chinese (Traditional) |
|
||||
| English | English |
|
||||
| ไทย | Thai |
|
||||
| Tiếng Việt | Vietnamese |
|
||||
| 日本語 | Japanese |
|
||||
| Русский | Russian |
|
||||
| ภาษา | Language |
|
||||
|------|----------|
|
||||
| 简体中文 | Chinese (Simplified) |
|
||||
| 繁體中文 | Chinese (Traditional) |
|
||||
| English | English |
|
||||
| ไทย | Thai |
|
||||
| Tiếng Việt | Vietnamese |
|
||||
| 日本語 | Japanese |
|
||||
| Русский | Russian |
|
||||
|
||||
> 💡 กำลังปรับภาษาเพิ่มเติม ยินดีต้อนรับการมีส่วนร่วมในการแปล!
|
||||
> 💡 กำลังเพิ่มการรองรับภาษาอื่นๆ ยินดีต้อนรับผู้ที่ต้องการช่วยแปล!
|
||||
|
||||
---
|
||||
|
||||
# 🌟 ฟังก์ชันหลัก
|
||||
# 🌟 ฟีเจอร์หลัก
|
||||
|
||||
Toonflow คือเวิร์กสเตชัน AI ที่มุ่งเน้นการผลิตซีรีส์สั้น สร้างวงจรปิดที่สมบูรณ์ตั้งแต่ "การวางแผน → การเขียนบท → การทำสตอรี่บอร์ด → การผลิตคลิป" และรองรับกระบวนการผลิตที่ปรับเปลี่ยนได้ในพื้นที่ สามารถตั้งโปรแกรมได้ และพัฒนาอย่างต่อเนื่อง
|
||||
Toonflow เป็นเครื่องมือ AI สำหรับสร้างภาพยนตร์สั้นและการ์ตูน ที่สามารถแปลงนิยายเป็นภาพยนตร์ได้โดยอัตโนมัติ ด้วยการผสานเทคโนโลยี AI ในการสร้างตัวละคร บทภาพยนตร์ ภาพประกอบ และวิดีโอ ทำให้กระบวนการผลิตภาพยนตร์สั้นมีประสิทธิภาพสูง ด้วย Toonflow คุณสามารถจัดการทุกขั้นตอนตั้งแต่ข้อความต้นฉบับจนถึงวิดีโอสำเร็จรูปได้อย่างง่ายดาย ทำให้การผลิตภาพยนตร์สั้นฉลาด สะดวก และรวดเร็วยิ่งขึ้น
|
||||
|
||||
- ✅ **เวิร์กสเตชันการผลิตแบบผืนผ้าใบไม่จำกัด**
|
||||
จัดระเบียบสคริปต์ ตัวละคร สตอรี่บอร์ด 素材 และโหนดวิดีโอในรูปแบบผืนผ้าใบไม่จำกัด รองรับการจัดเรียงอิสระ การย้อนกลับ และการผลิตแบบขนาน ไม่ถูกจำกัดด้วยขั้นตอนเชิงเส้น
|
||||
- ✅ **ระบบความร่วมมือ Agent สามชั้น**
|
||||
ชั้น决策 (การตัดสินใจ) ชั้น执行 (การปฏิบัติ) และชั้น监督 (การกำกับดูแล) ทำงานร่วมกัน ครอบคลุมการแยกย่อยงาน การสร้างเนื้อหา การตรวจสอบคุณภาพ และการ反馈 (ข้อเสนอแนะ) เพื่อเพิ่มความเสถียรและความสอดคล้องของผลงาน
|
||||
- ✅ **ความจำ Agent แบบถาวร**
|
||||
ระบบความจำข้ามเซสชันที่ใช้การค้นหาเวกเตอร์ ONNX ในพื้นที่ รองรับข้อความระยะสั้น สรุประยะยาว และการเรียกคืนความหมาย เพื่อรับประกันความต่อเนื่องในการสร้างสรรค์หลายรอบ
|
||||
- ✅ **ระบบผู้ให้บริการที่ตั้งโปรแกรมได้**
|
||||
รองรับการเขียนตรรกะ TypeScript ของผู้ให้บริการในศูนย์การตั้งค่าและ生效 (มีผล) ทันที โดยไม่ต้องแก้ไขซอร์สโค้ดหรือรีสตาร์ท สะดวกสำหรับการปรับใช้ส่วนตัวและการเชื่อมต่อหลายโมเดล
|
||||
- ✅ **การปรับบทโดยใช้แผนที่เหตุการณ์ของบท**
|
||||
แยกเหตุการณ์ในบทของต้นฉบับโดยอัตโนมัติและจัดเก็บอย่างมีโครงสร้าง การปรับบทจะเรียกใช้บริบทตามแผนที่เหตุการณ์อย่างแม่นยำ ลดการสูญเสียข้อมูลในข้อความยาว
|
||||
- ✅ **การกำหนดค่า Skill เป็นไฟล์**
|
||||
คำแนะนำหลักของ ScriptAgent และ ProductionAgent ถูกแยกออกเป็นไฟล์ Markdown Skill รองรับการแก้ไขออนไลน์และการปรับแต่งอย่างรวดเร็ว
|
||||
- ✅ **สร้างตัวละครอัตโนมัติ**
|
||||
วิเคราะห์ข้อความจากนิยายต้นฉบับโดยอัตโนมัติ ระบุและสร้างโปรไฟล์ตัวละครอย่างชาญฉลาด รวมถึงรูปร่างหน้าตา นิสัย ตัวตน และรายละเอียดอื่น ๆ เพื่อสร้างพื้นฐานที่แข็งแรงสำหรับบทภาพยนตร์และภาพในขั้นตอนต่อไป
|
||||
|
||||
- ✅ **สร้างบทภาพยนตร์**
|
||||
จากเหตุการณ์และบท (Chapter) ที่เลือก ระบบจะสร้างบทภาพยนตร์ที่มีโครงสร้างชัดเจน ประกอบด้วยบทสนทนา คำอธิบายฉาก และทิศทางเรื่องราว ช่วยแปลงงานวรรณกรรมเป็นบทภาพยนตร์ได้อย่างมีประสิทธิภาพ
|
||||
|
||||
- ✅ **สร้างสตอรี่บอร์ด (Storyboard)**
|
||||
จากบทภาพยนตร์ ระบบจะสร้างพรอมต์และออกแบบเฟรมภาพสตอรี่บอร์ดโดยอัตโนมัติ โดยระบุรายละเอียดฉากหน้า ฉากกลาง ฉากหลัง การเคลื่อนไหวของตัวละคร พร็อพ และการจัดวางฉาก เพื่อสร้างแผนการผลิตวิดีโอที่สมบูรณ์
|
||||
|
||||
- ✅ **สังเคราะห์และตัดต่อวิดีโอ**
|
||||
ใช้เทคโนโลยี AI สร้างคลิปวิดีโอคุณภาพสูง รองรับระบบตัดต่อออนไลน์ที่สามารถปรับแต่งได้ตามต้องการ ช่วยให้กระบวนการสร้างภาพยนตร์สั้นเป็นไปอย่างราบรื่นและรวดเร็ว
|
||||
|
||||
---
|
||||
|
||||
# 📦 สถานการณ์การใช้งาน
|
||||
# 📦 รูปแบบการใช้งาน (Use Cases)
|
||||
|
||||
- การสร้างเนื้อหาวิดีโอสั้น
|
||||
- การทดลองทำนิยายเป็นภาพยนตร์
|
||||
- เครื่องมือปรับบทวรรณกรรมด้วย AI
|
||||
- การพัฒนาบทและการสร้างต้นแบบอย่างรวดเร็ว
|
||||
- การสร้าง素材วิดีโอ
|
||||
|
||||
---
|
||||
- สร้างคอนเทนต์วิดีโอสั้น
|
||||
- ทดลองแปลงนิยายเป็นภาพยนตร์สั้น
|
||||
- เครื่องมือ AI ในการดัดแปลงวรรณกรรมเป็นภาพยนตร์
|
||||
- พัฒนาบทภาพยนตร์และสร้างต้นแบบ (Rapid Prototyping) อย่างรวดเร็ว
|
||||
- สร้างฟุตเทจและวัสดุวิดีโอคุณภาพสูง
|
||||
|
||||
# 🔰 คู่มือการใช้งาน
|
||||
|
||||
## เริ่มต้นใช้งานอย่างรวดเร็ว
|
||||
## 📺 วิดีโอสอนการใช้งาน
|
||||
|
||||
1. เปิดแอปพลิเคชันและเข้าสู่ระบบ (บัญชีเริ่มต้น: `admin` / `admin123`)
|
||||
2. กำหนดค่าผู้ให้บริการโมเดลในศูนย์การตั้งค่า (โมเดลข้อความ/รูปภาพ/วิดีโอ)
|
||||
3. สร้างโปรเจกต์ใหม่และนำเข้านิยายต้นฉบับ ดำเนินการแยกเหตุการณ์ในบท
|
||||
4. เข้าสู่ ScriptAgent เพื่อสร้างโครงเรื่อง กลยุทธ์การปรับบท และสคริปต์ที่มีโครงสร้าง
|
||||
5. สลับไปที่ ProductionAgent จัดระเบียบสตอรี่บอร์ด 素材 และโหนดวิดีโอในผืนผ้าใบไม่จำกัด
|
||||
6. ปรับแต่งภาพสตอรี่บอร์ดเป็นโหนดอย่างละเอียดแล้วส่งกลับไปยังเวิร์กสเตชันเพื่อทำการต่อวิดีโอและส่งออก
|
||||
[https://www.bilibili.com/video/BV1oXD7BqEqJ](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
|
||||
## 📺 บทเรียนวิดีโอ
|
||||
**เริ่มต้นสร้างวิดีโอ AI กับ Toonflow ใน 12 นาที**
|
||||
👉 [คลิกเพื่อรับชม](https://www.bilibili.com/video/BV1oXD7BqEqJ/?share_source=copy_web&vd_source=5b718c25439a901a34c7bc0c1d35b38e)
|
||||
|
||||
https://www.bilibili.com/video/BV1oXD7BqEqJ
|
||||
[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
📱 **สแกน QR Code เพื่อรับชมวิดีโอบนมือถือ**
|
||||
|
||||
**Toonflow 12 นาที เริ่มต้นใช้งาน AI อย่างรวดเร็ว**
|
||||
👉 [คลิกเพื่อรับชม](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
|
||||
📱 สแกนด้วย WeChat บนมือถือเพื่อรับชม
|
||||
|
||||
<img src="./videoQR.png" alt="สแกนด้วย WeChat เพื่อรับชม" width="150"/>
|
||||
|
||||
---
|
||||
|
||||
# 📸 ภาพหน้าจอและวิดีโอสาธิต
|
||||
|
||||
ภาพหน้าจอและวิดีโอด้านล่างมาจากตัวอย่างซีรีส์สั้น AI ที่สร้างด้วย Toonflow ใช้เวลาทั้งหมดประมาณ 2 ชั่วโมง ครอบคลุมการสร้างสคริปต์ การทำสตอรี่บอร์ด และการตัดต่อ
|
||||
|
||||
<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>
|
||||
|
||||
## 🎬 วิดีโอสาธิต
|
||||
|
||||
<div align="center">
|
||||
|
||||
https://github.com/user-attachments/assets/2d9fddac-dfdf-4640-b030-b09d7f7287e9
|
||||
|
||||
หากเล่นไม่ได้ กรุณา [คลิกดาวน์โหลดวิดีโอ](./screenshot/demo.mp4)
|
||||
|
||||
</div>
|
||||
|
||||
## ข้อมูลสาธิต
|
||||
|
||||
| รายการ | รายละเอียด |
|
||||
| :--- | :--- |
|
||||
| ระยะเวลาการผลิต | ประมาณ 2 ชั่วโมง |
|
||||
| โมเดลวิดีโอ | Seedance 2.0 |
|
||||
| โมเดลรูปภาพ | GPT Image 2 |
|
||||
| โมเดลภาษา | Claude Opus 4.6 |
|
||||
| ความยาวคลิปทั้งหมด | ประมาณ 2 นาที (素材ดิบ 3 นาที ตัดส่วนที่ไม่ใช้ออกประมาณ 1 นาที) |
|
||||
|
||||
## รายละเอียดค่าใช้จ่าย
|
||||
|
||||
| ประเภทโมเดล | ค่าใช้จ่าย |
|
||||
| :--- | :--- |
|
||||
| โมเดลภาษา | ประมาณ ¥10 |
|
||||
| โมเดลวิดีโอ (สร้างทั้งหมด) | ประมาณ ¥120 |
|
||||
| โมเดลรูปภาพ | ไม่ถึง ¥1 |
|
||||
| **รวม** | **ประมาณ ¥130** |
|
||||
|
||||
> **声明 (คำชี้แจง)**: ความละเอียดดั้งเดิมของตัวอย่างคือ 1080×1882 เวอร์ชันที่เผยแพร่ถูกบีบอัดเป็น 480p หากเกี่ยวข้องกับปัญหาเรื่องลิขสิทธิ์ โปรดติดต่อเราเพื่อดำเนินการลบออก
|
||||
<img src="./videoQR.png" alt="สแกน QR Code เพื่อรับชมวิดีโอ" width="150"/>
|
||||
|
||||
---
|
||||
|
||||
@ -225,92 +118,94 @@ https://github.com/user-attachments/assets/2d9fddac-dfdf-4640-b030-b09d7f7287e9
|
||||
|
||||
## ข้อกำหนดเบื้องต้น
|
||||
|
||||
ก่อนติดตั้งและใช้งานซอฟต์แวร์นี้ โปรดเตรียมสิ่งต่อไปนี้:
|
||||
ก่อนติดตั้งและใช้งาน Toonflow โปรดเตรียมข้อมูลต่อไปนี้ให้พร้อม:
|
||||
|
||||
- ✅ ที่อยู่接口บริการ AI โมเดลภาษาใหญ่
|
||||
- ✅ ที่อยู่接口บริการวิดีโอ Sora หรือ Doubao
|
||||
- ✅ บริการ接口โมเดลสร้างรูปภาพ Nano Banana Pro
|
||||
- ✅ ที่อยู่ API ของโมเดลภาษาขนาดใหญ่ (LLM)
|
||||
- ✅ ที่อยู่ API ของบริการสร้างวิดีโอ (Sora หรือ Doubao)
|
||||
- ✅ ที่อยู่ API ของโมเดลสร้างภาพ Nano Banana Pro
|
||||
|
||||
## การติดตั้งบนเครื่อง
|
||||
## การติดตั้งบนเครื่อง (Local)
|
||||
|
||||
### 1. ดาวน์โหลดและติดตั้ง
|
||||
|
||||
| ระบบปฏิบัติการ | GitHub | หมายเหตุ |
|
||||
| :------: | :----------------------------------------------------------- | :------------- |
|
||||
| Windows | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | แพ็คเกจติดตั้งทางการ |
|
||||
| Linux | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | แพ็คเกจติดตั้งทางการ |
|
||||
| macOS | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | แพ็คเกจติดตั้งทางการ |
|
||||
| ระบบปฏิบัติการ | GitHub | Atomgit | ดาวน์โหลดผ่าน Quark Drive | คำอธิบาย |
|
||||
| :------: | :----------------------------------------------------------- | :------------------------------------------------------------ | :---------------------------------------------- | :------------- |
|
||||
| Windows | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [Quark Drive](https://pan.quark.cn/s/94ef07509df0) | ตัวติดตั้งอย่างเป็นทางการ |
|
||||
| Linux | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [Quark Drive](https://pan.quark.cn/s/94ef07509df0) | ตัวติดตั้งอย่างเป็นทางการ |
|
||||
| macOS | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [Quark Drive](https://pan.quark.cn/s/94ef07509df0) | ตัวติดตั้งอย่างเป็นทางการ |
|
||||
|
||||
> [!CAUTION]
|
||||
> สำหรับระบบ MacOS โปรดไปที่ การตั้งค่า-ความเป็นส่วนตัวและความปลอดภัย เพื่อกำหนดค่าความปลอดภัย มิฉะนั้นอาจเปิดไม่ได้เนื่องจากปัญหาใบรับรอง
|
||||
> สำหรับระบบ macOS โปรดไปที่ **การตั้งค่า > ความเป็นส่วนตัวและความปลอดภัย** เพื่ออนุญาตให้แอปพลิเคชันทำงาน มิฉะนั้นอาจเปิดโปรแกรมไม่ได้เนื่องจากปัญหาใบรับรองความปลอดภัย
|
||||
>
|
||||
> ดูเอกสารอ้างอิง Zhihu: [https://www.zhihu.com/question/433389276](https://www.zhihu.com/question/433389276)
|
||||
> อ้างอิงเอกสารจาก Zhihu: [https://www.zhihu.com/question/433389276](https://www.zhihu.com/question/433389276)
|
||||
|
||||
> เนื่องจากข้อจำกัดของสภาพแวดล้อม Gitee OS และข้อจำกัดขนาดไฟล์อัปโหลด Release จึงยังไม่มีให้ดาวน์โหลดจาก Gitee Release ในขณะนี้
|
||||
> เนื่องจากข้อจำกัดเรื่องสภาพแวดล้อมระบบและขนาดไฟล์ของ Gitee Release ปัจจุบันจึงยังไม่มีลิงก์ดาวน์โหลดบน Gitee
|
||||
|
||||
### 2. เริ่มบริการ
|
||||
### 2. เริ่มการทำงาน
|
||||
|
||||
หลังจากติดตั้งเสร็จ ให้เริ่มโปรแกรมเพื่อเริ่มใช้บริการนี้
|
||||
หลังจากติดตั้งเสร็จสิ้น เพียงเปิดโปรแกรม Toonflow ก็สามารถเริ่มใช้งานได้ทันที
|
||||
|
||||
> ⚠️ **เข้าสู่ระบบครั้งแรก**
|
||||
> บัญชี: `admin`
|
||||
> ชื่อผู้ใช้: `admin`
|
||||
> รหัสผ่าน: `admin123`
|
||||
|
||||
## การปรับใช้ Docker
|
||||
## การใช้งานผ่าน Docker
|
||||
|
||||
### ข้อกำหนดเบื้องต้น
|
||||
|
||||
- ติดตั้ง [Docker](https://docs.docker.com/get-docker/) แล้ว (เวอร์ชัน 20.10+)
|
||||
- ติดตั้ง [Docker](https://docs.docker.com/get-docker/) เวอร์ชัน 20.10 ขึ้นไป เรียบร้อยแล้ว
|
||||
|
||||
### วิธีที่ 1: ปรับใช้ออนไลน์
|
||||
### วิธีที่ 1: การติดตั้งออนไลน์
|
||||
|
||||
อยู่ระหว่างการปรับปรุง ให้ใช้การสร้างในพื้นที่ก่อน
|
||||
กำลังพัฒนา
|
||||
ปัจจุบันแนะนำให้ใช้วิธี Build บนเครื่องก่อน
|
||||
|
||||
### วิธีที่ 2: สร้างในพื้นที่
|
||||
### วิธีที่ 2: การ Build บนเครื่อง
|
||||
|
||||
ใช้ซอร์สโค้ดที่มีอยู่ในพื้นที่สร้างโดยตรง เหมาะสำหรับนักพัฒนาหรือผู้ที่ clone repository ไว้แล้ว ซึ่งต้องติดตั้ง git ในเครื่อง:
|
||||
ใช้วิธี Build จากซอร์สโค้ดที่มีอยู่ในเครื่องโดยตรง
|
||||
เหมาะสำหรับนักพัฒนาหรือผู้ใช้ที่โคลน Repository มาแล้ว (ต้องติดตั้ง Git บนเครื่องก่อน)
|
||||
|
||||
```shell
|
||||
# ขั้นแรก clone โปรเจกต์ (ข้ามได้ถ้ามีแล้ว)
|
||||
# โคลนโปรเจกต์ก่อน (ข้ามขั้นตอนนี้ถ้ามีอยู่แล้ว)
|
||||
git clone https://github.com/HBAI-Ltd/Toonflow-app.git
|
||||
cd Toonflow-app
|
||||
|
||||
# ใช้ docker-compose สร้างและเริ่มในพื้นที่
|
||||
# ใช้ docker-compose ในการ Build และรันบนเครื่อง
|
||||
yarn docker:local
|
||||
|
||||
# หรือสร้างด้วยตนเอง
|
||||
# หรือทำการ Build แบบแมนนวล
|
||||
docker build -t toonflow .
|
||||
docker run -d -p <พอร์ตท้องถิ่น>:10588 -v <เส้นทางข้อมูลท้องถิ่น>:/app/data toonflow
|
||||
docker run -d -p <พอร์ตบนเครื่อง>:10588 -v <พาธข้อมูลบนเครื่อง>:/app/data toonflow
|
||||
|
||||
# จากนั้นสามารถเข้าถึงหน้าเว็บได้ที่路径 /web/index.html ของพอร์ตนั้น
|
||||
# ตัวอย่างเช่น http://localhost:10588/web/index.html
|
||||
# จากนั้นสามารถเข้าถึงหน้าเว็บผ่านพอร์ตที่ระบุ ที่พาธ /web/index.html
|
||||
# ตัวอย่าง: http://localhost:10588/web/index.html
|
||||
```
|
||||
|
||||
### คำอธิบายพอร์ตบริการ
|
||||
|
||||
| พอร์ต | การใช้งาน | การแมปปรับใช้ |
|
||||
| ------- | -------- | ------------- |
|
||||
| `10588` | อินเทอร์เฟซซอฟต์แวร์ | `10588:10588` |
|
||||
| พอร์ต | การใช้งาน | การจับคู่พอร์ต (Mapping) |
|
||||
| ------- | ---------------------- | ------------------------ |
|
||||
| `10588` | พอร์ตบริการหลัก (API) | `10588:10588` |
|
||||
|
||||
**คำอธิบายตัวแปรสภาพแวดล้อม:**
|
||||
**คำอธิบายตัวแปรสภาพแวดล้อม (Environment Variables):**
|
||||
|
||||
| ตัวแปร | คำอธิบาย |
|
||||
| ---------- | ---------------------------------- |
|
||||
| `NODE_ENV` | สภาพแวดล้อมการทำงาน `prod` หมายถึงสภาพแวดล้อมการผลิต |
|
||||
| `PORT` | พอร์ตที่บริการรับฟัง (ค่าเริ่มต้น 10588) |
|
||||
| `OSSURL` | ที่อยู่เข้าถึงการจัดเก็บไฟล์ ใช้สำหรับเข้าถึงทรัพยากรแบบ static |
|
||||
| ตัวแปร | คำอธิบาย |
|
||||
| ---------- | ----------------------------------------------------- |
|
||||
| `NODE_ENV` | สภาพแวดล้อมการทำงาน (`prod` = Production) |
|
||||
| `PORT` | พอร์ตสำหรับให้บริการ (ค่าเริ่มต้น 10588) |
|
||||
| `OSSURL` | ที่อยู่ OSS สำหรับเก็บและโหลดไฟล์สาธารณะ (Static files) |
|
||||
|
||||
---
|
||||
|
||||
## การปรับใช้บนคลาวด์
|
||||
## การติดตั้งบนคลาวด์ / เซิร์ฟเวอร์
|
||||
|
||||
### 1. ข้อกำหนดสภาพแวดล้อมเซิร์ฟเวอร์
|
||||
|
||||
- **ระบบ**: Ubuntu 20.04+ / CentOS 7+
|
||||
- **Node.js**: 24.x (แนะนำ ขั้นต่ำ 23.11.1+)
|
||||
- **หน่วยความจำ**: 2GB+
|
||||
- **ระบบปฏิบัติการ**: Ubuntu 20.04+ / CentOS 7+
|
||||
- **Node.js**: 24.x (แนะนำ, ขั้นต่ำ 23.11.1+)
|
||||
- **RAM**: 2GB+
|
||||
|
||||
### 2. การปรับใช้เซิร์ฟเวอร์
|
||||
### 2. การติดตั้งบนเซิร์ฟเวอร์
|
||||
|
||||
#### 1. ติดตั้งสภาพแวดล้อม
|
||||
|
||||
@ -323,9 +218,9 @@ nvm install 24
|
||||
npm install -g yarn pm2
|
||||
```
|
||||
|
||||
#### 2. ปรับใช้โปรเจกต์
|
||||
#### 2. ดึงโค้ดโปรเจกต์
|
||||
|
||||
**Clone จาก GitHub:**
|
||||
**โคลนจาก GitHub:**
|
||||
|
||||
```bash
|
||||
cd /opt
|
||||
@ -335,7 +230,7 @@ yarn install
|
||||
yarn build
|
||||
```
|
||||
|
||||
**Clone จาก Gitee (แนะนำสำหรับในประเทศจีน):**
|
||||
**โคลนจาก Gitee (แนะนำสำหรับประเทศจีน):**
|
||||
|
||||
```bash
|
||||
cd /opt
|
||||
@ -345,7 +240,7 @@ yarn install
|
||||
yarn build
|
||||
```
|
||||
|
||||
#### 3. กำหนดค่า PM2
|
||||
#### 3. ตั้งค่า PM2
|
||||
|
||||
สร้างไฟล์ `pm2.json`:
|
||||
|
||||
@ -363,17 +258,17 @@ yarn build
|
||||
}
|
||||
```
|
||||
|
||||
**คำอธิบายตัวแปรสภาพแวดล้อม:**
|
||||
**คำอธิบายตัวแปรสภาพแวดล้อม (Environment Variables):**
|
||||
|
||||
| ตัวแปร | คำอธิบาย |
|
||||
| ---------- | ---------------------------------- |
|
||||
| `NODE_ENV` | สภาพแวดล้อมการทำงาน `prod` หมายถึงสภาพแวดล้อมการผลิต |
|
||||
| `PORT` | พอร์ตที่บริการรับฟัง |
|
||||
| `OSSURL` | ที่อยู่เข้าถึงการจัดเก็บไฟล์ ใช้สำหรับเข้าถึงทรัพยากรแบบ static |
|
||||
| ตัวแปร | คำอธิบาย |
|
||||
| ---------- | ----------------------------------------------------- |
|
||||
| `NODE_ENV` | สภาพแวดล้อมการทำงาน (`prod` = Production) |
|
||||
| `PORT` | พอร์ตสำหรับให้บริการ (ค่าเริ่มต้น 10588) |
|
||||
| `OSSURL` | ที่อยู่ OSS สำหรับเก็บและโหลดไฟล์สาธารณะ (Static files) |
|
||||
|
||||
---
|
||||
|
||||
#### 4. เริ่มบริการ
|
||||
#### 4. เริ่มการทำงาน
|
||||
|
||||
```bash
|
||||
pm2 start pm2.json
|
||||
@ -384,350 +279,339 @@ pm2 save
|
||||
#### 5. คำสั่งที่ใช้บ่อย
|
||||
|
||||
```bash
|
||||
pm2 list # ดู processos
|
||||
pm2 logs toonflow-app # ดู log
|
||||
pm2 restart all # รีสตาร์ทบริการ
|
||||
pm2 monit # แผงตรวจสอบ
|
||||
pm2 list # ดู Process ทั้งหมด
|
||||
pm2 logs toonflow-app # ดู Logs
|
||||
pm2 restart all # รีสตาร์ทเซอร์วิส
|
||||
pm2 monit # เปิดหน้าต่าง Monitoring
|
||||
```
|
||||
|
||||
> ⚠️ **เข้าสู่ระบบครั้งแรก**
|
||||
> บัญชี: `admin`
|
||||
> ชื่อผู้ใช้: `admin`
|
||||
> รหัสผ่าน: `admin123`
|
||||
|
||||
#### 6. ปรับใช้เว็บไซต์ส่วนหน้า
|
||||
#### 6. การติดตั้งเว็บไซต์ฟรอนต์เอนด์ (Frontend)
|
||||
|
||||
หากต้องการปรับใช้หรือปรับแต่งอินเทอร์เฟซส่วนหน้าแยกต่างหาก โปรดดูที่คลังส่วนหน้า:
|
||||
หากต้องการติดตั้งหรือปรับแต่งอินเทอร์เฟซฟรอนต์เอนด์แยกต่างหาก โปรดอ้างอิง Repository ฟรอนต์เอนด์ดังนี้:
|
||||
|
||||
- **GitHub**: [Toonflow-web](https://github.com/HBAI-Ltd/Toonflow-web)
|
||||
- **Gitee**: [Toonflow-web](https://gitee.com/HBAI-Ltd/Toonflow-web)
|
||||
|
||||
> 💡 **หมายเหตุ**: คลังนี้มีทรัพยากรส่วนหน้าที่ build ไว้ในตัวแล้ว ผู้ใช้ทั่วไปไม่จำเป็นต้องปรับใช้ส่วนหน้าแยกต่างหาก คลังส่วนหน้ามีไว้สำหรับนักพัฒนาที่ต้องการพัฒนาเพิ่มเติมเท่านั้น
|
||||
> 💡 **หมายเหตุ**: Repository นี้มาพร้อมไฟล์ฟรอนต์เอนด์ที่คอมไพล์เสร็จสมบูรณ์แล้ว
|
||||
> ผู้ใช้ทั่วไปไม่จำเป็นต้องติดตั้งฟรอนต์เอนด์แยก Repository นี้มีไว้สำหรับนักพัฒนาที่ต้องการปรับแต่งหรือพัฒนาเพิ่มเติมเท่านั้น
|
||||
|
||||
---
|
||||
|
||||
# 🔧 คู่มือขั้นตอนการพัฒนา
|
||||
# 🔧 คู่มือสำหรับนักพัฒนา (Development Workflow Guide)
|
||||
|
||||
> [!CAUTION]
|
||||
> 🚧 **ข้อกำหนดการส่ง PR** 🚧
|
||||
> 🚧 **ข้อบังคับในการส่ง Pull Request** 🚧
|
||||
>
|
||||
> ⛔ สาขา `master` ไม่รับ PR ใดๆ | ✅ โปรดส่ง PR ไปยังสาขา `develop`
|
||||
> ⛔ **ไม่รับ PR ใน branch `master`**|✅ **โปรดส่ง PR ไปที่ branch `develop`**
|
||||
>
|
||||
> ยินดีต้อนรับนักพัฒนาทุกท่านร่วมสร้างสรรค์ Toonflow หากสนใจเข้าร่วม โปรดติดต่อผู้ดูแล ACT ในกลุ่มสนทนา
|
||||
> ยินดีต้อนรับนักพัฒนาทุกท่านที่สนใจร่วมพัฒนา Toonflow
|
||||
> หากต้องการเข้าร่วม โปรดติดต่อผู้ดูแลโปรเจกต์ (ACT) ในกลุ่มพูดคุย
|
||||
|
||||
## 🛠️ สแต็กเทคโนโลยี
|
||||
## 🛠️ เทคโนโลยีที่ใช้ (Tech Stack)
|
||||
|
||||
| ประเภท | เทคโนโลยี |
|
||||
| ประเภท | เทคโนโลยี |
|
||||
| ---------- | ----------------------------------------------------------------------------------------- |
|
||||
| รันไทม์ | Node.js 23.11.1+ |
|
||||
| ภาษา | TypeScript 5.x |
|
||||
| เฟรมเวิร์กแบ็กเอนด์ | Express 5 |
|
||||
| ฐานข้อมูล | SQLite (better-sqlite3 / knex) |
|
||||
| การรวม AI | Vercel AI SDK (OpenAI / Anthropic / Google / DeepSeek / Zhipu / MiniMax / Tongyi Qianwen / xAI) |
|
||||
| การอนุมานในพื้นที่ | @huggingface/transformers (ONNX) |
|
||||
| การสื่อสารเรียลไทม์ | Socket.IO |
|
||||
| ไคลเอนต์เดสก์ท็อป | Electron 40 |
|
||||
| การประมวลผลภาพ | Sharp |
|
||||
| การทำคอนเทนเนอร์ | Docker |
|
||||
| Runtime | Node.js 23.11.1+ |
|
||||
| Language | TypeScript 5.x |
|
||||
| Backend | Express 5 |
|
||||
| Database | SQLite (better-sqlite3 / knex) |
|
||||
| AI Integ. | Vercel AI SDK (OpenAI / Anthropic / Google / DeepSeek / Zhipu / MiniMax / Qwen / xAI) |
|
||||
| Local Inf. | @huggingface/transformers (ONNX) |
|
||||
| Real-time | Socket.IO |
|
||||
| Desktop | Electron 40 |
|
||||
| Image Proc.| Sharp |
|
||||
| Container | Docker |
|
||||
|
||||
## การเตรียมสภาพแวดล้อมการพัฒนา
|
||||
|
||||
- **Node.js**: เวอร์ชัน 23.11.1 ขึ้นไป
|
||||
- **Yarn**: แนะนำให้ใช้เป็นตัวจัดการแพ็คเกจของโปรเจกต์
|
||||
- **Node.js**: ต้องใช้เวอร์ชัน 23.11.1 ขึ้นไป
|
||||
- **Yarn**: แนะนำให้ใช้เป็น Package Manager
|
||||
|
||||
## การเริ่มต้นโปรเจกต์อย่างรวดเร็ว
|
||||
## การเริ่มโปรเจกต์อย่างรวดเร็ว
|
||||
|
||||
1. **Clone โปรเจกต์**
|
||||
1. **โคลนโปรเจกต์**
|
||||
|
||||
**Clone จาก GitHub:**
|
||||
**โคลนจาก GitHub:**
|
||||
|
||||
```bash
|
||||
git clone https://github.com/HBAI-Ltd/Toonflow-app.git
|
||||
cd Toonflow-app
|
||||
```
|
||||
|
||||
**Clone จาก Gitee (แนะนำสำหรับในประเทศจีน):**
|
||||
**โคลนจาก Gitee (แนะนำสำหรับประเทศจีน):**
|
||||
|
||||
```bash
|
||||
git clone https://gitee.com/HBAI-Ltd/Toonflow-app.git
|
||||
cd Toonflow-app
|
||||
```
|
||||
|
||||
2. **ติดตั้ง dependencies**
|
||||
2. **ติดตั้ง Dependencies**
|
||||
|
||||
โปรดรันคำสั่งต่อไปนี้ในไดเรกทอรีรากของโปรเจกต์เพื่อติดตั้ง dependencies:
|
||||
ให้รันคำสั่งด้านล่างนี้ใน root ของโปรเจกต์เพื่อติดตั้ง Dependencies:
|
||||
|
||||
```bash
|
||||
yarn install
|
||||
```
|
||||
|
||||
3. **เริ่มสภาพแวดล้อมการพัฒนา**
|
||||
3. **เริ่มใช้งานในโหมด Development**
|
||||
|
||||
โปรเจกต์นี้ประกอบด้วย **บริการ API แบ็กเอนด์** และ **หน้าส่วนหน้า** สองส่วน โปรดเลือกวิธีการเริ่มตามความต้องการ:
|
||||
โปรเจกต์นี้ประกอบด้วย **บริการ Backend API** และ **หน้า Frontend** คุณสามารถเลือกวิธีการเปิดใช้งานได้ตามต้องการ:
|
||||
|
||||
- **วิธีที่ 1: เริ่มเฉพาะบริการแบ็กเอนด์**
|
||||
- **วิธีที่ 1: รันเฉพาะ Backend อย่างเดียว**
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
> ⚠️ คำสั่งนี้เริ่มเฉพาะบริการ API แบ็กเอนด์ (พอร์ต 10588) **ไม่มีหน้าส่วนหน้า** การเข้าถึง `http://localhost:10588` โดยตรงจะเรียกใช้接口 API ได้เท่านั้น ไม่สามารถเห็นอินเทอร์เฟซเว็บที่สมบูรณ์ได้ หากต้องการใช้หน้าส่วนหน้าพร้อมกัน โปรดใช้ร่วมกับโปรเจกต์ส่วนหน้าที่แยกต่างหาก หรือใช้โหมด GUI ด้านล่าง
|
||||
> ⚠️ คำสั่งนี้จะรัน **เฉพาะ Backend API** (พอร์ต 10588) **โดยไม่มีหน้า Frontend**
|
||||
> เมื่อเข้าถึง `http://localhost:10588` จะสามารถเรียกใช้งาน API ได้เท่านั้น
|
||||
> หากต้องการใช้งานพร้อมกับหน้าเว็บ Frontend โปรดรัน Frontend แยกต่างหาก หรือใช้โหมด GUI ด้านล่างนี้
|
||||
|
||||
- **วิธีที่ 2: เริ่มไคลเอนต์เดสก์ท็อป Electron**
|
||||
- **วิธีที่ 2: รัน Electron Desktop Client**
|
||||
|
||||
```bash
|
||||
yarn dev:gui
|
||||
```
|
||||
|
||||
> คำสั่งนี้จะเริ่มบริการแบ็กเอนด์และหน้าต่างเดสก์ท็อป Electron พร้อมกัน มีหน้าส่วนหน้าในตัว พร้อมใช้งานทันที ไม่ต้องกำหนดค่าเพิ่มเติม เหมาะสำหรับนักพัฒนาที่ต้องการสัมผัสประสบการณ์ฟังก์ชันทั้งหมดอย่างสมบูรณ์
|
||||
> คำสั่งนี้จะรันทั้ง Backend และหน้าต่าง Electron Desktop พร้อมกัน โดยมี Frontend ฝังมาในตัว
|
||||
> โปรแกรมพร้อมใช้งานทันทีโดยไม่ต้องตั้งค่าเพิ่มเติม
|
||||
> เหมาะสำหรับนักพัฒนาที่ต้องการทดสอบฟีเจอร์ทั้งหมดของแอปพลิเคชัน
|
||||
|
||||
- **วิธีที่ 3: เริ่มโหมดการผลิต**
|
||||
- **วิธีที่ 3: รันโหมด Production**
|
||||
|
||||
```bash
|
||||
yarn start
|
||||
```
|
||||
|
||||
> รันบริการที่ compile แล้วโดยตรงในโหมดการผลิต (ต้องรัน `yarn build` ก่อน)
|
||||
> รันโปรแกรมในโหมด Production ทันทีหลังจากที่คอมไพล์เสร็จ (ต้องรัน `yarn build` ก่อน)
|
||||
|
||||
4. **การแพ็คเกจโปรเจกต์**
|
||||
4. **การแพ็คโปรเจกต์ (Build/Dist)**
|
||||
|
||||
- Compile และสร้างไฟล์ TypeScript:
|
||||
- คอมไพล์และสร้างไฟล์ TypeScript:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
- แพ็คเกจเป็นโปรแกรมที่รันได้บน Windows:
|
||||
- แพ็คโปรเจกต์เป็นไฟล์รัน (Executable) สำหรับ Windows:
|
||||
|
||||
```bash
|
||||
yarn dist:win
|
||||
```
|
||||
|
||||
- แพ็คเกจเป็นโปรแกรมที่รันได้บน Mac:
|
||||
- แพ็คโปรเจกต์สำหรับ macOS:
|
||||
|
||||
```bash
|
||||
yarn dist:mac
|
||||
```
|
||||
|
||||
- แพ็คเกจเป็นโปรแกรมที่รันได้บน Linux:
|
||||
- แพ็คโปรเจกต์สำหรับ Linux:
|
||||
|
||||
```bash
|
||||
yarn dist:linux
|
||||
```
|
||||
|
||||
5. **การตรวจสอบคุณภาพโค้ด**
|
||||
5. **ตรวจสอบคุณภาพโค้ด (Lint)**
|
||||
|
||||
- ตรวจสอบไวยากรณ์และมาตรฐานโดยรวม:
|
||||
- ทำการตรวจสอบไวยากรณ์และข้อกำหนดโค้ด (Linting) ทั้งหมด:
|
||||
|
||||
```bash
|
||||
yarn lint
|
||||
```
|
||||
|
||||
6. **แผงดีบัก AI (ไม่บังคับ)**
|
||||
6. **แผงควบคุมดีบัก AI (ตัวเลือก)**
|
||||
|
||||
เริ่มเครื่องมือดีบัก可视化ของ AI SDK เพื่อความสะดวกในการดีบักการเรียก AI:
|
||||
เปิดใช้งานเครื่องมือดีบักแบบ Visual ของ AI SDK เพื่อความสะดวกในการดีบักการเรียกใช้ AI:
|
||||
|
||||
```bash
|
||||
yarn debug:ai
|
||||
```
|
||||
|
||||
## การพัฒนาส่วนหน้า
|
||||
## การพัฒนาฟรอนต์เอนด์ (Frontend)
|
||||
|
||||
หากต้องการแก้ไขอินเทอร์เฟซส่วนหน้า โปรดไปที่คลังส่วนหน้าเพื่อพัฒนา:
|
||||
หากต้องการแก้ไขหรือพัฒนาอินเทอร์เฟซฟรอนต์เอนด์ โปรดไปที่ Repository ฟรอนต์เอนด์ดังนี้:
|
||||
|
||||
- **GitHub**: [Toonflow-web](https://github.com/HBAI-Ltd/Toonflow-web)
|
||||
- **Gitee**: [Toonflow-web](https://gitee.com/HBAI-Ltd/Toonflow-web)
|
||||
|
||||
หลังจากสร้างส่วนหน้าแล้ว ให้คัดลอกเนื้อหาของไดเรกทอรี `dist` ไปยัง `data/web` ของโปรเจกต์นี้เพื่อรวมเข้าด้วยกัน
|
||||
หลังจาก Build ฟรอนต์เอนด์เสร็จสิ้นแล้ว ให้คัดลอกโฟลเดอร์ `dist` ทั้งหมดไปวางในโฟลเดอร์ `data/web` ของโปรเจกต์นี้เพื่อทำการรวมเข้ากับระบบ
|
||||
|
||||
## โครงสร้างโปรเจกต์
|
||||
|
||||
```
|
||||
📂 build/ # ผลลัพธ์การ compile
|
||||
📂 data/ # ข้อมูลรันไทม์
|
||||
│ ├─ 📂 models/ # โมเดลการอนุมานในพื้นที่ (ONNX)
|
||||
│ ├─ 📂 oss/ # ที่เก็บอ็อบเจกต์ (素材/ตัวละคร/ฉาก)
|
||||
│ ├─ 📂 serve/ # จุดเข้าใช้งานสภาพแวดล้อมการผลิต
|
||||
│ ├─ 📂 skills/ # คำแนะนำทักษะ Agent
|
||||
│ └─ 📂 web/ # ผลลัพธ์การ compile ส่วนหน้า (built-in)
|
||||
📂 docs/ # ทรัพยากรเอกสาร
|
||||
📂 env/ # การกำหนดค่าสภาพแวดล้อม
|
||||
📂 scripts/ # สคริปต์การสร้างและเสริม
|
||||
📂 build/ # ผลลัพธ์หลัง Build
|
||||
📂 data/ # ข้อมูล Runtime
|
||||
│ ├─ 📂 models/ # โมเดล Infer บนเครื่อง (ONNX)
|
||||
│ ├─ 📂 oss/ # Object Storage (เก็บภาพ ตัวละคร และฉาก)
|
||||
│ ├─ 📂 serve/ # จุดเข้าใช้งานโหมด Production
|
||||
│ ├─ 📂 skills/ # Prompt ทักษะของ Agent
|
||||
│ └─ 📂 web/ # Frontend ที่ Build แล้ว (ฝังมาในตัว)
|
||||
📂 docs/ # เอกสารและรูปภาพคู่มือ
|
||||
📂 env/ # การตั้งค่าสภาพแวดล้อม
|
||||
📂 scripts/ # สคริปต์ช่วยเหลือและ Build
|
||||
📂 src/
|
||||
├─ 📂 agents/ # โมดูล AI Agent
|
||||
│ ├─ 📂 productionAgent/ # Production Agent
|
||||
│ └─ 📂 scriptAgent/ # Script Agent
|
||||
├─ 📂 lib/ # ไลบรารีสาธารณะ (การเริ่มต้นฐานข้อมูล, รูปแบบการตอบสนอง)
|
||||
├─ 📂 middleware/ # มิดเดิลแวร์
|
||||
├─ 📂 routes/ # โมดูลเส้นทาง
|
||||
│ ├─ 📂 agents/ # การจัดการความจำ Agent
|
||||
│ ├─ 📂 artStyle/ # การจัดการสไตล์ภาพ
|
||||
│ ├─ 📂 assets/ # การจัดการ素材
|
||||
│ ├─ 📂 assetsGenerate/ # การสร้าง素材
|
||||
│ ├─ 📂 cornerScape/ # การจัดการสตอรี่บอร์ด
|
||||
│ ├─ 📂 general/ # อินเทอร์เฟซทั่วไป
|
||||
│ ├─ 📂 login/ # การรับรองความถูกต้องในการเข้าสู่ระบบ
|
||||
│ ├─ 📂 migrate/ # การย้ายข้อมูล
|
||||
│ ├─ 📂 modelSelect/ # การเลือกโมเดล
|
||||
│ ├─ 📂 novel/ # การจัดการนิยาย
|
||||
│ ├─ 📂 other/ # ฟังก์ชันอื่นๆ
|
||||
│ ├─ 📂 production/ # การจัดการการผลิต
|
||||
│ ├─ 📂 project/ # การจัดการโครงการ
|
||||
│ ├─ 📂 script/ # การสร้างสคริปต์
|
||||
│ ├─ 📂 scriptAgent/ # อินเทอร์เฟซ Script Agent
|
||||
│ ├─ 📂 setting/ # การตั้งค่าระบบ
|
||||
│ ├─ 📂 task/ # การจัดการงาน
|
||||
│ └─ 📂 test/ # อินเทอร์เฟซทดสอบ
|
||||
├─ 📂 socket/ # การสื่อสารเรียลไทม์ WebSocket
|
||||
├─ 📂 types/ # การประกาศประเภท TypeScript
|
||||
├─ 📂 utils/ # ฟังก์ชันอรรถประโยชน์
|
||||
├─ 📄 app.ts # จุดเข้าใช้งานแอปพลิเคชัน
|
||||
├─ 📄 core.ts # การเริ่มต้นหลัก
|
||||
├─ 📄 env.ts # การจัดการตัวแปรสภาพแวดล้อม
|
||||
├─ 📄 err.ts # การจัดการข้อผิดพลาด
|
||||
├─ 📄 logger.ts # โมดูลบันทึก
|
||||
├─ 📄 router.ts # การลงทะเบียนเส้นทาง
|
||||
└─ 📄 utils.ts # อรรถประโยชน์ทั่วไป
|
||||
├─ 📂 agents/ # โมดูล AI Agent
|
||||
│ ├─ 📂 productionAgent/ # Agent ฝ่ายผลิต (Production)
|
||||
│ └─ 📂 scriptAgent/ # Agent ฝ่ายบทภาพยนตร์ (Script)
|
||||
├─ 📂 lib/ # ไลบรารีส่วนกลาง (Init ฐานข้อมูล, รูปแบบ Response)
|
||||
├─ 📂 middleware/ # Middleware
|
||||
├─ 📂 routes/ # โมดูล Routing
|
||||
│ ├─ 📂 agents/ # จัดการหน่วยความจำ Agent
|
||||
│ ├─ 📂 artStyle/ # จัดการสไตล์ภาพศิลป์
|
||||
│ ├─ 📂 assets/ # จัดการ Asset
|
||||
│ ├─ 📂 assetsGenerate/ # สร้าง Asset
|
||||
│ ├─ 📂 cornerScape/ # จัดการสตอรี่บอร์ด (Storyboard)
|
||||
│ ├─ 📂 general/ # API ทั่วไป
|
||||
│ ├─ 📂 login/ # การยืนยันตัวตน
|
||||
│ ├─ 📂 migrate/ # Migration ข้อมูล
|
||||
│ ├─ 📂 modelSelect/ # เลือกโมเดล
|
||||
│ ├─ 📂 novel/ # จัดการนวนิยายต้นฉบับ
|
||||
│ ├─ 📂 other/ # ฟังก์ชันอื่น ๆ
|
||||
│ ├─ 📂 production/ # จัดการการผลิต/ตัดต่อ
|
||||
│ ├─ 📂 project/ # จัดการโปรเจกต์
|
||||
│ ├─ 📂 script/ # สร้างบทภาพยนตร์
|
||||
│ ├─ 📂 scriptAgent/ # Interface ของ Script Agent
|
||||
│ ├─ 📂 setting/ # ตั้งค่าระบบ
|
||||
│ ├─ 📂 task/ # จัดการ Task
|
||||
│ └─ 📂 test/ # API ทดสอบ
|
||||
├─ 📂 socket/ # การสื่อสารเรียลไทม์ผ่าน WebSocket
|
||||
├─ 📂 types/ # ประกาศ TypeScript Types
|
||||
├─ 📂 utils/ # ฟังก์ชันยูทิลิตี้
|
||||
├─ 📄 app.ts # จุดเริ่มต้นของแอปพลิเคชัน (App Entry)
|
||||
├─ 📄 core.ts # เริ่มต้น Core ระบบ
|
||||
├─ 📄 env.ts # จัดการตัวแปร Environment
|
||||
├─ 📄 err.ts # จัดการ Error
|
||||
├─ 📄 logger.ts # โมดูล Logger
|
||||
├─ 📄 router.ts # ลงทะเบียน Router
|
||||
└─ 📄 utils.ts # ฟังก์ชันอรรถประโยชน์ทั่วไป
|
||||
📄 Dockerfile # ไฟล์สร้าง Docker
|
||||
📄 electron-builder.yml # การกำหนดค่าแพ็คเกจ Electron
|
||||
📄 electron-builder.yml # การตั้งค่าการแพ็ค Electron
|
||||
📄 skillList.json # รายการทักษะ
|
||||
📄 LICENSE # ใบอนุญาต (Apache-2.0)
|
||||
📄 NOTICES.txt # การประกาศ dependencies ของบุคคลที่สาม
|
||||
📄 package.json # การกำหนดค่าโปรเจกต์
|
||||
📄 tsconfig.json # การกำหนดค่า TypeScript
|
||||
📄 LICENSE # สัญญาอนุญาต (Apache-2.0)
|
||||
📄 NOTICES.txt # ประกาศไลบรารี Third-party
|
||||
📄 package.json # การตั้งค่าโปรเจกต์
|
||||
📄 tsconfig.json # การตั้งค่า TypeScript
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 🔗 คลังที่เกี่ยวข้อง
|
||||
# 🔗 Repository ที่เกี่ยวข้อง
|
||||
|
||||
| คลัง | คำอธิบาย | GitHub | Gitee |
|
||||
| ---------------- | ---------------------------------- | -------------------------------------------------- | ------------------------------------------------ |
|
||||
| **Toonflow-app** | ไคลเอนต์สมบูรณ์ (คลังนี้ แนะนำสำหรับผู้ใช้ทั่วไป) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-app) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-app) |
|
||||
| **Toonflow-web** | ซอร์สโค้ดส่วนหน้า (เหมาะสำหรับนักพัฒนาส่วนหน้า) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-web) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-web) |
|
||||
| Repository | คำอธิบาย | GitHub | Gitee |
|
||||
| ---------------- | --------------------------------------------- | -------------------------------------------------- | ------------------------------------------------ |
|
||||
| **Toonflow-app** | ไคลเอนต์แบบสมบูรณ์ (Repository นี้ แนะนำสำหรับผู้ใช้ทั่วไป) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-app) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-app) |
|
||||
| **Toonflow-web** | ซอร์สโค้ดฟรอนต์เอนด์ (เหมาะสำหรับนักพัฒนาฟรอนต์เอนด์) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-web) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-web) |
|
||||
|
||||
> 💡 **คำแนะนำ**: หากคุณเพียงต้องการใช้ Toonflow ให้ดาวน์โหลดไคลเอนต์จากคลังนี้โดยตรง คลังส่วนหน้ามีไว้สำหรับนักพัฒนาที่ต้องการพัฒนาเพิ่มเติมหรือปรับแต่งอินเทอร์เฟซส่วนหน้าเท่านั้น
|
||||
> 💡 **เคล็ดลับ**: หากคุณต้องการใช้งาน Toonflow เพียงดาวน์โหลดไคลเอนต์จาก Repository นี้ก็เพียงพอแล้ว
|
||||
> Repository Toonflow-web มีไว้สำหรับนักพัฒนาที่ต้องการปรับแต่งหรือพัฒนาต่อยอดอินเทอร์เฟซเท่านั้น
|
||||
|
||||
---
|
||||
|
||||
# 👨👩👧👦 กลุ่มสนทนา WeChat
|
||||
# 👨👩👧👦 กลุ่ม Discord ชุมชน
|
||||
|
||||
ผู้ช่วยเพิ่มเพื่อน:
|
||||
|
||||
<img src="./QR.png" alt="Toonflow QR" height="400"/>
|
||||
|
||||
หรือคลิกไอคอนเพื่อเข้าร่วม Discord:
|
||||
คลิกที่ไอคอนด้านล่างเพื่อเข้าร่วม Discord:
|
||||
|
||||
[](https://discord.gg/HEjKmpNpAZ)
|
||||
|
||||
หรือคลิกลิงก์เชิญ: [https://discord.gg/HEjKmpNpAZ](https://discord.gg/HEjKmpNpAZ)
|
||||
หรือคลิกลิงก์โดยตรง: [https://discord.gg/HEjKmpNpAZ](https://discord.gg/HEjKmpNpAZ)
|
||||
|
||||
---
|
||||
|
||||
# 💌 ติดต่อเรา
|
||||
|
||||
📧 อีเมล: [ltlctools@outlook.com](mailto:ltlctools@outlook.com?subject=สอบถาม Toonflow)
|
||||
📧 อีเมล: [ltlctools@outlook.com](mailto:ltlctools@outlook.com?subject=สอบถาม%20เรื่อง%20Toonflow)
|
||||
|
||||
---
|
||||
|
||||
# 📜 ใบอนุญาต
|
||||
# 📜 ใบอนุญาต (License)
|
||||
|
||||
Toonflow เผยแพร่ภายใต้สัญญาอนุญาต Apache-2.0 พร้อมข้อตกลงทางการค้าเพิ่มเติม
|
||||
Toonflow เปิดเผยเป็นโอเพ่นซอร์สภายใต้สัญญาอนุญาต Apache-2.0 พร้อมด้วยข้อตกลงเชิงพาณิชย์เพิ่มเติม
|
||||
|
||||
รายละเอียดใบอนุญาต: https://www.apache.org/licenses/LICENSE-2.0
|
||||
รายละเอียดสัญญา Apache-2.0: https://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
## ข้อตกลงเพิ่มเติม
|
||||
## ข้อตกลงเชิงพาณิชย์เพิ่มเติม
|
||||
|
||||
- หากแจกจ่ายซอฟต์แวร์นี้เป็นผลิตภัณฑ์ให้กับ **บุคคลที่สามอิสระ 2 รายขึ้นไป** ใช้งาน ต้องได้รับ **อนุญาตทางการค้าเป็นลายลักษณ์อักษร** จาก HBAI-Ltd
|
||||
- **นิติบุคคล ≤ 5 ราย** ดำเนินการร่วมกันเพื่อใช้งานภายใน โดยไม่ให้บริการภายนอก ถือเป็นการใช้งานภายใน **ไม่ต้องขออนุญาต**
|
||||
- ห้ามลบหรือแก้ไขเครื่องหมายหรือข้อมูลลิขสิทธิ์ใน Toonflow
|
||||
- หากนำซอฟต์แวร์นี้ไปเผยแพร่ในรูปแบบผลิตภัณฑ์ให้กับ **บุคคลที่สามอิสระตั้งแต่ 2 รายขึ้นไป** ต้องได้รับ **การอนุญาตเชิงพาณิชย์เป็นลายลักษณ์อักษร** จาก HBAI-Ltd
|
||||
- หากใช้งานร่วมกันภายในโดย **นิติบุคคลไม่เกิน 5 ราย** และไม่ให้บริการแก่บุคคลภายนอก จะถือเป็นการใช้งานภายในและ **ไม่ต้องขออนุญาต**
|
||||
- ห้ามลบหรือแก้ไขโลโก้หรือข้อมูลลิขสิทธิ์ภายใน Toonflow
|
||||
|
||||
## สถานการณ์ที่ใช้งานฟรีถาวร
|
||||
## กรณีใช้งานฟรีตลอดชีพ
|
||||
|
||||
- ✅ ใช้ Toonflow สร้างเนื้อหาและได้รับส่วนแบ่งรายได้จากแพลตฟอร์ม
|
||||
- ✅ พัฒนาต่อยอดเพื่อใช้ภายในทีมของตนเอง
|
||||
- ✅ นิติบุคคล ≤ 5 รายดำเนินการร่วมกันเพื่อใช้งานภายใน
|
||||
- ✅ การเรียนรู้ การวิจัย และการใช้งานที่ไม่ใช่เชิงพาณิชย์ส่วนบุคคล
|
||||
- ✅ ใช้ Toonflow สร้างเนื้อหาเพื่อรับส่วนแบ่งรายได้จากแพลตฟอร์มวิดีโอ
|
||||
- ✅ นำโค้ดไปพัฒนาต่อยอดเพื่อใช้งานภายในทีม
|
||||
- ✅ ใช้งานร่วมกันภายในโดยนิติบุคคลไม่เกิน 5 ราย
|
||||
- ✅ เพื่อการศึกษา การวิจัย และวัตถุประสงค์ที่ไม่ใช่เชิงพาณิชย์
|
||||
|
||||
## การกำหนดราคาอนุญาตทางการค้า
|
||||
## โครงสร้างราคาการอนุญาตเชิงพาณิชย์
|
||||
|
||||
| ขั้นตอน | ยอดขายต่อปี | ค่าธรรมเนียมรายปี |
|
||||
|------|---------|------|
|
||||
| 🌱 ระยะส่งเสริม | < ¥100,000 | **สมัครเพื่อรับอนุญาตฟรี** |
|
||||
| 🚀 ระยะเริ่มต้น | ¥100,000–500,000 | ¥5,000/ปี |
|
||||
| 📈 ระยะเติบโต | ¥500,000–1,500,000 | ¥20,000/ปี |
|
||||
| 🏢 ระยะขยาย规模 | ¥1,500,000–5,000,000 | ¥80,000/ปี |
|
||||
| 🌐 ระดับองค์กร | > ¥5,000,000 | เจรจาต่อรอง |
|
||||
| ระยะ | ยอดขายรายปี | ค่าธรรมเนียมรายปี |
|
||||
|--------------|-----------------------------|-----------------------|
|
||||
| 🌱 ช่วงเริ่มต้น (Incubation) | < ¥100,000 | **ฟรี** |
|
||||
| 🚀 ช่วง startup | ¥100,000 – 500,000 | ¥5,000 / ปี |
|
||||
| 📈 ช่วงเติบโต (Growth) | ¥500,000 – 1,500,000 | ¥20,000 / ปี |
|
||||
| 🏢 ช่วงขยายขนาด (Scale) | ¥1,500,000 – 5,000,000 | ¥80,000 / ปี |
|
||||
| 🌐 ระดับองค์กร (Enterprise) | > ¥5,000,000 | เจรจาต่อรอง |
|
||||
|
||||
> **ข้อกำหนดไม่ย้อนหลัง**: ผู้ใช้ที่ใช้งานภายใต้ AGPL-3.0 ก่อนการเผยแพร่ v1.0.8 จะยังคงปฏิบัติตาม AGPL-3.0 ต่อไป โดยไม่ถูกผูกมัดด้วยการเปลี่ยนแปลงข้อตกลงนี้
|
||||
> **ข้อกำหนดไม่ย้อนหลัง (Non-Retroactivity)**: ผู้ใช้ที่เคยใช้งาน Toonflow ภายใต้สัญญา AGPL-3.0 ก่อนเวอร์ชัน v1.0.8 จะยังคงผูกพันตาม AGPL-3.0 ต่อไป และไม่ได้รับผลกระทบจากการเปลี่ยนแปลงข้อตกลงนี้
|
||||
|
||||
ข้อตกลงฉบับสมบูรณ์ดูได้จากไฟล์ [LICENSE](./LICENSE)
|
||||
ดูรายละเอียดข้อตกลงฉบับเต็มได้ที่ไฟล์ [LICENSE](./LICENSE)
|
||||
|
||||
---
|
||||
|
||||
# ⭐️ ประวัติดาว
|
||||
|
||||
[](https://www.star-history.com/#HBAI-Ltd/Toonflow-app)
|
||||
# ⭐️ ประวัติการให้ดาว (Star History)
|
||||
|
||||
[](https://www.star-history.com/#HBAI-Ltd/Toonflow-app&type=timeline&legend=top-left)
|
||||
|
||||
---
|
||||
|
||||
# 🙏 ขอขอบคุณ
|
||||
|
||||
# 🙏 คำขอบคุณ
|
||||
ขอขอบคุณโปรเจกต์โอเพ่นซอร์สต่อไปนี้ที่ช่วยสนับสนุน Toonflow อย่างมาก:
|
||||
|
||||
ขอขอบคุณโครงการโอเพนซอร์สต่อไปนี้ที่ให้การสนับสนุนอย่างแข็งแกร่งแก่ Toonflow:
|
||||
|
||||
- [Express](https://expressjs.com/) - เฟรมเวิร์กเว็บ Node.js ที่รวดเร็ว เปิดกว้าง และเรียบง่าย
|
||||
- [Express](https://expressjs.com/) - Web Framework สำหรับ Node.js ที่รวดเร็ว เปิดกว้าง และใช้งานง่าย
|
||||
- [AI SDK](https://ai-sdk.dev/) - ชุดเครื่องมือ AI สำหรับ TypeScript
|
||||
- [Better-SQLite3](https://github.com/WiseLibs/better-sqlite3) - ไลบรารีเชื่อมต่อ SQLite3 ประสิทธิภาพสูง
|
||||
- [Sharp](https://sharp.pixelplumbing.com/) - ไลบรารีประมวลผลภาพ Node.js ประสิทธิภาพสูง
|
||||
- [Axios](https://axios-http.com/) - ไคลเอนต์ HTTP ที่ใช้ Promise
|
||||
- [Zod](https://zod.dev/) - ไลบรารีตรวจสอบสคีมาที่เน้น TypeScript
|
||||
- [Socket.IO](https://socket.io/) - เอ็นจินการสื่อสารแบบสองทางแบบเรียลไทม์
|
||||
- [Electron](https://www.electronjs.org/) - กรอบงานพัฒนาแอปพลิเคชันเดสก์ท็อปข้ามแพลตฟอร์ม
|
||||
- [Hugging Face Transformers](https://huggingface.co/docs/transformers.js) - ไลบรารีการอนุมาน ML ในพื้นที่
|
||||
- [Better-SQLite3](https://github.com/WiseLibs/better-sqlite3) - ไลบรารี SQLite3 ประสิทธิภาพสูง
|
||||
- [Sharp](https://sharp.pixelplumbing.com/) - ไลบรารีประมวลผลภาพบน Node.js ประสิทธิภาพสูง
|
||||
- [Axios](https://axios-http.com/) - HTTP Client แบบ Promise-based
|
||||
- [Zod](https://zod.dev/) - ไลบรารีตรวจสอบโครงสร้างข้อมูล (Schema Validation) สำหรับ TypeScript
|
||||
- [Socket.IO](https://socket.io/) - เอนจินการสื่อสารเรียลไทม์แบบสองทาง
|
||||
- [Electron](https://www.electronjs.org/) - เฟรมเวิร์กพัฒนาแอปพลิเคชันเดสก์ท็อปข้ามแพลตฟอร์ม
|
||||
- [Hugging Face Transformers](https://huggingface.co/docs/transformers.js) - ไลบรารี Machine Learning สำหรับการ Inference บนเครื่อง
|
||||
|
||||
ขอขอบคุณองค์กร/หน่วยงาน/บุคคลต่อไปนี้ที่ให้การสนับสนุน Toonflow:
|
||||
ขอขอบคุณองค์กรและผู้สนับสนุนต่อไปนี้ที่ช่วยเหลือ Toonflow:
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th align="center">โลโก้</th>
|
||||
<th align="center">Logo</th>
|
||||
<th align="center">ชื่อ</th>
|
||||
<th align="center">รูปแบบการสนับสนุน</th>
|
||||
<th>คำอธิบาย</th>
|
||||
<th align="center">ประเภทการสนับสนุน</th>
|
||||
<th>รายละเอียด</th>
|
||||
<th align="center">เว็บไซต์</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center"><img src="./sponsored/sophnet.png" alt="โลโก้ Sophnet Cloud" width="48"></td>
|
||||
<td align="center"><b>Sophnet Cloud</b></td>
|
||||
<td align="center">💻 สนับสนุนพลังประมวลผล</td>
|
||||
<td>มุ่งมั่นสร้างแพลตฟอร์มบริการ API การอนุมานแบบครบวงจรที่เร็ว เสถียร และประหยัดยิ่งขึ้น</td>
|
||||
<td align="center"><img src="./sponsored/sophnet.png" alt="Sophnet Logo" width="48"></td>
|
||||
<td align="center"><b>Sophnet</b></td>
|
||||
<td align="center">💻 ผู้สนับสนุนพลังงาน</td>
|
||||
<td>มุ่งสร้างแพลตฟอร์ม API สำหรับ Model Inference แบบครบวงจร ที่เร็วกว่า เสถียรกว่า และประหยัดกว่า</td>
|
||||
<td align="center"><a href="https://www.sophnet.com/">เว็บไซต์</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><img src="./sponsored/atlascloud.png" alt="โลโก้ Atlas Cloud" width="48"></td>
|
||||
<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">💻 สนับสนุนพลังประมวลผล</td>
|
||||
<td>แพลตฟอร์มการอนุมานแบบครบวงจรระดับโลกแห่งแรก การสนทนา รูปภาพ วิดีโอ เสียง — API ที่เป็นหนึ่งเดียวทั้งหมด มีโมเดลมากกว่า 300 โมเดล รองรับ OpenAI</td>
|
||||
<td align="center">💻 ผู้สนับสนุนพลังงาน</td>
|
||||
<td>แพลตฟอร์ม Inference แบบ Omni-modal แรกของโลก รองรับการสนทนา ภาพ วิดีโอ เสียง — ผ่าน API เดียว รองรับโมเดลกว่า 300 รายการ เข้ากันได้กับ OpenAI</td>
|
||||
<td align="center"><a href="https://www.atlascloud.ai/">เว็บไซต์</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><img src="./sponsored/hunyuan.webp" alt="โลโก้ Tencent Hunyuan 3D" width="48"></td>
|
||||
<td align="center"><b>Tencent Hunyuan 3D</b></td>
|
||||
<td align="center">🌐 สนับสนุนเทคโนโลยี World Model</td>
|
||||
<td>Tencent Hunyuan 3D AI Creation Engine ใช้ Hunyuan 3D Generation Large Model เวอร์ชัน 2.5 เป็นแพลตฟอร์มสร้างเนื้อหา 3D แบบครบวงจรด้วย AI รายแรกในอุตสาหกรรม มีฟังก์ชันสร้าง 3D จากข้อความและรูปภาพ, สร้างแอนิเมชัน 3D, สร้างพื้นผิว เป็นต้น รองรับการสร้าง 3D จากภาพร่าง, การสร้างตัวละคร 3D มีข้อได้เปรียบในการสร้างโมเดลแบบ low-poly</td>
|
||||
<td align="center"><a href="https://3d.hunyuan.tencent.com/">เว็บไซต์</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
รายการ dependencies ของบุคคลที่สามทั้งหมดกรุณาดูที่ `NOTICES.txt`
|
||||
รายการ Third-party Dependencies แบบสมบูรณ์ สามารถดูได้ที่ไฟล์ `NOTICES.txt`
|
||||
|
||||
##### copyright © Beijing Ai'a 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%"/>
|
||||
##### copyright © Huaibei AIA Network Technology Co., Ltd.
|
||||
@ -1,5 +1,3 @@
|
||||
<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" />
|
||||
@ -28,196 +26,85 @@
|
||||
|
||||
<img src="./logo.png" alt="Toonflow Logo" height="120"/>
|
||||
|
||||
[](https://git.io/typing-svg)
|
||||
# Toonflow
|
||||
|
||||
<p align="center">
|
||||
<b>
|
||||
Nhà máy Phim ngắn AI
|
||||
<br />
|
||||
Chỉ với vài cú click, tiểu thuyết lập tức biến thành phim!
|
||||
<br />
|
||||
Kịch bản AI × Hình ảnh AI × Tạo siêu tốc 🔥
|
||||
</b>
|
||||
</p>
|
||||
<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" />
|
||||
<img src="https://img.shields.io/github/stars/HBAI-Ltd/Toonflow-app?style=for-the-badge&logo=github" alt="Stars Badge" />
|
||||
</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" />
|
||||
<img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=for-the-badge" alt="Apache-2.0 License Badge" />
|
||||
</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>
|
||||
> 🚀 **Dự án Phim ngắn All-in-One**: Từ văn bản đến nhân vật, từ storyboard đến video hoàn chỉnh. Tự động hóa toàn bộ quy trình bằng AI – không rào cản, tăng hiệu suất sáng tạo lên gấp 10 lần!
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
# 🌐 Hỗ trợ đa ngôn ngữ
|
||||
# 🌐 Hỗ trợ Đa ngôn ngữ
|
||||
|
||||
Toonflow hỗ trợ giao diện các ngôn ngữ sau:
|
||||
Toonflow hỗ trợ giao diện với 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 |
|
||||
| Ngôn ngữ | Language |
|
||||
|------|----------|
|
||||
| 简体中文 | Chinese (Simplified) |
|
||||
| 繁體中文 | Chinese (Traditional) |
|
||||
| English | English |
|
||||
| ไทย | Thai |
|
||||
| Tiếng Việt | Vietnamese |
|
||||
| 日本語 | Japanese |
|
||||
| Русский | Russian |
|
||||
|
||||
> 💡 Đang thích ứng thêm nhiều ngôn ngữ, hoan nghênh đóng góp bản dịch!
|
||||
> 💡 Đang cập nhật thêm nhiều ngôn ngữ, hoan nghênh bạn đóng góp bản dịch!
|
||||
|
||||
---
|
||||
|
||||
# 🌟 Chức năng chính
|
||||
# 🌟 Tính 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.
|
||||
Toonflow là công cụ AI chuyên tạo phim ngắn và truyện tranh, có khả năng tự động biến tiểu thuyết thành phim chỉ trong một quy trình liền mạch. Từ văn bản gốc, AI sẽ tạo nhân vật, viết kịch bản, thiết kế phân cảnh và tổng hợp video hoàn chỉnh – giúp bạn sản xuất phim ngắn nhanh chóng, thông minh và tiết kiệm chi phí tối đa.
|
||||
|
||||
- ✅ **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.
|
||||
- ✅ **Tạo Nhân vật Tự động** Hệ thống phân tích tiểu thuyết gốc, thông minh nhận diện và xây dựng hồ sơ nhân vật chi tiết (ngoại hình, tính cách, danh tính, mối quan hệ…). Tạo nền tảng vững chắc cho kịch bản và hình ảnh sau này.
|
||||
- ✅ **Tạo Kịch bản Thông minh** Dựa trên các chương/sự kiện bạn chọn, AI tự động xây dựng kịch bản có cấu trúc rõ ràng, bao gồm hội thoại tự nhiên, mô tả cảnh quay và hướng phát triển cốt truyện – chuyển đổi văn học sang kịch bản phim một cách hiệu quả.
|
||||
- ✅ **Tạo Phân cảnh (Storyboard)** Từ kịch bản, hệ thống tự động sinh ra các prompt phân cảnh và thiết kế khung hình chi tiết. Bao gồm tiền cảnh/trung cảnh/hậu cảnh, hành động nhân vật, đạo cụ và bố cục điện ảnh – tạo ra lộ trình hoàn chỉnh sẵn sàng cho việc sản xuất video.
|
||||
- ✅ **Tổng hợp & Chỉnh sửa Video** Tích hợp công nghệ AI hình ảnh và video để tạo ra các đoạn clip chất lượng cao. Hỗ trợ chỉnh sửa trực tuyến linh hoạt, cho phép bạn tinh chỉnh theo ý muốn, giúp toàn bộ quy trình sáng tạo phim diễn ra mượt mà và cực kỳ nhanh chóng.
|
||||
|
||||
---
|
||||
|
||||
# 📦 Kịch bản ứng dụng
|
||||
# 📦 Ứng dụng Thực tế
|
||||
|
||||
- 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
|
||||
- Thử nghiệm chuyển thể tiểu thuyết thành phim ngắn
|
||||
- Công cụ AI chuyển thể văn học thành video
|
||||
- Phát triển kịch bản và tạo bản mẫu nhanh (Rapid Prototyping)
|
||||
- Tạo tài liệu video chất lượng cao
|
||||
|
||||
---
|
||||
|
||||
# 🔰 Hướng dẫn sử dụng
|
||||
# 🔰 Hướng dẫn Sử dụng
|
||||
|
||||
## Bắt đầu nhanh
|
||||
## 📺 Hướng dẫn bằng Video
|
||||
|
||||
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.
|
||||
[https://www.bilibili.com/video/BV1oXD7BqEqJ](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
|
||||
## 📺 Hướng dẫn bằng video
|
||||
**Toonflow - 12 phút làm quen nhanh với Video AI**
|
||||
👉 [Nhấn để xem](https://www.bilibili.com/video/BV1oXD7BqEqJ/?share_source=copy_web&vd_source=5b718c25439a901a34c7bc0c1d35b38e)
|
||||
|
||||
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ỏ.
|
||||
📱 **Quét mã QR để xem video trên điện thoại**
|
||||
<img src="./videoQR.png" alt="Quét mã QR để xem video" width="150"/>
|
||||
|
||||
---
|
||||
|
||||
@ -225,94 +112,94 @@ Nếu không phát được, vui lòng [nhấp để tải video](./screenshot/d
|
||||
|
||||
## Đ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:
|
||||
Trước khi cài đặt và sử dụng phần mềm, vui lòng chuẩn bị:
|
||||
|
||||
- ✅ Đị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
|
||||
- ✅ Địa chỉ API của Mô hình ngôn ngữ lớn (LLM)
|
||||
- ✅ Địa chỉ API của dịch vụ video Sora hoặc Doubao
|
||||
- ✅ Địa chỉ API của dịch vụ tạo ảnh Nano Banana Pro
|
||||
|
||||
## Cài đặt máy
|
||||
## Cài đặt trên máy cá nhân (Local)
|
||||
|
||||
### 1. Tải xuống và cài đặt
|
||||
### 1. Tải xuống & 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 |
|
||||
| Hệ điều hành | GitHub | Atomgit | Tải qua Quark Drive | Mô tả |
|
||||
| :------: | :----------------------------------------------------------- | :------------------------------------------------------------ | :---------------------------------------------- | :------------- |
|
||||
| Windows | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [Quark Drive](https://pan.quark.cn/s/94ef07509df0) | Bản cài đặt chính thức |
|
||||
| Linux | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [Quark Drive](https://pan.quark.cn/s/94ef07509df0) | Bản cài đặt chính thức |
|
||||
| macOS | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [Quark Drive](https://pan.quark.cn/s/94ef07509df0) | Bản 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ỉ
|
||||
> Với hệ điều hành MacOS, vui lòng vào "Cài đặt hệ thống" -> "Quyền riêng tư & Bảo mật" để cấp quyền mở ứng dụng, nếu không phần mềm 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)
|
||||
> Tham khảo hướng dẫn 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.
|
||||
> Do giới hạn môi trường Gitee OS và giới hạn kích thước tệp tải lên của Release, chúng tôi tạm thời không cung cấp link tải qua Gitee Release.
|
||||
|
||||
### 2. Khởi động dịch vụ
|
||||
### 2. Khởi chạy 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.
|
||||
Sau khi cài đặt xong, hãy mở chương trình để bắt đầu sử dụng.
|
||||
|
||||
> ⚠️ **Đăng nhập lần đầu**
|
||||
> ⚠️ **Đăng nhập lần đầu**
|
||||
> Tài khoản: `admin`
|
||||
> Mật khẩu: `admin123`
|
||||
|
||||
## Triển khai Docker
|
||||
## Triển khai bằng 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à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ộ.
|
||||
Đang hoàn thiện, tạm thời sử dụng cách Build tại máy (Local build).
|
||||
|
||||
### Cách 2: Dựng cục bộ
|
||||
### Cách 2: Build tại máy (Local build)
|
||||
|
||||
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ộ:
|
||||
Sử dụng mã nguồn có sẵn để build trực tiếp. Phù hợp với lập trình viên hoặc người dùng đã clone repository. (Yêu cầu cài đặt git trên máy):
|
||||
|
||||
```shell
|
||||
# Đầu tiên clone dự án (nếu đã có thì bỏ qua)
|
||||
# Clone dự án (Bỏ qua nếu đã clone)
|
||||
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ộ
|
||||
# Sử dụng docker-compose để build và chạy
|
||||
yarn docker:local
|
||||
|
||||
# Hoặc xây dựng thủ công
|
||||
# Hoặc build 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
|
||||
docker run -d -p <Port trên máy>:10588 -v <Đường dẫn dữ liệu trên máy>:/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
|
||||
# Sau đó, truy cập giao diện qua đường dẫn /web/index.html bằng Port đã thiết lập
|
||||
# Ví dụ: http://localhost:10588/web/index.html
|
||||
```
|
||||
|
||||
### Giải thích cổng dịch vụ
|
||||
### Cấu hình Cổng dịch vụ (Port)
|
||||
|
||||
| Cổng | Mục đích | Ánh xạ triển khai |
|
||||
| Cổng (Port) | Chức năng | Port Mapping |
|
||||
| ------- | -------- | ------------- |
|
||||
| `10588` | Giao diện phần mềm | `10588:10588` |
|
||||
|
||||
**Giải thích biến môi trường:**
|
||||
**Giải thích Biến môi trường:**
|
||||
|
||||
| Biến | Giải thích |
|
||||
| Biến (Variable) | 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 |
|
||||
| `NODE_ENV` | Môi trường chạy, `prod` là môi trường Product (sản xuất) |
|
||||
| `PORT` | Port lắng nghe của dịch vụ (Mặc định: 10588) |
|
||||
| `OSSURL` | Địa chỉ truy cập lưu trữ file, dùng cho các tài nguyên tĩnh (Static) |
|
||||
|
||||
---
|
||||
|
||||
## Triển khai đám mây
|
||||
## Triển khai trên Máy chủ Đám mây (Cloud)
|
||||
|
||||
### I. Yêu cầu môi trường máy chủ
|
||||
### 1. 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+
|
||||
- **Hệ điều hành**: Ubuntu 20.04+ / CentOS 7+
|
||||
- **Node.js**: 24.x (Khuyên dùng, Tối thiểu 23.11.1+)
|
||||
- **RAM**: 2GB+
|
||||
|
||||
### II. Triển khai máy chủ
|
||||
### 2. Triển khai Máy chủ
|
||||
|
||||
#### 1. Cài đặt môi trường
|
||||
#### 1. Cài đặt Môi trường
|
||||
|
||||
```bash
|
||||
# Cài đặt Node.js
|
||||
@ -323,7 +210,7 @@ nvm install 24
|
||||
npm install -g yarn pm2
|
||||
```
|
||||
|
||||
#### 2. Triển khai dự án
|
||||
#### 2. Triển khai Dự án
|
||||
|
||||
**Clone từ GitHub:**
|
||||
|
||||
@ -335,7 +222,7 @@ yarn install
|
||||
yarn build
|
||||
```
|
||||
|
||||
**Clone từ Gitee (khuyến nghị cho nội địa Trung Quốc):**
|
||||
**Clone từ Gitee (Khuyên dùng tại TQ):**
|
||||
|
||||
```bash
|
||||
cd /opt
|
||||
@ -363,17 +250,17 @@ Tạo tệp `pm2.json`:
|
||||
}
|
||||
```
|
||||
|
||||
**Giải thích biến môi trường:**
|
||||
**Giải thích Biến môi trường:**
|
||||
|
||||
| Biến | Giải thích |
|
||||
| Biến (Variable) | 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 |
|
||||
| `NODE_ENV` | Môi trường chạy, `prod` là môi trường Product |
|
||||
| `PORT` | Cổng lắng nghe của dịch vụ (Port) |
|
||||
| `OSSURL` | Địa chỉ truy cập lưu trữ file, dùng cho tài nguyên tĩnh |
|
||||
|
||||
---
|
||||
|
||||
#### 4. Khởi động dịch vụ
|
||||
#### 4. Khởi chạy Dịch vụ
|
||||
|
||||
```bash
|
||||
pm2 start pm2.json
|
||||
@ -381,60 +268,60 @@ pm2 startup
|
||||
pm2 save
|
||||
```
|
||||
|
||||
#### 5. Các lệnh thường dùng
|
||||
#### 5. Các lệnh PM2 thường dùng
|
||||
|
||||
```bash
|
||||
pm2 list # Xem tiến trình
|
||||
pm2 logs toonflow-app # Xem nhật ký
|
||||
pm2 list # Xem danh sách tiến trình
|
||||
pm2 logs toonflow-app # Xem log (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
|
||||
pm2 monit # Mở bảng điều khiển giám sát
|
||||
```
|
||||
|
||||
> ⚠️ **Đăng nhập lần đầu**
|
||||
> ⚠️ **Đăng nhập lần đầu**
|
||||
> Tài khoản: `admin`
|
||||
> Mật khẩu: `admin123`
|
||||
|
||||
#### 6. Triển khai trang web frontend
|
||||
#### 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:
|
||||
Nếu bạn cần triển khai riêng hoặc tùy chỉnh giao diện Frontend, vui lòng tham khảo Repository 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.
|
||||
> 💡 **Lưu ý**: Repository này đã được tích hợp sẵn tài nguyên Frontend đã build. Người dùng thông thường không cần tự triển khai Frontend riêng. Repository Frontend chỉ dành cho các nhà phát triển muốn tùy chỉnh chuyên sâu.
|
||||
|
||||
---
|
||||
|
||||
# 🔧 Hướng dẫn quy trình phát triển
|
||||
# 🔧 Hướng dẫn Quy trình Phát triển (Development Workflow)
|
||||
|
||||
> [!CAUTION]
|
||||
> 🚧 **Quy tắc gửi PR** 🚧
|
||||
> 🚧 **Quy định nộp PR (Pull Request)** 🚧
|
||||
>
|
||||
> ⛔ 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`
|
||||
> ⛔ Nhánh `master` KHÔNG chấp nhận bất kỳ PR nào | ✅ Vui lòng gửi PR vào 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.
|
||||
> Chào mừng các nhà phát triển tham gia đóng góp cho Toonflow. Nếu có hứng thú, vui lòng liên hệ với quản trị viên ACT trong nhóm giao lưu.
|
||||
|
||||
## 🛠️ Tech Stack
|
||||
## 🛠️ Công nghệ sử dụng (Tech Stack)
|
||||
|
||||
| Danh mục | Công nghệ |
|
||||
| Phân loại | 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 |
|
||||
| Môi trường | Node.js 23.11.1+ |
|
||||
| Ngôn ngữ | TypeScript 5.x |
|
||||
| Backend | 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 / Qwen / xAI) |
|
||||
| Suy luận Local| @huggingface/transformers (ONNX) |
|
||||
| Real-time | Socket.IO |
|
||||
| Ứng dụng Desktop | Electron 40 |
|
||||
| Xử lý ảnh | Sharp |
|
||||
| Container | Docker |
|
||||
|
||||
## Chuẩn bị môi trường phát triển
|
||||
## 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
|
||||
- **Yarn**: Khuyến nghị sử dụng làm Package Manager
|
||||
|
||||
## Khởi động nhanh dự án
|
||||
## Khởi chạy Dự án nhanh
|
||||
|
||||
1. **Clone dự án**
|
||||
|
||||
@ -445,86 +332,86 @@ Nếu cần triển khai riêng lẻ hoặc tùy chỉnh giao diện frontend, v
|
||||
cd Toonflow-app
|
||||
```
|
||||
|
||||
**Clone từ Gitee (khuyến nghị cho nội địa Trung Quốc):**
|
||||
**Clone từ Gitee:**
|
||||
|
||||
```bash
|
||||
git clone https://gitee.com/HBAI-Ltd/Toonflow-app.git
|
||||
cd Toonflow-app
|
||||
```
|
||||
|
||||
2. **Cài đặt phụ thuộc**
|
||||
2. **Cài đặt Dependencies**
|
||||
|
||||
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:
|
||||
Chạy lệnh sau tại thư mục gốc của dự án:
|
||||
|
||||
```bash
|
||||
yarn install
|
||||
```
|
||||
|
||||
3. **Khởi động môi trường phát triển**
|
||||
3. **Khởi chạy môi trường Dev**
|
||||
|
||||
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:
|
||||
Dự án bao gồm **Backend API** và **Trang Frontend**. Tùy nhu cầu mà chọn cách khởi chạy:
|
||||
|
||||
- **Cách 1: Chỉ khởi động dịch vụ backend**
|
||||
- **Cách 1: Chỉ chạy Backend API**
|
||||
|
||||
```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.
|
||||
> ⚠️ Lệnh này chỉ khởi chạy Backend API (Port 10588), không bao gồm giao diện Frontend. Khi truy cập http://localhost:10588 chỉ có thể gọi API. Nếu muốn sử dụng giao diện, vui lòng chạy Frontend riêng hoặc dùng chế độ GUI bên dưới.
|
||||
|
||||
- **Cách 2: Khởi động ứng dụng desktop Electron**
|
||||
- **Cách 2: Khởi chạy Client Desktop Electron (Khuyên dùng)**
|
||||
|
||||
```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.
|
||||
> Lệnh này sẽ chạy đồng thời Backend và cửa sổ Desktop Electron với giao diện Frontend đã tích hợp sẵn. Mở lên là có thể sử dụng ngay mà không cần cấu hình thêm. Phù hợp nhất cho lập trình viên muốn trải nghiệm toàn bộ tính năng.
|
||||
|
||||
- **Cách 3: Khởi động chế độ sản xuất**
|
||||
- **Cách 3: Chạy ở chế độ Product (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).
|
||||
> Chạy trực tiếp dịch vụ sau khi đã build (Cần chạy lệnh yarn build trước).
|
||||
|
||||
4. **Đóng gói dự án**
|
||||
4. **Đóng gói dự án (Build / Pack)**
|
||||
|
||||
- Biên dịch và tạo tệp TypeScript:
|
||||
- Biên dịch tệp TypeScript:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
- Đóng gói thành chương trình thực thi cho Windows:
|
||||
- Đóng gói thành tệp thực thi cho Windows:
|
||||
|
||||
```bash
|
||||
yarn dist:win
|
||||
```
|
||||
|
||||
- Đóng gói thành chương trình thực thi cho Mac:
|
||||
- Đóng gói thành tệp thực thi cho MacOS:
|
||||
|
||||
```bash
|
||||
yarn dist:mac
|
||||
```
|
||||
|
||||
- Đóng gói thành chương trình thực thi cho Linux:
|
||||
- Đóng gói thành tệp thực thi cho Linux:
|
||||
|
||||
```bash
|
||||
yarn dist:linux
|
||||
```
|
||||
|
||||
5. **Kiểm tra chất lượng mã**
|
||||
5. **Kiểm tra chất lượng mã (Lint)**
|
||||
|
||||
- Thực hiện kiểm tra cú pháp và quy tắc toàn cục:
|
||||
- Kiểm tra cú pháp và quy chuẩn toàn cục:
|
||||
|
||||
```bash
|
||||
yarn lint
|
||||
```
|
||||
|
||||
6. **Bảng điều khiển gỡ lỗi AI (Tùy chọn)**
|
||||
6. **Bảng điều khiển Debug 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:
|
||||
Mở công cụ Debug trực quan của AI SDK để tiện theo dõi các lời gọi AI:
|
||||
|
||||
```bash
|
||||
yarn debug:ai
|
||||
@ -532,162 +419,155 @@ Nếu cần triển khai riêng lẻ hoặc tùy chỉnh giao diện frontend, v
|
||||
|
||||
## 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:
|
||||
Nếu bạn cần chỉnh sửa giao diện Frontend, vui lòng chuyển sang kho lưu trữ Frontend riêng:
|
||||
|
||||
- **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.
|
||||
Sau khi build Frontend xong, hãy copy toàn bộ 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
|
||||
## 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
|
||||
📂 build/ # Sản phẩm sau khi build
|
||||
📂 data/ # Dữ liệu Runtime
|
||||
│ ├─ 📂 models/ # Mô hình suy luận Local (ONNX)
|
||||
│ ├─ 📂 oss/ # Lưu trữ Object (ảnh, nhân vật, cảnh)
|
||||
│ ├─ 📂 serve/ # Cổng vào môi trường Production
|
||||
│ ├─ 📂 skills/ # Prompt kỹ năng của Agent
|
||||
│ └─ 📂 web/ # Frontend đã build (tích hợp sẵn)
|
||||
📂 docs/ # Tài liệu và hình ảnh
|
||||
📂 env/ # Cấu hình môi trường
|
||||
📂 scripts/ # Tập lệnh xây dựng và hỗ trợ
|
||||
📂 scripts/ # Script hỗ trợ và Build
|
||||
📂 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)
|
||||
├─ 📂 agents/ # Module AI Agent
|
||||
│ ├─ 📂 productionAgent/ # Agent Sản xuất (Production)
|
||||
│ └─ 📂 scriptAgent/ # Agent Kịch bản (Script)
|
||||
├─ 📂 lib/ # Thư viện chung (Khởi tạo Database, định dạng Response)
|
||||
├─ 📂 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
|
||||
├─ 📂 routes/ # Các Module Routing
|
||||
│ ├─ 📂 agents/ # Quản lý bộ nhớ Agent
|
||||
│ ├─ 📂 artStyle/ # Quản lý phong cách nghệ thuật
|
||||
│ ├─ 📂 assets/ # Quản lý tài nguyên (Assets)
|
||||
│ ├─ 📂 assetsGenerate/ # Trình tạo tài nguyên
|
||||
│ ├─ 📂 cornerScape/ # Quản lý phân cảnh (Storyboard)
|
||||
│ ├─ 📂 general/ # API chung
|
||||
│ ├─ 📂 login/ # Xác thực đăng nhập
|
||||
│ ├─ 📂 migrate/ # Di chuyển dữ liệu (Migration)
|
||||
│ ├─ 📂 modelSelect/ # Chọn mô hình
|
||||
│ ├─ 📂 novel/ # Quản lý tiểu thuyết
|
||||
│ ├─ 📂 other/ # Các tính năng khác
|
||||
│ ├─ 📂 production/ # Quản lý sản xuất / dựng phim
|
||||
│ ├─ 📂 project/ # Quản lý dự án
|
||||
│ ├─ 📂 script/ # Tạo kịch bản
|
||||
│ ├─ 📂 scriptAgent/ # Interface của Agent kịch bản
|
||||
│ ├─ 📂 setting/ # Cài đặt hệ thống
|
||||
│ ├─ 📂 task/ # Quản lý tác vụ (Task)
|
||||
│ └─ 📂 test/ # API thử nghiệm (Test)
|
||||
├─ 📂 socket/ # Giao tiếp Real-time qua WebSocket
|
||||
├─ 📂 types/ # Khai báo Type của TypeScript
|
||||
├─ 📂 utils/ # Các hàm tiện ích
|
||||
├─ 📄 app.ts # Entry của ứng dụng
|
||||
├─ 📄 core.ts # Khởi tạo Core
|
||||
├─ 📄 env.ts # Xử lý biến môi trường
|
||||
├─ 📄 err.ts # Xử lý lỗi (Error handling)
|
||||
├─ 📄 logger.ts # Module ghi log (Logger)
|
||||
├─ 📄 router.ts # Đăng ký Router
|
||||
└─ 📄 utils.ts # Công cụ chung
|
||||
📄 Dockerfile # Tệp cấu hình Build 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
|
||||
📄 NOTICES.txt # Khai báo thư viện 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
|
||||
# 🔗 Các Kho lưu trữ Liên quan
|
||||
|
||||
| Kho lưu trữ | Giải thích | GitHub | Gitee |
|
||||
| Repository (Kho) | Mô tả | 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) |
|
||||
| **Toonflow-app** | Client hoàn chỉnh (Repo này, khuyến nghị cho người dùng) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-app) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-app) |
|
||||
| **Toonflow-web** | Mã nguồn Frontend (Dành cho lập trình viê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.
|
||||
> 💡 **Mẹo nhỏ**: Nếu bạn chỉ muốn sử dụng Toonflow, hãy tải Client hoàn chỉnh từ kho này là đủ. Kho Toonflow-web chỉ dành cho các nhà phát triển cần chỉnh sửa hoặc phát triển lại giao diện (secondary development).
|
||||
|
||||
---
|
||||
|
||||
# 👨👩👧👦 Nhóm WeChat
|
||||
# 👨👩👧👦 Nhóm Discord Cộng đồng
|
||||
|
||||
Trợ lý thêm nhóm:
|
||||
Nhấn vào biểu tượng bên dưới để tham gia Discord:
|
||||
|
||||
<img src="./QR.png" alt="Toonflow QR" height="400"/>
|
||||
[](https://discord.gg/HEjKmpNpAZ)
|
||||
|
||||
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)
|
||||
Hoặc click trực tiếp vào link: [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咨询)
|
||||
📧 Email: [ltlctools@outlook.com](mailto:ltlctools@outlook.com?subject=Toonflow%20%C6%B0%C9%9B)
|
||||
|
||||
---
|
||||
|
||||
# 📜 Giấy phép
|
||||
# 📜 Giấy phép (License)
|
||||
|
||||
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.
|
||||
Toonflow được phát hành mã nguồn mở dưới 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
|
||||
Chi tiết giấy phép Apache-2.0: 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.
|
||||
- Nếu phần mềm này được phân phối dưới dạng sản phẩm cho **2 hoặc nhiều bên thứ ba độc lập** sử dụng, bắt buộc phải có **giấy phép thương mại bằng văn bản** từ HBAI-Ltd.
|
||||
- Nếu **≤ 5 pháp nhân** hợp tác vận hành để sử dụng nội bộ và không cung cấp dịch vụ ra bên ngoài, thì được coi là sử dụng nội bộ và **không cần cấp phép**.
|
||||
- Không được phép xóa hoặc sửa đổi logo hoặc thông tin bản quyền trong Toonflow.
|
||||
|
||||
## Kịch bản miễn phí vĩnh viễn
|
||||
## Các trường hợp 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
|
||||
- ✅ Dùng Toonflow để sản xuất nội dung và nhận chia sẻ doanh thu từ các nền tảng video
|
||||
- ✅ Chỉnh sửa mã nguồn (Secondary development) để dùng cho nhóm nội bộ
|
||||
- ✅ ≤ 5 pháp nhân hợp tác vận hành để sử dụng nội bộ
|
||||
- ✅ Phục vụ học tập cá nhân, nghiên cứu và các mục đích phi thương mại
|
||||
|
||||
## Định giá cấp phép thương mại
|
||||
## Bảng 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 | 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 |
|
||||
| 🌱 Ươm mầm | < ¥100k (RMB) | **Miễn phí** |
|
||||
| 🚀 Khởi nghiệp | ¥100k – 500k (RMB) | ¥5,000 / Năm |
|
||||
| 📈 Tăng trưởng | ¥500k – 1.5M (RMB) | ¥20,000 / Năm |
|
||||
| 🏢 Quy mô | ¥1.5M – 5M (RMB) | ¥80,000 / Năm |
|
||||
| 🌐 Doanh nghiệp | > ¥5M (RMB) | 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.
|
||||
> **Điều khoản Không hồi tố**: Những người dùng đã sử dụng Toonflow dưới giấy phép AGPL-3.0 trước khi phát hành phiên bản v1.0.8 sẽ tiếp tục tuân theo AGPL-3.0 và không bị ràng buộc bởi sự thay đổi thỏa thuận này.
|
||||
|
||||
Thỏa thuận đầy đủ xem trong tệp [LICENSE](./LICENSE).
|
||||
Xem toàn bộ thỏa thuận tại tệp [LICENSE](./LICENSE).
|
||||
|
||||
---
|
||||
|
||||
# ⭐️ Lịch sử Star
|
||||
|
||||
[](https://www.star-history.com/#HBAI-Ltd/Toonflow-app)
|
||||
# ⭐️ Lịch sử Thả sao (Star History)
|
||||
|
||||
[](https://www.star-history.com/#HBAI-Ltd/Toonflow-app&type=timeline&legend=top-left)
|
||||
|
||||
---
|
||||
|
||||
# 🙏 Lời Cảm ơn
|
||||
|
||||
# 🙏 Lời cảm ơn
|
||||
Xin cảm ơn các dự án mã nguồn mở sau đây đã hỗ trợ đắc lực cho Toonflow:
|
||||
|
||||
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
|
||||
- [Express](https://expressjs.com/) - Web framework cho Node.js cực nhanh và 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
|
||||
- [Zod](https://zod.dev/) - Thư viện xác thực Schema ư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ộ
|
||||
- [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 Machine Learning tại Local
|
||||
|
||||
Cảm ơn các tổ chức/đơn vị/cá nhân sau đã cung cấp hỗ trợ cho Toonflow:
|
||||
Xin cảm ơn các tổ chức/đơn vị/cá nhân sau đây đã hỗ trợ cho Toonflow:
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
@ -695,37 +575,28 @@ Cảm ơn các tổ chức/đơn vị/cá nhân sau đã cung cấp hỗ trợ c
|
||||
<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>
|
||||
<th>Mô tả</th>
|
||||
<th align="center">Website</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>
|
||||
<td align="center">💻 Tài trợ điện toán</td>
|
||||
<td>Nền tảng API suy luận mô hình một cửa, nhanh hơn, ổn định hơn và tiết kiệm hơn</td>
|
||||
<td align="center"><a href="https://www.sophnet.com/">Website</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>
|
||||
<td align="center">💻 Tài trợ điện toán</td>
|
||||
<td>Nền tảng suy luận đa phương thức đầu tiên trên thế giới. Chat, hình ảnh, video, âm thanh — tất cả qua một API thống nhất. 300+ mô hình, tương thích OpenAI.</td>
|
||||
<td align="center"><a href="https://www.atlascloud.ai/">Website</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`
|
||||
Vui lòng xem danh sách đầy đủ các thư viện phụ thuộc của bên thứ ba trong tệp `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%"/>
|
||||
##### Copyright © Huaibei AIA Network Technology Co., Ltd.
|
||||
@ -1,5 +1,3 @@
|
||||
<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" />
|
||||
@ -15,7 +13,7 @@
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="../README.md">简体中文</a> |
|
||||
<a href="./README.md">简体中文</a> |
|
||||
<strong>繁體中文</strong> |
|
||||
<a href="./README.en.md">English</a> |
|
||||
<a href="./README.th.md">ไทย</a> |
|
||||
@ -28,8 +26,17 @@
|
||||
|
||||
<img src="./logo.png" alt="Toonflow Logo" height="120"/>
|
||||
|
||||
[](https://git.io/typing-svg)
|
||||
# Toonflow
|
||||
|
||||
<p align="center">
|
||||
<b>
|
||||
AI 短劇工廠
|
||||
<br />
|
||||
動動手指,小說秒變劇集!
|
||||
<br />
|
||||
AI 劇本 × AI 影像 × 極速生成 🔥
|
||||
</b>
|
||||
</p>
|
||||
<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="Stars Badge" />
|
||||
@ -41,48 +48,8 @@
|
||||
<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="Forks Badge" />
|
||||
</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 No.540" />
|
||||
</a>
|
||||
<a href="https://discord.gg/HEjKmpNpAZ">
|
||||
<img src="https://img.shields.io/badge/Discord-Community-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="Issues" />
|
||||
</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="Contributors" />
|
||||
</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="Last Commit" />
|
||||
</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="Tech Stack Icons" />
|
||||
</p>
|
||||
<p align="center">
|
||||
<img src="https://widgetbite.com/stats/HBAI-Ltd" alt="Visitors" />
|
||||
</p>
|
||||
|
||||
> 🚀 **一站式短劇工程**:從文本到角色,從分鏡到影片,0門檻全流程AI化,創作效率提升10倍+!
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
<a href="./g-star.png" target="_blank">
|
||||
<img src="./g-star.png" alt="AtomGit G-Star 認證證書" width="100%"/>
|
||||
</a>
|
||||
> 🚀 **一站式短劇工程**:從文字到角色,從分鏡到影片,0 門檻全流程 AI 化,創作效率提升 10 倍+!
|
||||
</div>
|
||||
|
||||
---
|
||||
@ -91,133 +58,61 @@
|
||||
|
||||
Toonflow 支援以下語言介面:
|
||||
|
||||
| 語言 | Language |
|
||||
| ---------- | --------------------- |
|
||||
| 簡體中文 | Chinese (Simplified) |
|
||||
| 繁體中文 | Chinese (Traditional) |
|
||||
| English | English |
|
||||
| ไทย | Thai |
|
||||
| Tiếng Việt | Vietnamese |
|
||||
| 日本語 | Japanese |
|
||||
| Русский | Russian |
|
||||
| 語言 | Language |
|
||||
|--------------|---------------------------|
|
||||
| 简体中文 | Chinese (Simplified) |
|
||||
| 繁體中文 | Chinese (Traditional) |
|
||||
| English | English |
|
||||
| ไทย | Thai |
|
||||
| Tiếng Việt | Vietnamese |
|
||||
| 日本語 | Japanese |
|
||||
| Русский | Russian |
|
||||
|
||||
> 💡 更多語言適配中,歡迎貢獻翻譯!
|
||||
> 💡 更多語言正在適配中,歡迎貢獻翻譯!
|
||||
|
||||
---
|
||||
|
||||
# 🌟 主要功能
|
||||
|
||||
Toonflow 是面向短劇生產的 AI 工作檯,圍繞「策劃 → 編劇 → 分鏡 → 出片」構建完整閉環,並支援本地化、可程式化、可持續迭代的生產流程。
|
||||
Toonflow 是一款 AI 短劇與漫畫創作工具,能夠利用 AI 技術將小說自動轉化為劇本,並結合 AI 生成的圖像與影片,高效完成短劇製作。透過 Toonflow,您可以輕鬆完成從文字到最終影片的全流程,讓短劇創作變得更加智能與便捷。
|
||||
|
||||
- ✅ **無限畫布生產工作檯**
|
||||
以類無限畫布形式組織劇本、角色、分鏡、素材與影片節點,支援自由編排、回溯與並行生產,不受線性步驟限制。
|
||||
- ✅ **三層 Agent 協作體系**
|
||||
決策層、執行層、監督層協同工作,涵蓋任務拆解、內容生成、品質審閱與修訂反饋,提升穩定性與成片一致性。
|
||||
- ✅ **持久化 Agent 記憶**
|
||||
基於本地 ONNX 向量檢索的跨會話記憶系統,支援短期訊息、長期摘要和語義召回,確保多輪創作連續性。
|
||||
- ✅ **可程式化供應商系統**
|
||||
支援在設定中心直接編寫供應商 TypeScript 邏輯並即時生效,無需改源碼或重啟,便於私有化和多模型接入。
|
||||
- ✅ **章節事件圖譜驅動改編**
|
||||
自動提取原著章節事件並結構化儲存,劇本改編按事件圖譜精準呼叫上下文,減少長文本資訊遺失。
|
||||
- ✅ **Skill 檔案化配置**
|
||||
ScriptAgent 與 ProductionAgent 的核心提示詞外化為 Markdown Skill 檔案,支援線上編輯與快速調優。
|
||||
- ✅ **角色生成**
|
||||
自動分析原始小說文本,智能識別並建立角色設定,包含外貌、性格、身份等詳細資訊,為後續劇本與畫面創作提供堅實基礎。
|
||||
|
||||
- ✅ **劇本生成**
|
||||
根據選定的事件與章節,系統自動產生結構清晰的劇本,包含自然對白、場景描述與劇情發展,高效將文學作品轉化為影視劇本。
|
||||
|
||||
- ✅ **分鏡製作 (Storyboard)**
|
||||
根據劇本自動生成分鏡提示詞與畫面設計,細化前、中、後景、角色動作、道具與場景佈局,為影片製作提供完整的藍圖。
|
||||
|
||||
- ✅ **影片合成**
|
||||
整合 AI 圖像與影片生成技術,可產生高品質影片片段。內建線上剪輯功能,支援個人化調整,讓創作過程更順暢快速。
|
||||
|
||||
---
|
||||
|
||||
# 📦 應用場景
|
||||
|
||||
- 短視頻內容創作
|
||||
- 短影音內容創作
|
||||
- 小說影視化實驗
|
||||
- AI 文學改編工具
|
||||
- 劇本開發與快速原型
|
||||
- 劇本開發與快速原型製作
|
||||
- 影片素材生成
|
||||
|
||||
---
|
||||
|
||||
# 🔰 使用指南
|
||||
|
||||
## 快速上手
|
||||
|
||||
1. 啟動應用並登入(預設帳號:`admin` / `admin123`)。
|
||||
2. 在設定中心完成模型供應商配置(文字/圖像/影片模型)。
|
||||
3. 新建專案並匯入原著,執行章節事件提取。
|
||||
4. 進入 ScriptAgent 生成故事骨架、改編策略與結構化劇本。
|
||||
5. 切換到 ProductionAgent,在無限畫布中組織分鏡、素材與影片節點。
|
||||
6. 對分鏡圖進行節點化精調後回流工作檯,完成影片拼接與匯出。
|
||||
|
||||
## 📺 影片教學
|
||||
|
||||
https://www.bilibili.com/video/BV1oXD7BqEqJ
|
||||
[https://www.bilibili.com/video/BV1oXD7BqEqJ](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
|
||||
**Toonflow 12 分鐘快速上手 AI 影片**
|
||||
👉 [點擊觀看](https://www.bilibili.com/video/BV1oXD7BqEqJ)
|
||||
👉 [點擊觀看](https://www.bilibili.com/video/BV1oXD7BqEqJ/?share_source=copy_web&vd_source=5b718c25439a901a34c7bc0c1d35b38e)
|
||||
|
||||
📱 手機微信掃碼觀看
|
||||
📱 使用手機掃描 QR Code 觀看
|
||||
|
||||
<img src="./videoQR.png" alt="微信掃碼觀看" width="150"/>
|
||||
|
||||
---
|
||||
|
||||
# 📸 示範截圖與影片
|
||||
|
||||
以下截圖及影片來自使用 Toonflow 製作的一段 AI 短劇 Demo,全程約 2 小時完成,涵蓋劇本生成、分鏡製作及剪輯環節。
|
||||
|
||||
<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>
|
||||
|
||||
## 🎬 Demo 影片
|
||||
|
||||
<div align="center">
|
||||
|
||||
https://github.com/user-attachments/assets/2d9fddac-dfdf-4640-b030-b09d7f7287e9
|
||||
|
||||
如無法播放,請[點擊下載影片](./screenshot/demo.mp4)
|
||||
|
||||
</div>
|
||||
|
||||
## Demo 資訊
|
||||
|
||||
| 項目 | 詳情 |
|
||||
| :--- | :--- |
|
||||
| 製作週期 | 約 2 小時 |
|
||||
| 影片模型 | Seedance 2.0 |
|
||||
| 圖片模型 | GPT Image 2 |
|
||||
| 語言模型 | Claude Opus 4.6 |
|
||||
| 成片總時長 | 約 2 分鐘(原始素材 3 分鐘,剪除廢片約 1 分鐘) |
|
||||
|
||||
## 成本明細
|
||||
|
||||
| 模型類型 | 費用 |
|
||||
| :--- | :--- |
|
||||
| 語言模型 | 約 ¥10 |
|
||||
| 影片模型(全量生成) | 約 ¥120 |
|
||||
| 圖片模型 | 不足 ¥1 |
|
||||
| **合計** | **約 ¥130** |
|
||||
|
||||
> **聲明**:Demo 原始解析度為 1080×1882,發布版本已壓縮至 480p。如涉及版權問題,請聯繫我們刪除處理。
|
||||
<img src="./videoQR.png" alt="掃描 QR Code 觀看" width="150"/>
|
||||
|
||||
---
|
||||
|
||||
@ -225,34 +120,34 @@ https://github.com/user-attachments/assets/2d9fddac-dfdf-4640-b030-b09d7f7287e9
|
||||
|
||||
## 前置條件
|
||||
|
||||
在安裝和使用本軟體之前,請準備以下內容:
|
||||
安裝並使用本軟體前,請先準備以下項目:
|
||||
|
||||
- ✅ 大語言模型 AI 服務介面地址
|
||||
- ✅ Sora 或豆包影片服務介面地址
|
||||
- ✅ Nano Banana Pro 圖片生成模型服務介面
|
||||
- ✅ 大型語言模型 (LLM) 的 API 網址
|
||||
- ✅ Sora 或豆包影片生成服務的 API 網址
|
||||
- ✅ Nano Banana Pro 圖像生成模型的 API 網址
|
||||
|
||||
## 本機安裝
|
||||
|
||||
### 1. 下載與安裝
|
||||
|
||||
| 作業系統 | GitHub | 說明 |
|
||||
| :------: | :----------------------------------------------------------- | :------------- |
|
||||
| Windows | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | 官方發布安裝包 |
|
||||
| Linux | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | 官方發布安裝包 |
|
||||
| macOS | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | 官方發布安裝包 |
|
||||
| 作業系統 | GitHub | Atomgit | 夸克網碟下載 | 說明 |
|
||||
| :------: | :----------------------------------------------------------- | :------------------------------------------------------------ | :---------------------------------------------- | :------------- |
|
||||
| Windows | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [夸克網碟](https://pan.quark.cn/s/94ef07509df0) | 官方發佈安裝包 |
|
||||
| Linux | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [夸克網碟](https://pan.quark.cn/s/94ef07509df0) | 官方發佈安裝包 |
|
||||
| macOS | [Release](https://github.com/HBAI-Ltd/Toonflow-app/releases) | [Release](https://gitcode.com/HBAI-Ltd/Toonflow-app/releases) | [夸克網碟](https://pan.quark.cn/s/94ef07509df0) | 官方發佈安裝包 |
|
||||
|
||||
> [!CAUTION]
|
||||
> MacOS 系統請到 設定-隱私與安全性 配置安全性否則可能因憑證問題無法正常開啟
|
||||
> MacOS 系統請至「系統設定」-「隱私權與安全性」設定安全性,否則可能因憑證問題無法正常開啟。
|
||||
>
|
||||
> 參考知乎文件:[https://www.zhihu.com/question/433389276](https://www.zhihu.com/question/433389276)
|
||||
> 參考知乎教學:[https://www.zhihu.com/question/433389276](https://www.zhihu.com/question/433389276)
|
||||
|
||||
> 因 Gitee OS 環境限制及 Release 檔案上傳大小限制,暫不提供 Gitee Release 下載地址。
|
||||
> 因 Gitee OS 環境限制及 Release 檔案上傳大小限制,暫不提供 Gitee Release 下載連結。
|
||||
|
||||
### 2. 啟動服務
|
||||
|
||||
安裝完成後,啟動程式即可開始使用本服務。
|
||||
|
||||
> ⚠️ **首次登入**
|
||||
> ⚠️ **首次登入**
|
||||
> 帳號:`admin`
|
||||
> 密碼:`admin123`
|
||||
|
||||
@ -264,31 +159,31 @@ https://github.com/user-attachments/assets/2d9fddac-dfdf-4640-b030-b09d7f7287e9
|
||||
|
||||
### 方式一:線上部署
|
||||
|
||||
待完善,暫時使用本地建置。
|
||||
待完善,暫時使用本機建置。
|
||||
|
||||
### 方式二:本地建置
|
||||
### 方式二:本機建置
|
||||
|
||||
使用本地已有的原始碼直接建置,適合開發者或已克隆倉庫的使用者,這需要你在本地安裝 git:
|
||||
使用本機已有的原始碼直接建置,適合開發者或已 Clone 儲存庫的使用者,這需要您在本機安裝 git:
|
||||
|
||||
```shell
|
||||
# 先克隆專案(如已有則跳過)
|
||||
# 先 Clone 專案(若已有則跳過)
|
||||
git clone https://github.com/HBAI-Ltd/Toonflow-app.git
|
||||
cd Toonflow-app
|
||||
|
||||
# 使用 docker-compose 本地建置並啟動
|
||||
# 使用 docker-compose 進行本機建置並啟動
|
||||
yarn docker:local
|
||||
|
||||
# 或者手動建置
|
||||
docker build -t toonflow .
|
||||
docker run -d -p <本地埠>:10588 -v <本地資料路徑>:/app/data toonflow
|
||||
docker run -d -p <本機 Port>:10588 -v <本機資料路徑>:/app/data toonflow
|
||||
|
||||
# 此時在相應埠的 /web/index.html 路徑即可訪問頁面
|
||||
# 此時在相應 Port 的 /web/index.html 路徑即可存取頁面
|
||||
# 例如 http://localhost:10588/web/index.html
|
||||
```
|
||||
|
||||
### 服務埠說明
|
||||
### 服務 Port 說明
|
||||
|
||||
| 埠 | 用途 | 部署映射 |
|
||||
| Port | 用途 | 部署對應 |
|
||||
| ------- | -------- | ------------- |
|
||||
| `10588` | 軟體介面 | `10588:10588` |
|
||||
|
||||
@ -296,13 +191,13 @@ docker run -d -p <本地埠>:10588 -v <本地資料路徑>:/app/data toonflow
|
||||
|
||||
| 變數 | 說明 |
|
||||
| ---------- | ---------------------------------- |
|
||||
| `NODE_ENV` | 執行環境,`prod` 表示生產環境 |
|
||||
| `PORT` | 服務監聽埠(預設 10588) |
|
||||
| `OSSURL` | 檔案儲存訪問位址,用於靜態資源訪問 |
|
||||
| `NODE_ENV` | 執行環境,`prod` 表示正式環境 |
|
||||
| `PORT` | 服務監聽 Port(預設 10588) |
|
||||
| `OSSURL` | 檔案儲存存取網址,用於靜態資源存取 |
|
||||
|
||||
---
|
||||
|
||||
## 雲端部署
|
||||
## ☁️ 雲端部署
|
||||
|
||||
### 一、伺服器環境要求
|
||||
|
||||
@ -325,7 +220,7 @@ npm install -g yarn pm2
|
||||
|
||||
#### 2. 部署專案
|
||||
|
||||
**從 GitHub 克隆:**
|
||||
**從 GitHub Clone:**
|
||||
|
||||
```bash
|
||||
cd /opt
|
||||
@ -335,7 +230,7 @@ yarn install
|
||||
yarn build
|
||||
```
|
||||
|
||||
**從 Gitee 克隆(國內推薦):**
|
||||
**從 Gitee Clone(內地網路使用):**
|
||||
|
||||
```bash
|
||||
cd /opt
|
||||
@ -345,7 +240,7 @@ yarn install
|
||||
yarn build
|
||||
```
|
||||
|
||||
#### 3. 配置 PM2
|
||||
#### 3. 設定 PM2
|
||||
|
||||
建立 `pm2.json` 檔案:
|
||||
|
||||
@ -367,9 +262,9 @@ yarn build
|
||||
|
||||
| 變數 | 說明 |
|
||||
| ---------- | ---------------------------------- |
|
||||
| `NODE_ENV` | 執行環境,`prod` 表示生產環境 |
|
||||
| `PORT` | 服務監聽埠 |
|
||||
| `OSSURL` | 檔案儲存訪問位址,用於靜態資源訪問 |
|
||||
| `NODE_ENV` | 執行環境,`prod` 表示正式環境 |
|
||||
| `PORT` | 服務監聽 Port |
|
||||
| `OSSURL` | 檔案儲存存取網址,用於靜態資源存取 |
|
||||
|
||||
---
|
||||
|
||||
@ -384,24 +279,24 @@ pm2 save
|
||||
#### 5. 常用指令
|
||||
|
||||
```bash
|
||||
pm2 list # 查看進程
|
||||
pm2 list # 查看處理程序
|
||||
pm2 logs toonflow-app # 查看日誌
|
||||
pm2 restart all # 重啟服務
|
||||
pm2 restart all # 重新啟動服務
|
||||
pm2 monit # 監控面板
|
||||
```
|
||||
|
||||
> ⚠️ **首次登入**
|
||||
> ⚠️ **首次登入**
|
||||
> 帳號:`admin`
|
||||
> 密碼:`admin123`
|
||||
|
||||
#### 6. 部署前端網站
|
||||
|
||||
如需單獨部署或定製前端介面,請參考前端倉庫:
|
||||
若需單獨部署或客製化前端介面,請參考前端儲存庫:
|
||||
|
||||
- **GitHub**:[Toonflow-web](https://github.com/HBAI-Ltd/Toonflow-web)
|
||||
- **Gitee**:[Toonflow-web](https://gitee.com/HBAI-Ltd/Toonflow-web)
|
||||
|
||||
> 💡 **說明**:本倉庫已內建編譯好的前端資源,一般使用者無需單獨部署前端。前端倉庫僅供需要二次開發的開發者使用。
|
||||
> 💡 **說明**:本儲存庫已內建編譯好的前端資源,一般使用者無需單獨部署前端。前端儲存庫僅供需要二次開發的開發者使用。
|
||||
|
||||
---
|
||||
|
||||
@ -412,49 +307,49 @@ pm2 monit # 監控面板
|
||||
>
|
||||
> ⛔ `master` 分支不接受任何 PR | ✅ 請將 PR 提交到 `develop` 分支
|
||||
>
|
||||
> 歡迎開發者們共同參與 Toonflow 的共創。如有興趣加入,請在交流群內聯繫主持人 ACT
|
||||
> 歡迎開發者們共同參與 Toonflow 的共創。如有興趣加入,請在交流群內聯絡主理人 ACT
|
||||
|
||||
## 🛠️ 技術棧
|
||||
## 🛠️ 技術堆疊
|
||||
|
||||
| 類別 | 技術 |
|
||||
| ---------- | ----------------------------------------------------------------------------------------- |
|
||||
| 執行時 | Node.js 23.11.1+ |
|
||||
| 執行環境 | Node.js 23.11.1+ |
|
||||
| 語言 | TypeScript 5.x |
|
||||
| 後端框架 | Express 5 |
|
||||
| 資料庫 | SQLite(better-sqlite3 / knex) |
|
||||
| AI 整合 | Vercel AI SDK(OpenAI / Anthropic / Google / DeepSeek / 智譜 / MiniMax / 通義千問 / xAI) |
|
||||
| 本地推理 | @huggingface/transformers(ONNX) |
|
||||
| 本機推論 | @huggingface/transformers(ONNX) |
|
||||
| 即時通訊 | Socket.IO |
|
||||
| 桌面客戶端 | Electron 40 |
|
||||
| 圖像處理 | Sharp |
|
||||
| 桌面用戶端 | Electron 40 |
|
||||
| 影像處理 | Sharp |
|
||||
| 容器化 | Docker |
|
||||
|
||||
## 開發環境準備
|
||||
|
||||
- **Node.js**:版本要求 23.11.1 及以上
|
||||
- **Yarn**:推薦作為專案套件管理器
|
||||
- **Yarn**:推薦作為專案套件管理員
|
||||
|
||||
## 快速啟動專案
|
||||
|
||||
1. **克隆專案**
|
||||
1. **Clone 專案**
|
||||
|
||||
**從 GitHub 克隆:**
|
||||
**從 GitHub Clone:**
|
||||
|
||||
```bash
|
||||
git clone https://github.com/HBAI-Ltd/Toonflow-app.git
|
||||
cd Toonflow-app
|
||||
```
|
||||
|
||||
**從 Gitee 克隆(國內推薦):**
|
||||
**從 Gitee Clone(內地網路使用):**
|
||||
|
||||
```bash
|
||||
git clone https://gitee.com/HBAI-Ltd/Toonflow-app.git
|
||||
cd Toonflow-app
|
||||
```
|
||||
|
||||
2. **安裝依賴**
|
||||
2. **安裝相依套件**
|
||||
|
||||
請先在專案根目錄下執行以下指令以安裝依賴項:
|
||||
請先在專案根目錄下執行以下指令以安裝相依套件:
|
||||
|
||||
```bash
|
||||
yarn install
|
||||
@ -470,17 +365,17 @@ pm2 monit # 監控面板
|
||||
yarn dev
|
||||
```
|
||||
|
||||
> ⚠️ 此指令僅啟動後端 API 服務(埠 10588),**不包含前端頁面**。直接訪問 `http://localhost:10588` 只能呼叫 API 介面,無法看到完整的網頁介面。如需同時使用前端頁面,請配合前端專案單獨啟動,或使用下方的 GUI 模式。
|
||||
> ⚠️ 此指令僅啟動後端 API 服務(Port 10588),**不包含前端頁面**。直接瀏覽 `http://localhost:10588` 只能呼叫 API 介面,無法看到完整的網頁介面。若需同時使用前端頁面,請配合前端專案單獨啟動,或使用下方的 GUI 模式。
|
||||
|
||||
- **方式二:啟動 Electron 桌面客戶端**
|
||||
- **方式二:啟動 Electron 桌面用戶端**
|
||||
|
||||
```bash
|
||||
yarn dev:gui
|
||||
```
|
||||
|
||||
> 此指令會同時啟動後端服務和 Electron 桌面視窗,自帶內建前端頁面,開箱即用,無需額外配置。適合想要完整體驗所有功能的開發者。
|
||||
> 此指令會同時啟動後端服務和 Electron 桌面視窗,內建前端頁面,開箱即用,無需額外設定。適合想要完整體驗所有功能的開發者。
|
||||
|
||||
- **方式三:生產模式啟動**
|
||||
- **方式三:正式環境模式啟動**
|
||||
|
||||
```bash
|
||||
yarn start
|
||||
@ -488,33 +383,33 @@ pm2 monit # 監控面板
|
||||
|
||||
> 以生產模式直接執行編譯後的服務(需先執行 `yarn build`)。
|
||||
|
||||
4. **專案打包**
|
||||
4. **專案打包建置**
|
||||
|
||||
- 編譯並生成 TypeScript 檔案:
|
||||
- 編譯並產生 TypeScript 檔案:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
- 打包為 Windows 平台可執行程式:
|
||||
- 打包為 Windows 平台執行檔:
|
||||
|
||||
```bash
|
||||
yarn dist:win
|
||||
```
|
||||
|
||||
- 打包為 Mac 平台可執行程式:
|
||||
- 打包為 Mac 平台執行檔:
|
||||
|
||||
```bash
|
||||
yarn dist:mac
|
||||
```
|
||||
|
||||
- 打包為 Linux 平台可執行程式:
|
||||
- 打包為 Linux 平台執行檔:
|
||||
|
||||
```bash
|
||||
yarn dist:linux
|
||||
```
|
||||
|
||||
5. **程式碼品質檢查**
|
||||
5. **程式碼品質檢查 (Lint)**
|
||||
|
||||
- 進行全域語法和規範檢查:
|
||||
|
||||
@ -522,9 +417,9 @@ pm2 monit # 監控面板
|
||||
yarn lint
|
||||
```
|
||||
|
||||
6. **AI 偵錯面板(可選)**
|
||||
6. **AI 除錯面板(選用)**
|
||||
|
||||
啟動 AI SDK 的可視化偵錯工具,方便偵錯 AI 呼叫:
|
||||
啟動 AI SDK 的視覺化除錯工具,方便對 AI 呼叫進行除錯:
|
||||
|
||||
```bash
|
||||
yarn debug:ai
|
||||
@ -532,7 +427,7 @@ pm2 monit # 監控面板
|
||||
|
||||
## 前端開發
|
||||
|
||||
如需修改前端介面,請前往前端倉庫進行開發:
|
||||
若需修改前端介面,請前往前端儲存庫進行開發:
|
||||
|
||||
- **GitHub**:[Toonflow-web](https://github.com/HBAI-Ltd/Toonflow-web)
|
||||
- **Gitee**:[Toonflow-web](https://gitee.com/HBAI-Ltd/Toonflow-web)
|
||||
@ -542,21 +437,21 @@ pm2 monit # 監控面板
|
||||
## 專案結構
|
||||
|
||||
```
|
||||
📂 build/ # 編譯產物
|
||||
📂 data/ # 執行時資料
|
||||
│ ├─ 📂 models/ # 本地推理模型(ONNX)
|
||||
📂 build/ # 編譯產物
|
||||
📂 data/ # 執行時資料
|
||||
│ ├─ 📂 models/ # 本機推論模型(ONNX)
|
||||
│ ├─ 📂 oss/ # 物件儲存(素材/角色/場景)
|
||||
│ ├─ 📂 serve/ # 生產環境入口
|
||||
│ ├─ 📂 serve/ # 正式環境入口
|
||||
│ ├─ 📂 skills/ # Agent 技能提示詞
|
||||
│ └─ 📂 web/ # 前端編譯產物(內建)
|
||||
📂 docs/ # 文件資源
|
||||
📂 env/ # 環境配置
|
||||
📂 scripts/ # 建置與輔助腳本
|
||||
📂 docs/ # 文件資源
|
||||
📂 env/ # 環境設定
|
||||
📂 scripts/ # 建置與輔助腳本
|
||||
📂 src/
|
||||
├─ 📂 agents/ # AI Agent 模組
|
||||
│ ├─ 📂 productionAgent/ # 生產 Agent
|
||||
│ ├─ 📂 productionAgent/ # 製作 Agent
|
||||
│ └─ 📂 scriptAgent/ # 劇本 Agent
|
||||
├─ 📂 lib/ # 公共庫(資料庫初始化、回應格式)
|
||||
├─ 📂 lib/ # 公用函式庫(資料庫初始化、回應格式)
|
||||
├─ 📂 middleware/ # 中介軟體
|
||||
├─ 📂 routes/ # 路由模組
|
||||
│ ├─ 📂 agents/ # Agent 記憶管理
|
||||
@ -564,9 +459,9 @@ pm2 monit # 監控面板
|
||||
│ ├─ 📂 assets/ # 素材管理
|
||||
│ ├─ 📂 assetsGenerate/ # 素材生成
|
||||
│ ├─ 📂 cornerScape/ # 分鏡管理
|
||||
│ ├─ 📂 general/ # 通用介面
|
||||
│ ├─ 📂 general/ # 通用 API
|
||||
│ ├─ 📂 login/ # 登入認證
|
||||
│ ├─ 📂 migrate/ # 資料遷移
|
||||
│ ├─ 📂 migrate/ # 資料轉移
|
||||
│ ├─ 📂 modelSelect/ # 模型選擇
|
||||
│ ├─ 📂 novel/ # 小說管理
|
||||
│ ├─ 📂 other/ # 其他功能
|
||||
@ -578,8 +473,8 @@ pm2 monit # 監控面板
|
||||
│ ├─ 📂 task/ # 任務管理
|
||||
│ └─ 📂 test/ # 測試介面
|
||||
├─ 📂 socket/ # WebSocket 即時通訊
|
||||
├─ 📂 types/ # TypeScript 型別宣告
|
||||
├─ 📂 utils/ # 工具函數
|
||||
├─ 📂 types/ # TypeScript 類型宣告
|
||||
├─ 📂 utils/ # 工具函式
|
||||
├─ 📄 app.ts # 應用入口
|
||||
├─ 📄 core.ts # 核心初始化
|
||||
├─ 📄 env.ts # 環境變數處理
|
||||
@ -588,91 +483,84 @@ pm2 monit # 監控面板
|
||||
├─ 📄 router.ts # 路由註冊
|
||||
└─ 📄 utils.ts # 通用工具
|
||||
📄 Dockerfile # Docker 建置檔案
|
||||
📄 electron-builder.yml # Electron 打包配置
|
||||
📄 electron-builder.yml # Electron 打包設定
|
||||
📄 skillList.json # 技能清單
|
||||
📄 LICENSE # 許可證(Apache-2.0)
|
||||
📄 NOTICES.txt # 第三方依賴宣告
|
||||
📄 package.json # 專案配置
|
||||
📄 tsconfig.json # TypeScript 配置
|
||||
📄 LICENSE # 授權條款(Apache-2.0)
|
||||
📄 NOTICES.txt # 第三方相依套件聲明
|
||||
📄 package.json # 專案設定
|
||||
📄 tsconfig.json # TypeScript 設定
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 🔗 相關倉庫
|
||||
# 🔗 相關儲存庫
|
||||
|
||||
| 倉庫 | 說明 | GitHub | Gitee |
|
||||
| 儲存庫 | 說明 | GitHub | Gitee |
|
||||
| ---------------- | ---------------------------------- | -------------------------------------------------- | ------------------------------------------------ |
|
||||
| **Toonflow-app** | 完整客戶端(本倉庫,推薦一般使用者) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-app) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-app) |
|
||||
| **Toonflow-app** | 完整用戶端(本儲存庫,推薦一般使用者) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-app) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-app) |
|
||||
| **Toonflow-web** | 前端原始碼(適合前端開發者) | [GitHub](https://github.com/HBAI-Ltd/Toonflow-web) | [Gitee](https://gitee.com/HBAI-Ltd/Toonflow-web) |
|
||||
|
||||
> 💡 **提示**:如果您只是想使用 Toonflow,直接下載本倉庫的客戶端即可。前端倉庫僅供需要二次開發或定製前端介面的開發者使用。
|
||||
> 💡 **提示**:如果您只是想使用 Toonflow,直接下載本儲存庫的用戶端即可。前端儲存庫僅供需要二次開發或客製化前端介面的開發者使用。
|
||||
|
||||
---
|
||||
|
||||
# 👨👩👧👦 微信交流群
|
||||
# 👨👩👧👦 Discord 交流群組
|
||||
|
||||
拉群小助手:
|
||||
|
||||
<img src="./QR.png" alt="Toonflow QR" height="400"/>
|
||||
|
||||
也可以點擊圖示加入 Discord:
|
||||
點擊下方圖示加入 Discord:
|
||||
|
||||
[](https://discord.gg/HEjKmpNpAZ)
|
||||
|
||||
或點擊邀請連接: [https://discord.gg/HEjKmpNpAZ](https://discord.gg/HEjKmpNpAZ)
|
||||
或直接點擊連結: [https://discord.gg/HEjKmpNpAZ](https://discord.gg/HEjKmpNpAZ)
|
||||
|
||||
---
|
||||
|
||||
# 💌 聯繫我們
|
||||
# 💌 聯絡我們
|
||||
|
||||
📧 信箱:[ltlctools@outlook.com](mailto:ltlctools@outlook.com?subject=Toonflow諮詢)
|
||||
|
||||
---
|
||||
|
||||
# 📜 許可證
|
||||
# 📜 授權條款
|
||||
|
||||
Toonflow 基於 Apache-2.0 協議開源發布,並附有補充商業協議。
|
||||
Toonflow 基於 Apache-2.0 協定開源發佈,並附有補充商業協議。
|
||||
|
||||
許可證詳情:https://www.apache.org/licenses/LICENSE-2.0
|
||||
授權條款詳情:https://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
## 補充協議
|
||||
|
||||
- 若將本軟體以產品形式分發給 **2 個及以上獨立第三方**使用,須取得 HBAI-Ltd **書面商業授權**。
|
||||
- **≤ 5 個法人**聯合運營內部使用,不對外提供服務的,視為內部使用,**無需授權**。
|
||||
- 若將本軟體以產品形式散佈給 **2 個及以上獨立第三方**使用,須取得 HBAI-Ltd **書面商業授權**。
|
||||
- **≤ 5 個法人**聯合營運內部使用,不對外提供服務的,視為內部使用,**無需授權**。
|
||||
- 不得刪除或修改 Toonflow 中的標識或版權資訊。
|
||||
|
||||
## 永久免費場景
|
||||
|
||||
- ✅ 用 Toonflow 製作內容並獲得平台分帳
|
||||
- ✅ 用 Toonflow 製作內容並獲得平台分潤
|
||||
- ✅ 二次開發供自己團隊內部使用
|
||||
- ✅ ≤ 5 個法人聯合運營內部使用
|
||||
- ✅ ≤ 5 個法人聯合營運內部使用
|
||||
- ✅ 個人學習、研究、非商業用途
|
||||
|
||||
## 商業授權定價
|
||||
## 商業授權定價(人民幣)
|
||||
|
||||
| 階段 | 年銷售額 | 年費 |
|
||||
|------|---------|------|
|
||||
| 🌱 扶持期 | < ¥10 萬 | **申請即可免費授權** |
|
||||
| 🚀 初創期 | ¥10–50 萬 | ¥5,000/年 |
|
||||
| 📈 成長期 | ¥50–150 萬 | ¥20,000/年 |
|
||||
| 🏢 規模期 | ¥150–500 萬 | ¥80,000/年 |
|
||||
| 🌐 企業級 | > ¥500 萬 | 面議 |
|
||||
| 階段 | 年營業額 | 年費 |
|
||||
|------------|---------------------------|-------------------|
|
||||
| 🌱 扶持期 | < 10 萬人民幣 | **免費** |
|
||||
| 🚀 初創期 | 10–50 萬人民幣 | ¥5,000 / 年 |
|
||||
| 📈 成長期 | 50–150 萬人民幣 | ¥20,000 / 年 |
|
||||
| 🏢 規模期 | 150–500 萬人民幣 | ¥80,000 / 年 |
|
||||
| 🌐 企業級 | > 500 萬人民幣 | 面議 |
|
||||
|
||||
> **不追溯條款**:v1.0.8 發布前基於 AGPL-3.0 使用的使用者,繼續按 AGPL-3.0 執行,不受本協議變更約束。
|
||||
> **不溯及既往條款**:v1.0.8 發佈前基於 AGPL-3.0 使用的使用者,繼續按 AGPL-3.0 執行,不受本協議變更約束。
|
||||
|
||||
完整協議詳見 [LICENSE](./LICENSE) 檔案。
|
||||
|
||||
---
|
||||
|
||||
# ⭐️ 星標歷史
|
||||
|
||||
[](https://www.star-history.com/#HBAI-Ltd/Toonflow-app)
|
||||
# ⭐️ Star 歷史
|
||||
|
||||
[](https://www.star-history.com/#HBAI-Ltd/Toonflow-app&type=timeline&legend=top-left)
|
||||
|
||||
---
|
||||
|
||||
|
||||
# 🙏 致謝
|
||||
|
||||
感謝以下開源專案為 Toonflow 提供強大支援:
|
||||
@ -680,12 +568,12 @@ Toonflow 基於 Apache-2.0 協議開源發布,並附有補充商業協議。
|
||||
- [Express](https://expressjs.com/) - 快速、開放、極簡的 Node.js Web 框架
|
||||
- [AI SDK](https://ai-sdk.dev/) - 面向 TypeScript 的 AI 工具包
|
||||
- [Better-SQLite3](https://github.com/WiseLibs/better-sqlite3) - 高效能 SQLite3 綁定庫
|
||||
- [Sharp](https://sharp.pixelplumbing.com/) - 高效能 Node.js 圖像處理庫
|
||||
- [Axios](https://axios-http.com/) - 基於 Promise 的 HTTP 客戶端
|
||||
- [Zod](https://zod.dev/) - TypeScript 優先的模式驗證庫
|
||||
- [Sharp](https://sharp.pixelplumbing.com/) - 高效能 Node.js 影像處理庫
|
||||
- [Axios](https://axios-http.com/) - 基於 Promise 的 HTTP 用戶端
|
||||
- [Zod](https://zod.dev/) - TypeScript 優先的結構驗證庫
|
||||
- [Socket.IO](https://socket.io/) - 即時雙向事件通訊引擎
|
||||
- [Electron](https://www.electronjs.org/) - 跨平台桌面應用開發框架
|
||||
- [Hugging Face Transformers](https://huggingface.co/docs/transformers.js) - 本地 ML 推理庫
|
||||
- [Hugging Face Transformers](https://huggingface.co/docs/transformers.js) - 本機 ML 推論庫
|
||||
|
||||
感謝以下組織/單位/個人為 Toonflow 提供支援:
|
||||
|
||||
@ -694,7 +582,7 @@ Toonflow 基於 Apache-2.0 協議開源發布,並附有補充商業協議。
|
||||
<tr>
|
||||
<th align="center">Logo</th>
|
||||
<th align="center">名稱</th>
|
||||
<th align="center">支援方式</th>
|
||||
<th align="center">支持方式</th>
|
||||
<th>簡介</th>
|
||||
<th align="center">官網</th>
|
||||
</tr>
|
||||
@ -704,30 +592,19 @@ Toonflow 基於 Apache-2.0 協議開源發布,並附有補充商業協議。
|
||||
<td align="center"><img src="./sponsored/sophnet.png" alt="算能雲 Logo" width="48"></td>
|
||||
<td align="center"><b>算能雲</b></td>
|
||||
<td align="center">💻 算力贊助</td>
|
||||
<td>致力於打造更快、更穩、更省的一站式模型推理API服務平台</td>
|
||||
<td>致力於打造更快、更穩、更省的一站式模型推理 API 服務平台</td>
|
||||
<td align="center"><a href="https://www.sophnet.com/">官網</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">💻 算力贊助</td>
|
||||
<td>全球首個全模態推理平台。對話、圖像、影片、音訊——全部統一 API。300+ 模型,OpenAI 相容。</td>
|
||||
<td>全球首個全模態推理平台。對話、圖像、視頻、音頻——全部統一 API。300+ 模型,OpenAI 兼容。</td>
|
||||
<td align="center"><a href="https://www.atlascloud.ai/">官網</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><img src="./sponsored/hunyuan.webp" alt="騰訊混元3D Logo" width="48"></td>
|
||||
<td align="center"><b>騰訊混元3D</b></td>
|
||||
<td align="center">🌐 世界模型技術支援</td>
|
||||
<td>騰訊混元3D AI創作引擎基於騰訊混元3D生成大模型2.5版本,業界首個一站式3D內容AI創作平台。具備文生、圖生3D、3D動畫生成、紋理生成等功能,支援草圖生3D、3D人物生成,有低多邊形模型生成優勢。</td>
|
||||
<td align="center"><a href="https://3d.hunyuan.tencent.com/">官網</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
完整的第三方依賴清單請查閱 `NOTICES.txt`
|
||||
完整的第三方相依性清單請查閱 `NOTICES.txt`
|
||||
|
||||
##### copyright © 北京愛阿科技有限公司
|
||||
|
||||
|
||||
|
||||
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=6,11,20&height=100§ion=footer" width="100%"/>
|
||||
##### copyright © 淮北艾阿網絡科技有限公司
|
||||
|
Before Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 153 KiB |
|
Before Width: | Height: | Size: 344 KiB |
|
Before Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 345 KiB |
|
Before Width: | Height: | Size: 99 KiB |
|
Before Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 360 KiB |
|
Before Width: | Height: | Size: 117 KiB |
|
Before Width: | Height: | Size: 149 KiB |
|
Before Width: | Height: | Size: 11 KiB |
@ -1,14 +0,0 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: ClusterIssuer
|
||||
metadata:
|
||||
name: letsencrypt-prod
|
||||
spec:
|
||||
acme:
|
||||
server: https://acme-v02.api.letsencrypt.org/directory
|
||||
email: airlabsv001@gmail.com
|
||||
privateKeySecretRef:
|
||||
name: letsencrypt-prod-key
|
||||
solvers:
|
||||
- http01:
|
||||
ingress:
|
||||
class: traefik
|
||||
@ -1,8 +0,0 @@
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: Middleware
|
||||
metadata:
|
||||
name: redirect-https
|
||||
spec:
|
||||
redirectScheme:
|
||||
scheme: https
|
||||
permanent: true
|
||||
@ -1,111 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: toonflow
|
||||
labels:
|
||||
app: toonflow
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: toonflow
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: toonflow
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: cr-pull-secret
|
||||
initContainers:
|
||||
- name: init-toonflow-data
|
||||
image: ${CI_REGISTRY_IMAGE}/toonflow:latest
|
||||
imagePullPolicy: Always
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- |
|
||||
set -eu
|
||||
mkdir -p /persist/assets /persist/oss /persist/logs /persist/modelPrompt /persist/skills /persist/vendor
|
||||
[ -f /persist/db2.sqlite ] || : > /persist/db2.sqlite
|
||||
for dir in assets modelPrompt skills vendor; do
|
||||
if [ -d "/app/data/$dir" ] && [ -z "$(find "/persist/$dir" -mindepth 1 -maxdepth 1 2>/dev/null)" ]; then
|
||||
cp -a "/app/data/$dir/." "/persist/$dir/"
|
||||
fi
|
||||
done
|
||||
volumeMounts:
|
||||
- name: toonflow-data
|
||||
mountPath: /persist
|
||||
containers:
|
||||
- name: toonflow
|
||||
image: ${CI_REGISTRY_IMAGE}/toonflow:latest
|
||||
imagePullPolicy: Always
|
||||
ports:
|
||||
- containerPort: 10588
|
||||
env:
|
||||
- name: NODE_ENV
|
||||
value: "prod"
|
||||
- name: PORT
|
||||
value: "10588"
|
||||
- name: ossURL
|
||||
value: "https://videoflow.airlabs.art"
|
||||
volumeMounts:
|
||||
- name: toonflow-data
|
||||
mountPath: /app/data/db2.sqlite
|
||||
subPath: db2.sqlite
|
||||
- name: toonflow-data
|
||||
mountPath: /app/data/oss
|
||||
subPath: oss
|
||||
- name: toonflow-data
|
||||
mountPath: /app/data/assets
|
||||
subPath: assets
|
||||
- name: toonflow-data
|
||||
mountPath: /app/data/logs
|
||||
subPath: logs
|
||||
- name: toonflow-data
|
||||
mountPath: /app/data/modelPrompt
|
||||
subPath: modelPrompt
|
||||
- name: toonflow-data
|
||||
mountPath: /app/data/skills
|
||||
subPath: skills
|
||||
- name: toonflow-data
|
||||
mountPath: /app/data/vendor
|
||||
subPath: vendor
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /favicon.ico
|
||||
port: 10588
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 15
|
||||
timeoutSeconds: 5
|
||||
failureThreshold: 4
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /favicon.ico
|
||||
port: 10588
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
failureThreshold: 6
|
||||
resources:
|
||||
requests:
|
||||
memory: "1Gi"
|
||||
cpu: "500m"
|
||||
limits:
|
||||
memory: "4Gi"
|
||||
cpu: "2"
|
||||
volumes:
|
||||
- name: toonflow-data
|
||||
persistentVolumeClaim:
|
||||
claimName: toonflow-data
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: toonflow
|
||||
spec:
|
||||
selector:
|
||||
app: toonflow
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 10588
|
||||
targetPort: 10588
|
||||
@ -1,24 +0,0 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: toonflow-ingress
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: "traefik"
|
||||
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
||||
traefik.ingress.kubernetes.io/router.middlewares: "default-redirect-https@kubernetescrd"
|
||||
spec:
|
||||
tls:
|
||||
- hosts:
|
||||
- videoflow.airlabs.art
|
||||
secretName: toonflow-tls
|
||||
rules:
|
||||
- host: videoflow.airlabs.art
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: toonflow
|
||||
port:
|
||||
number: 10588
|
||||
@ -1,10 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: toonflow-data
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 50Gi
|
||||
@ -1,36 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
DATA_DIR="${TOONFLOW_DATA_DIR:-/app/data}"
|
||||
SEED_DIR="/opt/toonflow-data"
|
||||
|
||||
mkdir -p "$DATA_DIR"
|
||||
|
||||
seed_path() {
|
||||
name="$1"
|
||||
if [ -e "$SEED_DIR/$name" ] && [ ! -e "$DATA_DIR/$name" ]; then
|
||||
cp -a "$SEED_DIR/$name" "$DATA_DIR/$name"
|
||||
fi
|
||||
}
|
||||
|
||||
seed_dir_if_empty() {
|
||||
name="$1"
|
||||
if [ -d "$SEED_DIR/$name" ]; then
|
||||
mkdir -p "$DATA_DIR/$name"
|
||||
if [ -z "$(find "$DATA_DIR/$name" -mindepth 1 -maxdepth 1 2>/dev/null)" ]; then
|
||||
cp -a "$SEED_DIR/$name/." "$DATA_DIR/$name/"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
for path in assets models serve web version.txt; do
|
||||
seed_path "$path"
|
||||
done
|
||||
|
||||
for path in modelPrompt skills vendor; do
|
||||
seed_dir_if_empty "$path"
|
||||
done
|
||||
|
||||
mkdir -p "$DATA_DIR/oss" "$DATA_DIR/logs"
|
||||
|
||||
exec "$@"
|
||||