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 new 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
# Create and activate conda environment
conda create -n poster python=3.11 -y
conda activate poster
pip install -r requirements.txt
git clone -b main https://github.com/Y-Research-SBU/PosterGen.git
cd PosterGen
Windows:
- Download and install LibreOffice from official website
- Add LibreOffice to your system PATH:
- Default installation: Add
C:\Program Files\LibreOffice\program
to PATH - Or custom installation: Add
<your_install_path>\LibreOffice\program
to PATH
- Default installation: Add
macOS:
brew install --cask libreoffice
Ubuntu/Linux:
sudo apt install libreoffice
# Or using snap:
sudo snap install libreoffice
Create a .env
file in the project root with your API keys:
OPENAI_API_KEY="your_openai_key"
ANTHROPIC_API_KEY="your_anthropic_key"
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:
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.png
Parameters:
--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
: Your institution/lab 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 (
pip install -r requirements.txt
from project root) - API keys configured in
.env
file
# Install main project dependencies (if not done already)
pip install -r requirements.txt
# Start backend
cd webui && pip install -r requirements.txt && python start_backend.py
# Start frontend (in new terminal, from project root)
cd webui && sh ./start_frontend.sh
# Open http://localhost:3000 in your browser
After 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: