Jano is an inference acceleration framework for diffusion-based video/image generation models. It profiles the spatio-temporal dynamics of the latent space during a short warm-up phase and then selectively skips computations for low-dynamic regions, achieving significant speedup with minimal quality degradation.
The following examples are from ./assets, with runtime (generate_e2e) and quality metrics from the corresponding JSON files.
以下展示来自 ./assets,时间(generate_e2e)与质量指标均读取自对应 JSON 文件。
Prompt: A photorealistic cute cat, wearing a simple blue shirt, standing against a clear sky background.
Prompt: Two anthropomorphic cats in comfy boxing gear and bright gloves fight intensely on a spotlighted stage.
ORIori_two_anthropomorphic_cats_comfy_t2v-1.3B.mp4165.60 s | 1.00× | N/A |
Janojano_offload0_two_anthropomorphic_cats_comfy_t2v-1.3B.mp483.94 s | 1.97× | PSNR 17.96 / SSIM 0.782 / LPIPS 0.184 |
PABs5c8_i4_two_anthropomorphic_cats_comfy_t2v-1.3B.mp4139.94 s | 1.18× | PSNR 16.08 / SSIM 0.734 / LPIPS 0.243 |
TeaCachethresh0.2_two_anthropomorphic_cats_comfy_t2v-1.3B.mp4106.10 s | 1.56× | PSNR 21.28 / SSIM 0.854 / LPIPS 0.100 |
ToCAtoca_two_anthropomorphic_cats_comfy_t2v-1.3B.mp471.39 s | 2.32× | PSNR 13.97 / SSIM 0.670 / LPIPS 0.347 |
Jano supports the following workloads:
| Model | Task |
|---|---|
| Wan2.1-1.3B-T2V | Text-to-Video |
| Wan2.1-14B-T2V | Text-to-Video |
| FLUX.1-dev | Text-to-Image |
Baseline implementations included in this repo:
Jano 是一个面向扩散模型视频/图像生成推理加速的框架。它在短暂的预热阶段对潜空间的时空动态性进行分析,然后对低动态区域选择性地跳过计算,在几乎不损失质量的情况下显著提升推理速度。
Jano/
├── jano/ # Core Jano library
│ ├── __init__.py # init_jano() entry point
│ ├── block_manager.py # Latent-space block partitioning
│ ├── dynamic_analyzer.py # Spatio-temporal dynamics analysis
│ ├── stuff.py # Shared utilities (timestep tracking, etc.)
│ ├── mask_manager/ # Per-model cache-mask managers
│ ├── modules/ # Modified model forward passes (Wan, Flux, SD3, CogVideoX)
│ └── dist/ # Distributed (CFG-parallel) utilities
├── wan/ # Wan2.1 model code + baseline implementations
├── flux/ # FLUX.1 model code + baseline implementations
├── utils/ # Shared utilities (timer, logger, quality metrics, envs)
├── run_wan/ # Inference scripts for Wan2.1
├── run_flux/ # Inference scripts for FLUX.1
├── run_cvx/ # Inference scripts for CogVideoX
├── ras_exp/ # Experimental RAS baseline
├── requirements.txt
└── LICENSE
conda create -n jano python=3.10
conda activate jano
pip install -r requirements.txtpip install "huggingface_hub[cli]"
# (Optional) Use a mirror in China / 中国用户可使用镜像
export HF_ENDPOINT=https://hf-mirror.com
# Wan2.1 (choose one or both)
huggingface-cli download Wan-AI/Wan2.1-T2V-1.3B --local-dir ./Wan2.1-T2V-1.3B
huggingface-cli download Wan-AI/Wan2.1-T2V-14B --local-dir ./Wan2.1-T2V-14B
# FLUX.1-dev
huggingface-cli download black-forest-labs/FLUX.1-dev --local-dir ./Flux-1Please use the unified launcher launch.py.
First set MODEL_PATH, then run with --model and --method:
# Wan2.1
export MODEL_PATH=<your model path>
python launch.py --model <wan/flux> --method <ori/jano/teacache/pab/toca> --gpus-per-node <1/2> --partition <if specific>参数修改说明 / Parameter configuration: Please edit generation parameters directly in the corresponding
*_generate.pyfiles underrun_wan/,run_flux/, andrun_cvx/.请在
run_wan/、run_flux/、run_cvx/下对应的*_generate.py文件中修改具体参数。
Note: If you get
ModuleNotFoundError, add the project root to your Python path first:export PYTHONPATH=$PYTHONPATH:$(pwd)
| Method | Technique |
|---|---|
| Jano | Set KV_OFFLOAD=1 + 2-GPU parallel |
| PAB | Set LAYER_INTERVAL=2 (memory ÷ n) + 2-GPU parallel |
This project is licensed under the Apache License 2.0.
The Wan2.1 model weights are subject to their own license.
The FLUX.1-dev model weights are subject to the FLUX.1-dev Non-Commercial License.
If you use this code, please cite our paper:
@misc{chen2026janoadaptivediffusiongeneration,
title={Jano: Adaptive Diffusion Generation with Early-stage Convergence Awareness},
author={Yuyang Chen and Linqian Zeng and Yijin ZHou and Hengjie Li and Jidong Zhai},
year={2026},
eprint={2603.00519},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2603.00519},
}




