Predict to Skip: Linear Multistep Feature Forecasting for Efficient Diffusion Transformers
Hanshuai Cui · Zhiqing Tang · Qianli Ma · Zhi Yao · Weijia Jia
Training-free diffusion acceleration through prediction, correction, and adaptive skipping.
Overview · Method · Quick Start · Backends · Repository layout · Citation · License
Diffusion transformers spend many model evaluations traversing locally smooth segments of the denoising trajectory. PrediT turns that regularity into a training-free acceleration strategy: it forecasts future denoising outputs, corrects when the dynamics rise, and adapts the number of skipped evaluations to the current trajectory.
The following values are reported in the accepted paper. Refer to the paper for the complete datasets, baselines, quality metrics, and evaluation protocol.
| Backend | Paper-reported speedup |
|---|---|
| FLUX.1-dev | 4.28× |
| DiT-XL/2 | 2.48× |
| HunyuanVideo | 3.28× |
| Best reported operating point | up to 5.54× |
PrediT does not redistribute model weights or datasets. Access to upstream models—and compliance with their usage terms—remains the user's responsibility.
PrediT predicts smooth denoising regions, corrects rising dynamics, and skips model evaluations adaptively.
At every computed step, Dynamic Step Modulation measures the relative change in model output and converts it into an adaptive prediction horizon:
delta = ||f_n - f_(n-1)||_1 / (||f_n||_1 + eps)
J = clamp(floor(tau / (delta + eps)^(1 / (p + 1))), 1, J_max)
| Regime | Decision |
|---|---|
delta >= tau |
ABM correction, with no subsequent skip |
tau * correction_ratio <= delta < tau |
ABM correction, followed by up to J - 1 skips |
delta < tau * correction_ratio |
AB update, followed by up to J - 1 skips |
A skipped step uses only the most recent computed model outputs: predicted values are never fed back into the history buffer. The shared core supports Adams–Bashforth and Adams–Moulton orders 1–4. Its coefficients and history ordering match the paper supplement and the FLUX/HunyuanVideo experiment code. As in those implementations, the closed-form coefficients assume an approximately uniform local timestep grid.
Python 3.10 or newer is required.
git clone https://github.com/hsc113/PrediT.git
cd PrediT
python -m venv .venv
source .venv/bin/activate
pip install -e ".[torch,test]"
pytestValidate the packaged configurations without loading a model:
predit validate-config configs/flux.json
predit validate-config configs/dit_50.json --smoke
predit validate-config configs/hunyuanvideo_17f.json --smoke
predit provenanceFLUX.1-dev
Use the BFL FLUX checkout pinned in provenance.json. Configure its documented checkpoint environment variables, then run:
python scripts/run_flux.py \
--upstream /path/to/flux \
--config configs/flux.json \
--prompt "A red fox resting in snow" \
--output outputs/flux/fox.pngFor a quick integration check, add --smoke. The smoke profile reduces spatial size and step count; it is an integration check, not a quality benchmark.
DiT-XL/2
The DiT adapter follows the epsilon-level DDIM sampler in the paper supplement and imports the official DiT checkout pinned in provenance.json at runtime:
pip install -e ".[dit]"
python scripts/run_dit.py \
--upstream /path/to/DiT \
--checkpoint /path/to/DiT-XL-2-256x256.pt \
--vae stabilityai/sd-vae-ft-mse \
--config configs/dit_70.jsonUse configs/dit_50.json for the 50-step profile. The paper-reported 2.48× DiT result uses the 70-step profile; add --sampler ddim for a matched deterministic DDIM baseline.
HunyuanVideo
First apply the integration patch following integrations/hunyuanvideo/README.md.
The PrediT runner passes the shared configuration through hunyuan_pipeline_kwargs; model, prompt, device, and output paths stay explicit:
python scripts/run_hunyuanvideo.py \
--upstream ../HunyuanVideo \
--model-path /path/to/HunyuanVideo-weights \
--config configs/hunyuanvideo_17f.json \
--output outputs/hunyuanvideo/sample.mp4 \
-- --model HYVideo-T/2-cfgdistillEach JSON configuration contains three sections:
| Section | Purpose |
|---|---|
predit |
Algorithm parameters: order, mode, thresholds, skip/fixed intervals, sensitivity, timestep window, and eps |
generation |
Deterministic model, prompt/class, seed, shape, steps, guidance, device, and output settings |
smoke |
Fields overlaid on generation when --smoke is supplied |
CLI output paths and prompts take precedence over configuration values. Runners write *.config.json and *.stats.json next to the generated media.
src/predit/ shared methods, controller, and adapters
configs/ paper and smoke profiles
integrations/ separately licensed optional upstream patches
scripts/ one-sample runners and repository audit
tests/ coefficient, state-machine, config, and adapter tests
provenance.json exact source revisions, file hashes, and license boundaries
If PrediT is useful in your research, please cite the paper:
@misc{cui2026predictskiplinearmultistep,
title={Predict to Skip: Linear Multistep Feature Forecasting for Efficient Diffusion Transformers},
author={Hanshuai Cui and Zhiqing Tang and Qianli Ma and Zhi Yao and Weijia Jia},
year={2026},
eprint={2602.18093},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2602.18093}
}Original PrediT code is released under Apache-2.0. The HunyuanVideo integration patch and the derivative files it installs are expressly excluded from that grant and remain subject to the Tencent Hunyuan Community License. This repository does not relicense upstream projects, model weights, or datasets. See LICENSE, NOTICE, THIRD_PARTY.md, provenance.json, and the license files beside the integration patch for details.

