# 小说一键生成视频动画 **Repository Path**: angellghost/shuling ## Basic Information - **Project Name**: 小说一键生成视频动画 - **Description**: 通过豆包系列模型,将小说章节一键生成视频动画。支持自定义生成人物形象角色,自定义生成剧情场景。支持多镜头视频角色场景统一。只需要输入小说内容,自动分镜,自动提取角色名称形象描述。总之就是一个字“简单”! - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 13 - **Forks**: 7 - **Created**: 2026-01-01 - **Last Updated**: 2026-01-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 小说生成视频系统 ## 项目概述 小说生成视频系统是一个基于AI技术的视频生成平台,能够将小说内容自动转换为视频。系统采用前后端分离架构,后端提供API服务,前端提供可视化操作界面。 ## 技术栈 ### 后端 - **Web框架**: FastAPI - **服务端渲染**: Uvicorn - **任务队列**: Celery - **数据库**: SQLite - **ORM框架**: SQLAlchemy - **配置管理**: Pydantic Settings ### 前端 - **框架**: Vue 3 - **构建工具**: Vite - **路由**: Vue Router - **状态管理**: Pinia ## 安装步骤 ### 1. 环境要求 - Python 3.10+ - Node.js 16+ (用于前端构建,可选) ### 2. 安装依赖 #### 后端依赖 ```bash # 进入项目根目录 cd d:\小说生成视频 # 安装Python依赖 pip install -r requirements.txt # 如果下载速度慢,请用下面的国内源安装指令 pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com ``` #### 前端依赖 (可选) 如果需要修改前端代码,需要安装前端依赖: ```bash # 进入前端目录 cd frontend # 安装Node.js依赖 npm install # 构建前端代码 npm run build ``` ## 启动步骤 ### 1. 启动所有服务 系统提供了一个统一的启动脚本,可以一键启动所有服务: ```bash # 进入项目根目录 cd d:\小说生成视频 # 启动所有服务 python start_services.py ``` 或双击 启动程序.bat ### 2. 服务启动流程 启动脚本会按照以下顺序启动服务: 1. **FastAPI服务** (端口8000) - 提供API接口 2. **Celery Worker** - 处理异步任务 3. **Celery Beat** - 定时任务调度 4. **Web服务** (端口8080) - 提供前端静态文件服务 服务启动后,会自动打开默认浏览器访问前端页面:http://127.0.0.1:8080 ## 服务访问方式 - **前端页面**: http://127.0.0.1:8080 - **后端API**: http://127.0.0.1:8000 - **API文档**: http://127.0.0.1:8000/docs ## 项目结构 ``` 小说生成视频/ ├── app/ # 后端应用目录 │ ├── models/ # 数据库模型 │ ├── routers/ # API路由 │ ├── tasks/ # Celery任务 │ ├── schemas/ # 数据验证模式 │ ├── database.py # 数据库配置 │ ├── celery.py # Celery配置 │ └── celery_config.py # Celery配置参数 ├── frontend/ # 前端应用目录 │ ├── dist/ # 构建后的静态文件 │ ├── src/ # 源代码 │ └── package.json # 前端依赖 ├── static/ # 静态文件存储目录 ├── main.py # FastAPI应用入口 ├── start_services.py # 服务启动脚本 └── requirements.txt # Python依赖 ``` ## 核心功能 1. **小说章节管理** - 上传和管理小说章节 2. **角色管理** - 管理视频中的角色 3. **场景管理** - 管理视频场景 4. **分镜生成** - 根据小说内容生成视频分镜 5. **视频生成** - 将分镜转换为视频 6. **任务管理** - 查看和管理视频生成任务 7. **视频风格管理** - 管理视频生成风格 ## 停止服务 按 `Ctrl+C` 可以停止所有服务。 ## 火山引擎配置 ### 1. 火山引擎AI模型APIKEY配置 #### 获取方法 1. 登录火山引擎控制台:https://console.volcengine.com/ 2. 进入**火山方舟** > **apikey管理** > **查看key**:https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey 3. 申请或查看您的API密钥 4. 将获取到的APIKEY配置到`前端-配置管理`栏目的`ARK_API_KEY`字段中 5. 进入**火山方舟** > **开通管理** > 找到【Doubao-Seed-1.6】【Doubao-Seedance-1.5-pro】【Doubao-Seedream-4.5】这三个模型,点击操作中的【开通服务】 #### 在线文档 - ARK平台文档:https://www.volcengine.com/docs/82379/1099504?lang=zh - API密钥管理:https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey ### 2. 火山TOS配置 火山TOS(对象存储)用于存储上传的文件和生成的视频。 #### 配置字段说明 | 配置项 | 说明 | 获取链接 | |--------|------|----------| | `TOS_ACCESS_KEY` | 火山引擎访问密钥ID | https://console.volcengine.com/iam/keymanage | | `TOS_SECRET_KEY` | 火山引擎访问密钥密钥 | https://console.volcengine.com/iam/keymanage | | `TOS_BUCKET_NAME` | TOS存储桶名称 | https://console.volcengine.com/tos/bucket | | `TOS_ENDPOINT` | TOS服务端点(根据存储桶区域选择) | 桶列表->点击桶名称->概览->访问域名->Endpoint (地域节点)->外网访问 | | `TOS_EXTERNAL_DOMAIN` | TOS外网访问域名 | 桶列表->点击桶名称->概览->访问域名->Bucket 域名->外网访问 | #### 详细获取步骤 1. **创建TOS存储桶** - 登录火山引擎控制台 - 进入**对象存储TOS** > **存储桶管理**:https://console.volcengine.com/tos/bucket - 点击**创建存储桶**,设置存储桶名称、区域等信息【注意:权限一定要写公共读写!!!!!】 - 记录存储桶名称(TOS_BUCKET_NAME)和所属区域 2. **获取访问密钥** - 进入**访问控制IAM** > **密钥管理**:https://console.volcengine.com/iam/keymanage - 创建或查看您的访问密钥(Access Key ID和Secret Access Key) - 记录Access Key ID(TOS_ACCESS_KEY)和Secret Access Key(TOS_SECRET_KEY) 3. **获取服务端点** - 根据存储桶所属区域,查找对应的TOS服务端点 - 端点列表:桶列表->点击桶名称->概览->访问域名->Endpoint (地域节点)->外网访问 - 记录服务端点(TOS_ENDPOINT) 4. **配置外网访问域名** - 进入存储桶详情页 > 桶列表->点击桶名称->概览->访问域名->Bucket 域名->外网访问 - 配置或查看外网访问域名 - 记录外网访问域名(TOS_EXTERNAL_DOMAIN) 5. **配置.env文件** - 将获取到的所有配置项添加到`前端-配置管理`栏目对应的字段中 - 更新文件后必须重启程序才可生效! ## 注意事项 1. 首次启动时,系统会自动创建数据库和所需的表结构 2. 视频生成需要较长时间,请耐心等待 3. 建议使用Python虚拟环境来隔离项目依赖 4. 在生产环境中,建议使用更强大的数据库替代SQLite 5. 确保配置的火山引擎API密钥和TOS配置正确,否则会影响AI模型调用和文件存储功能 6. TOS储存和AI模型都会产生费用,请根据实际使用情况在火山引擎控制台查看和管理费用。建议使用前在平台先预充部分余额。 ## 故障排查 ### 服务启动失败 - 检查端口是否被占用 - 确认依赖是否正确安装 - 查看终端输出的错误信息 ### 视频生成失败 - 检查任务状态和日志 - 确认API配置是否正确 - 检查网络连接是否正常 ## 许可证 MIT License ## 视频教程 - https://www.bilibili.com/video/BV1HWv9BgEHx ## 交流群 - 734340800