Incorporo-user commited on
Commit
3a84045
·
verified ·
1 Parent(s): 340f79e

Card: sample strip, at-a-glance table, jump menu, reordered sections

Browse files
Files changed (3) hide show
  1. .gitattributes +1 -0
  2. README.md +67 -42
  3. assets/hero_samples.png +3 -0
.gitattributes CHANGED
@@ -47,3 +47,4 @@ assets/judge_detail.png filter=lfs diff=lfs merge=lfs -text
47
  assets/pareto.png filter=lfs diff=lfs merge=lfs -text
48
  assets/dashboard.png filter=lfs diff=lfs merge=lfs -text
49
  assets/loss.png filter=lfs diff=lfs merge=lfs -text
 
 
47
  assets/pareto.png filter=lfs diff=lfs merge=lfs -text
48
  assets/dashboard.png filter=lfs diff=lfs merge=lfs -text
49
  assets/loss.png filter=lfs diff=lfs merge=lfs -text
50
+ assets/hero_samples.png filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -26,49 +26,25 @@ tags:
26
  **0.550 on GenEval** with the official scorer, level with SDXL's published 0.55 and above SD 1.5 (0.43),
27
  SD 2.1 (0.50) and PixArt-α (0.48). It is small enough to run in under two seconds on a consumer GPU.
28
 
29
- **Why we built it.** [LogoLabs](https://logolabs.org) builds AI logo generation. Agate is our attempt at a better
30
- *small* model for icon generation. We want one that places things where you ask, keeps colours bound to the right
31
- objects, runs on a consumer GPU, and can be trained from scratch on a research budget. This preview is the
32
- general-purpose base model; it is not yet specialised for icons.
33
-
34
- **It trains ultra-fast.** The whole training took 144.7 GH200-hours, and the model was trained from scratch in under
35
- 13 hours of wall-clock time:
36
- - about 5 h 15 min on 16 GPUs (4 nodes × 4) for phases 1 and 2;
37
- - 7 h 30 min on 8 GPUs (2 nodes × 4) overnight for the caption phase.
38
-
39
- Retraining from scratch, on your own data or for a new domain, is an overnight job rather than a research
40
- programme. More of our work is on
41
- [our Hugging Face page](https://huggingface.co/Logolabs): the Inkvec vectoriser and the LogoBrief-10K dataset.
42
-
43
- ## Where a small model wins
44
-
45
- Large text-to-image models make better single images. Agate is for the jobs where their size is the problem:
46
- too slow, too expensive per image, too heavy to ship, or too costly to retrain.
47
-
48
- | Use | Why a 260M model fits | Why a multi-billion model struggles |
49
- |---|---|---|
50
- | **Runs on the device** | About 1 GB of weights in fp32 (half that in fp16); 1.9 s per image on an RTX 4060; small enough for a laptop, and a WebGPU browser build is in progress. Prompts and images never leave the machine. | Needs a datacentre GPU or a paid API, so every prompt goes to a server. |
51
- | **Previews while you type** | At the measured ~0.04 s per step, an 8-step draft takes about a third of a second, so a design tool can redraw on every keystroke. | Seconds per image make live preview impractical and expensive at scale. |
52
- | **Generating in bulk** | About 1,900 images an hour on one consumer GPU: icon sets, variations, synthetic training data, A/B candidates. | At API prices or datacentre-GPU time, millions of images cost real money. |
53
- | **A model per customer or domain** | A full retrain from scratch is an overnight run (under 13 h), and fine-tunes are cheaper still. A brand, an icon style or a product catalogue can have its own model. | Fine-tuning is costly; training from scratch is out of reach for almost everyone. |
54
- | **Research on a budget** | Reinforcement learning, reward models, new samplers and architecture ablations cost GPU-hours, not GPU-years. Our whole project, every model and benchmark included, cost 323 GPU-hours. | Every experiment costs thousands of GPU-hours, so few groups can run them. |
55
- | **Layout-first pipelines** | Strong on placement and colour binding (GenEval position 0.22 vs SD 1.5's 0.01), so it can sketch a composition cheaply. A larger model or a vectoriser such as [Inkvec](https://huggingface.co/spaces/Logolabs/inkvec) then finishes it. | Using a large model for the rough draft wastes most of its cost. |
56
- | **Offline, edge and sovereign deployments** | MIT licence, no gated dependencies, trainable on a single node. It can run air-gapped and be retrained on your own infrastructure. | Licences, gated weights and hardware needs often rule these out. |
57
 
58
- For LogoLabs the target is icon and logo generation: many candidates per brief, fast iteration, and per-client
59
- styles. That work rewards a small, fast, retrainable model over a large one.
60
-
61
- **A preview: not yet converged.** Agate is a preview checkpoint, and it has not finished learning. Every
62
- benchmark was still rising when training stopped:
63
- - GenEval went from 0.505 at epoch 16 to 0.533 at step 82.8k and 0.535 at the end.
64
- - Qwen-Image-Bench went from 24.8 to 27.8 and then 28.4.
65
- - The loss was still falling.
66
 
67
- We expect roughly doubling the training, about 145 more GPU-hours, to bring very significant gains. That run is
68
- the next step.
69
 
70
- It is a research preview: it renders at **256 × 256 only**, cannot spell reliably, and ignores negation. The card
71
- shows all of that in pictures, along with every model we trained on the way to Agate.
 
 
 
 
 
 
 
 
 
 
 
72
 
73
  - **Generator:** 191M-parameter *thinker-steered convolutional flow model* (FCDM-T2). A small recurrent transformer
74
  (the thinker) reads the prompt and plans a 16 × 16 region map. That map steers a convolutional U-Net working on
@@ -81,9 +57,15 @@ shows all of that in pictures, along with every model we trained on the way to A
81
  TAESD. The pipeline's default decoder is the full SD-VAE (49.5M), which makes it **308.5M**. The VAE encoder is
82
  only needed for training.
83
  - **Data:** [FLUX-Reason-6M](https://huggingface.co/datasets/LucasFang/FLUX-Reason-6M), 5,654,461 of its 5,890,279 images, each with up to 8
84
- English captions each. **Compute:** Arrhenius (EuroHPC, NAISS, Sweden), NVIDIA GH200.
85
  - **Licence:** MIT, for the code and the weights.
86
 
 
 
 
 
 
 
87
  ## Quick start
88
 
89
  ```bash
@@ -117,6 +99,49 @@ image.save("teapot.png")
117
  On an RTX 4060, one image takes 1.9 s (2.9 s with `autoguide`). At 191M parameters, kernel-launch overhead
118
  costs more time than the arithmetic, and CUDA graphs remove most of it.
119
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
120
  ## Results
121
 
122
  All scores below were measured by us, with the same seeds, sampler and scorer for every model. Each model
@@ -210,7 +235,7 @@ and aggregation code, greedy decoding, thinking on.
210
  | **Agate** | **28.4** | 26.3 | 34.2 | 28.9 | 36.8 | 15.5 |
211
  | Stable Diffusion 1.5 | **28.9** | 37.5 | 28.2 | 25.1 | 39.3 | 14.3 |
212
 
213
- <p align="center"><img src="assets/pareto.png" alt="Qwen-Image-Bench total against generator size, with the Pareto frontier" width="100%"></p>
214
 
215
  <p align="center"><img src="assets/judge_detail.png" alt="Every Qwen-Image-Bench area for Agate and the open models" width="100%"></p>
216
 
 
26
  **0.550 on GenEval** with the official scorer, level with SDXL's published 0.55 and above SD 1.5 (0.43),
27
  SD 2.1 (0.50) and PixArt-α (0.48). It is small enough to run in under two seconds on a consumer GPU.
28
 
29
+ Built by [LogoLabs](https://logolabs.org), which makes AI logo generation, as a better small model for icon generation.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
 
31
+ <p align="center"><img src="assets/hero_samples.png" alt="Twelve Agate samples at 256 px, seed 0" width="100%"></p>
 
 
 
 
 
 
 
32
 
33
+ ## At a glance
 
34
 
35
+ | | |
36
+ |---|---|
37
+ | **What** | Text-to-image, 256 × 256, English prompts |
38
+ | **Size** | 260M parameters with TAESD, 308.5M with SD-VAE: 190.9M generator + 68.1M text encoder + decoder |
39
+ | **Training** | From scratch, 144.7 GH200-hours, under 13 h wall-clock, 146.9M images seen (≈26 epochs) |
40
+ | **Energy** | 81.8 kWh and 2.45 kg CO₂e for Agate; 175.7 kWh for the whole project, measured with perun |
41
+ | **GenEval** (official) | **0.550**. SDXL 0.55, SD 2.1 0.50, PixArt-α 0.48, SD 1.5 0.43 (published) |
42
+ | **Qwen-Image-Bench** (1,000 prompts) | **28.2**, against SD 1.5's 29.1; on the Pareto frontier among open models of similar size |
43
+ | **Speed** | 1.9 s per image on an RTX 4060 (50 steps); also runs in the browser on WebGPU |
44
+ | **Strengths** | Placing objects (left of, on top of), binding colours to objects, faces, styles, flat logos, long prompts |
45
+ | **Weaknesses** | Exact text, counts above three, negation, anything above 256 px; not yet converged |
46
+ | **Licence** | MIT, for code and weights |
47
+ | **Status** | Research preview. A technical report and system card accompany this release. |
48
 
49
  - **Generator:** 191M-parameter *thinker-steered convolutional flow model* (FCDM-T2). A small recurrent transformer
50
  (the thinker) reads the prompt and plans a 16 × 16 region map. That map steers a convolutional U-Net working on
 
57
  TAESD. The pipeline's default decoder is the full SD-VAE (49.5M), which makes it **308.5M**. The VAE encoder is
58
  only needed for training.
59
  - **Data:** [FLUX-Reason-6M](https://huggingface.co/datasets/LucasFang/FLUX-Reason-6M), 5,654,461 of its 5,890,279 images, each with up to 8
60
+ English caption fields. **Compute:** Arrhenius (EuroHPC, NAISS, Sweden), NVIDIA GH200.
61
  - **Licence:** MIT, for the code and the weights.
62
 
63
+
64
+ **Jump to:** [Quick start](#quick-start) · [Why Agate](#why-agate) · [Results](#results) ·
65
+ [Side by side](#side-by-side) · [Test battery](#manual-test-battery) · [How it works](#how-agate-works) ·
66
+ [Training](#training) · [Safety](#training-data-and-safety) · [Energy](#compute-and-energy) ·
67
+ [Failures](#what-went-wrong-along-the-way) · [Acknowledgements](#acknowledgements)
68
+
69
  ## Quick start
70
 
71
  ```bash
 
99
  On an RTX 4060, one image takes 1.9 s (2.9 s with `autoguide`). At 191M parameters, kernel-launch overhead
100
  costs more time than the arithmetic, and CUDA graphs remove most of it.
101
 
102
+ ## Why Agate
103
+
104
+ **Why we built it.** [LogoLabs](https://logolabs.org) builds AI logo generation. Agate is our attempt at a better
105
+ *small* model for icon generation. We want one that places things where you ask, keeps colours bound to the right
106
+ objects, runs on a consumer GPU, and can be trained from scratch on a research budget. This preview is the
107
+ general-purpose base model; it is not yet specialised for icons.
108
+
109
+ **It trains ultra-fast.** The whole training took 144.7 GH200-hours, and the model was trained from scratch in under
110
+ 13 hours of wall-clock time:
111
+ - about 5 h 15 min on 16 GPUs (4 nodes × 4) for phases 1 and 2;
112
+ - 7 h 30 min on 8 GPUs (2 nodes × 4) overnight for the caption phase.
113
+
114
+ Retraining from scratch, on your own data or for a new domain, is an overnight job rather than a research
115
+ programme. More of our work is on
116
+ [our Hugging Face page](https://huggingface.co/Logolabs): the Inkvec vectoriser and the LogoBrief-10K dataset.
117
+
118
+ ### Where a small model wins
119
+
120
+ Large text-to-image models make better single images. Agate is for the jobs where their size is the problem:
121
+ too slow, too expensive per image, too heavy to ship, or too costly to retrain.
122
+
123
+ | Use | Why a 260M model fits | Why a multi-billion model struggles |
124
+ |---|---|---|
125
+ | **Runs on the device** | About 1 GB of weights in fp32 (half that in fp16); 1.9 s per image on an RTX 4060; small enough for a laptop, and it also runs in the browser on WebGPU. Prompts and images never leave the machine. | Needs a datacentre GPU or a paid API, so every prompt goes to a server. |
126
+ | **Previews while you type** | At the measured ~0.04 s per step, an 8-step draft takes about a third of a second, so a design tool can redraw on every keystroke. | Seconds per image make live preview impractical and expensive at scale. |
127
+ | **Generating in bulk** | About 1,900 images an hour on one consumer GPU: icon sets, variations, synthetic training data, A/B candidates. | At API prices or datacentre-GPU time, millions of images cost real money. |
128
+ | **A model per customer or domain** | A full retrain from scratch is an overnight run (under 13 h), and fine-tunes are cheaper still. A brand, an icon style or a product catalogue can have its own model. | Fine-tuning is costly; training from scratch is out of reach for almost everyone. |
129
+ | **Research on a budget** | Reinforcement learning, reward models, new samplers and architecture ablations cost GPU-hours, not GPU-years. Our whole project, every model and benchmark included, cost 323 GPU-hours. | Every experiment costs thousands of GPU-hours, so few groups can run them. |
130
+ | **Layout-first pipelines** | Strong on placement and colour binding (GenEval position 0.22 vs SD 1.5's 0.01), so it can sketch a composition cheaply. A larger model or a vectoriser such as [Inkvec](https://huggingface.co/spaces/Logolabs/inkvec) then finishes it. | Using a large model for the rough draft wastes most of its cost. |
131
+ | **Offline, edge and sovereign deployments** | MIT licence, no gated dependencies, trainable on a single node. It can run air-gapped and be retrained on your own infrastructure. | Licences, gated weights and hardware needs often rule these out. |
132
+
133
+ For LogoLabs the target is icon and logo generation: many candidates per brief, fast iteration, and per-client
134
+ styles. That work rewards a small, fast, retrainable model over a large one.
135
+
136
+ **A preview: not yet converged.** Agate is a preview checkpoint, and it has not finished learning. Every
137
+ benchmark was still rising when training stopped:
138
+ - GenEval went from 0.505 at epoch 16 to 0.533 at step 82.8k and 0.535 at the end.
139
+ - Qwen-Image-Bench went from 24.8 to 27.8 and then 28.4.
140
+ - The loss was still falling.
141
+
142
+ We expect roughly doubling the training, about 145 more GPU-hours, to bring very significant gains. That run is
143
+ the next step.
144
+
145
  ## Results
146
 
147
  All scores below were measured by us, with the same seeds, sampler and scorer for every model. Each model
 
235
  | **Agate** | **28.4** | 26.3 | 34.2 | 28.9 | 36.8 | 15.5 |
236
  | Stable Diffusion 1.5 | **28.9** | 37.5 | 28.2 | 25.1 | 39.3 | 14.3 |
237
 
238
+ <p align="center"><img src="assets/pareto.png" alt="Qwen-Image-Bench total against full model size, with the Pareto frontier" width="100%"></p>
239
 
240
  <p align="center"><img src="assets/judge_detail.png" alt="Every Qwen-Image-Bench area for Agate and the open models" width="100%"></p>
241
 
assets/hero_samples.png ADDED

Git LFS Details

  • SHA256: 63d05c5a7b58df32f1d31c0de4adccd20ad152506a9103aeb028a02348c3ebf4
  • Pointer size: 131 Bytes
  • Size of remote file: 970 kB