Update README.md
Browse files
README.md
CHANGED
|
@@ -40,3 +40,25 @@ You should then be able to do the typical diffusers code. For example:
|
|
| 40 |
print(f"saving to {fname}")
|
| 41 |
image.save(fname)
|
| 42 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 40 |
print(f"saving to {fname}")
|
| 41 |
image.save(fname)
|
| 42 |
|
| 43 |
+
|
| 44 |
+
# Making your own FlowMatch model
|
| 45 |
+
|
| 46 |
+
Doing the training itself, did not take that long.
|
| 47 |
+
Writing my own, functional training code, and trying various pathways to find what works, took WEEKS.
|
| 48 |
+
|
| 49 |
+
If you wanted to recreate your own from scratch, here's the details from one of my runs:
|
| 50 |
+
(This only takes a few hours to complete, on a 4090)
|
| 51 |
+
|
| 52 |
+
(Batchsize 40, accum=1 for all)
|
| 53 |
+
|
| 54 |
+
* time blocks only, 1e-5, 350 steps (result very murky here, thats expected)
|
| 55 |
+
* up.0 and up.1, 1e-6, 75 steps
|
| 56 |
+
* mid, 1e-6, 60 steps
|
| 57 |
+
* up.2, 1e-6, 160 steps
|
| 58 |
+
* up.3, 1e-6, 120 steps
|
| 59 |
+
|
| 60 |
+
## Sampling
|
| 61 |
+
During the first phase, maybe sample every 50 steps.
|
| 62 |
+
After the first phase, you'll want to take samples every 10 steps. Make sure you use MULTIPLE samples,
|
| 63 |
+
and ideally of different types. You should have at least one "single token" prompt, and then a few more
|
| 64 |
+
complex ones.
|