PosterCraft-v1_RL / README.md
Ephemeral182's picture
Update README.md
2362015 verified
---
license: other
license_name: flux-1-dev-non-commercial-license
license_link: LICENSE.md
library_name: diffusers
language:
- en
base_model:
- black-forest-labs/FLUX.1-dev
pipeline_tag: text-to-image
tags:
- art
- diffusion
- aesthetic-poster-generation
---
<div align="center">
<h1>🎨 PosterCraft:<br/>Rethinking High-Quality Aesthetic Poster Generation in a Unified Framework</h1>
[![arXiv](https://img.shields.io/badge/arXiv-2506.10741-red)](https://arxiv.org/abs/2506.10741)
[![GitHub](https://img.shields.io/badge/GitHub-Repository-blue)](https://github.com/ephemeral182/PosterCraft)
[![HuggingFace](https://img.shields.io/badge/πŸ€—-HuggingFace-yellow)](https://huggingface.co/PosterCraft)
[![Website](https://img.shields.io/badge/🌐-Website-green)](https://ephemeral182.github.io/PosterCraft/)
[![Video](https://img.shields.io/badge/πŸŽ₯-Live_Demo-purple)](https://www.youtube.com/watch?v=92wMU4D7qx0)
[![HF Demo](https://img.shields.io/badge/πŸ€—-HF_Demo-orange)](https://huggingface.co/spaces/Ephemeral182/PosterCraft)
<img src="assets/logo2.png" alt="PosterCraft Logo" width="1000"/>
<img src="assets/teaser-1.png" alt="PosterCraft Logo" width="1000"/>
</div>
---
## 🌟 What is PosterCraft?
<div align="center">
<img src="assets/demo2.png" alt="What is PosterCraft - Quick Prompt Demo" width="1000"/>
<br>
</div>
PosterCraft is a unified framework for **high-quality aesthetic poster generation** that excels in **precise text rendering**, **seamless integration of abstract art**, **striking layouts**, and **stylistic harmony**.
## πŸš€ Quick Start
### πŸ”§ Installation
```bash
# Clone the repository
git clone https://github.com/ephemeral182/PosterCraft.git
cd PosterCraft
# Create conda environment
conda create -n postercraft python=3.11
conda activate postercraft
# Install dependencies
pip install -r requirements.txt
```
### πŸš€ Easy Usage
PosterCraft is designed as a unified and flexible framework. This makes it easy to use PosterCraft within your own custom workflows or other compatible frameworks.
Loading the model is straightforward:
```python
import torch
from diffusers import FluxPipeline, FluxTransformer2DModel
# 1. Define model IDs and settings
pipeline_id = "black-forest-labs/FLUX.1-dev"
postercraft_transformer_id = "PosterCraft/PosterCraft-v1_RL"
device = "cuda"
dtype = torch.bfloat16
# 2. Load the base pipeline
pipe = FluxPipeline.from_pretrained(pipeline_id, torch_dtype=dtype)
# 3. The key step: simply replace the original transformer with our fine-tuned PosterCraft model
pipe.transformer = FluxTransformer2DModel.from_pretrained(
postercraft_transformer_id,
torch_dtype=dtype
)
pipe.to(device)
# Now, `pipe` is a standard diffusers pipeline ready for inference with your own logic.
```
### πŸš€ Quick Generation
For the best results and to leverage our intelligent prompt rewriting feature, we recommend using the provided `inference.py` script. This script automatically enhances your creative ideas for optimal results.
Generate high-quality aesthetic posters from your prompt with `BF16` precision, please refer to our [GitHub repository](https://github.com/Ephemeral182/PosterCraft) :
```bash
python inference.py \
--prompt "Urban Canvas Street Art Expo poster with bold graffiti-style lettering and dynamic colorful splashes" \
--enable_recap \
--num_inference_steps 28 \
--guidance_scale 3.5 \
--seed 42 \
--pipeline_path "black-forest-labs/FLUX.1-dev" \
--custom_transformer_path "PosterCraft/PosterCraft-v1_RL" \
--qwen_model_path "Qwen/Qwen3-8B"
```
If you are running on a GPU with limited memory, you can use `inference_offload.py` to offload some components to the CPU:
```bash
python inference_offload.py \
--prompt "Urban Canvas Street Art Expo poster with bold graffiti-style lettering and dynamic colorful splashes" \
--enable_recap \
--num_inference_steps 28 \
--guidance_scale 3.5 \
--seed 42 \
--pipeline_path "black-forest-labs/FLUX.1-dev" \
--custom_transformer_path "PosterCraft/PosterCraft-v1_RL" \
--qwen_model_path "Qwen/Qwen3-8B"
```
### πŸ’» Gradio Web UI
We provide a Gradio web UI for PosterCraft, please refer to our [GitHub repository](https://github.com/Ephemeral182/PosterCraft).
```bash
python demo_gradio.py
```
## πŸ“Š Performance Benchmarks
<div align="center">
### πŸ“ˆ Quantitative Results
<table>
<thead>
<tr>
<th>Method</th>
<th>Text Recall ↑</th>
<th>Text F-score ↑</th>
<th>Text Accuracy ↑</th>
</tr>
</thead>
<tbody>
<tr>
<td style="white-space: nowrap;">OpenCOLE (Open)</td>
<td>0.082</td>
<td>0.076</td>
<td>0.061</td>
</tr>
<tr>
<td style="white-space: nowrap;">Playground-v2.5 (Open)</td>
<td>0.157</td>
<td>0.146</td>
<td>0.132</td>
</tr>
<tr>
<td style="white-space: nowrap;">SD3.5 (Open)</td>
<td>0.565</td>
<td>0.542</td>
<td>0.497</td>
</tr>
<tr>
<td style="white-space: nowrap;">Flux1.dev (Open)</td>
<td>0.723</td>
<td>0.707</td>
<td>0.667</td>
</tr>
<tr>
<td style="white-space: nowrap;">Ideogram-v2 (Close)</td>
<td>0.711</td>
<td>0.685</td>
<td>0.680</td>
</tr>
<tr>
<td style="white-space: nowrap;">BAGEL (Open)</td>
<td>0.543</td>
<td>0.536</td>
<td>0.463</td>
</tr>
<tr>
<td style="white-space: nowrap;">Gemini2.0-Flash-Gen (Close)</td>
<td>0.798</td>
<td>0.786</td>
<td>0.746</td>
</tr>
<tr>
<td style="white-space: nowrap;"><b>PosterCraft (ours)</b></td>
<td><b>0.787</b></td>
<td><b>0.774</b></td>
<td><b>0.735</b></td>
</tr>
</tbody>
</table>
<img src="assets/hpc.png" alt="hpc" width="1000"/>
</div>
---
## πŸ“ Citation
If you find PosterCraft useful for your research, please cite our paper:
```bibtex
@article{chen2025postercraft,
title={PosterCraft: Rethinking High-Quality Aesthetic Poster Generation in a Unified Framework},
author={Chen, Sixiang and Lai, Jianyu and Gao, Jialin and Ye, Tian and Chen, Haoyu and Shi, Hengyu and Shao, Shitong and Lin, Yunlong and Fei, Song and Xing, Zhaohu and Jin, Yeying and Luo, Junfeng and Wei, Xiaoming and Zhu, Lei},
journal={arXiv preprint arXiv:2506.10741},
year={2025}
}
```
</div>