Widget2Code-Data
收藏资源简介:
Widget2Code Data 是一个用于图像到代码生成任务的数据集,主要面向将 UI 截图自动转换为 React JSX 代码的场景。该数据集包含三个子集:训练集(train)包含 1,822 张 UI 截图,测试集(test)包含 1,000 张截图,以及 SFT 子集(sft)包含 1,816 个完整的图像-代码示例。每个样本包含以下文件:原始截图(image.png)、元数据文件(metadata.json,包含 id、分割、SHA256 哈希、图像尺寸、类别标签、图表标志以及预计算的评估指标)、OCR 文本(ocr.txt)、调色板信息(palette.txt)。SFT 子集额外包含生成代码(code.jsx)和尺寸信息(dims.txt),其截图由代码渲染而来,而非原始屏幕截图。元数据中的 eval 字段存储了评估指标,包括布局、可读性、样式和填充分数,这些指标仅依赖于真实标签,用于加速模型评估。数据集标签包括 16 个 UI 类别(训练集和 SFT 集),测试集未提供类别标签但包含图表标志。该数据集适用于截图到代码生成、多模态理解、前端自动化等任务。
Widget2Code Data is a dataset for image-to-code generation tasks, primarily aimed at automatically converting UI screenshots into React JSX code. The dataset contains three subsets: the training set (train) with 1,822 UI screenshots, the test set (test) with 1,000 screenshots, and the SFT subset (sft) with 1,816 complete image-code pairs. Each sample includes: the original screenshot (image.png), a metadata file (metadata.json containing id, split, SHA256 hash, image dimensions, category label, chart flag, and precomputed evaluation metrics), OCR text (ocr.txt), and palette information (palette.txt). The SFT subset additionally includes generated code (code.jsx) and dimension information (dims.txt), with screenshots rendered from code rather than being original screenshots. The eval field in metadata stores evaluation metrics including layout, readability, style, and fill scores, which depend only on ground truth labels to accelerate model evaluation. Dataset labels include 16 UI categories (for training and SFT sets); the test set provides no category labels but includes chart flags. This dataset is suitable for tasks such as screenshot-to-code generation, multimodal understanding, and frontend automation.
Widget2Code Data 数据集概述
数据集简介
Widget2Code Data 是一个用于图像到代码生成(image-to-text)任务的多模态数据集,主要应用于截图转代码(screenshot-to-code)场景,支持生成 React/JSX 代码。数据集采用 BSL-1.0 许可证。
数据构成
数据集包含三个独立的部分:
- train/: 包含 1,822 张组件截图
- test/: 包含 1,000 张组件截图
- sft/: 包含 1,816 个完整的图像-代码示例(用于监督微调)
数据目录结构
每个样本按以下结构组织:
<split>/image_0004/ ├── image.png # 组件截图 ├── metadata.json # 标签及预计算的评估中间结果 ├── ocr.txt # OCR 证据文本(用于提示词) ├── palette.txt # 调色板证据文本(用于提示词) ├── code.jsx # 仅 sft 包含:渲染对应截图的 JSX 代码 └── dims.txt # 仅 sft 包含
注意:sft/ 是独立的数据划分,并非 train/ 的视图。其 image.png 由 code.jsx 渲染生成,同时其 OCR 和调色板信息也描述该渲染结果。
元数据字段说明
每个样本的 metadata.json 包含以下关键信息:
- id / split: 样本标识和所属划分
- sha256: 图像文件的哈希值,用于缓存校验
- size: 图像尺寸
- category: 类别标签(train/sft 为 16 个类别之一,test 为 null)
- has_chart: 是否包含图表(仅 test 标注,train/sft 为 null)
- eval: 预计算的评估指标中间结果,包含:
layout: 布局评估(边距、边界框、组件数量等)legibility: 可读性(OCR 文本、对比度等)style: 风格(色相直方图、饱和度直方图、极性)fill: 填充评估(对全黑/全白图像的得分)
所有数值以全精度浮点数存储,null 表示从未标注,而非“已知不存在”。
评估设计
eval字段保存了基准评分中仅依赖真实标签的部分,评估时无需对每个模型重复计算- 只有 SSIM 和 LPIPS 指标需要同时比较预测图像和真实图像
- 当模型未生成有效预测时,使用
fill中的全黑/全白图像评分作为兜底
版本变更说明
与旧版布局相比,本次更新有以下变化:
- 删除了
train_cls/和test_cls/(原为 train 和 test 的字节级副本,占用 613 MB),改用category字段表达 16 类标签 - 删除了
charts/(原包含 30 张已存在于 test 中的图像),改用has_chart字段覆盖全部 1,000 张测试图像 - 文件以原始格式按样本存储,训练代码在下载后自行组装记录





