Meta's research group has put a new repo on GitHub: facebookresearch/WaiT, the official PyTorch code for the paper WaiT for the Signal: Simple Frequency-Aware Flow-Matching. The idea is easy to state: let an image generator build the coarse picture first and add fine detail later, by giving the two parts of a wavelet transform different noise schedules. The authors report a pixel-space FID of 1.43 on ImageNet 512x512 with sampling compute reduced by up to 50%.
This is a research release, not a product. It is class-conditional ImageNet code with a non-commercial license. But the technique is simple enough to matter beyond the benchmark, and the repo is brand new (zero stars and one commit when we read it), so this post explains it before it spreads. For other recent image-generation research we covered, see Apple's normalizing trajectory models and Halcyon, a text-to-image model with no language pretraining.
TL;DR: what builders ask first
| Question | Answer |
|---|---|
| What is it? | Pixel-space flow-matching transformer with separate noise schedules per wavelet band |
| Headline claim | FID 1.43 on ImageNet 512, up to 50% less sampling compute (authors) |
| Biggest model | 2B parameters, FID 1.3 reported |
| Task in the repo | Class-conditional ImageNet generation |
| License | CC BY-NC 4.0, parts MIT (from JiT) |
| Hardware for training example | Two nodes of 8 GPUs, effective batch 1024, 600 epochs |
| Text prompts? | No |
What problem does WaiT solve?
Standard flow matching and diffusion treat every spatial frequency alike. The authors point out that high-frequency content, the fine texture and edges, becomes indistinguishable from noise much earlier in the noising process than coarse structure does. Spending the same model effort on all frequencies at all noise levels is therefore wasteful: early in sampling, the fine bands carry nothing to denoise.
At higher resolutions this waste grows. Images need global coherence, local detail and texture fidelity at once, and the compute for each step scales with pixel count.
How does WaiT work?
From the README: WaiT applies a single-level Haar wavelet transform, splitting an image into a low-frequency (LF) band at half resolution and high-frequency (HF) bands. Each band gets its own schedule:
- LF time:
t_LF = t - HF time:
t_HF = max(0, (t - t*) / (1 - t*)), wheret*is a threshold (0.25 in the example command)
For times below t*, the HF bands are pure noise, so sampling starts on the LF band alone at half resolution, which is cheaper. At t*, the LF band and fresh HF noise are recombined with the inverse wavelet transform, and the model denoises the full image jointly in pixel space. One resolution-conditioned model handles both phases.
The repo says it builds on JiT, keeping its architecture, training recipe and x-prediction with v-loss. That matters for credibility: the change is a schedule and a wavelet split, not a new network.
For another approach to cheaper high-quality sampling see our post on four-step generation with normalizing trajectory models and the Wasserstein tilted flow maps result.
What are the reported results?
According to the arXiv abstract:
| Setting | Reported result |
|---|---|
| ImageNet 512x512, pixel-space | FID 1.43, Pareto-optimal across three evaluation axes |
| Sampling compute | Reduced by up to 50% |
| 2B-parameter model | FID 1.3, claimed state of the art for pixel-space models at 512 |
| Texture fidelity | Outperforms even the strongest latent-space models (authors) |
| Video, Kinetics-600 | FVD 0.84 with no algorithmic changes |
The authors also argue that standard FID hides fine detail because of aggressive downsampling to Inception resolution, so they propose a three-axis evaluation at native resolution. The README implements that: FID and IS with a customized torch-fidelity, a 5-crop FID (Inception features of four corner crops and the center at native resolution), and hFWD, a Frechet distance between level-4 Haar wavelet packet coefficients.
A note of caution on all of this: these are numbers from the authors' paper and abstract. We did not run the code, and a new metric that favors a frequency-aware method deserves independent replication, which does not exist yet.
How do I try it?
The README gives a short path:
git clone https://github.com/facebookresearch/WaiT.git
cd WaiT
conda env create -f environment.yaml
conda activate wait
Training WaiT-B/16 at 512 resolution uses torchrun across two nodes of eight GPUs with main_wait.py, --noise_scale_lf 1.5 --noise_scale_hf 1.0 --t_star 0.25, batch size 64 per GPU, 600 epochs. Model sizes are WaiT-B, L, XL, H and G with patch sizes 16 or 32. For H and G the README adds attention and projection dropout of 0.2. On ImageNet it sets the LF noise scale to 1.5 times image size divided by 512.
Evaluation uses 50 sampling steps, --rho 0.6 (the fraction of steps spent in the coarse phase), classifier-free guidance 3.5, guidance interval 0.25 to 1.0, and 50,000 generated images against reference statistics you compute with prepare_ref.py. You need ImageNet locally. This is a research-scale setup, not a laptop demo.
What are the limits?
- License. CC BY-NC 4.0 means no commercial use. The JiT-derived parts are MIT, but the combined repo is non-commercial.
- Scope. The code is class-conditional ImageNet. There is no text-to-image pipeline, no pretrained checkpoint link in the README we read, and no hosted demo.
- Compute. The training example assumes 16 GPUs. Reproducing the headline numbers is a cluster job.
- Maturity. One commit, zero stars, zero forks at the time we checked.
- Claims. "Up to 50%" is an upper bound across settings, and "state of the art" applies to pixel-space models at 512, not to latent diffusion in general.
Why does it matter?
Two reasons. First, it is a clean example of putting structure into a sampler rather than scaling the network: separate time schedules per frequency band, using a lossless transform. Ideas like that tend to be copied into other pipelines, including video, which the authors report on.
Second, pixel-space generation has been the harder path compared with latent diffusion, because every step runs at full resolution. A coarse-first schedule halves the resolution for the early phase, which is where the claimed savings come from. If it holds up outside ImageNet, it narrows the gap that pushes most production systems toward latent models. Related generation work we have covered includes Bria FIBO 2.0 open weights and the Tavus Griffin video model.
Why did the authors build a new evaluation protocol?
The most transferable point in the abstract may not be the model. FID compares Inception features, and Inception takes roughly 299 by 299 inputs. A 512 by 512 image is downsampled before it is scored, so fine texture, the thing a frequency-aware method is trying to improve, is largely invisible to the metric.
The authors respond with three axes instead of one:
- Standard FID and IS, computed with a customized torch-fidelity and JiT's reference statistics, so numbers stay comparable to the baseline the repo builds on.
- 5-crop FID, which scores Inception features of the four corner crops and the center at native resolution rather than a downsampled whole image.
- hFWD, a Frechet distance between level-4 Haar wavelet packet coefficients, averaged over all packets except the lowest-frequency one, which directly measures the frequency content that WaiT manipulates.
Two things follow. A method can look unremarkable on standard FID and still win on fine detail, and the reverse is possible too. And a metric built from the same wavelet family as the method is a natural fit for it, which is exactly why independent groups should recompute the numbers on their own models. The README ships prepare_ref.py to compute the native-resolution reference statistics from the ImageNet training split, so the check is feasible for anyone with the data.
Who is behind it?
The arXiv listing names seven authors: Krunoslav Lehman Pavasovic, Theophane Vallaeys, Stephane Mallat, Giulio Biroli, Luke Zettlemoyer, Brian Karrer and Jakob Verbeek. The repo contact is a Meta address, and the repository sits under the facebookresearch organization, which is why we treat it as a Meta release. The arXiv page does not show affiliations in the text we read, so we do not attribute the paper to any institution beyond what the repository states. Mallat is widely known for foundational work on wavelets, which fits the method's lineage.
How does it compare with other approaches?
| Approach | Where the work happens | Trade-off |
|---|---|---|
| Latent diffusion | A compressed latent space from an autoencoder | Cheap steps, but fine detail is limited by the autoencoder |
| Pixel-space flow matching (JiT-style) | Full-resolution pixels, one schedule | No autoencoder, but every step is expensive |
| WaiT | Pixels, with half-resolution coarse phase then joint refinement | Savings from the coarse phase, plus a threshold t* to tune |
| Few-step distillation | Fewer sampling steps | Needs a trained teacher; see the Apple trajectory-model post |
WaiT sits in the second family and tries to reclaim some of the cost advantage of the first without an autoencoder. That is why the headline is about compute at a fixed quality, not only about quality. Whether the half-resolution phase survives text conditioning, where prompts dictate structure early, is open. The README gives no text-conditioned recipe.
What hyperparameters should you expect to tune?
From the commands in the README, four knobs control the behavior:
--t_star(0.25 in the examples): when the high-frequency band starts to denoise. Lower values start fine detail earlier.--noise_scale_lfand--noise_scale_hf(1.5 and 1.0): noise scales per band, with the LF value scaled by image size over 512 on ImageNet.--rho(0.6 at evaluation): the fraction of sampling steps spent in the coarse phase.--cfg,--interval_min,--interval_max(3.5, 0.25, 1.0): classifier-free guidance strength and the interval in which it is applied.
The README says the settings for each model size are listed in the paper's appendix, so the examples are a starting point for WaiT-B/16 and not a universal recipe. Both exponential moving averages are evaluated, which is a standard detail worth copying if you reproduce results.
What to watch
- Released checkpoints and a Hugging Face model card.
- Independent reproductions of the 5-crop FID and hFWD numbers.
- Whether the method transfers to text-conditioned models.
- Whether a permissive license follows. Without one, practical impact stays academic.
Related reading
- Apple's normalizing trajectory models for four-step image generation
- Halcyon: text-to-image without language pretraining
- Wasserstein tilted flow maps
- Bria FIBO 2.0 open weights
- Tavus Griffin video model
Details are from the repository README and arXiv abstract as of October 30, 2026 and may change.
