★From Paper to Poster in 30 Minutes: A Step-by-Step Guide to PosterGen★
“
“I spent two weeks tweaking my poster, only for my advisor to say, ‘Let’s start over.’”
If that sounds familiar, the next twenty minutes will change how you prepare for every future conference.
PosterGen is an open-source, multi-agent large-language-model (LLM) pipeline that turns a research PDF into a print-ready conference poster—complete with balanced layout, harmonious colors, and an editable PowerPoint file—without manual formatting. Below you will find everything required to run it locally or through a simple web interface, written for anyone with basic Python experience.
1. What Exactly Is PosterGen?
Think of PosterGen as a tiny design studio staffed by six specialists:
You press “enter” once; they hand you a finished poster.
2. System Requirements and First-Time Setup
2.1 Hardware and Operating System
- 🍄
OS: Windows 10/11, macOS 12+, or any recent Linux distribution - 🍄
Python: exactly 3.11 (newer versions are not yet tested) - 🍄
RAM: 8 GB minimum, 16 GB recommended for large papers (>25 MB PDFs) - 🍄
GPU: optional; the pipeline is CPU-friendly
2.2 Install Dependencies
# 1. Create an isolated environment
conda create -n poster python=3.11 -y
conda activate poster
pip install -r requirements.txt
cd PosterGen
# 2. Install LibreOffice (needed for PPTX → PNG conversion)
# Windows:
# - Download from https://www.libreoffice.org/download
# - Add C:\Program Files\LibreOffice\program to the system PATH
# macOS:
brew install --cask libreoffice
# Ubuntu / Debian:
sudo apt install libreoffice
# 3. Store API keys
echo 'OPENAI_API_KEY="your_openai_key"' > .env
echo 'ANTHROPIC_API_KEY="your_anthropic_key"' >> .env
“
Checkpoint: If
python -c "import src; print('OK')"
returnsOK
, your environment is ready.
3. Preparing Your Source Files
PosterGen is strict about folder structure. Create one folder per paper inside data/
:
data/
└── my_study/
├── paper.pdf # required
├── aff.png # institution logo (color extraction)
└── logo.png # conference or lab logo
File Tips
- 🍄
PDF may be a scan; automatic OCR runs if needed. - 🍄
Both logos work best as PNG with transparent background (≥800 px width). - 🍄
Use square or landscape logos; very tall logos can confuse the color extractor.
4. Command-Line Usage: One Command, Full Poster
python -m src.workflow.pipeline \
--poster_width 54 \
--poster_height 36 \
--paper_path ./data/my_study/paper.pdf \
--text_model gpt-4.1-2025-04-14 \
--vision_model gpt-4.1-2025-04-14 \
--logo ./data/my_study/logo.png \
--aff_logo ./data/my_study/aff.png
4.1 Parameter Reference
“
Aspect Ratio Rule: 1.4 ≤ width ÷ height ≤ 2.0
This range balances ISO paper standards and human peripheral vision limits.
5. Web Interface: Drag, Drop, Done
Prefer clicking to typing? PosterGen ships with a lightweight React front-end.
5.1 Start the Backend
cd webui
pip install -r requirements.txt
python start_backend.py
5.2 Start the Frontend (second terminal)
cd webui
sh ./start_frontend.sh # Windows: use Git Bash or WSL
Navigate to http://localhost:3000
:

Upload files, choose models, click Generate, and download the finished assets:

6. Understanding the Output Folder
After completion you will see:
output/
└── my_study/
├── my_study.png # final poster, 300 dpi
├── my_study.pptx # editable source
├── assets/
│ ├── figures.json # metadata with aspect ratios
│ ├── figure-*.png # extracted figures
│ └── tables.json
└── content/
├── story_board.json # human-readable outline
├── optimized_layout.json # pixel-exact coordinates
├── color_scheme.json # 5 primary + 3 accent colors
└── styled_layout.json # final typography
“
Pro Tip: Open
my_study.pptx
in PowerPoint or Google Slides to adjust last-minute typos without rerunning the pipeline.
7. How the Six Agents Work Together
Below is a plain-English walkthrough of the internal pipeline.
7.1 Parser Agent: Unpacking the PDF
- 🍄
Uses Marker (open-source) to split the PDF into: - 🍄
Markdown text ( raw.md
) - 🍄
High-resolution figures ( figure-*.png
) - 🍄
Tables ( table-*.png
)
- 🍄
- 🍄
Records exact aspect ratios so later stages know how much space each visual needs.
7.2 Curator Agent: Writing the Storyboard
- 🍄
Reads raw.md
and rewrites it into four narrative blocks:- 🍄
Motivation - 🍄
Methods - 🍄
Results - 🍄
Conclusion
- 🍄
- 🍄
Decides which figures support each block and drops low-impact visuals.
7.3 Layout Agent & Balancer: From Story to Grid
- 🍄
Divides the canvas into three equal columns. - 🍄
Assigns each paragraph and figure to a column, aiming for equal height. - 🍄
Balancer Sub-Agent iteratively shifts content to prevent overflow.
7.4 Color Agent: Brand-Consistent Palettes
- 🍄
Loads aff.png, runs K-Means clustering to extract dominant hues. - 🍄
Uses color-wheel theory to generate: - 🍄
5 primary colors (background, headings, body text) - 🍄
3 accent colors (highlight boxes, chart lines)
- 🍄
7.5 Font Agent: Readable Typography
- 🍄
Chooses sans-serif for headers, serif for body text. - 🍄
Increases font size of keywords by 20 % for quick scanning. - 🍄
Ensures WCAG 2.1 color contrast.
7.6 Renderer: Final Export
- 🍄
Creates my_study.pptx
with python-pptx. - 🍄
Calls LibreOffice headless to export my_study.png
at 300 dpi.
8. Practical Customization
8.1 Tweaking Margins and Gaps
Edit config/poster_config.yaml
:
layout:
column_gap: 24 # pixels between columns
section_margin: 32 # space between text block and figure
Restart the pipeline; no code changes needed.
8.2 Adding Custom Fonts
-
Drop .ttf
or.otf
files intofonts/
. -
Map filename in src/layout/text_height_measurement.py
. -
Update the typography
section inconfig/poster_config.yaml
.
8.3 Handling Overflow
If text or figures spill out:
- 🍄
Open content/optimized_layout.json
. - 🍄
Reduce the max_width_ratio
of oversized figures. - 🍄
Rerun only the Renderer step:
python -m src.workflow.renderer --paper_path ./output/my_study
9. Real-World Examples
Below are two posters generated entirely by PosterGen. No manual adjustments were made after export.
Neural Encoding Poster (54 × 36 in)
Active Learning in Geoscience Poster (48 × 32 in)
10. Cost and Token Estimates
11. Troubleshooting Quick List
12. Frequently Asked Questions
Q1: Can I use a figure-heavy review paper?
Yes. Parser Agent extracts all visuals; Curator Agent keeps only those referenced in the final narrative.
Q2: Do I need a GPU?
No. All LLM calls are API-based; local CPU is enough for layout math and image stitching.
Q3: Is my data private?
The pipeline sends only PDF text and figure bytes to the LLM endpoints you configure (OpenAI or Anthropic). No data is retained on our servers.
Q4: How do I cite PosterGen?
Include the GitHub repository URL and note the generation date in your poster acknowledgments.
13. Closing Thoughts
PosterGen does not replace critical scientific thinking; it removes repetitive formatting so you can focus on what matters—explaining your research. Give it a spin, attend your next conference with confidence, and if you improve the code, send a pull request. The open-source community (and your future self) will thank you.