PosterCopilot / README.md
void-2024's picture
Upload PosterCopilot (mirrored from modelscope SumaRiki/PosterCopilot)
91cb724 verified
|
Raw
History Blame Contribute Delete
3.26 kB
---
license: apache-2.0
base_model: Qwen/Qwen2.5-VL-7B-Instruct
pipeline_tag: image-text-to-text
library_name: transformers
tags:
- graphic-design
- layout-generation
- poster
- multimodal
- qwen2_5_vl
- eccv2026
---
# PosterCopilot-7B
Layout reasoning for professional graphic design. Give the model a set of layer
assets and a canvas size; it returns the poster layout as JSON β€” a bounding box
and stacking order for every layer.
Accepted to **ECCV 2026**.
[πŸ“„ Paper](https://arxiv.org/abs/2512.04082) Β· [🌐 Project Page](https://postercopilot.github.io/) Β· [πŸ’» Code](https://github.com/JiazheWei/PosterCopilot) Β· [▢️ Video](https://www.youtube.com/watch?v=yqFMzb5iVE8)
## Model details
| | |
|---|---|
| Base model | [Qwen/Qwen2.5-VL-7B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct) |
| Parameters | 7B (bfloat16, ~15.5 GiB) |
| Input | 2–25 RGB layer assets + target canvas size + optional design brief |
| Output | One JSON object: `canvas_size` + per-layer `x, y, w, h, order, category` |
| Training | Perturbed SFT β†’ RL for visual-reality alignment β†’ RL from aesthetic feedback |
## Usage
This checkpoint expects a specific image preprocessing pipeline β€” each layer is
flattened onto an auto-selected contrasting background, scaled to a 28-pixel
aligned canvas, and letterboxed with grey. Use the reference implementation
rather than feeding raw images:
```bash
git clone https://github.com/JiazheWei/PosterCopilot.git
cd PosterCopilot
conda env create -f environment.yml && conda activate postercopilot
python infer.py --model <path-to-this-checkpoint> \
--assets ./my_layers --width 1200 --height 1600 -o layout.json
python render.py --layout layout.json --assets ./my_layers -o poster.png
```
The repository also contains the renderer that composites the predicted layout
and the original layers into the finished poster (PNG or editable PSD).
### Prompt format
The model was trained with a fixed system prompt and this user turn:
```
Please process the following {N} RGB PNG layer assets and compose a single,
aesthetically pleasing poster. The canvas size is {W} x {H} (width x height).
```
optionally followed by ` Structure Requirements: {brief}`. Both strings live in
`postercopilot/prompts.py` in the code repository; paraphrasing them moves the
input off the training distribution.
## Notes
- Decoding is greedy with `repetition_penalty=1.05`. Coordinates are emitted
digit by digit, so a single flipped digit re-rolls the rest of the layout β€”
expect different-but-comparable results across GPUs, dtypes and attention
kernels. Evaluate over a set of samples rather than one generation.
- Requires ~20 GB of free VRAM in bfloat16.
- `transformers>=4.55` β€” the config uses the nested `text_config` schema that
older releases predate.
## Citation
```bibtex
@article{wei2025postercopilot,
title={PosterCopilot: Toward Layout Reasoning and Controllable Editing for Professional Graphic Design},
author={Wei, Jiazhe and Li, Ken and Lao, Tianyu and Wang, Haofan and Wang, Liang and Shan, Caifeng and Si, Chenyang},
journal={arXiv preprint arXiv:2512.04082},
year={2025}
}
```
## License
Apache 2.0, inherited from the Qwen2.5-VL-7B-Instruct base model.