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.6.tar.gz (20.2 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.6-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: widget2code_bench-0.2.6.tar.gz
  • Upload date:
  • Size: 20.2 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.6.tar.gz
Algorithm Hash digest
SHA256 5a0d90c8d17f73a3ee7e227b2f6eda26a31657e2f24394ac168c49d5d4ed31de
MD5 c78cd93a117109788b22c68ae3d97cf0
BLAKE2b-256 63fb37f05ed31a8c3c971b2e8dc575be03759ccb6aeab2007514d5223f28170f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for widget2code_bench-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 d5507c3758874da1fc27ec353c1b1dda60869d68e27fe1ed0af4ff69b85c7945
MD5 00a63d384cc023dc4332a33a6fcf4b77
BLAKE2b-256 8f5cf81fd6d5013cfae5d15608ae5b4533b9d7adc49635f95b18f88e549e2797

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