|
Download README.md from n4ze3m/yatm-quickdraw-diffusion: direct link, hf CLI and curl.
- Browser
- Download file 3.15 kB
-
https://huggingface.co/n4ze3m/yatm-quickdraw-diffusion/resolve/main/README.md
- Command line
-
hf download hf://n4ze3m/yatm-quickdraw-diffusion/README.md
-
curl -L -o README.md https://huggingface.co/n4ze3m/yatm-quickdraw-diffusion/resolve/main/README.md
3.15 kB
| license: cc-by-4.0 | |
| tags: | |
| - diffusion | |
| - ddpm | |
| - ddim | |
| - onnx | |
| - quickdraw | |
| - image-generation | |
| library_name: onnx | |
| pipeline_tag: unconditional-image-generation | |
| datasets: | |
| - quickdraw | |
| # You Are the Model - Quick, Draw! diffusion | |
| A tiny class-conditional diffusion model that draws 32x32 doodles, small enough | |
| to run a full 25-step DDIM sample in the browser. | |
| It powers **You Are the Model**, a daily drawing puzzle where the player takes | |
| over the denoising loop: at each round you pick which noise prediction to apply, | |
| your choice is fed back into the real sampler, and a bad pick genuinely derails | |
| the drawing. | |
| ## Model | |
| | | | | |
| |---|---| | |
| | Architecture | class-conditional U-Net, epsilon prediction | | |
| | Parameters | 1,929,313 (7.7 MB fp32) | | |
| | Resolution | 32x32 grayscale, values in [-1, 1] | | |
| | Classes | 24 (+1 null class for classifier-free guidance) | | |
| | Noise schedule | cosine, 1000 train timesteps | | |
| | Sampler | DDIM, 25 steps, guidance 3.0 | | |
| | Trained | 60,000 steps, batch 256, AdamW, EMA 0.9995, bf16 | | |
| | Hardware | NVIDIA GeForce RTX 3090, 1.23 h, about $0.167 | | |
| ### Classes | |
| `fish`, `flower`, `house`, `sailboat`, `smiley face`, `star`, `umbrella`, `envelope`, `t-shirt`, `ice cream`, `apple`, `banana`, `ladder`, `lightning`, `mountain`, `pants`, `wine glass`, `eyeglasses`, `snowman`, `car`, `hand`, `crown`, `donut`, `camera` | |
| ## Files | |
| | File | Purpose | | |
| |---|---| | |
| | `yatm_v2.onnx` | the browser asset - opset 17, dynamic batch | | |
| | `yatm_v2.meta.json` | class list, sampler settings, parity numbers | | |
| | `yatm_v2.abar.json` | cosine alpha-bar table, so the JS sampler matches exactly | | |
| | `ema.pt` | EMA weights (PyTorch) | | |
| | `samples.png` | fixed-seed sample sheet, one row per class | | |
| | `eval.json` | classifier gate and guidance sweep | | |
| | `metrics.jsonl` | training and validation curves | | |
| | `config.resolved.json` | the exact resolved config and environment | | |
| ## Inputs and outputs | |
| ``` | |
| x: float32 [batch, 1, 32, 32] noisy latent | |
| t: int64 [batch] timestep, 0..999 | |
| y: int64 [batch] class index, or 24 for unconditional | |
| -> eps: float32 [batch, 1, 32, 32] | |
| ``` | |
| Classifier-free guidance: run the batch twice (class and null) and combine with | |
| `eps = eps_null + w * (eps_class - eps_null)`. | |
| ## Evaluation | |
| A held-out CNN classifier (95.9% accurate on real test drawings) labels **100.0%** of fixed-seed samples as the class they were conditioned on, at the best guidance scale of 3.0. Weakest class: `fish` at 100.0%. | |
| Python and ONNX Runtime agree to `8.3e-02` maximum absolute difference over | |
| a full 25-step sample, so the browser and the training code produce the | |
| same picture from the same seed. | |
| ## Dataset and attribution | |
| Trained on the [Google Quick, Draw!](https://github.com/googlecreativelab/quickdraw-dataset) | |
| dataset (`numpy_bitmap` 28x28 drawings, padded to 32x32), which is released under | |
| [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) by Google Creative Lab. | |
| 12,000 drawings per class were downloaded, filtered for empty and | |
| over-inked drawings and exact duplicates, then split deterministically. | |
| This model is released under the same CC BY 4.0 licence. | |