--- 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 \ --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.