CoolFace
Modelpublic

void-2024/PosterCopilot

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
2likes72downloads
Model Card

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 ยท ๐ŸŒ Project Page ยท ๐Ÿ’ป Code ยท โ–ถ๏ธ Video

Model details

Base modelQwen/Qwen2.5-VL-7B-Instruct
Parameters7B (bfloat16, ~15.5 GiB)
Input2โ€“25 RGB layer assets + target canvas size + optional design brief
OutputOne JSON object: canvas_size + per-layer x, y, w, h, order, category
TrainingPerturbed 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.