Skip to content

creative-graphic-design/layout-prompter

Β 
Β 

Repository files navigation

LayoutPrompter: Awaken the Design Ability of Large Language Models (NeurIPS2023)

LayoutPrompter

LayoutPrompter is a versatile method for graphic layout generation, capable of solving various conditional layout generation tasks (as illustrated on the left side) across a range of layout domains (as illustrated on the right side) without any model training or fine-tuning.

Installation

pip install git+https://github.com/creative-graphic-design/layout-prompter

Results

We conduct experiments on three groups of layout generation tasks, including

  • constraint-explicit layout generation
  • content-aware layout generation
  • text-to-layout

Below are the qualitative results.

Constraint-Explicit Layout Generation

constraint-explicit

Content-Aware Layout Generation

content-aware

Text-to-Layout

text2layout

Installation

  1. Clone this repository
git clone https://github.com/microsoft/LayoutGeneration.git
cd LayoutGeneration/LayoutPrompter
  1. Create a conda environment
conda create -n layoutprompter python=3.8
conda activate layoutprompter
  1. Install PyTorch and other dependencies
conda install pytorch=1.13.1 torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
pip install -r requirements.txt
pip install -e src/

Datasets

We use 4 datasets in this work, including RICO, PubLayNet, PosterLayout and WebUI. They can be downloaded from HuggingFace using the following commands:

git lfs install
git clone https://huggingface.co/datasets/KyleLin/LayoutPrompter

Move the contents to the dataset directory as follows:

dataset/
β”œβ”€β”€ posterlayout
β”œβ”€β”€ publaynet
β”œβ”€β”€ rico
β”œβ”€β”€ webui

Notebooks

We include three jupyter notebooks here, each corresponding to a type of layout generation task. They all consist of the following components:

  • Configuration
  • Process raw data
  • Dynamic exemplar selection
  • Input-output serialization
  • Call GPT
  • Parsing
  • Layout ranking
  • Visualization

Try it!

Citation

If you find this code useful for your research, please cite our paper:

@inproceedings{lin2023layoutprompter,
  title={LayoutPrompter: Awaken the Design Ability of Large Language Models},
  author={Lin, Jiawei and Guo, Jiaqi and Sun, Shizhao and Yang, Zijiang James and Lou, Jian-Guang and Zhang, Dongmei},
  booktitle={Thirty-seventh Conference on Neural Information Processing Systems},
  year={2023}
}

Packages

No packages published

Languages

  • Jupyter Notebook 69.2%
  • Python 30.6%
  • Makefile 0.2%