Zhilin Zhang1,2 β Β Xiang Zhang3 β Β Jiaqi Wei4Β Yiwei Xu5Β Chenyu You1
1 Stony Brook University Β Β
2 New York University Β Β
3 University of British Columbia Β Β
4 Zhejiang University Β Β
5 University of California, Los Angeles Β Β
β
Equal Contribution
In this work, we propose a multi-agent LLMs framework that is guided by design principles.
Our multi-agent LLMs adopt a workflow of specialist agents that mirrors a professional design process:
- Parser Agent β extracts and structures all content from the source paper.
- Curator Agent β designs a narrative-based storyboard.
- Layout Agent β transforms the storyboard into a spatially balanced, three-column layout.
- Styling Agents β apply a harmonious color palette and a hierarchical typographic system to ensure aesthetic coherence.
This methodology is designed to generate a well-designed poster that minimizes the need for manual fine-tuning.
- 2025.08.26 Our paper is now available on arXiv! π
- 2025.08.23 Code Released. PosterGen now available! ππ
- Operating System: Windows, Linux, or macOS
- Python Version: 3.11
Option 1: UV (Recommended)
git clone -b main https://github.com/Y-Research-SBU/PosterGen.git
cd PosterGen
uv sync# Create and activate conda environment
conda create -n poster python=3.11 -y
conda activate poster
git clone -b main https://github.com/Y-Research-SBU/PosterGen.git
cd PosterGen
pip install -r requirements.txtWindows:
- Download and install LibreOffice from official website
- Add LibreOffice to your system PATH:
- Default installation: Add
C:\Program Files\LibreOffice\programto PATH - Or custom installation: Add
<your_install_path>\LibreOffice\programto PATH
- Default installation: Add
macOS:
brew install --cask libreofficeUbuntu/Linux:
sudo apt install libreoffice
# Or using snap:
sudo snap install libreofficeCreate a .env file in the project root with your API keys:
OPENAI_API_KEY="your_openai_key"
ANTHROPIC_API_KEY="your_anthropic_key"
ZHIPU_API_KEY="your_zhipu_key"To use a compatible API service or a custom deployment, set the base URL in your .env file:
OPENAI_BASE_URL="https://your-api-endpoint.com/v1"
ANTHROPIC_BASE_URL="https://your-anthropic-endpoint.com"
GOOGLE_BASE_URL="https://your-google-endpoint.com"
ZHIPU_BASE_URL="https://your-zhipu-endpoint.com"Before running the multi-agent pipeline, organize your files in the data/ folder:
data/
βββ <your_paper_name>/
βββ paper.pdf # Your research paper (required)
βββ aff.png # Affiliation logo for color extraction (required)
βββ logo.png # Conference logo for poster (required)
Examples (check data/ folder):
data/
βββ Neural_Encoding_and_Decoding_at_Scale/
βββ paper.pdf
βββ aff.png
βββ logo.png
βββ ...
Generate your poster with a single command:
For UV setup:
uv run python -m src.workflow.pipeline \
--poster_width 54 --poster_height 36 \
--paper_path ./data/Your_Paper_Name/paper.pdf \
--text_model gpt-4.1-2025-04-14 \
--vision_model gpt-4.1-2025-04-14 \
--logo ./data/Your_Paper_Name/logo.png \
--aff_logo ./data/Your_Paper_Name/aff.pngFor Conda setup:
python -m src.workflow.pipeline \
--poster_width 54 --poster_height 36 \
--paper_path ./data/Your_Paper_Name/paper.pdf \
--text_model gpt-4.1-2025-04-14 \
--vision_model gpt-4.1-2025-04-14 \
--logo ./data/Your_Paper_Name/logo.png \
--aff_logo ./data/Your_Paper_Name/aff.pngParameters:
--poster_width/height: Poster dimensions in inches, with aspect ratio (w/h): lower bound 1.4 (ISO A paper size), upper bound 2 (human vision limit)--paper_path: Path to your PDF paper--text_model: LLM for text processing (options: "gpt-4.1-2025-04-14" (default), "gpt-4o-2024-08-06", "gpt-4.1-mini-2025-04-14", "claude-sonnet-4-20250514")--vision_model: Vision model for analysis (same options as text_model)--logo: Conference logo--aff_logo: Affiliation logo (used for color scheme extraction)
Developed by: React + TypeScript + Vite
Upload your PDF paper and logos through drag-and-drop, configure models and dimensions, then generate and download your poster files.
Prerequisites:
- Node.js installed
- Main PosterGen dependencies installed (from project root)
- API keys configured in
.envfile
# Install main project dependencies (if not done already, refer to Environment Setup above)
# Start backend
cd webui && python start_backend.py
# Start frontend (in new terminal, from project root)
cd webui && sh ./start_frontend.sh
# Open http://localhost:3000 in your browserAfter successful generation, you'll find your results in the output/ folder:
output/
βββ <paper_name>/
βββ <paper_name>.png # final poster image
βββ <paper_name>.pptx # editable PowerPoint file
βββ assets/ # extracted content from paper via Marker
β βββ figures.json # figure metadata with aspect ratios
β βββ tables.json # table metadata with aspect ratios
β βββ figure-*.png # individual figures from paper
β βββ table-*.png # individual tables from paper
β βββ fig_tab_caption_mapping.json # caption mappings
βββ content/ # multi-agent artifacts
βββ raw.md # raw text extraction
βββ structured_sections.json # organized sections
βββ classified_visuals.json # categorized visuals
βββ narrative_content.json # paper summary
βββ story_board.json # content organization
βββ initial_layout_data.json # initial layout
βββ column_analysis.json # column usage stats
βββ optimized_story_board.json # balanced content
βββ balancer_decisions.json # optimization details
βββ final_column_analysis.json # final usage metrics
βββ optimized_layout.json # balanced layout
βββ final_design_layout.json # element coordinates
βββ color_scheme.json # color palette
βββ section_title_design.json # title styling
βββ keywords.json # highlighted terms
βββ styled_layout.json # formatted text
βββ styling_interfaces.json # typography settings
Our system uses 6 specialized AI agents working together:
- Parser Agent: Extracts and structures content from paper PDF
- Curator Agent: Plans content organization and visual placement
- Layout Agent: Calculates precise positioning and spacing
- Balancer Sub-Agent: Optimizes column utilization and prevents overflow
- Color Agent: Generates cohesive color schemes from your affiliation logo
- Font Agent: Applies typography and keyword highlighting
- Renderer: Generates final PowerPoint and image files
- Professional Layout: CSS-like precision positioning with proper spacing
- Intelligent Balancing: Automatic column optimization prevents overflow
- Color Harmony: Automatic color scheme generation from your institution branding
- Typography Excellence: Professional font choices and keyword highlighting
- Flexible Output: Both PNG images and editable PowerPoint files
- Academic Standards: Follows poster design best practices for conferences
The system supports customization through config/poster_config.yaml. You can adjust:
- Layout parameters (margins, padding, spacing)
- Typography settings (fonts, sizes, line spacing)
- Color generation algorithms
- Visual asset sizing constraints
- Content optimization thresholds
Custom Fonts:
If you would like to use other fonts, you can add the font files under fonts/, modify the get_font_file_path() mapping in src/layout/text_height_measurement.py, and adjust the 'typography' in config/poster_config.yaml.
Our system generates professional academic posters with high visual quality. Here are some examples of generated posters:
@article{zhang2025postergen,
title={PosterGen: Aesthetic-Aware Paper-to-Poster Generation via Multi-Agent LLMs},
author={Zhilin Zhang and Xiang Zhang and Jiaqi Wei and Yiwei Xu and Chenyu You},
journal={arXiv:2508.17188},
year={2025}
}
This codebase is built upon following open-source projects. We express our sincere gratitude to:
- LangGraph: Multi-agent workflow framework;
- Marker: High-quality PDF parsing library that enables accurate content extraction from research papers.
- python-pptx: Python library for creating PowerPoint (.PPTX) poster files.




