Skip to main content

Benchmark evaluation for widget code generation — 12 quality metrics across layout, legibility, perceptual, style, and geometry.

Project description

widget2code-bench

Benchmark evaluation for widget code generation — 12 quality metrics across layout, legibility, perceptual, style, and geometry.

Installation

# 1. Install PyTorch with CUDA support first (skip if CPU-only)
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu126

# 2. Install widget2code-bench
pip install widget2code-bench

Note: PyPI only ships CPU-only PyTorch. To use --cuda, you must install PyTorch from the official index before installing this package.

Usage

Single image mode

Evaluate one GT-prediction pair. Prints JSON results to stdout, no files saved.

widget2code-bench \
  --gt_image /path/to/gt.png \
  --pred_image /path/to/pred.png \
  --cuda

Batch mode

Evaluate all matched pairs in directories.

widget2code-bench \
  --gt_dir /path/to/GT \
  --pred_dir /path/to/predictions \
  --pred_name output.png \
  --cuda

Directory Structure (batch mode)

  • GT dir: flat image files with 4-digit IDs in filenames (e.g. gt_0001.png)
  • Pred dir: subfolders with 4-digit IDs in names, each containing --pred_name file
gt_dir/                     pred_dir/
  gt_0001.png                 image_0001/
  gt_0002.png                   output.png
  ...                         image_0002/
                                output.png

Options

Flag Default Description
--gt_image Single GT image path
--pred_image Single prediction image path
--gt_dir GT directory (flat image files)
--pred_dir Prediction directory (subfolders)
--pred_name output.png Prediction filename inside each subfolder
--output_dir {pred_dir}/.analysis Statistics output directory
--workers 4 Parallel threads
--cuda off Enable GPU
--skip_eval off Skip evaluation, only generate statistics
--no_fill off Disable fill-image evaluation for missing predictions (fill is on by default)

Output (batch mode)

  1. Evaluation — Saves evaluation.json in each prediction subfolder + evaluation.xlsx in pred_dir
  2. Statistics — Saves metrics_stats.json and metrics.xlsx to {pred_dir}/.analysis/

Handling missing predictions (fill mode, default)

When a GT image has no matching prediction, the evaluator also scores it against synthetic fill images, so the summary xlsx can show how different assumptions about missing samples affect the aggregate metrics. Each summary xlsx contains up to 4 rows:

Row Description
<run> Average over matched pairs only
<run> (+ black fill) Missing preds scored against an all-black image
<run> (+ white fill) Missing preds scored against an all-white image
<run> (+ zero fill) Missing preds contribute the worst-case value (LPIPS = 1.0, others = 0)

Two extra columns are appended after Geometry:

  • SuccessRate / ratio — matched pairs / total GT, as a percentage
  • SuccessRate / count — e.g. 993/1000

Pass --no_fill to disable this behavior (only row 1 is produced and missing preds are skipped).

All metrics are higher-is-better except lp (LPIPS), which is a distance (lower-is-better).

License

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

widget2code_bench-0.2.4.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

widget2code_bench-0.2.4-py3-none-any.whl (23.0 kB view details)

Uploaded Python 3

File details

Details for the file widget2code_bench-0.2.4.tar.gz.

File metadata

  • Download URL: widget2code_bench-0.2.4.tar.gz
  • Upload date:
  • Size: 19.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for widget2code_bench-0.2.4.tar.gz
Algorithm Hash digest
SHA256 3cdadc29b1bc3298d0b778f89bdad97013d2b21177d30acd5eae2ac7ebc62126
MD5 f74f6b7e6b0e47abe138cdf5b2d1b8a2
BLAKE2b-256 e36a8d01575b2fed97b0516f89541ec0a2bf8b8c103872ce62559e2afe259f51

See more details on using hashes here.

File details

Details for the file widget2code_bench-0.2.4-py3-none-any.whl.

File metadata

File hashes

Hashes for widget2code_bench-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a779f765cc89b581fa584a8487b76043d51f9764f2830bf53788f9e8fa382481
MD5 f8c45b726633e3650a1f26d258ffb8b5
BLAKE2b-256 47cc01cf043201fba84cfb480964a523965cd994f7b42e0aa5436d53eabe2743

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page