1 · Caching schedulesEach schedule is a binary tensor over timestep, layer, and component (self‑attention, cross‑attention, feed‑forward). Over 21680 possibilities.
How it works
ECAD discovers when, where, and what to cache.
2 · Generate imagesEvery schedule in the population renders images using the calibration prompts, caching features where specificed by the schedule.
How it works
ECAD discovers when, where, and what to cache.
3 · Score images + measure speedEach image is scored for quality (ImageReward), and each schedule’s compute cost (MACs) is measured.
How it works
ECAD discovers when, where, and what to cache.
4 · Genetic algorithmNSGA‑II mates and mutates the best schedules into the next generation.
How it works
ECAD discovers when, where, and what to cache.
↻ repeat for many generations. No gradients or weight updates.
Evolution in action
Higher quality at fixed compute.
At a fixed 2.2 TMACs budget, ECAD finds schedules achieving better image quality than the unaccelerated model.
Generation
0
ImageReward
0.75
Speed up · fixed
2.60×
Evolution in action
Lower compute at fixed quality.
At baseline quality, ECAD reduces compute from 5.7 to 1.5 TMACs.
Generation
0
ImageReward · fixed
0.90
Speed up
1.15×
Quality over generations
Faster and cleaner every generation.
Gen 0
Gen 50
Gen 150
Gen 300
Gen 575
Baseline 1×
One method, many models
Works on any DiT.
PixArt-α
0.00×
PixArt-Σ
0.00×
FLUX.1-dev
0.00×
Transfers across resolutions
0.00×
Schedules found at 256² run at 1024² with no re-search (FLUX.1-dev).
Plug and play
One schedule search. Reusable forever.
0.00×
on FLUX.1-dev — zero retraining
Composes with
DistillationQuantizationPruningtorch.compile
Competitive schedules in ~50 generations ~44 GPU-hours of search (PixArt-α)