File size: 1,665 Bytes
0b71a35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
---
license: creativeml-openrail-m
datasets:
- Voxel51/rico
pipeline_tag: unconditional-image-generation
tags:
- diffusion
- unet
- image-generation
- ui-design
- tensorflow
- mobile-ui
---
# Forma-1

`Forma-1` is a diffusion model trained on 36,536 mobile UI screenshots from the 
RICO dataset. Give it random noise and it will denoise it into something that 
looks like a mobile app screen.

It's the model behind DiffuseUI — a project I'm building to explore generative AI 
applied to interface design.

---

## Details

| | |
|---|---|
| **Architecture** | U-Net |
| **Framework** | Tensorflow |
| **Image Size** | 64x64 |
| **Timesteps** | 1000 |
| **Noise Schedule** | Linear |
| **Epochs** | 200 |
| **Batch Size** | 64 |
| **Learning Rate** | 1e-4 |
| **Loss** | MSE |

---

## Training Data

Trained on the `RICO` dataset — 36,536 UI screenshots across 27 app 
categories. Images were resized to 64x64 and normalized to [-1, 1] before 
training.

---

## How It Works

Standard DDPM setup. Forward process adds Gaussian noise to real UI screenshots 
across 1000 steps until they're pure static. The U-Net learns to predict that 
noise at each step. At generation time you start from pure static and denoise 
1000 times — a new UI screen comes out the other end.

---

## Limitations

- 64x64 resolution — outputs are small
- Unconditional — no control over what category of UI gets generated
- Android only — trained exclusively on Android screenshots
- 200 epochs on this dataset size produces recognizable but rough outputs

---

## About

Built by Ricardo Flores as part of DiffuseUI.

[GitHub](https://github.com/imrichie) · [DiffuseUI](#)