hjLabs AI Playground

Starting the on-device runtime…

Why this playground has no text-to-image generation

Every other task on this site exists because a maintained ONNX model exists for it. Text-to-image does not: querying the Hugging Face API for models tagged both text-to-image and transformers.js returns exactly zero results. A browser diffusion pipeline needs a text encoder, a UNet or DiT, a VAE decoder and a scheduler wired together by hand — several gigabytes of weights, tens of sequential denoising steps, and a memory profile that runs straight into the WebGPU maximum buffer binding size on most consumer hardware. Projects have demonstrated it; none of them is a dependable, maintained library you could build a product on today. Rather than ship a broken generator, this page explains the real constraints, what image work does run well in a browser, and where to go if you need generation.

stable diffusion in browserwebgpu image generationtext to image browsertransformers.js image generationclient side stable diffusionbrowser diffusion model limitsonnx stable diffusion webai image generator offline

Frequently asked questions

Has anyone run Stable Diffusion in a browser?

Yes — WebGPU demos of SD-Turbo and similar distilled models exist and work on high-end GPUs. They are research demos with hand-written pipelines, multi-gigabyte downloads and long first-run times, not something to build a general-audience product on.

What is the actual blocker?

Three things at once: no maintained ONNX text-to-image pipeline in transformers.js, weights in the gigabytes rather than the hundreds of megabytes, and WebGPU buffer limits around 2 GB per binding that a full UNet plus VAE hits on typical hardware.

What image tasks do work well here?

Background removal, segmentation, depth estimation, object detection, classification, zero-shot classification with CLIP, captioning and OCR — all with models under a few hundred megabytes that run in seconds.

Will you add it when it becomes viable?

Yes. The moment a maintained browser-grade text-to-image pipeline lands with a sane download size, it goes on the site. Until then this page stays as the honest answer.