Deprecated: Function get_magic_quotes_gpc() is deprecated in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 99

Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 619

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1169

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176
8000 GitHub - fak111/PosterGen: Official Code for PosterGen
Nothing Special   »   [go: up one dir, main page]

Skip to content

fak111/PosterGen

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

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

πŸ“’ 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

# 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

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"

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:

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)

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 (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

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.

Star History

Star History Chart

About

Official Code for PosterGen

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 88.5%
  • TypeScript 8.1%
  • CSS 3.2%
  • Other 0.2%
0