Paper2Poster
A multi-agent pipeline that turns scientific-paper PDFs into editable PPTX posters.
- Source repo
- Paper2Poster/Paper2Poster
- Stars
- ★ 3.9k
- Last updated
- 3mo ago
- License
- MIT
- Primary language
- Python
- FA score
- 28/100 · Major gaps
At a glance
- Works with
- Portable with changesCodex · OpenAI API
- You'll need
- Typical use
- A researcher preparing for a conference has a paper.pdf and needs an academic poster that remains editable in PowerPoint.
- Main limitation
- A full local setup requires Python, LibreOffice, and poppler; the open-model route additionally requires operating vLLM and configuring its port.
- Source review
- 28/100 · Major gaps 8 safety controls not found
What does this agent do, and when should you use it?
Paper2Poster is a multimodal poster-automation project for scientific papers, centered on a system called PosterAgent. It takes a paper.pdf input and produces an editable poster.pptx through a top-down, visual-in-the-loop multi-agent workflow. The README describes Parser, Planner, and a Painter-Commentor loop: paper assets are organized, text and visuals are laid out, then rendered panels are refined with VLM feedback. The project documents API-based GPT-4o configurations as well as vLLM-hosted open-model combinations, alongside Docker deployment, a Gradio demo, YAML styling, and logo support. It also exposes evaluation commands for PaperQuiz, VLM-as-Judge, and statistical measures.
Place a paper at {dataset_dir}/{paper_name}/paper.pdf and run python -m PosterAgent.new_pipeline. The command accepts --poster_path, --model_name_t for the text model, --model_name_v for the vision model, and poster dimensions, then generates poster.pptx; documented examples use 48 by 36 inches. Section-content generation can run in parallel with --max_workers. With --conference_venue, it first checks logo_store/institutes/ and logo_store/conferences/, then can search DuckDuckGo if no local logo is found, or use Google Custom Search with --use_google_search and configured credentials; explicit --institution_logo_path and --conference_logo_path options bypass detection. Styling can come from config/poster.yaml or a poster.yaml beside paper.pdf. Evaluation is run through python -m Paper2Poster-eval.eval_poster_pipeline with qa, judge, or stats metrics.
- A researcher preparing for a conference has a paper.pdf and needs an academic poster that remains editable in PowerPoint.
- A lab is processing several papers and wants to use --max_workers to generate section content in parallel.
- A team with a vLLM deployment wants to use Qwen-2.5-7B-Instruct for text generation and pair it with GPT-4o or a local vision model.
- A conference presenter needs a poster with a NeurIPS or institutional logo, using automatic lookup or supplied logo files.
- An evaluator wants to compare generated posters on the Paper2Poster-data dataset with PaperQuiz, VLM-as-Judge, or statistical metrics.
How do you install or deploy this agent?
Install Python dependencies:
pip install -r requirements.txtInstall LibreOffice:
sudo apt install libreofficeInstall poppler:
conda install -c conda-forge popplerCreate .env in the project root and set:
OPENAI_API_KEY=<your_openai_api_key>For Google Custom Search logo lookup, also set GOOGLE_SEARCH_API_KEY and GOOGLE_SEARCH_ENGINE_ID. Before using open-source models, deploy them with vLLM and ensure the port is configured in get_agent_config() in utils/wei_utils.py.
How do you use this agent?
After creating {dataset_dir}/{paper_name}/paper.pdf, a documented GPT-4o invocation is:
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=36The generated file is poster.pptx. For Docker, first run docker build -t paper2poster ., then use the documented docker run example to mount Paper2Poster-data and an output directory and provide OPENAI_API_KEY. For preparing poster-ready paper content only, the repository also provides a lightweight skill in skills/; its documented Codex invocation is: Use $paper2poster-poster to turn this paper into a poster package.
What are this agent's strengths and limitations?
- It produces editable PPTX output rather than only a raster or PDF poster.
- The documented workflow combines paper parsing, layout planning, rendering, and VLM feedback intended to address overflow and alignment.
- Text and vision models can be mixed; the README provides GPT-4o, vLLM Qwen plus GPT-4o, and fully local vLLM Qwen configurations.
- YAML supports global and per-paper visual styling, while logo handling can be automatic or explicitly file-based.
- The repository documents an evaluation path covering dataset download plus qa, judge, and stats modes.
- A full local setup requires Python, LibreOffice, and poppler; the open-model route additionally requires operating vLLM and configuring its port.
- The GPT-4o configuration depends on OPENAI_API_KEY, and the documentation does not provide API usage, cost, or service-availability guarantees.
- Automatic logo lookup may need network access when the local store has no match; Google-based lookup adds separate credentials.
- The documentation specifies PDF input and PPTX output but does not state behavior for low-quality scans, encrypted PDFs, or unusual paper formats.
- CLI, Docker, and Gradio are documented, but no stable library API or external service protocol is described.
How does this agent compare with similar options?
The README documents three operating profiles: GPT-4o for both text and vision is labeled “High Performance”; vLLM Qwen-2.5-7B-Instruct for text plus GPT-4o vision is labeled “Economic”; and vLLM Qwen configurations for both text and vision are the local option. The latter two require the corresponding vLLM services to be deployed.
Key facts side by side with the most closely related agents.
| Agent | Source review | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|
| Paper2Poster This agent | 28 · Major gaps | ★ 3.9k | 3mo ago | Python | Codex · OpenAI API |
| Image-to-Editable-PPT Skill | 53 · Major gaps | ★ 2.7k | 8d ago | Python | Codex |
| The Delegation | 34 · Major gaps | ★ 660 | 5mo ago | TypeScript | — |
| ArcReel Video Creation Workspace | 52 · Major gaps | ★ 5.1k | today | Python | OpenAI API · Claude API |
How does FollowAgents rate this agent?
Why each dimension lost points
Evidence shows: The repository does not provide explicit mechanisms for least privilege, user confirmation, data flow transparency, sensitive data handling, dependency security, external effects, rollback, or source attribution. The README requires users to provide sensitive information like OPENAI_API_KEY but does not explain its scope or protection. The dependency list is extensive and lacks security audit. Therefore, all trust criteria score 0.
Evidence shows: Commands in README are mostly consistent with requirements.txt, but there are inconsistencies, such as the `--no_blank_detection` option mentioned in README but not verified in code. The dependency list is large but lacks version compatibility notes. No error handling or failure message documentation is provided. Thus, self-consistency scores 1, dependency availability scores 1, and failure messages score 0.
Evidence shows: README describes multiple usage scenarios (local, API, Docker, Gradio) and provides examples for different model combinations, so audience and scenarios score 2. Capability boundaries are not clearly defined, but options like YAML customization and logo search are provided, so score 1. Trigger precision is partially addressed with command-line arguments, but behavior is not fully documented, so score 1. Environment fit is addressed with Docker and local installation, but system requirements are not specified, so score 1.
Evidence shows: README provides clear structure and installation instructions, so information architecture and install notes score 2. Naming stability is consistent, but no version history is provided, so score 1. Examples and FAQ are provided (e.g., Docker permission issue), so score 2. Known limitations are not mentioned, so score 0. License is MIT, score 2. Versioning and changelog are partially present in README updates, but no formal changelog, so score 1. Maintenance responsibility is not explicit, but contact is provided, so score 1.
Evidence shows: Output is an editable PPTX file, which is useful, so output usability scores 2. Marginal value is positive as it automates poster creation, but no comparison with other tools is provided, so score 2. Cost-benefit is not quantified; requires API keys and compute resources, so score 1.
Evidence shows: README cites arXiv paper and project page, but no specific evidence links are provided, so claim traceability scores 1. Cross-source corroboration is partially present via Hugging Face dataset and demo, but no independent verification, so score 1. Fact-inference separation is not addressed, so score 0.
- Not found in source: least-privilege scopingGrant only what the task needs: a dedicated account or read-only token, scoped to specific directories and repos.
- Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
- Not found in source: data-flow disclosureWatch which external services it contacts (proxy or firewall logs) and keep sensitive data out until you know where it goes.
- Not found in source: sensitive-data handlingUse dedicated, low-privilege, revocable API keys — never production credentials — and keep secrets out of logs.
- Not found in source: dependency securityPin versions and run a dependency audit (npm audit, pip-audit) before installing; prefer running it in a container.
- Not found in source: disclosed external effectsEstablish which external systems it writes to, sends to or changes, and verify with test accounts or repos before production.
- Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
- Not found in source: verifiable attributionInstall from the official repo or registry and check the publisher and URL to avoid look-alike packages.
- The dependency list is extensive and lacks security audit, posing supply chain risks.
- The README requires API keys but does not explain their scope or protection, risking sensitive information leakage.
- No known limitations or troubleshooting guide is provided, which may hinder users.