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.0.tar.gz (19.5 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.0-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: widget2code_bench-0.2.0.tar.gz
  • Upload date:
  • Size: 19.5 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.0.tar.gz
Algorithm Hash digest
SHA256 96081187c5804f45cb9e0e449349b7d19a2986a5249fe2964f7977aa55baf742
MD5 3803505c18378c20fd77e07d2f1547ce
BLAKE2b-256 df120ad5fd3ce3a7a52d4e9f879a4ab12e98e23ff4a4ca82f29a8c92189c6f5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for widget2code_bench-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e9d10a6cf29f1523bc278c749c87a25a6329e14ea3bd98c1012ef863d46fa4f4
MD5 b164040320c09986d98ddef4ad7e70e5
BLAKE2b-256 42d5111b9b574e2d9772a0b581e7635c1d5a85d1ae36c78306898142db866294

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