CoolFace
Modelpublic

svjack/PosterCraft-v1_RL

sourceHugging Faceotherupdated 1y agoView on Hugging Face
0likes7downloads
Model Card

<div align="center"> <h1>๐ŸŽจ PosterCraft:<br/>Rethinking High-Quality Aesthetic Poster Generation in a Unified Framework</h1>

![arXiv](https://arxiv.org/abs/2506.10741) ![GitHub](https://github.com/ephemeral182/PosterCraft) ![HuggingFace](https://huggingface.co/PosterCraft) ![Website](https://ephemeral182.github.io/PosterCraft/) ![Demo](https://ephemeral182.github.io/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 :

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.

bash
python demo_gradio.py

Reference Demo on Wang_Leehom (็Ž‹ๅŠ›ๅฎ)

  • โ€”reference on

image/webp

  • โ€”target

image/jpeg

๐Ÿ“Š 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>