MadStickArt v0.5.0

MadStickArt is a trained, 61,296-parameter neural raster decoder for stick-figure storyboard scenes. It reconstructs 956 Γ— 400 grayscale frames from four explicit layout masks: actors, setting, props, and motion. Its output contract is 2.39:1.

Try MadStickArt online β†’ β€” the browser trial is deployed separately. Its deployed model/version and renderer are recorded in the Space's model-provenance.json. The trial exposes all 27 settings and 91 props through the released Python asset renderer running locally in a browser worker. Browser suggestions use transparent rules, while Strands decisions run in the downloadable Python pipeline.

The Python pipeline handles structured scene decisions and procedural composition. Strands Decider fills missing controls; explicit user controls and placement remain authoritative. The procedural renderer lays out geometry, and the trained neural decoder rasterizes that layout. This model does not generate story text or choose scene composition from pixels.

Pin revision v0.5.0 from danger-room/MadStickArt for reproducible downloads. Jenkins also publishes this reviewed bundle as the public model danger-room/MadStickArt-v0.5.0, which appears separately in Danger Room's Models list. Both destinations must pass anonymous checksum and inference verification. The manifest retains the stable source repository; publication receipts identify each destination. The separate initial repository danger-room/MadStickArt-v0.1.0 and its v0.1.0 tag remain preserved.

Stable release navigation

Use main for the latest stable release. Pin an immutable version tag for reproducible runs. This card describes v0.5.0.

The original standalone repository remains available at danger-room/MadStickArt-v0.1.0. The stable repository's v0.1.0 preserves that original model on the current release line.

Representative procedural teacher targets

Held-out target and decoder comparison

Component versions

Component Version or revision
Model weights MadStickArt 0.5.0 (v0.5.0)
Dataset/catalog 32,768 pairs; 20 genres; 222 source titles
Procedural asset library 0.3.0
Scene planner StrandsAgents/strands-decider-2B-hobson-v19 at bb282d786bc251fd4e3068de3ada9ddbb38127cd
Python runtime package madstickartmodel 0.1.0
Catalog SHA-256 2bb3a6a1857274140bfd4f73001dcd80e941a2a02d7788eddba784f49afd8e05
Dataset manifest SHA-256 d98931a8deba77b207e5c2022ad2f4dc2e3cfe2e4b79d11c4d0dae6e66bd1811

Catalog entries are original generalized beats associated with film and television titles. Training targets are newly rendered procedural vector scenes, not movie frames or scripts. Source catalogs, code and small evidence reports are included; conditioning tensors, target datasets, planner downloads, decision caches and training logs are excluded.

Held-out decoder results

The checkpoint was selected by validation loss. On the title-isolated test split, it reached foreground IoU 0.7099 at threshold 0.35 on 4,896 scenes; pixel MAE was 0.0139. Validation foreground IoU was 0.7179 on 7,373 scenes. The bilinear union baseline scored 0.2457 test IoU.

These metrics measure agreement with the synthetic procedural teacher, not human judgments of story quality, composition, or legibility. Genres are balanced; action and emotion labels are not.

v0.5 trains fresh weights on continuous prop placements and dramatic 2D rotations. The shared procedural policy varies positions and orientations; the decoder learns to rasterize those layouts. Exact supplied placements remain authoritative. Fixed-checkpoint new/legacy/challenge comparisons and precision/recall tradeoffs are included in reports/rotation-quality.json. Dense linework can still overlap; rotation does not create a 3D view or optical simulation.

The released repair uses fresh weights trained for 16 fixed epochs on the 32,768-pair v0.5 collection plus 11,479 legacy training and 2,460 legacy validation scenes. Legacy test scenes are excluded from replay. Checkpoint selection gives primary and legacy validation losses equal weight; reported combined validation IoU is sample-weighted. The mixed collection contains 46,707 rows, including 601 training and 134 validation pairs intentionally repeated across source domains. These are within their original title splits. Separate source, primary, mixed and replay manifest identities are recorded in reports/replay-summary.json and reports/training-recipe.json. Test and challenge results do not select the checkpoint.

Measured throughput

The benchmark ran at 956 Γ— 400, batch size 1, after 10 warmup images, on Apple M5 Max, 40 GPU cores and 128 GB unified memory. The full pipeline measured 8.47 scenes/s across 100 scenes and 100 uncached Strands calls / 690 typed choice questions across 20 genres. Its scope includes layout, neural rendering, annotations, clean and annotated PNGs, and JSON; it met the five-scenes-per-second goal under those conditions. Model download and startup are excluded.

Prepared-scene to PNG measured 74.49 scenes/s and neural forward only measured 1501.87 images/s. Their narrower timing scopes are recorded in reports/benchmark.json. These Apple M-series measurements do not establish browser or base-M5 throughput.

Run the pinned model

hf download danger-room/MadStickArt --revision v0.5.0 --local-dir ./MadStickArt-v0.5.0
cd MadStickArt-v0.5.0
UV_CACHE_DIR="$PWD/.cache/uv" uv sync --locked --extra planner
uv run --no-sync madstick storyboard examples/multigenre-storyboard.jsonl \
  --checkpoint best.pt --device mps --planner strands --planner-device mlx \
  --output generated-storyboard

Use --device cpu when Apple MPS is unavailable. The optional Strands planner downloads its own model weights separately; those weights are not part of MadStickArt. model.safetensors is the canonical safe checkpoint and best.pt preserves training-checkpoint compatibility.

Versioned evidence is included in reports/: training and held-out metrics, benchmark, dataset summary and validation, catalog audit, asset catalog, and component versions. The full training dataset is not distributed.

Downloads last month
4
Safetensors
Model size
61.3k params
Tensor type
F32
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Evaluation results

  • Foreground IoU (ink threshold 0.35) on MadStickArt synthetic 20-genre title-held-out test split
    self-reported
    0.710
  • Pixel mean absolute error on MadStickArt synthetic 20-genre title-held-out test split
    self-reported
    0.014