Skip to content

Y-Research-SBU/PosterGen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

46 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PosterGen: Aesthetic-Aware Paper-to-Poster Generation via
Multi-Agent LLMs


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

Paper Project Website Hugging Face Demo LangGraph 0.4.8
WeChat Group Discord Community

Abstract

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.

πŸ“’ News

  • 2025.08.26 Our paper is now available on arXiv! πŸ“„
  • 2025.08.23 Code Released. PosterGen now available! πŸŽ‰πŸŽ‰

πŸš€ Quick Start

System Requirements

  • Operating System: Windows, Linux, or macOS
  • Python Version: 3.11

1. Environment Setup

Option 1: UV (Recommended)

git clone -b main https://github.com/Y-Research-SBU/PosterGen.git
cd PosterGen

uv sync

Option 2: Conda

# 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.txt

2. Install LibreOffice

Windows:

  1. Download and install LibreOffice from official website
  2. 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

macOS:

brew install --cask libreoffice

Ubuntu/Linux:

sudo apt install libreoffice
# Or using snap:
sudo snap install libreoffice

3. API Keys Configuration

Create 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"

Data Structure Setup

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
└── ...

🎯 Usage

Command-line Interface

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.png

For 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.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: Conference logo
  • --aff_logo: Affiliation logo (used for color scheme extraction)

Web Interface

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 .env file
# 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 browser

webui

webui

Output Structure

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

πŸ€– Multi-Agent Pipeline

Our system uses 6 specialized AI agents working together:

  1. Parser Agent: Extracts and structures content from paper PDF
  2. Curator Agent: Plans content organization and visual placement
  3. Layout Agent: Calculates precise positioning and spacing
    • Balancer Sub-Agent: Optimizes column utilization and prevents overflow
  4. Color Agent: Generates cohesive color schemes from your affiliation logo
  5. Font Agent: Applies typography and keyword highlighting
  6. Renderer: Generates final PowerPoint and image files

Key Features

  • 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

Other Configurations

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.

πŸ“Š Example Results

Our system generates professional academic posters with high visual quality. Here are some examples of generated posters:

Example 1

Example 2

Citation

@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}
}

Acknowledgments

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.

Star History

Star History Chart

Releases

No releases published

Packages

No packages published

Contributors 6