void-2024/PosterCopilot
272
1---2license: apache-2.03base_model: Qwen/Qwen2.5-VL-7B-Instruct4pipeline_tag: image-text-to-text5library_name: transformers6tags:7 - graphic-design8 - layout-generation9 - poster10 - multimodal11 - qwen2_5_vl12 - eccv202613---14 15# PosterCopilot-7B16 17Layout reasoning for professional graphic design. Give the model a set of layer18assets and a canvas size; it returns the poster layout as JSON โ a bounding box19and stacking order for every layer.20 21Accepted to **ECCV 2026**.22 23[๐ 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)24 25## Model details26 27| | |28|---|---|29| Base model | [Qwen/Qwen2.5-VL-7B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct) |30| Parameters | 7B (bfloat16, ~15.5 GiB) |31| Input | 2โ25 RGB layer assets + target canvas size + optional design brief |32| Output | One JSON object: `canvas_size` + per-layer `x, y, w, h, order, category` |33| Training | Perturbed SFT โ RL for visual-reality alignment โ RL from aesthetic feedback |34 35## Usage36 37This checkpoint expects a specific image preprocessing pipeline โ each layer is38flattened onto an auto-selected contrasting background, scaled to a 28-pixel39aligned canvas, and letterboxed with grey. Use the reference implementation40rather than feeding raw images:41 42```bash43git clone https://github.com/JiazheWei/PosterCopilot.git44cd PosterCopilot45conda env create -f environment.yml && conda activate postercopilot46 47python infer.py --model <path-to-this-checkpoint> \48 --assets ./my_layers --width 1200 --height 1600 -o layout.json49 50python render.py --layout layout.json --assets ./my_layers -o poster.png51```52 53The repository also contains the renderer that composites the predicted layout54and the original layers into the finished poster (PNG or editable PSD).55 56### Prompt format57 58The model was trained with a fixed system prompt and this user turn:59 60```61Please process the following {N} RGB PNG layer assets and compose a single,62aesthetically pleasing poster. The canvas size is {W} x {H} (width x height).63```64 65optionally followed by ` Structure Requirements: {brief}`. Both strings live in66`postercopilot/prompts.py` in the code repository; paraphrasing them moves the67input off the training distribution.68 69## Notes70 71- Decoding is greedy with `repetition_penalty=1.05`. Coordinates are emitted72 digit by digit, so a single flipped digit re-rolls the rest of the layout โ73 expect different-but-comparable results across GPUs, dtypes and attention74 kernels. Evaluate over a set of samples rather than one generation.75- Requires ~20 GB of free VRAM in bfloat16.76- `transformers>=4.55` โ the config uses the nested `text_config` schema that77 older releases predate.78 79## Citation80 81```bibtex82@article{wei2025postercopilot,83 title={PosterCopilot: Toward Layout Reasoning and Controllable Editing for Professional Graphic Design},84 author={Wei, Jiazhe and Li, Ken and Lao, Tianyu and Wang, Haofan and Wang, Liang and Shan, Caifeng and Si, Chenyang},85 journal={arXiv preprint arXiv:2512.04082},86 year={2025}87}88```89 90## License91 92Apache 2.0, inherited from the Qwen2.5-VL-7B-Instruct base model.93 