Jiho Choi1 *, Seojeong Park1 *, Seongjong Song2, Hyunjung Shim1 †
1 Graduate School of Artificial Intelligence, KAIST, Republic of Korea
2 School of Integrated Technology, Yonsei University, Republic of Korea
* Equal contribution † Corresponding author
PosterForest is a training-free, hierarchical multi-agent system that automatically generates editable scientific posters (poster.pptx) from a paper PDF. It introduces a Poster Tree intermediate representation that captures document hierarchy and visual-textual semantics, enabling agents to conduct hierarchical reasoning and recursive refinement from global organization down to local composition.
| Portrait (36 × 48 in) | Landscape (48 × 36 in) |
|---|---|
![]() |
![]() |
conda create -n poster-forest python=3.10 -y
conda activate poster-forest
pip install -r requirements.txt
pip install "docling-parse==4.5.0"
# System Dependencies
sudo apt-get install ttf-mscorefonts-installer msttcorefonts # fonts
sudo apt install libreoffice # PPTX → image rendering
conda install -c conda-forge poppler # PDF utilities
# API key (if using GPT-4o)
echo "OPENAI_API_KEY=<your_key>" > .envPlace your paper PDF under papers/{paper_dir}/:
papers/
├── 2017_NIPS/
│ └── Attention_Is_All_You_Need.pdf
└── 2026_ACL/
└── PosterForest.pdf
Using GPT-4o:
python -m PosterForest.main \
--paper_path="papers/2017_NIPS/Attention_Is_All_You_Need.pdf" \
--model_name_t="4o" \
--model_name_v="4o" \
--poster_width_inches=48 \
--poster_height_inches=36(API costs approximately $0.8 per poster with GPT-4o.)
Using Qwen3 (local - start vLLM servers first, see below):
python -m PosterForest.main \
--paper_path="papers/2017_NIPS/Attention_Is_All_You_Need.pdf" \
--model_name_t="vllm_qwen3" \
--model_name_v="vllm_qwen3_vl" \
--poster_width_inches=48 \
--poster_height_inches=36Output is saved to outputs/{timestamp}_{model_t}_{model_v}_{paper_name}/08_finalize_output/:
08_finalize_output/
├── poster_final.pptx ← editable poster
└── poster_final.jpg ← rendered preview
Viewer - browse all generated posters in a local web UI:
uvicorn utils.viewer.server:app --reload --port 8080
# open http://localhost:8080Requires vLLM ≥ 0.12.0 (for Qwen3-VL support).
Qwen3 (LLM on GPU 0-3, VLM on GPU 4-7):
conda activate poster-forest
bash scripts/start_vllm_qwen3.shQwen2.5 (LLM on GPU 4,5, VLM on GPU 6,7):
conda activate poster-forest
bash scripts/start_vllm_qwen2_5.shWait until both servers are ready:
curl http://localhost:8005/health
curl http://localhost:8010/healthModel strings and endpoints are defined in utils/wei_utils.py.
For evaluation setup and metrics (PaperQuiz, VLM-as-Judge, etc.), please refer to the Paper2Poster (NeurIPS 2025 D&B) repository.
We thank CAMEL (NeurIPS 2023), OWL (NeurIPS 2025), Docling, PPTAgent (EMNLP 2025), Paper2Poster (NeurIPS 2025 D&B), and P2P (ICLR 2026) for their open-source codebases.
@inproceedings{posterforest2026,
title = {PosterForest: Hierarchical Multi-Agent Collaboration for Scientific Poster Generation},
author = {Jiho Choi and Seojeong Park and Seongjong Song and Hyunjung Shim},
booktitle = {Proceedings of the 64th Annual Meeting of the Association for Computational Linguistics (ACL)},
year = {2026},
}

