Rethinking the Design Space of
Vanilla Pixel Diffusion Transformers

1 University of Maryland, College Park 2 Adobe Research
*Work done while an intern at Adobe Research †Project Lead

In this work, we aim to improve the design space of vanilla pixel diffusion transformers along two aspects:

model parameterization & frequency spectrum

Abstract

Pixel-space diffusion models have recently re-emerged as a compelling alternative to latent diffusion, avoiding the lossy latent bottleneck and separately trained autoencoder. JiT shows that a vanilla diffusion transformer can generate directly in pixel space by replacing the commonly used velocity prediction ($u$-prediction) with clean image prediction ($x_0$-prediction). In this work, we revisit this choice and introduce MFlow, an adaptive parameterization that learns to interpolate between $x_0$- and $u$-prediction across principal directions of the data, learned end-to-end with diffusion training. We find that the preferred parameterization varies systematically with the data representation and model capacity — notably, increasing model capacity shifts preference toward velocity prediction. We evaluate MFlow across ImageNet, UCF-101 video, and large-scale text-to-image generation, demonstrating competitive or improved generative performance across diverse settings. In addition, we find that vanilla pixel diffusion transformers, irrespective of parameterization, retain a persistent high-frequency deficit relative to real images. To address this, we introduce ConvRefiner, a lightweight convolutional module trained post-hoc with an adversarial loss while keeping the diffusion backbone frozen. With only a small amount of additional training, ConvRefiner restores the high-frequency statistics of generated images while preserving FID.

Part I

Prediction Parameterization

MFlow: a dial per direction

Diffusion models must be told what to regress. Most predict the velocity $u = x_0 - \epsilon$; JiT instead predicts the clean image $x_0$, since clean data lies near a low-dimensional manifold while noise spans the ambient space. But converting an $x_0$-prediction back to velocity divides by $1-t$, which blows up near the clean endpoint. AsymFlow patches this by predicting velocity inside a rank-$r$ PCA subspace and $x_0$ outside it — an all-or-nothing choice per direction, with $r$ found by sweeping.

MFlow compared with x0-prediction, velocity prediction and AsymFlow
Every method here is a choice of per-direction gain $m_i$. JiT sets all $m_i=0$, velocity prediction sets all $m_i=1$, AsymFlow uses a binary mask. MFlow makes $m_i$ continuous and learned.

MFlow replaces AsymFlow's binary projector with a graded spectral operator $M = U\,\mathrm{diag}(m_1,\dots,m_D)\,U^\top$ over the patch-PCA basis, and regresses

$$u_G \;=\; x_0 - M\epsilon, \qquad m_i \in [0,1].$$

Since $M$ is generally not a projector, it does not split space into a subspace and its complement — each direction carries its own continuous mix, $\tilde u_{G,i} = \tilde x_{0,i} - m_i\tilde\epsilon_i$. Setting $m_i = \mathbf{1}[i\le r]$ recovers AsymFlow exactly; $m_i\equiv0$ and $m_i\equiv1$ recover the two endpoints.

Crucially these gains can be learned jointly with the network, because velocity stays exactly recoverable from $u_G$ for every $m_i \in [0,1]$ — and for any $m_i>0$ the clean-endpoint singularity that motivated the problem disappears in that direction. The loss is applied in velocity space, not on $u_G$ directly.

The recovery rule, initialization and training details are in the paper and the blog post.

Try it: dial the gains

Every parameterization above is just a curve of gains $m_i$. Pick one, or drag the curve yourself, and watch the regression target $u_G = x_0 - M\epsilon$ change for the same image and noise as in the figure: lifting a gain mixes that direction's noise into the target, dropping it to zero predicts the clean image there.

Loading interactive demo…

M-curves

Plotting the learned gains $m_i$ against PCA direction gives a direct readout of how much velocity prediction the model chose to buy, and where it spent it — 0 means predict the clean image here, 1 means predict velocity. The same recipe produces visibly different answers along four axes.

Learned MFlow gain curves across objective, domain, representation and capacity

Observations

The parameterization is a measuring instrument as much as a method. Some of what it measured surprised us.

Capacity is a budget, and the budget has a name

Two forces pull against each other. Larger $m_i$ improves conditioning near the clean endpoint, but forces a finite-capacity network to keep more Gaussian noise in its target — hard in high dimensions. So the model is really deciding how much velocity prediction it can afford, summarised by the soft velocity rank $r_{\mathrm{eff}} = \mathrm{tr}(M) = \sum_i m_i$: zero for pure $x_0$, exactly $r$ for rank-$r$ AsymFlow, continuous and learned for MFlow.

Capacity decides how much; the statistics of the representation decide where.

LPIPS bends the curve — toward patch-global modes

With LPIPS the leading gains stop decreasing monotonically: PC0 and PC1 stay high, PC2–PC3 dip hard, PC4 rises again. The eigenvectors explain the shape — the modes run patch-global, patch-global, spatial, spatial, patch-global, matching high, high, low, low, high.

The giveaway is that this cannot be variance ordering: PC4 has far lower variance than PC2–PC3 ($\lambda_4=3.74$ vs $\lambda_2=9.41$, $\lambda_3=7.93$) yet gets a larger gain. Nor is it simply “LPIPS likes colour” — later chromatic directions that are spatially non-uniform get no boost.

Our reading: squared-error regression shrinks uncertain components toward their mean. For a spatially varying mode that merely smooths a texture; for a patch-global mode it shifts the tone of the whole patch, which LPIPS punishes. We flag this as a plausible interpretation, not an established mechanism.

First 64 eigenvectors of the uncentered 16x16x3 patch-PCA basis
The leading patch-PCA modes, interleaving patch-global tone and chroma with spatial gradients.
“Top-$r$ directions” is a prior, not a law

There is a clean argument for spending the velocity budget on the highest-variance directions, and we give it — but it is an initialization prior, not a rule. On ImageNet at B-level a non-leading block beat the leading one, PCA[9:16] reaching FID 3.54 against PCA[1:8]'s 3.59. The non-monotonic LPIPS curve says the same thing differently: an auxiliary objective reorders directions by visual function rather than by variance.

A representation can prefer $x_0$ and still tolerate velocity almost free

On RAEv2 latents, pure $x_0$-prediction wins (FID 1.05) and MFlow's gains collapse toward zero, confirming that choice. Yet AsymFlow — using full velocity prediction in its leading 8 directions — lands just 0.03 behind at 1.08. The point is not that velocity is better here, but that a small velocity subspace costs almost nothing measurable even where $x_0$ is strongly preferred.

Lower diffusion loss did not translate into better FID

Under an identical velocity-space objective, MFlow reaches a slightly lower training loss than both JiT and AsymFlow at H-level — and this does not reliably show up as better FID. We report it because it is a real negative result: better regression conditioning need not improve distribution-level sample quality, and the underlying reason remains unclear.

ImageNet H-level training loss for JiT, AsymFlow and MFlow
Part II

Signal Modeling

Every one of these models misses the same frequencies

Measured against real images, the radially-averaged power spectrum of JiT-family generations shows a consistent gap at 0.5–0.7 cycles/pixel. It appears in JiT, AsymFlow and MFlow alike, so it is not a parameterization problem.

RAPS curves showing high-frequency deficit across JiT, AsymFlow and MFlow
Changing the prediction target does not change the deficit.
RAPS curves for latent models, VAE reconstructions and PixelDiT
Latent models, VAE reconstructions and PixelDiT show no such gap.

That second panel localises the cause: the deficit is specific to the JiT-style backbone — 16–32× patchification with no intra-patch local operation, tokens mapped back to pixels by MLPs alone. Models with an explicit pixel-level pathway do not have it, and training JiT 5% longer does not change the spectrum at all.

ConvRefiner

We therefore restore the missing frequencies post hoc. ConvRefiner is a small residual convolutional module predicting a correction on top of the model's $x_0$-prediction. The backbone stays frozen; only four conv blocks and a $t$-conditioned PatchGAN discriminator train, for +30 epochs on a 600-epoch model — 5% extra compute. The adversarial loss is applied only on near-clean samples.

ConvRefiner architecture overview

FID cannot see any of this

ConvRefiner closes most of the spectral gap and FID does not move at all: the mean radial power deficit for MFlow-H/16 goes from −6.63 dB to −1.29 dB while FID stays at 1.81. That cuts both ways — it is why the fix is free, and it is a warning about the metric.

RAPS before and after ConvRefiner across four models
The spectrum is recovered across both parameterizations and both scales…
FID before and after ConvRefiner across four models
…while FID stays essentially flat throughout.
Training-time FID at default CFG, so higher than the tuned 1.81 above.
512px text-to-image crop without and with ConvRefiner, and the radial power spectrum before and after refinement
Text-to-image at 512px: without (left) and with (middle) ConvRefiner. The refiner restores fine leaf-vein texture, and the radial power spectrum (right) moves back onto the real-image curve at high frequencies.

Not every refiner works. Fine-tuning only the unpatchify layer is negligible, as is a residual windowed-attention refiner. The DiP patch-detailer does improve high frequency, but degrades JiT's FID from 3.42 to 3.90 — and to 4.46 with a GAN loss.

See the difference

Text-to-image samples from MFlow-XXL/16, without and with ConvRefiner. Click or drag on the image to compare; the zoomed panes show the fine texture side by side.

MFlow-XXL/16 sample with ConvRefiner MFlow-XXL/16 sample without ConvRefiner Without ConvRefiner With ConvRefiner
↔
Without
With

Click or drag on the image to move the divider; the panes zoom in 2× around the circle. Each example opens where the refiner adds the most fine detail.

Comparison with Pixel Diffusion Models

Text-to-image samples from our MMDiT models and recent pixel-space diffusion models on the same prompts. Each card shows one prompt at a time; use the arrows (or the ← → keys) to step through prompts.

DPG-Bench

PRISM-Bench

Limitations

MFlow's gains over strong fixed parameterizations are sometimes modest. One likely reason is that we optimise the gains and the network jointly: the transport target is fixed, but updating $M$ continuously changes the network's output parameterization, so the two can co-adapt against an effectively moving target. Staged or decoupled optimisation of the gains is the obvious next step.

Lower diffusion loss did not reliably translate into better FID, and the cause of this discrepancy remains an open question.

Standard generative metrics do not capture the high-frequency recovery. ConvRefiner closes most of the spectral gap and FID registers no change at all — which says more about the metric than about the module. FID-style distribution distances are insensitive to the local frequency statistics the refiner modifies, so spectral fidelity needs to be reported alongside them rather than folded into them.

BibTeX

@misc{mukhopadhyay2026mflow,
  title  = {Rethinking the Design Space of Vanilla Pixel Diffusion Transformers},
  author = {Mukhopadhyay, Soumik and Mai, Long and Shrivastava, Abhinav and Mahapatra, Aniruddha},
  year   = {2026}
}