ozhyhinas/webnn-catalog-sd-turbo
SD-Turbo 512×512, one step, for WebNN / Core ML Constant blobs for the sd-turbo-512-1step family of webnn-catalog, a set of pre-tuned browser inference graphs published as data. Derived from stabilityai/sd-turbo. Split out from the main catalog repository because of its size. The graph recipes, schema and loader live on GitHub; this repository holds the two binaries they index into. Why it exists A 512×512 image from a new prompt, in a browser tab, measured on an… See the full description on the dataset page: https://huggingface.co/datasets/ozhyhinas/webnn-catalog-sd-turbo.
SD-Turbo 512×512, one step, for WebNN / Core ML
Constant blobs for the sd-turbo-512-1step family of **webnn-catalog**, a set of pre-tuned browser inference graphs published as data. Derived from stabilityai/sd-turbo.
Split out from the main catalog repository because of its size. The graph recipes, schema and loader live on GitHub; this repository holds the two binaries they index into.
Why it exists
A 512×512 image from a new prompt, in a browser tab, measured on an Apple M5 Pro under macOS 26.6.2 and Chrome 152:
Output fidelity against the fp32 chain it was built from: PSNR 44.28 dB.
The runtime is the WebNN that Chrome already ships. What differs is the order the graph is built in, worked out by hand and then recorded as data so it does not have to be rediscovered.
Contents
The recipe indexes byte offsets into these blobs. They are not a model format and are not loadable on their own; they need the entry metadata and loader from the GitHub repository.
Use it
import { loadEntry, createEntryTensors, assertCoreMLFingerprint } from "./runtime/loader.js";
const dir = "/families/sd-turbo-512-1step/entries/coreml-apple-m5-pro-macos26-chrome152";
const entry = await (await fetch(`${dir}/entry.json`)).json();
const ctx = await navigator.ml.createContext({ deviceType: "gpu" });
assertCoreMLFingerprint(ctx);
const rig = await loadEntry(entry, "https://huggingface.co/datasets/ozhyhinas/webnn-catalog-sd-turbo/resolve/main", ctx, { baseUrl: dir });
const t = await createEntryTensors(ctx, rig);Full documentation and the entry metadata: https://github.com/OlehZhyhinas/webnn-catalog
Requires a browser exposing WebNN with a Core ML backend. The entry was built and measured for one configuration; compat.requires in its metadata states what must hold for it to run at all.
Built and published by Oleh Zhyhinas (GitHub, LinkedIn).
