Skip to content

qbox/agent-sdk

Repository files navigation

Agent SDK - AI 小说转视频生成平台

基于 Next.js + FastAPI 构建的全栈 AI 小说转视频生成平台,支持从小说文本自动生成带有图像、配音和字幕的动漫视频。

功能特点

  • 小说解析:支持多种格式(TXT、EPUB、PDF、DOCX)
  • 场景分割:智能识别章节和场景边界
  • 角色管理:自动提取角色信息并保持视觉一致性
  • 图像生成:基于七牛云 AI API 生成动漫风格图像
  • 配音合成:支持多角色语音区分和情感控制
  • 视频合成:自动生成MP4视频,支持字幕和背景音乐
  • Web界面:现代化的前端界面,支持实时预览

技术栈

前端

  • 框架: Next.js 14 (App Router)
  • 语言: TypeScript
  • UI 库: shadcn/ui + Tailwind CSS
  • 状态管理: Zustand
  • HTTP 客户端: Axios
  • 视频播放: react-player

后端

  • 框架: FastAPI
  • 图像生成: 七牛云 AI API (gemini-2.5-flash-image)
  • TTS引擎: Edge TTS / OpenAI TTS
  • 视频处理: MoviePy、FFmpeg
  • 数据库: SQLite

项目结构

agent-sdk/
├── frontend/                  # 前端应用
│   ├── src/
│   │   ├── app/              # Next.js App Router 页面
│   │   │   ├── layout.tsx   # 根布局
│   │   │   ├── page.tsx     # 首页
│   │   │   ├── upload/      # 上传页面
│   │   │   ├── characters/  # 角色管理页面
│   │   │   ├── styles/      # 风格配置页面
│   │   │   ├── tasks/       # 任务列表页面
│   │   │   ├── preview/[taskId]/  # 预览页面
│   │   │   └── api/         # API 路由
│   │   ├── components/
│   │   │   ├── ui/          # 基础 UI 组件
│   │   │   └── features/    # 功能组件
│   │   ├── lib/             # 工具函数
│   │   ├── stores/          # Zustand 状态管理
│   │   ├── types/           # TypeScript 类型定义
│   │   └── styles/          # 全局样式
│   ├── package.json         # 前端依赖配置
│   ├── next.config.js       # Next.js 配置
│   ├── tailwind.config.ts   # Tailwind CSS 配置
│   ├── postcss.config.js    # PostCSS 配置
│   └── tsconfig.json        # TypeScript 配置
├── backend/              # 后端代码目录
│   ├── api/             # API接口层
│   │   ├── main.py     # FastAPI应用入口
│   │   └── routes/     # API路由
│   ├── services/        # 核心服务模块
│   │   ├── novel_processing/  # 小说处理
│   │   ├── character_management/  # 角色管理
│   │   ├── image_generation/  # 图像生成
│   │   ├── voice/      # 配音服务
│   │   └── video_composition/  # 视频合成
│   ├── models/         # 数据模型
│   ├── config/         # 配置管理
│   └── requirements.txt  # Python依赖
├── docker-compose.yml  # Docker编排
├── Dockerfile         # Docker镜像定义
├── package.json       # 根项目配置
└── README.md          # 项目文档

快速开始

环境要求

  • Node.js 18+
  • Python 3.10+
  • Docker & Docker Compose (可选)
  • FFmpeg

安装步骤

  1. 克隆仓库
git clone https://github.com/qbox/agent-sdk.git
cd agent-sdk
  1. 安装依赖
# 安装根项目依赖
npm install

# 安装前端依赖
npm run install:frontend

# 安装后端依赖
pip install -r backend/requirements.txt
  1. 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填入必要的API密钥

主要配置项(.env文件):

# 七牛云 AI 配置
OPENAI_BASE_URL=https://openai.qiniu.com/v1
OPENAI_API_KEY=your_qiniu_ai_api_key

# 数据库配置
DATABASE_URL=sqlite:///./novel_anime.db

# TTS配置(可选)
TTS_API_URL=
TTS_API_KEY=

# Volcengine TTS 配置(可选)
VOLCENGINE_APP_ID=
VOLCENGINE_ACCESS_TOKEN=
VOLCENGINE_RESOURCE_ID=
  1. 启动服务
# 启动后端API服务
python -m uvicorn backend.api.main:app --reload

# 启动前端开发服务器
npm run dev

详细操作说明视频(处理速度比较慢,视频做了适当的加速处理):http://s3um1yxzg.bkt.clouddn.com/novel2anime/xinwenlianbo.mov 视频中测试小说在:/test_novel/q.txt

访问:

图像生成 API 使用

七牛云 AI 文生图 API

# 设置环境变量
export OPENAI_BASE_URL="https://openai.qiniu.com/v1"
export OPENAI_API_KEY="<七牛云 AI API KEY>"

# 调用文生图 API
curl "$OPENAI_BASE_URL/images/generations" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -d '{
        "model": "gemini-2.5-flash-image",
        "prompt": "一只可爱的橘猫坐在窗台上看着夕阳,照片风格,高清画质"
    }'

Python 调用示例

import requests
import os

# 配置API
OPENAI_BASE_URL = "https://openai.qiniu.com/v1"
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")

# 生成图像
def generate_image(prompt: str):
    response = requests.post(
        f"{OPENAI_BASE_URL}/images/generations",
        headers={
            "Content-Type": "application/json",
            "Authorization": f"Bearer {OPENAI_API_KEY}"
        },
        json={
            "model": "gemini-2.5-flash-image",
            "prompt": prompt
        }
    )
    return response.json()

# 使用示例
result = generate_image("一个美丽的动漫女孩,长发飘逸,站在樱花树下,动漫风格,高清画质")
print(result)

开发指南

前端开发

# 从根目录运行前端开发服务器
npm run dev

# 或者直接进入前端目录运行
cd frontend && npm run dev

后端开发

# 启动后端API服务
python -m uvicorn backend.api.main:app --reload

代码规范

# 前端代码规范
npm run lint
npm run format

# 后端代码规范
cd backend && black .
cd backend && flake8 .

核心服务说明

1. Novel Processing Service(小说处理服务)

  • 支持多格式文本解析
  • 智能场景分割
  • 角色自动识别
  • 对话与旁白分离

2. Character Management Service(角色管理服务)

  • 角色信息管理
  • 参考图管理
  • 角色照片保存

3. Image Generation Service(图像生成服务)

  • 七牛云 AI API 集成
  • Prompt 智能优化
  • 角色一致性控制
  • 批量生成支持

4. Voice Service(配音服务)

  • 多TTS引擎支持(Edge TTS、OpenAI TTS)
  • 角色语音自动分配
  • 情感语调控制
  • 批量音频生成

5. Video Composition Service(视频合成服务)

  • 图像序列编排
  • 音视频同步
  • 字幕自动添加
  • 转场效果
  • 背景音乐混音

API 文档

启动后端服务后访问:

使用示例

通过API上传小说并生成视频

import requests

# 上传小说文件
with open("novel.txt", "rb") as f:
    response = requests.post(
        "http://localhost:8000/api/v1/project/create",
        json={
            "novel_file": "/path/to/novel.txt",
            "title": "我的小说",
            "style": "japanese",
            "max_scenes": 20,
            "enable_voice": True,
            "enable_bgm": False,
        }
    )

project_id = response.json()["project_id"]

# 查询生成状态
status_response = requests.get(
    f"http://localhost:8000/api/v1/project/{project_id}/status"
)
print(status_response.json())

开发计划

  • 支持更多小说格式
  • 增强角色一致性算法
  • 支持自定义动漫风格
  • 优化处理速度
  • 添加更多转场效果
  • 支持实时预览
  • 批量任务管理
  • 用户认证与权限管理

贡献指南

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交变更 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

许可证

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •