The Crello dataset is a collection of raster graphic designs originally compiled for the study of vector graphic documents. It contains document meta-data such as canvas size and pre-rendered elements such as images or text boxes. The original templates were collected from crello.com (now create.vista.com) and converted to a low-resolution format suitable for machine learning analysis. More recently, it has been used for research into decomposing raster graphic designs into layers, as presented in the LayerD paper.
import datasets
dataset = datasets.load_dataset("cyberagent/crello", revision="5.1.0")
The LayerD project, which uses this dataset for training its top-layer matting module, provides a script to prepare the Crello dataset. You can convert the Crello dataset for this purpose using the following command from the LayerD repository:
uv run python ./tools/generate_crello_matting.py --output-dir </path/to/dataset> --inpainting --save-layers
[!NOTE] This script downloads the Crello dataset (<20GB) from Hugging Face. Please ensure you have a stable internet connection and sufficient disk space for the first run.
The Crello dataset supports unsupervised document generation (as studied by CanvasVAE) and layer decomposition / image segmentation (as studied by LayerD).
Almost all design templates use English.
Each instance has scalar attributes (canvas) and sequence attributes (elements).
Categorical values are stored as integer values. Check ClassLabel features of the dataset for the list of categorical labels.
To get a label for categorical values, use the int2str method:
data = dataset['train'] # obtain the train set
key = "font"
example = data[0] # obtain the first sample in train set
data.features[key].feature.int2str(example[key]) # obtain the text equivalent of the encoded values
In the following, categorical fields are shown as categorical type, but the actual storage is int64.
Canvas attributes
| Field | Type | Shape | Description |
|---|---|---|---|
| id | string | () | Template ID from create.vista.com |
| group | categorical | () | Broad design groups, such as social media posts or blog headers |
| format | categorical | () | Detailed design formats, such as Instagram post or postcard |
| category | categorical | () | Topic category of the design, such as holiday celebration |
| canvas_width | int64 | () | Canvas pixel width |
| canvas_height | int64 | () | Canvas pixel height |
| length | int64 | () | Length of elements |
| suitability | categorical | (None,) | List of display tags, only mobile tag exists |
| keywords | string | (None,) | List of keywords associated to this template |
| industries | categorical | (None,) | List of industry tags like marketingAds |
| preview | image | () | Preview image of the template for convenience |
| cluster_index | int64 | () | Cluster index used to split the dataset; only for debugging |
Element attributes
| Field | Type | Shape | Description |
|---|---|---|---|
| type | categorical | (None,) | Element type, such as vector shape, image, or text |
| left | float32 | (None,) | Element left position |
| top | float32 | (None,) | Element top position |
| width | float32 | (None,) | Element width |
| height | float32 | (None,) | Element height |
| color | string | (None, None) | RGB color palette of the vector graphic element |
| opacity | float32 | (None,) | Opacity in [0, 1] range |
| image | image | (None,) | Pre-rendered preview of the element encoded in PNG format |
| text | string | (None,) | Text content in UTF-8 encoding for text element |
| font | categorical | (None,) | Font family name for text element |
| font_size | float32 | (None,) | Font size (height) in pixels |
| text_align | categorical | (None,) | Horizontal text alignment, left, center, right for text element |
| angle | float32 | (None,) | Element rotation angle (degree) w.r.t. the center of the element |
| font_bold | boolean | (None, None) | Character-wise flag to indicate bold font |
| font_italic | boolean | (None, None) | Character-wise flag to indicate italic font |
| text_color | string | (None, None) | Character-wise rgba color |
| text_line | int64 | (None, None) | Character-wise index of line number |
| capitalize | boolean | (None,) | Binary flag to capitalize letters |
| line_height | float32 | (None,) | Scaling parameter to line height, default is 1.0 |
| letter_spacing | float32 | (None,) | Adjustment parameter for letter spacing, default is 0.0 |
left and top can be negative because elements can be bigger than the canvas size.
text_line indicates the index of the text line.
For example, the following indicates that Be is in the first line and the rest in the next line.
The newline character if present is ignored in rendering.
{
"text": "Be
ambitious!",
"text_line": [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1],
}
Note that the color and pre-rendered images do not necessarily accurately reproduce the original design templates. The original template is accessible at the following URL if still available.
https://create.vista.com/artboard/?template=<template_id>
The Crello dataset has 3 splits: train, validation, and test. The current split is generated based on appearance-based clustering. Be careful, the split is not compatible between dataset revisions.
Each example can be visualized in the following approach using cr-renderer.
https://github.com/CyberAgentAILab/cr-renderer
Note the renderer does not guarantee a similar appearance to the original template. Currently, the quality of text rendering is far from perfect.
The Crello dataset is compiled for the general study of vector graphic documents, with the goal of producing a dataset that offers complete vector graphic information suitable for neural methodologies.
The dataset is initially scraped from the former crello.com and pre-processed to the above format.
While create.vista.com owns those templates, the templates seem to be originally created by a specific group of design studios.
The dataset does not contain any personal information about the creator but may contain a picture of people in the design template.
This dataset was developed for advancing the general study of vector graphic documents, especially for generative systems of graphic design. Successful utilization might enable the automation of creative workflow that human designers get involved in.
The templates contained in the dataset reflect the biases appearing in the source data, which could present gender biases in specific design categories.
Due to the unknown data specification of the source data, the color and pre-rendered images do not necessarily accurately reproduce the original design templates. The original template is accessible at the following URL if still available.
https://create.vista.com/artboard/?template=<template_id>
The Crello dataset was developed by Kota Yamaguchi.
The origin of the dataset is create.vista.com (formally, crello.com).
The distributor ("We") do not own the copyrights of the original design templates.
By using the Crello dataset, the user of this dataset ("You") must agree to the
VistaCreate License Agreements.
The dataset is distributed under CDLA-Permissive-2.0 license.
Note
We do not re-distribute the original files as we are not allowed by terms.
@article{yamaguchi2021canvasvae,
title={CanvasVAE: Learning to Generate Vector Graphic Documents},
author={Yamaguchi, Kota},
journal={ICCV},
year={2021}
}
If you use the Crello dataset in work related to layer decomposition or the LayerD project, please also cite:
@inproceedings{suzuki2025layerd,
title={LayerD: Decomposing Raster Graphic Designs into Layers},
author={Suzuki, Tomoyuki and Liu, Kang-Jun and Inoue, Naoto and Yamaguchi, Kota},
booktitle={ICCV},
year={2025}
}
5.1.0: v5.1 release (Oct 31, 2024)
5.0.0: v5 release (Sep 18, 2024)
4.0.0: v4 release (Dec 5, 2023)
3.1: bugfix release (Feb 16, 2023)
3.0: v3 release (Feb 13, 2023)
title, keywords, suitability, and industries canvas attributes.capitalize, line_height, and letter_spacing element attributes.2.0: v2 release (May 26, 2022)
text, font, font_size, text_align, and angle element attributes.image_bytes.1.0: v1 release (Aug 24, 2021)
Thanks to @kyamagu for adding this dataset.
The Crello dataset is a collection of raster graphic designs originally compiled for the study of vector graphic documents. It contains document meta-data such as canvas size and pre-rendered elements such as images or text boxes. The original templates were collected from crello.com (now create.vista.com) and converted to a low-resolution format suitable for machine learning analysis. More recently, it has been used for research into decomposing raster graphic designs into layers, as presented in the LayerD paper.
import datasets
dataset = datasets.load_dataset("cyberagent/crello", revision="5.1.0")
The LayerD project, which uses this dataset for training its top-layer matting module, provides a script to prepare the Crello dataset. You can convert the Crello dataset for this purpose using the following command from the LayerD repository:
uv run python ./tools/generate_crello_matting.py --output-dir </path/to/dataset> --inpainting --save-layers
[!NOTE] This script downloads the Crello dataset (<20GB) from Hugging Face. Please ensure you have a stable internet connection and sufficient disk space for the first run.
The Crello dataset supports unsupervised document generation (as studied by CanvasVAE) and layer decomposition / image segmentation (as studied by LayerD).
Almost all design templates use English.
Each instance has scalar attributes (canvas) and sequence attributes (elements).
Categorical values are stored as integer values. Check ClassLabel features of the dataset for the list of categorical labels.
To get a label for categorical values, use the int2str method:
data = dataset['train'] # obtain the train set
key = "font"
example = data[0] # obtain the first sample in train set
data.features[key].feature.int2str(example[key]) # obtain the text equivalent of the encoded values
In the following, categorical fields are shown as categorical type, but the actual storage is int64.
Canvas attributes
| Field | Type | Shape | Description |
|---|---|---|---|
| id | string | () | Template ID from create.vista.com |
| group | categorical | () | Broad design groups, such as social media posts or blog headers |
| format | categorical | () | Detailed design formats, such as Instagram post or postcard |
| category | categorical | () | Topic category of the design, such as holiday celebration |
| canvas_width | int64 | () | Canvas pixel width |
| canvas_height | int64 | () | Canvas pixel height |
| length | int64 | () | Length of elements |
| suitability | categorical | (None,) | List of display tags, only mobile tag exists |
| keywords | string | (None,) | List of keywords associated to this template |
| industries | categorical | (None,) | List of industry tags like marketingAds |
| preview | image | () | Preview image of the template for convenience |
| cluster_index | int64 | () | Cluster index used to split the dataset; only for debugging |
Element attributes
| Field | Type | Shape | Description |
|---|---|---|---|
| type | categorical | (None,) | Element type, such as vector shape, image, or text |
| left | float32 | (None,) | Element left position |
| top | float32 | (None,) | Element top position |
| width | float32 | (None,) | Element width |
| height | float32 | (None,) | Element height |
| color | string | (None, None) | RGB color palette of the vector graphic element |
| opacity | float32 | (None,) | Opacity in [0, 1] range |
| image | image | (None,) | Pre-rendered preview of the element encoded in PNG format |
| text | string | (None,) | Text content in UTF-8 encoding for text element |
| font | categorical | (None,) | Font family name for text element |
| font_size | float32 | (None,) | Font size (height) in pixels |
| text_align | categorical | (None,) | Horizontal text alignment, left, center, right for text element |
| angle | float32 | (None,) | Element rotation angle (degree) w.r.t. the center of the element |
| font_bold | boolean | (None, None) | Character-wise flag to indicate bold font |
| font_italic | boolean | (None, None) | Character-wise flag to indicate italic font |
| text_color | string | (None, None) | Character-wise rgba color |
| text_line | int64 | (None, None) | Character-wise index of line number |
| capitalize | boolean | (None,) | Binary flag to capitalize letters |
| line_height | float32 | (None,) | Scaling parameter to line height, default is 1.0 |
| letter_spacing | float32 | (None,) | Adjustment parameter for letter spacing, default is 0.0 |
left and top can be negative because elements can be bigger than the canvas size.
text_line indicates the index of the text line.
For example, the following indicates that Be is in the first line and the rest in the next line.
The newline character if present is ignored in rendering.
{
"text": "Be
ambitious!",
"text_line": [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1],
}
Note that the color and pre-rendered images do not necessarily accurately reproduce the original design templates. The original template is accessible at the following URL if still available.
https://create.vista.com/artboard/?template=<template_id>
The Crello dataset has 3 splits: train, validation, and test. The current split is generated based on appearance-based clustering. Be careful, the split is not compatible between dataset revisions.
Each example can be visualized in the following approach using cr-renderer.
https://github.com/CyberAgentAILab/cr-renderer
Note the renderer does not guarantee a similar appearance to the original template. Currently, the quality of text rendering is far from perfect.
The Crello dataset is compiled for the general study of vector graphic documents, with the goal of producing a dataset that offers complete vector graphic information suitable for neural methodologies.
The dataset is initially scraped from the former crello.com and pre-processed to the above format.
While create.vista.com owns those templates, the templates seem to be originally created by a specific group of design studios.
The dataset does not contain any personal information about the creator but may contain a picture of people in the design template.
This dataset was developed for advancing the general study of vector graphic documents, especially for generative systems of graphic design. Successful utilization might enable the automation of creative workflow that human designers get involved in.
The templates contained in the dataset reflect the biases appearing in the source data, which could present gender biases in specific design categories.
Due to the unknown data specification of the source data, the color and pre-rendered images do not necessarily accurately reproduce the original design templates. The original template is accessible at the following URL if still available.
https://create.vista.com/artboard/?template=<template_id>
The Crello dataset was developed by Kota Yamaguchi.
The origin of the dataset is create.vista.com (formally, crello.com).
The distributor ("We") do not own the copyrights of the original design templates.
By using the Crello dataset, the user of this dataset ("You") must agree to the
VistaCreate License Agreements.
The dataset is distributed under CDLA-Permissive-2.0 license.
Note
We do not re-distribute the original files as we are not allowed by terms.
@article{yamaguchi2021canvasvae,
title={CanvasVAE: Learning to Generate Vector Graphic Documents},
author={Yamaguchi, Kota},
journal={ICCV},
year={2021}
}
If you use the Crello dataset in work related to layer decomposition or the LayerD project, please also cite:
@inproceedings{suzuki2025layerd,
title={LayerD: Decomposing Raster Graphic Designs into Layers},
author={Suzuki, Tomoyuki and Liu, Kang-Jun and Inoue, Naoto and Yamaguchi, Kota},
booktitle={ICCV},
year={2025}
}
5.1.0: v5.1 release (Oct 31, 2024)
5.0.0: v5 release (Sep 18, 2024)
4.0.0: v4 release (Dec 5, 2023)
3.1: bugfix release (Feb 16, 2023)
3.0: v3 release (Feb 13, 2023)
title, keywords, suitability, and industries canvas attributes.capitalize, line_height, and letter_spacing element attributes.2.0: v2 release (May 26, 2022)
text, font, font_size, text_align, and angle element attributes.image_bytes.1.0: v1 release (Aug 24, 2021)
Thanks to @kyamagu for adding this dataset.