Skip to content

KikoPlayProject/Asteria

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Asteria吐槽自动机

"让本地看番不再孤单。"

Asteria 是一个基于多模态大模型(VLM + LLM)的本地视频弹幕生成工具。它能像人类观众一样“看”懂视频画面,理解剧情发展,并生成具有特定人设风格的弹幕。(目前还属于玩具)

✨ 核心特性

  • 👁️ 本地视觉感知: 利用轻量级多模态模型 (如 MiniCPM-V) 在本地分析画面,保护隐私且零成本。
  • 🧠 远程LLM吐槽: 将视觉信号转化为“微型剧本”,发送给云端大模型 (DeepSeek/GPT) 进行深度理解与吐槽。
  • 🎭 角色扮演系统: 支持设定 AI 的吐槽风格(犀利、玩梗、发癫、科普),拒绝机械式评论。
  • 📚 Bangumi 联动: 自动获取番剧背景与角色立绘,实现精准的角色识别。
  • 🚀 流水线架构: 采用 Pull 模式的流式处理,内存占用极低,支持长视频处理。
  • 🖥️ 双模式运行: 提供 PyQt6 图形界面 (GUI) 和 命令行工具 (CLI)。

🏗️ 架构流程 (The Pipeline)

Asteria 通过 4 个阶段的流水线处理视频:

graph LR
    A[🎥 帧抽取] -->|过滤相似帧| B(👁️ 视觉感知)
    B -->|JSON 描述| C(📜 微剧本聚合)
    C -->|场景流| D{🧠 弹幕生成}
    D -->|XML| E[💬 最终弹幕]
Loading
Stage 1: Frame Extraction - 智能截取关键帧,通过直方图算法过滤相似画面。

Stage 2: Vision Analysis - 调用本地 VLM 识别画面内容(人物、动作、字幕)。

Stage 3: Script Generation - 将碎片化的视觉信息聚合成连贯的“微型剧本”。

Stage 4: Danmaku Creation - 远程 LLM 结合人设与剧情上下文,生成吐槽。

🛠️ 快速开始

  1. 环境准备

测试环境为python 3.12.12

# 克隆项目
git clone https://github.com/KikoPlayProject/Asteria.git
cd Asteria

# 安装依赖
pip install -r requirements.txt
  1. 启动本地视觉服务

测试使用llama.cpp本地运行MiniCPM-V 4.5模型int4量化版本(魔塔获取),8G显存即可运行

# 示例:使用 llama-server 启动,请将下载的模型放到合适的位置
./llama-server -m ..\minicpm-v-4-5\ggml-model-Q4_K_M.gguf --mmproj ..\minicpm-v-4-5\mmproj-model-f16.gguf -ngl 99 -c 4096
  1. 运行 Asteria (GUI 模式)
python gui.py

演示视频:bilibili

在界面中:

输入输出: 选择视频文件,输入Bangumi ID(用于获取角色设定)或自定义背景信息。

模型配置: 填写本地 VLLM 地址和远程 LLM (DeepSeek/OpenAI) 的 API信息。

分析输出: 点击“启动流水线”,实时观看 AI 的推理过程。

  1. 运行 Asteria (CLI 模式)
python cli.py --video_file "example.mp4" --bgm_id 424622 --output_file "danmaku.xml"

⚙️ 配置文件

项目的主要配置位于 config/ 目录:

settings.yaml: 默认的 API 地址、模型名称、阈值参数。

prompts.yaml:

    VLM Prompt: 指导本地模型如何提取 JSON。

    LLM Prompt:远程LLM吐槽相关prompt

    Personas: 定义不同的弹幕人设。

🤝 贡献

欢迎提交 Issue 和 Pull Request!

About

Asteria吐槽自动机:基于多模态大模型(VLM + LLM)的本地视频弹幕生成工具

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages