CoolFace
Modelpublic

void-2024/PosterCopilot

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
2likes72downloads
README.md93 linesDownload Raw Back to root
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