π What is PosterCraft?

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
# 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:
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 :
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:
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.
python demo_gradio.py
π Performance Benchmarks
π Quantitative Results
Method | Text Recall β | Text F-score β | Text Accuracy β |
---|---|---|---|
OpenCOLE (Open) | 0.082 | 0.076 | 0.061 |
Playground-v2.5 (Open) | 0.157 | 0.146 | 0.132 |
SD3.5 (Open) | 0.565 | 0.542 | 0.497 |
Flux1.dev (Open) | 0.723 | 0.707 | 0.667 |
Ideogram-v2 (Close) | 0.711 | 0.685 | 0.680 |
BAGEL (Open) | 0.543 | 0.536 | 0.463 |
Gemini2.0-Flash-Gen (Close) | 0.798 | 0.786 | 0.746 |
PosterCraft (ours) | 0.787 | 0.774 | 0.735 |

π Citation
If you find PosterCraft useful for your research, please cite our paper:
@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}
}
- Downloads last month
- 169
Model tree for PosterCraft/PosterCraft-v1_RL
Base model
black-forest-labs/FLUX.1-dev