Skip to content

Latest commit

 

History

History
407 lines (293 loc) · 10.6 KB

README-CN.md

File metadata and controls

407 lines (293 loc) · 10.6 KB

LingtiStudio

LingtiStudio doggie

Lingti 在中文里是“灵缇”,也就是速度极快的灰狗。
LingtiStudio 的目标不只是“生成一个视频”,而是帮助你更快地把一个想法变成一整条完整的视频生产流程。

从一个主题出发,LingtiStudio 可以把流程串起来:

脚本 -> 审核 -> 关键帧 -> 配音 -> 视频片段 -> 组装 -> 成片

它既适合短视频,也适合更长、分镜更多、需要审核与恢复能力的 AI 视频生产场景。

English README


演示视频

LingtiStudio B站视频封面 视频演示:LingtiStudio 开源介绍与效果展示

如果你想先看实际效果、界面流程和生成结果,再决定是否上手,可以直接看这支 B 站视频。

点击前往 B站观看

截图

LingtiStudio 首页 LingtiStudio 视频生成页 LingtiStudio 成片结果页
首页 视频生成工作台 成片结果页

项目简介

LingtiStudio 是一个适合本地运行的开源 AI 视频生产系统。

它不是把几个脚本随便拼在一起,而是把整条生成链路尽量做成“一个产品”:

  • 文案 / 选题生成脚本
  • 人工审核分镜
  • 人物 / 场景 / 道具资产生成与确认
  • 关键帧图片生成
  • TTS 配音
  • 图生视频
  • FFmpeg 拼接成片
  • 字幕导出
  • 剪映 / CapCut 草稿生成

你可以用它来做:

  • 短视频内容
  • 广告风格视频
  • 讲解类视频
  • 多分镜故事视频
  • 更长的视频项目

它更适合“可恢复、可审核、可排错”的创作流程,而不是一次性黑盒生成。


为什么它更像生产系统

很多 AI 视频产品擅长的是“给你一个结果”。
LingtiStudio 更强调的是“给你一条完整流程”。

它重点解决的是:

  • 可审核:高成本生成前先看脚本和分镜
  • 可先确认资产:先把人物、场景和道具图确认下来,再进入全量生成
  • 可恢复:从脚本、视频阶段或组装阶段继续,而不是从头重来
  • 一致性:让音色、风格、画幅、提示词在多分镜里尽量保持统一
  • 更适合长流程:比起单次 prompt,更适合处理多场景、长一点的视频项目
  • 本地可控:配置、产物、字幕、草稿都在你自己的机器上

全流程一键化

LingtiStudio 的核心价值,是把长视频 / 多分镜 AI 生成流程尽量一键化:

  1. 从主题或对标分析生成脚本
  2. 在网页里审核并修改分镜
  3. 先生成一组可确认的资产包:人物、场景风格、道具
  4. 在网页里确认这些资产,再继续后续生成
  5. 为每个分镜生成关键帧,并优先复用已确认资产保证一致性
  6. 为每个分镜生成配音
  7. 用 MiniMax Video、Kling 或 Seedance 生成视频片段
  8. 自动组装转场、音频、字幕与最终成片
  9. 导出 MP4、字幕文件、剪映 / CapCut 草稿

也就是说,它不是只帮你“生成一段视频”,而是帮你把从脚本到成片的整条 AI 视频工作流整合起来。


当前技术栈

  • 后端:FastAPI
  • 前端:Next.js + Ant Design
  • LLM:DeepSeek / MiniMax / Gemini / OpenAI / Kimi / Zhipu / Ollama
  • 图片:MiniMax Image / Gemini 生图
  • 视频:MiniMax Video / Kling / Seedance
  • 配音:MiniMax
  • 拼接:FFmpeg

支持的模型

下面这张表对应的是当前网页 Setup 和运行时配置里内置暴露的 provider / model 选项。

阶段 Provider 内置模型
脚本 / 规划 MiniMax MiniMax-M2.5, MiniMax-M2.7
脚本 / 规划 DeepSeek deepseek-chat, deepseek-reasoner
脚本 / 规划 Moonshot Kimi moonshot-v1-8k, moonshot-v1-32k
脚本 / 规划 Zhipu glm-4, glm-4-air
脚本 / 规划 Gemini gemini-2.5-flash, gemini-1.5-pro
脚本 / 规划 OpenAI gpt-4o, gpt-4.1-mini
脚本 / 规划 Ollama qwen2.5:latest, llama3.1:8b
关键帧生图 MiniMax Image image-01
关键帧生图 Nano Banana / Gemini Image gemini-2.0-flash-preview-image-generation, gemini-3-pro-image-preview
配音 / TTS MiniMax TTS speech-2.8-hd, speech-02-hd
视频片段生成 MiniMax Video MiniMax-Hailuo-2.3-Fast, MiniMax-Hailuo-2.3, T2V-01-Director
视频片段生成 Kling kling-v3
视频片段生成 Seedance doubao-seedance-1-5-pro-250528, Doubao-Seedance-1.0-pro
组装 / 字幕 / 导出 本地 FFmpeg 取决于本机环境

说明:

  • 网页里展示的是当前内置的推荐选项;如果你需要,也可以手动编辑 configs/config.yaml。
  • 当前只有 MiniMax 在前端里提供内置音色目录和试听能力。
  • 最终组装依赖本地 FFmpeg,所以字幕烧录和部分转场是否可用,取决于你的 FFmpeg 构建能力。

首次使用

当网页检测到缺少必要配置时,会自动弹出配置窗口。

你可以直接在网页里选择并配置:

  • 默认 LLM provider 与 model
  • 图片 provider 与 model
  • 视频 provider 与 model
  • TTS model
  • 对应服务的 API Key

网页保存后的配置默认写入:

configs/config.yaml

如果你更喜欢手动配置,也可以先复制示例文件:

cp configs/config.example.yaml configs/config.yaml

快速开始

1. 依赖要求

  • Python 3.10+
  • Node.js 18+
  • 已安装 FFmpeg,并且可在 PATH 中访问

验证 FFmpeg:

ffmpeg -version

2. 安装

git clone https://github.com/ruilisi/LingtiStudio.git
cd LingtiStudio

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

cd frontend
yarn install
cd ..

3. 启动后端

.venv/bin/python -m uvicorn api.server:app --host 0.0.0.0 --port 8000

4. 启动前端

cd frontend
yarn dev --port 3001

打开:

http://127.0.0.1:3001

如果配置不完整,系统会自动弹出引导配置窗口。


Docker

LingtiStudio 现在也提供面向 release 的 Docker 方案,用户可以先把产品跑起来,再在浏览器里完成 API token 配置。

这版 release 镜像会刻意做轻量化:

  • 优先服务于 脚本 -> 审核 -> 关键帧 -> 配音 -> 视频片段 -> 组装 这条主流程
  • 默认不把本地 Whisper / Torch 这类重依赖打进镜像
  • 像 pyJianYingDraft 这种可选集成,缺失时会自动回退

直接使用预编译镜像

带 tag 的 release 可以通过 GitHub Actions 自动发布到 GHCR,用户可以直接运行:

docker run --rm \
  -p 3000:3000 \
  -p 8000:8000 \
  -v "$(pwd)/configs:/app/configs" \
  -v "$(pwd)/data:/app/data" \
  --name lingtistudio \
  ghcr.io/ruilisi/lingtistudio:v1.1.0

如果你不想在本地自己构建镜像,这会是一个更省事的路径。

方案 1:Docker Compose

docker compose up -d --build

启动后打开:

http://localhost:3000

首次使用时:

  • LingtiStudio 会自动弹出网页配置窗口
  • 用户可以直接在浏览器里选择 provider 和 model
  • API token 会写入 ./configs/config.yaml
  • 输出文件、上传素材和本地运行数据会落在 ./data

默认端口:

  • Web UI:3000
  • API:8000

方案 2:单 Docker 镜像

构建镜像:

docker build -t lingtistudio:latest .

运行:

docker run --rm \
  -p 3000:3000 \
  -p 8000:8000 \
  -v "$(pwd)/configs:/app/configs" \
  -v "$(pwd)/data:/app/data" \
  --name lingtistudio \
  lingtistudio:latest

然后打开:

http://localhost:3000

这条路径适合开源 release 场景:

  • 一个镜像即可启动
  • 通过浏览器完成首次配置
  • 配置和产物都能持久化到宿主机

说明:

  • 这是一版更偏运行时的轻量镜像,不是完整开发镜像
  • 如果你确实需要把本地 ASR / Whisper 能力一起打进 Docker,建议在此基础上自己扩展
  • 对大多数用户来说,只要通过浏览器完成配置,并接好外部 provider,就已经可以直接开始生成视频

CLI 用法

直接用命令行发起视频任务:

.venv/bin/python cli/main.py run --topic "上海附近现代养老酒店,40 秒,横版介绍视频"

测试各模块连接情况:

.venv/bin/python cli/main.py test --module llm
.venv/bin/python cli/main.py test --module image
.venv/bin/python cli/main.py test --module tts
.venv/bin/python cli/main.py test --module video

Web 界面

主要页面:

  • / 首页
  • /create 快速生成
  • /studio 专业工作台
  • /analyze 对标视频分析
  • /settings 配置与连接器

主要能力:

  • 首次使用自动弹出配置
  • 更友好的 provider / model 配置界面
  • 分镜审核后再继续生成
  • 支持中断恢复
  • 实时控制台日志
  • 成片、字幕、剪映草稿下载

关于音色选择

当前内置音色目录和试听能力只对 MiniMax TTS 生效。

如果当前 TTS provider 不是 MiniMax,前端不会再展示 MiniMax 音色选择框,而是切换为:

  • 手动填写 voice_id

这样即使你使用自定义或外部维护的 voice_id 方案,界面也不会误导你去选一个不适用的 MiniMax 音色。


目录结构

api/                FastAPI 后端
cli/                命令行入口
core/               配置加载和共享设置
modules/            LLM / 图片 / TTS / 视频 / 组装模块
frontend/           Next.js 前端
configs/            示例配置和本地配置
data/               输出、上传、缓存等运行数据

说明

  • 这个项目当前更偏向本地创作工作流,而不是多租户 SaaS。
  • 某些 provider 已经能在界面层配置,但后端仍然以当前已接好的能力为主。
  • FFmpeg 功能依赖你的本地构建。如果本机不支持字幕烧录,LingtiStudio 仍然可以输出 MP4 + SRT。

License

MIT