Paper2Poster/Paper2Poster

GitHub: Paper2Poster/Paper2Poster

基于多智能体系统的学术论文自动海报生成工具,将PDF论文转换为可编辑的PPTX海报。

Stars: 3349 | Forks: 236

# 🎓Paper2Poster: 从学术论文自动生成学术海报

X (formerly Twitter) URL

我们致力于解决 **如何从论文生成海报** 以及 **如何评估海报** 的问题。 ![Overview](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/6e3a357ff0125501.png) ## 🤩 Paper2Poster 相关资源 ![Overview](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/4e716b5e0a125522.jpg) ## 🔥 更新日志 - [x] [2025.11.3] 新增 **Gradio demo** 支持。 - [x] [2025.10.18] 新增 **Docker** 支持。 - [x] [2025.10.13] 新增针对会议和机构的自动 **logo 支持**,支持 **基于 YAML 的样式自定义**,以及全新的默认主题。 - [x] [2025.9.18] Paper2Poster 已被 **NeurIPS 2025 Dataset and Benchmark Track** 录用。 - [x] [2025.9.3] 我们现在支持**并行**生成各个章节内容以加快生成速度,只需指定 `--max_workers` 即可。 - [x] [2025.5.27] 我们发布了 [arXiv](https://arxiv.org/abs/2505.21497),[代码](https://github.com/Paper2Poster/Paper2Poster) 和 [`数据集`](https://huggingface.co/datasets/Paper2Poster/Paper2Poster) **PosterAgent** 是一个从 `paper.pdf` 生成 **可编辑** `poster.pptx` 的自顶向下、视觉闭环多智能体系统。 ![PosterAgent Overview](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/aa5c7806e0125541.png) ## 📋 目录 - [🛠️ 安装说明](#-installation) - [🐳 Docker 部署](#-docker-deployment) - [🚀 快速开始](#-quick-start) - [🔮 评估](#-evaluation) ## 🛠️ 安装说明 我们的 Paper2Poster 支持本地部署(通过 [vLLM](https://docs.vllm.ai/en/v0.6.6/getting_started/installation.html))或基于 API 的访问(例如 GPT-4o)。 **Python 环境** ``` pip install -r requirements.txt ``` **安装 Libreoffice** ``` sudo apt install libreoffice ``` 或者,如果你**没有** sudo 权限,可以直接下载 `soffice` 可执行文件:https://www.libreoffice.org/download/download-libreoffice/,并将可执行文件目录添加到你的 `$PATH` 中。 **安装 poppler** ``` conda install -c conda-forge poppler ``` **API Key** 在项目根目录下创建一个 `.env` 文件并添加你的 OpenAI API key: ``` OPENAI_API_KEY= ``` **可选:Google Search API(用于 logo 搜索)** 要使用 Google Custom Search 以获得更可靠的 logo 搜索结果,请将以下内容添加到你的 `.env` 文件中: ``` GOOGLE_SEARCH_API_KEY= GOOGLE_SEARCH_ENGINE_ID= ``` ## 🐳 Docker 部署 为了更轻松地部署,你可以使用 Docker 运行 Paper2Poster,无需手动安装依赖。 **构建 Docker 镜像:** ``` docker build -t paper2poster . ``` **故障排除:** - 如果在运行 Docker 命令时遇到“permission denied”错误,请在 Docker 命令前使用 `sudo`(例如 `sudo docker build -t paper2poster .`) **示例:** ``` # 如果 output 目录不存在则创建它 mkdir -p <4o_4o>_generated_posters docker run --rm \ -e OPENAI_API_KEY= \ -v "$(pwd)/Paper2Poster-data:/Paper2Poster-data" \ -v "$(pwd)/<4o_4o>_generated_posters:/app/<4o_4o>_generated_posters" \ paper2poster \ python -m PosterAgent.new_pipeline \ --poster_path="/Paper2Poster-data//paper.pdf" \ --model_name_t=4o \ --model_name_v=4o \ --poster_width_inches=48 \ --poster_height_inches=36 ``` 生成的海报将保存在你主机上的 `<4o_4o>_generated_posters/Paper2Poster-data/paper_name/poster.pptx` 中。 ## 🚀 快速开始 在 `{dataset_dir}` 下创建一个名为 `{paper_name}` 的文件夹,并将你的论文以 `paper.pdf` 的名称放入其中。 ``` 📁 {dataset_dir}/ └── 📁 {paper_name}/ └── 📄 paper.pdf ``` 要使用开源模型,你需要先使用 [vLLM](https://docs.vllm.ai/en/v0.6.6/getting_started/installation.html) 进行部署,并确保在 [`utils/wei_utils.py`](utils/wei_utils.py) 的 `get_agent_config()` 函数中正确指定了端口。 - [高性能] 使用 `GPT-4o` 生成海报: ``` python -m PosterAgent.new_pipeline \ --poster_path="${dataset_dir}/${paper_name}/paper.pdf" \ --model_name_t="4o" \ # LLM --model_name_v="4o" \ # VLM --poster_width_inches=48 \ --poster_height_inches=36 ``` - [经济实惠] 使用 `Qwen-2.5-7B-Instruct` 和 `GPT-4o` 生成海报: ``` python -m PosterAgent.new_pipeline \ --poster_path="${dataset_dir}/${paper_name}/paper.pdf" \ --model_name_t="vllm_qwen" \ # LLM --model_name_v="4o" \ # VLM --poster_width_inches=48 \ --poster_height_inches=36 \ --no_blank_detection # An option to disable blank detection ``` - [本地] 使用 `Qwen-2.5-7B-Instruct` 生成海报: ``` python -m PosterAgent.new_pipeline \ --poster_path="${dataset_dir}/${paper_name}/paper.pdf" \ --model_name_t="vllm_qwen" \ # LLM --model_name_v="vllm_qwen_vl" \ # VLM --poster_width_inches=48 \ --poster_height_inches=36 ``` PosterAgent **支持 LLM / VLM 的灵活组合**,欢迎尝试其他选项,或在 [`utils/wei_utils.py`](utils/wei_utils.py) 的 `get_agent_config()` 中自定义你的设置。 ### 向海报添加 Logo 你可以自动向海报中添加机构和会议 logo: ``` python -m PosterAgent.new_pipeline \ --poster_path="${dataset_dir}/${paper_name}/paper.pdf" \ --model_name_t="4o" \ --model_name_v="4o" \ --poster_width_inches=48 \ --poster_height_inches=36 \ --conference_venue="NeurIPS" # Automatically searches for conference logo ``` **Logo 搜索策略:** 1. **本地搜索**:首先检查提供的 logo 库(`logo_store/institutes/` 和 `logo_store/conferences/`) 2. **网络搜索**:如果在本地未找到,则执行在线搜索 - 默认使用 DuckDuckGo(无需 API key) - 如需更可靠的结果,请使用 `--use_google_search`(需要在 `.env` 中配置 `GOOGLE_SEARCH_API_KEY` 和 `GOOGLE_SEARCH_ENGINE_ID`) 你也可以指定自定义 logo 路径以跳过自动检测: ``` --institution_logo_path="path/to/institution_logo.png" \ --conference_logo_path="path/to/conference_logo.png" ``` ### YAML 样式自定义 通过 YAML 配置文件自定义海报外观: - **全局默认值**:`config/poster.yaml`(适用于所有海报) - **单张海报覆盖**:将 `poster.yaml` 放在你的 `paper.pdf` 旁边以进行自定义样式设置 ## 🔮 评估 通过以下方式下载 Paper2Poster 评估数据集: ``` python -m PosterAgent.create_dataset ``` 在评估中,论文存储在名为 `Paper2Poster-data` 的目录下。 使用 **PaperQuiz** 评估生成的海报: ``` python -m Paper2Poster-eval.eval_poster_pipeline \ --paper_name="${paper_name}" \ --poster_method="${model_t}_${model_v}_generated_posters" \ --metric=qa # PaperQuiz ``` 使用 **VLM-as-Judge** 评估生成的海报: ``` python -m Paper2Poster-eval.eval_poster_pipeline \ --paper_name="${paper_name}" \ --poster_method="${model_t}_${model_v}_generated_posters" \ --metric=judge # VLM-as-Judge ``` 使用其他统计指标(如视觉相似度、PPL 等)评估生成的海报: ``` python -m Paper2Poster-eval.eval_poster_pipeline \ --paper_name="${paper_name}" \ --poster_method="${model_t}_${model_v}_generated_posters" \ --metric=stats # statistical measures ``` 如果你想为自己的论文创建 PaperQuiz: ``` python -m Paper2Poster-eval.create_paper_questions \ --paper_folder="Paper2Poster-data/${paper_name}" ``` ## ❤ 致谢 我们要感谢 [🐫CAMEL](https://github.com/camel-ai/camel),[🦉OWL](https://github.com/camel-ai/owl),[Docling](https://github.com/docling-project/docling),[PPTAgent](https://github.com/icip-cas/PPTAgent) 提供的代码库。 ## 📖 引用 如果你觉得这个项目有帮助,请引用我们的论文。 ``` @misc{paper2poster, title={Paper2Poster: Towards Multimodal Poster Automation from Scientific Papers}, author={Wei Pang and Kevin Qinghong Lin and Xiangru Jian and Xi He and Philip Torr}, year={2025}, eprint={2505.21497}, archivePrefix={arXiv}, primaryClass={cs.CV}, url={https://arxiv.org/abs/2505.21497}, } ```
标签:AIGC, DLL 劫持, DNS解析, Docker, Gradio, Hugging Face, NeurIPS 2025, Paper2Poster, Petitpotam, PyRIT, Python, TruffleHog, 内容生成, 多智能体系统, 多模态, 大语言模型, 学术工具, 学术论文, 安全防御评估, 开源项目, 排版引擎, 文档自动化, 无后门, 海报生成, 知识提取, 科学可视化, 请求拦截, 逆向工具