中文 | English
✨ 专注论文多模态工作流:从论文 PDF/截图/文本,一键生成模型示意图、技术路线图、实验图和演示文稿 ✨
| 📄 Universal File Support | 🎯 AI-Powered Generation | 🎨 Custom Styling | ⚡ Lightning Speed |
Tip
🆕 2026-03-28 · 可编辑版 PPT 展示更新
新增两张 可编辑版 PPT 工作流展示图:
一张用于展示多页生成后的 deck 总览,一张用于展示带主题锁定与画布编辑的编辑工作区。
Tip
🆕 2026-03-26 · 工作流展示更新
新增 Paper2Video、Paper2Poster、Paper2Citation 的展示内容。
README 已补充压缩视频演示,以及中英文两套工作流预览图。
Tip
🆕 2026-02-02 · Paper2Rebuttal 更新
新增反驳意见草拟与修改建议,支持结构化回复与图文要点对齐。
Tip
🆕 2026-01-28 · Drawio 更新
新增 Drawio 支持,用于可视化图示的快速创作与展示输出。
KB 一句话概括:支持多文件 PPT 生成(文档转换/合并 + 图片注入 + 向量检索增强)。
Tip
🆕 2026-01-20 · Bug 修复
修复了实验数据图生成的图片和文本 bug,并解决了历史文件缺失的问题。
🌐 在线体验:http://dcai-paper2any.nas.cpolar.cn/
Tip
🆕 2025-12-12 · Paper2Figure 网页端公测上线
支持一键生成多种可编辑科研绘图(模型架构图 / 技术路线图 / 实验数据图)
🌐 在线体验:http://dcai-paper2any.nas.cpolar.cn/
- 2025-10-01 · 发布
0.1.0首个版本
从论文 PDF / 图片 / 文本出发,一键生成可编辑的科研绘图、演示文稿、视频脚本、学术海报等多模态内容。
Paper2Any 当前包含以下几个子能力:
- 📊 Paper2Figure - 可编辑科研绘图:模型架构图、技术路线图(PPT + SVG)与实验数据图,输出可编辑 PPTX。
- 🧩 Paper2Diagram / Image2Drawio - 可编辑流程图:从论文/文本或图片生成 Drawio 图,支持 drawio/png/svg 导出与对话式编辑。
- 🎬 Paper2PPT - 可编辑演示文稿:论文/文本/主题一键生成,支持超长文档与表格/图表抽取。
- 📝 Paper2Rebuttal:自动生成结构化反驳草稿与修改建议,辅助审稿意见回复。
- 🖼️ PDF2PPT - 版式保留转换:精准保留版式的 PDF → 可编辑 PPTX。
- 🖼️ Image2PPT - 图片转 PPT:将图片或截图快速转换为结构化幻灯片。
- 🎨 PPTPolish 智能美化:基于 AI 的排版优化与风格迁移。
- 🎬 Paper2Video:生成讲解视频脚本与配音素材。
- 🖼️ Paper2Poster - 论文转海报:将论文 PDF 自动整理为学术海报,支持版式参数、Logo 注入与导出。
- 🔎 Paper2Citation - 论文引用追踪:按作者姓名或 DOI / 论文链接追踪引用作者、机构与代表性引用论文。
- 📚 知识库(KB):文件入库/向量化、语义检索,以及 KB 驱动的 PPT/播客/思维导图生成。
✨ 上传论文配图或截图,作为可编辑 DrawIO 的起点 |
✨ 转换前保留原图结构,便于对照核验 |
✨ 图片一键转成可编辑 DrawIO 画布 |
✨ 在 DrawIO 工作台里直接生成模型图 / 系统框架图 |
✨ 生成后可继续对话式编辑,并导出为展示友好的成品图 |
✨ 端到端 PPT 生成演示 |
✨ 从论文 / 文本 / 主题生成完整演示文稿 |
✨ 主题锁定下的画布内直接改字与逐页修订 |
✨ 导出前集中检查多页生成结果 |
✨ AI 辅助修改入口,支持定向补写与风格调整 |
✨ 细粒度大纲编辑,可直接调整章节与要点 |
✨ 超长文档支持(40+ 页) · 智能表格提取与插入 · 历史版本管理与迭代回溯
现在有两套配置方式:
- 粗粒度模式:使用
*.env.simple.example。推荐大多数自部署用户直接用这套。 - 细粒度模式:使用
*.env.example。只有需要逐个 workflow 覆盖模型和 provider 时再用。
推荐起步:
cp fastapi_app/.env.simple.example fastapi_app/.env
cp frontend-workflow/.env.simple.example frontend-workflow/.env如果确实需要细粒度覆盖,再改成:
cp fastapi_app/.env.example fastapi_app/.env
cp frontend-workflow/.env.example frontend-workflow/.env🐳 Docker 快速启动(推荐)— 部署与更新
# 1. 克隆仓库
git clone https://github.com/OpenDCAI/Paper2Any.git
cd Paper2Any
# 2. 配置环境变量
cp fastapi_app/.env.simple.example fastapi_app/.env
cp frontend-workflow/.env.simple.example frontend-workflow/.env
cp deploy/docker.env.example deploy/docker.env必须修改的配置项:
fastapi_app/.env(后端):
# 内部接口鉴权 key,必须与前端 VITE_API_KEY 一致
BACKEND_API_KEY=your-backend-api-key
# 推荐:由后端统一决定 workflow 使用的模型
APP_BILLING_MODE=free
PAPER2ANY_CONFIG_MODE=simple
# 必填:统一文本入口
SIMPLE_TEXT_API_URL=https://your-text-gateway/v1
SIMPLE_TEXT_API_KEY=your_text_key
# 可选但推荐:统一生图入口
SIMPLE_IMAGE_API_URL=https://your-image-gateway
SIMPLE_IMAGE_API_KEY=your_image_key
# 可选:DrawIO OCR / VLM 服务
SIMPLE_OCR_API_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
SIMPLE_OCR_API_KEY=your_dashscope_key
# 可选:MinerU 官方远端 API
MINERU_API_BASE_URL=https://mineru.net/api/v4
MINERU_API_KEY=your_mineru_api_key
# 可选:给 PDF2PPT / Image2PPT / Image2Drawio 使用的 SAM3 分割服务
# SAM3_SERVER_URLS=http://GPU机器IP:8001
# SAM3_SERVER_URLS=http://GPU1:8021,http://GPU2:8022
# 可选:Supabase(不填则跳过用户认证,核心功能不受影响)
# SUPABASE_URL=https://your-project-id.supabase.co
# SUPABASE_ANON_KEY=your_supabase_anon_keyfrontend-workflow/.env(前端):
# 必须与后端 BACKEND_API_KEY 完全一致
VITE_API_KEY=your-backend-api-key
# Docker 下通常保持为空,由 nginx 反代 /api 和 /outputs
VITE_API_BASE_URL=
# 前端只负责展示默认值,不控制后端真实模型
VITE_DEFAULT_LLM_API_URL=https://your-text-gateway/v1
VITE_DEFAULT_LLM_MODEL=gpt-4o
# 可选:Supabase(与后端保持一致)
# VITE_SUPABASE_URL=https://your-project-id.supabase.co
# VITE_SUPABASE_ANON_KEY=your_supabase_anon_keydeploy/docker.env(compose 覆盖项):
BACKEND_PORT=8000
FRONTEND_PORT=3000
DOCKER_APP_WORKERS=1
# 可选:本地 SAM3 容器端口
SAM3_PORT=8021
SAM3_SERVER_URLS=# 3. 构建并启动
bash deploy/docker-up.sh访问地址:
GPU 服务说明: Docker 默认启动后端 + 前端。
- Paper2PPT、Paper2Figure、知识库等功能仅依赖 LLM API,Docker 启动后即可使用。
- PDF2PPT、Image2PPT、Image2Drawio 依赖 SAM3 图像分割。
- 你可以在
fastapi_app/.env里配置外部SAM3_SERVER_URLS=..., 或者直接启用 compose 里的本地 SAM3 profile:DOCKER_WITH_SAM3=1 bash deploy/docker-up.sh详见下方「高级配置:本地模型服务负载均衡」部分。
修改与更新:
- 代码或
.env变更后重新构建:bash deploy/docker-up.sh - 拉取最新代码并重建:
git pullbash deploy/docker-up.sh
常用命令:
- 查看日志:
bash deploy/docker-logs.sh - 停止服务:
bash deploy/docker-down.sh - 只构建:
bash deploy/docker-build.sh
说明:
- 首次构建会比较慢(系统依赖 + Python 依赖)。
- 前端配置在构建期生效,修改
frontend-workflow/.env或deploy/docker.env后需重新bash deploy/docker-up.sh。 - 输出和模型目录会挂载到宿主机(
./outputs、./models),数据不会丢。
建议使用 Conda 创建隔离环境(推荐 Python 3.11)。
# 0. 创建并激活 conda 环境
conda create -n paper2any python=3.11 -y
conda activate paper2any
# 1. 克隆仓库
git clone https://github.com/OpenDCAI/Paper2Any.git
cd Paper2Any
# 2. 安装基础依赖
pip install -r requirements-base.txt
# 3. 开发模式安装
pip install -e .Paper2Any 涉及 LaTeX 渲染、矢量图处理以及 PPT/PDF 转换,需要额外依赖。
当前依赖边界建议如下:
requirements-base.txt:跨平台通用 Python 运行时requirements-paper.txt:论文 / PDF / 科研绘图相关额外 Python 包requirements-cu12.txt:NVIDIA CUDA 12 的 Linux GPU 额外依赖requirements-system-ubuntu.txt:Ubuntu/Debian 系统包,不是 Python 包
# 1. 论文 / PDF / 科研绘图额外 Python 依赖
pip install -r requirements-paper.txt
# 2. NVIDIA GPU 运行时额外依赖(仅 Linux + CUDA 12)
pip install -r requirements-cu12.txt
# 3. LaTeX 引擎 (tectonic) - 推荐用 conda 安装
conda install -c conda-forge tectonic -y
# 4. 解决 doclayout_yolo 依赖冲突(重要)
pip install doclayout_yolo --no-deps
# 5. 系统依赖 (Ubuntu 示例;完整列表见 requirements-system-ubuntu.txt)
sudo apt-get update
sudo apt-get install -y ffmpeg inkscape libreoffice poppler-utils wkhtmltopdfImportant
ffmpeg、libreoffice/soffice、inkscape、poppler-utils、wkhtmltopdf、tectonic
这些都是系统工具,不是 pip 包;deploy/start*.sh 也不会自动安装它们。
export DF_API_KEY=your_api_key_here
export DF_API_URL=xxx # 可选:如需使用第三方 API 中转站
export MINERU_DEVICES="0,1,2,3" # 可选:MinerU 任务 GPU 资源池📝 点击展开:详细的 .env 配置指南
Paper2Any 使用两个 .env 文件进行配置。两者都是可选的 - 您可以使用默认设置运行应用程序。
# 复制后端环境文件
cp fastapi_app/.env.example fastapi_app/.env
# 复制前端环境文件
cp frontend-workflow/.env.example frontend-workflow/.envSupabase(可选) - 仅在需要用户认证和云存储时配置:
SUPABASE_URL=https://your-project-id.supabase.co
SUPABASE_ANON_KEY=your_supabase_anon_key模型配置 - 自定义不同工作流使用的模型:
# 默认 LLM API 地址
DEFAULT_LLM_API_URL=http://123.129.219.111:3000/v1/
# 工作流级别默认值
PAPER2PPT_DEFAULT_MODEL=gpt-5.1
PAPER2PPT_DEFAULT_IMAGE_MODEL=gemini-3-pro-image-preview
PDF2PPT_DEFAULT_MODEL=gpt-4o
# ... 完整列表请查看 .env.example服务集成配置 - 图片/PDF 工作流相关的模型服务:
# DrawIO OCR / VLM
PAPER2DRAWIO_OCR_API_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
PAPER2DRAWIO_OCR_API_KEY=your_dashscope_key
# MinerU 官方远端 API;若 MINERU_API_KEY 为空,后端会回退到本地 MINERU_PORT
MINERU_API_BASE_URL=https://mineru.net/api/v4
MINERU_API_KEY=your_mineru_api_key
MINERU_API_MODEL_VERSION=vlm
# SAM3 分割服务,供 PDF2PPT / Image2PPT / Image2Drawio 使用
# 单个端点:
SAM3_SERVER_URLS=http://127.0.0.1:8001
# 或多个端点做负载均衡:
# SAM3_SERVER_URLS=http://127.0.0.1:8021,http://127.0.0.1:8022LLM 提供商配置 - 控制 UI 中的 API 端点下拉菜单:
# UI 中显示的默认 API 地址
VITE_DEFAULT_LLM_API_URL=https://api.apiyi.com/v1
# 下拉菜单中的可用 API 地址(逗号分隔)
VITE_LLM_API_URLS=https://api.apiyi.com/v1,http://b.apiyi.com:16888/v1,http://123.129.219.111:3000/v1修改 VITE_LLM_API_URLS 后的效果:
- 前端会显示一个下拉菜单,包含您指定的所有 URL
- 用户可以选择不同的 API 端点,无需手动输入 URL
- 适用于在 OpenAI、本地模型或自定义 API 网关之间切换
Supabase(可选) - 如需用户认证,取消注释这些行:
VITE_SUPABASE_URL=https://your-project.supabase.co
VITE_SUPABASE_ANON_KEY=your-anon-key如果跳过 Supabase 配置:
- ✅ 所有核心功能正常工作
- ✅ CLI 脚本不依赖 Supabase
- ❌ 无用户认证
- ❌ 无账户积分、兑换码、邀请码、历史文件等账号能力
- ❌ 无云文件存储
Note
快速开始: 您可以完全跳过 .env 配置,直接使用 CLI 脚本并通过 --api-key 参数传递密钥。详见下方 CLI 脚本 部分。
高级配置:本地模型服务负载均衡
如果是本地部署高并发环境,可以使用 script/start_model_servers.sh 启动本地模型服务集群(MinerU / SAM / OCR)。
脚本位置:/DataFlow-Agent/script/start_model_servers.sh
主要配置项说明:
-
MinerU (PDF 解析)
MINERU_MODEL_PATH: 模型路径 (默认models/MinerU2.5-2509-1.2B)MINERU_GPU_UTIL: 显存占用比例 (默认 0.85)- 实例配置: 脚本默认在每个配置 GPU 上各启动 1 个实例,端口范围 8011-8013。
- Load Balancer: 端口 8010,自动分发请求。
-
SAM3 (Segment Anything Model 3)
- 实例配置: 默认每个配置 GPU 启动 1 个实例,端口范围 8021-8022。
- 模型路径: 默认使用
./models/sam3/sam3.pt与./models/sam3/bpe_simple_vocab_16e6.txt.gz。 - Load Balancer: 端口 8020。
-
OCR (PaddleOCR)
- 配置: 运行在 CPU 上,使用 uvicorn 的 worker 机制 (默认 4 workers)。
- 端口: 8003。
使用前请根据实际 GPU 数量和显存情况修改脚本中的
gpu_id和实例数量。
如果你要在单张 GPU 上一条命令联调(SAM3 + 后端 + 前端),可执行:
bash script/start_local_sam3_dev.shNote
目前推荐优先在 Linux / WSL 环境下体验 Paper2Any。 若你需要在 原生 Windows 上部署,请按以下步骤操作。
# 0. 创建并激活 conda 环境
conda create -n paper2any python=3.12 -y
conda activate paper2any
# 1. 克隆仓库
git clone https://github.com/OpenDCAI/Paper2Any.git
cd Paper2Any
# 2. 安装基础依赖
pip install -r requirements-win-base.txt
# 3. 开发模式安装
pip install -e .Paper2Any 涉及 LaTeX 渲染与矢量图处理,需要额外依赖:
# Python 依赖
pip install -r requirements-paper.txt
# NVIDIA GPU 运行时额外依赖(仅 Linux,需要时再装)
# pip install -r requirements-cu12.txt
# tectonic:LaTeX 引擎(推荐用 conda 安装)
conda install -c conda-forge tectonic -y🎨 安装 Inkscape(SVG/矢量图处理|推荐/必装)
- 下载并安装(Windows 64-bit MSI):Inkscape Download
- 将 Inkscape 可执行文件目录加入系统环境变量 Path(示例):
C:\Program Files\Inkscape\bin\
Tip
配置 Path 后建议重新打开终端(或重启 VS Code / PowerShell),确保环境变量生效。
发布页参考:vllm-windows releases 推荐版本:0.11.0
pip install vllm-0.11.0+cu124-cp312-cp312-win_amd64.whlImportant
请确保 .whl 与当前环境匹配:
- Python:cp312(Python 3.12)
- 平台:win_amd64
- CUDA:cu124(需与你本机 CUDA/驱动适配)
Paper2Any - 论文工作流 Web 前端(推荐)
# NVIDIA 机器推荐直接使用一键入口
bash deploy/start_nv.sh本地默认访问地址:
- 前端开发服务:http://localhost:3000
- 后端健康检查:http://127.0.0.1:8000/health
本地部署常用命令:
- 推荐启动整套:
bash deploy/start_nv.sh - 仅启动后端(需先加载 profile):
set -a && source deploy/profiles/nv.env && set +a && bash deploy/start.sh - 停止后端:
./deploy/stop.sh - 重启后端:
./deploy/restart.sh
说明:
deploy/start.sh会读取deploy/app_config.sh,但不会自动加载deploy/profiles/*.env。deploy/start_nv.sh才是当前最稳妥的一键入口:它会加载deploy/profiles/nv.env、准备本地模型、启动模型服务,再启动后端和前端。- 如果修改了
APP_PORT,也要同步更新frontend-workflow/vite.config.ts里的前端代理地址。
配置前端代理
修改 frontend-workflow/vite.config.ts 中的 server.proxy:
export default defineConfig({
plugins: [react()],
server: {
port: 3000,
open: true,
allowedHosts: true,
proxy: {
'/api': {
target: 'http://127.0.0.1:8000', // FastAPI 后端地址
changeOrigin: true,
},
'/outputs': {
target: 'http://127.0.0.1:8000',
changeOrigin: true,
},
},
},
})访问 http://localhost:3000
Windows 加载 MinerU 预训练模型
# PowerShell环境下启动
vllm serve opendatalab/MinerU2.5-2509-1.2B `
--host 127.0.0.1 `
--port 8010 `
--logits-processors mineru_vl_utils:MinerULogitsProcessor `
--gpu-memory-utilization 0.6 `
--trust-remote-code `
--enforce-eager# NVIDIA 机器推荐直接使用一键入口
bash deploy/start_nv.sh访问 http://localhost:3000。
后端默认健康检查地址为 http://127.0.0.1:8000/health。
Paper2Any 提供独立的 CLI 脚本,支持命令行参数输入,可直接执行工作流,无需启动 Web 前后端。
通过环境变量配置 API 访问(可选):
export DF_API_URL=https://api.openai.com/v1 # LLM API 地址
export DF_API_KEY=sk-xxx # API 密钥
export DF_MODEL=gpt-4o # 默认模型1. Paper2Figure CLI - 生成科学图表(3种类型)
# 从 PDF 生成模型架构图
python script/run_paper2figure_cli.py \
--input paper.pdf \
--graph-type model_arch \
--api-key sk-xxx
# 从文本生成技术路线图
python script/run_paper2figure_cli.py \
--input "Transformer 架构与注意力机制" \
--input-type TEXT \
--graph-type tech_route
# 生成实验数据可视化图表
python script/run_paper2figure_cli.py \
--input paper.pdf \
--graph-type exp_data图表类型: model_arch(模型架构图)、tech_route(技术路线图)、exp_data(实验数据图)
2. Paper2PPT CLI - 将论文转换为 PPT 演示文稿
# 基础用法
python script/run_paper2ppt_cli.py \
--input paper.pdf \
--api-key sk-xxx \
--page-count 15
# 自定义风格
python script/run_paper2ppt_cli.py \
--input paper.pdf \
--style "学术风格;中文;现代设计" \
--language zh3. PDF2PPT CLI - 一键将 PDF 转换为可编辑 PPT
# 基础转换(无 AI 增强)
python script/run_pdf2ppt_cli.py --input slides.pdf
# 启用 AI 增强
python script/run_pdf2ppt_cli.py \
--input slides.pdf \
--use-ai-edit \
--api-key sk-xxx4. Image2PPT CLI - 将图片转换为可编辑 PPT
# 基础转换
python script/run_image2ppt_cli.py --input screenshot.png
# 启用 AI 增强
python script/run_image2ppt_cli.py \
--input diagram.jpg \
--use-ai-edit \
--api-key sk-xxx5. PPT2Polish CLI - 美化现有 PPT 文件
# 基础美化
python script/run_ppt2polish_cli.py \
--input old_presentation.pptx \
--style "学术风格,简洁大方" \
--api-key sk-xxx
# 使用参考图片保持风格一致性
python script/run_ppt2polish_cli.py \
--input old_presentation.pptx \
--style "现代简约风格" \
--ref-img reference_style.png \
--api-key sk-xxxNote
PPT2Polish 系统要求:
- LibreOffice:
sudo apt-get install libreoffice(Ubuntu/Debian) - pdf2image:
pip install pdf2image - poppler-utils:
sudo apt-get install poppler-utils
所有 CLI 脚本都支持以下通用选项:
--api-url URL- LLM API 地址(默认:从DF_API_URL环境变量读取)--api-key KEY- API 密钥(默认:从DF_API_KEY环境变量读取)--model NAME- 文本模型名称(默认:各脚本不同)--output-dir DIR- 自定义输出目录(默认:outputs/cli/{脚本名称}/{时间戳})--help- 显示详细帮助信息
查看完整参数文档,可运行任意脚本并添加 --help 参数:
python script/run_paper2figure_cli.py --helpPaper2Any/
├── dataflow_agent/ # 核心代码库
│ ├── agentroles/ # Agent 定义
│ │ └── paper2any_agents/ # Paper2Any 专用 Agent
│ ├── workflow/ # Workflow 定义
│ ├── promptstemplates/ # Prompt 模板
│ └── toolkits/ # 工具集(绘图、PPT生成等)
├── fastapi_app/ # 后端 API 服务
├── frontend-workflow/ # 前端 Web 界面
├── static/ # 静态资源
├── script/ # 脚本工具
└── tests/ # 测试用例
| 功能 | 状态 | 子功能 |
|---|---|---|
| 📊 Paper2Figure 可编辑科研绘图 |
|
|
| 🧩 Paper2Diagram Drawio 绘图 |
|
|
| 🎬 Paper2PPT 可编辑演示文稿 |
|
|
| 🖼️ PDF2PPT 版式保留转换 |
|
|
| 🖼️ Image2PPT 图片转 PPT |
|
|
| 🎨 PPTPolish 智能美化 |
|
|
| 📚 知识库(KB) KB 工作流 |
|
|
| 🎬 Paper2Video 视频脚本生成 |
|
我们欢迎所有形式的贡献!
本项目采用 Apache License 2.0 开源协议。

























