FreeCache Preview
FreeCache 通过复用相邻去噪步骤的模型输出,减少生成耗时。Preview 提供 Z-Image、 Qwen-Image 和 FLUX.1-dev 的内置模型预设,无需自行下载或拟合 profile。
选择预算
| Fresh 数量 | 用途 |
|---|---|
| 25(默认) | 优先保留画面,建议从这一档开始 |
| 17 | 更快生成 |
| 10 | 快速预览,画面变化更明显 |
fresh_budget 支持 1–50 的任意整数,不限于上面的三个参考档位。
10 / 17 / 25 保留原有预设;其他预算由内置离线 profile 自动生成 Fresh 调度,
无需重新标定,也不读取当前 prompt 或 seed。所有预算都完成完整的 50-step 采样区间,
只减少完整模型计算的次数,并非提前停止生成。预算 50 为全 Fresh;极低预算可能明显损坏画面。
当前预设适用于默认 sampler、1024²、50 steps。FreeCache 是有损加速,实际速度和画面
变化见 FlexCache 评测。
评测展示 F10 / F13 / F17 / F25 / F31 五个实测预算;支持其他预算不等于保证其画质,
也不保证每张图的指标随预算严格单调改善。
命令行
chitu generate --model zimage --model-path /path/to/Z-Image \
--prompt "A porcelain coffee cup on a cafe table, soft morning light." \
--width 1024 --height 1024 --steps 50 --seed 53 \
--cache-strategy freecache --freecache-profile zimage:25 \
--output outputs/coffee-freecache.png
例如将 zimage:25 改为 zimage:13 或 zimage:31,即可使用非定档预算。
也可只传 --cache-strategy freecache --freecache-fresh-budget 13,自动选择当前模型的
profile;不传预算时为 25。这两个预算参数不能同时使用。
| 模型 | --model |
--freecache-profile |
|---|---|---|
| Z-Image | zimage | zimage:25 |
| Qwen-Image | qwen-image | qwen_image:25 |
| FLUX.1-dev | flux1 | flux1:25 |
Python API
在已有 pipeline 的请求中传入缓存配置:
from chitu_diffusion import CacheConfig, FreeCacheConfig, ZImageRequest
cache = CacheConfig(
strategy="freecache",
params=FreeCacheConfig.preview("zimage", fresh_budget=25),
)
result = pipeline.generate(ZImageRequest(
prompt="A porcelain coffee cup on a cafe table, soft morning light.",
width=1024, height=1024, num_steps=50, seed=53, cache=cache,
))
完整可执行示例是仓库中的 examples/generate_zimage_freecache.py,负责模型加载、
输出保存与资源释放。先检查配置,不加载模型:
使用 Slurm 的环境可通过 debug 分区生成:
sbatch --partition=debug --nodes=1 --ntasks=1 --gres=gpu:1 \
--cpus-per-task=8 --time=00:10:00 \
--wrap='.venv/bin/python examples/generate_zimage_freecache.py --model-path /path/to/Z-Image --budget 25 --output outputs/freecache-preview.png'
使用范围
- 内置预设使用
--steps 50;其他步数请先运行 preprocess,生成对应的自定义配置。 - profile 必须与模型匹配;更换 checkpoint、分辨率、CFG 或 sampler 后需要检查画面。
- 当前仅支持单卡
generate()和确定性FlowMatchEulerDiscreteScheduler;不支持多卡并行、其他 solver、随机采样或 EPEserve。 - 关闭缓存使用
--cache-strategy none;Python API 使用没有默认缓存的 pipeline 与CacheConfig()。 - 本功能为 preview;需要严格保持原始生成结果时,请关闭缓存。