ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

如何为 FLUX 和 Wan2.2 选对采样参数:AI Toolkit 配置实操指南

如何为 FLUX 和 Wan2.2 选对采样参数:AI Toolkit 配置实操指南 如何为 FLUX 和 Wan2.2 选对采样参数AI Toolkit 配置实操指南【免费下载链接】ai-toolkitThe ultimate training toolkit for finetuning diffusion models项目地址: https://gitcode.com/GitHub_Trending/ai/ai-toolkit给 FLUX 设了 25 步出图和 8 步几乎一样——问题不在模型在采样配置。AI Toolkit 把 sampler、sample_steps、guidance_scale 这些采样参数统一放在 yaml 里管理 sampler 实现集中在 toolkit/samplers/。采样参数配置是否合理直接决定生成质量的上限而一套可靠的 AI Toolkit 采样策略能让同样的提示词产出可复现的结果。三个参数决定生成质量的上限这三个参数各自控制一件事步数决定精修程度引导尺度决定文本服从度时间步加权决定算力花在哪。逐个拆开看。sample_steps步数调到多少合适采样步数像改稿第一遍解决大问题第二遍改错别字第三遍顺句子改到第四遍开始为改而改。步数不是越多越好超过模型的收敛点后多出来的步数只是多花时间。仓库示例给出的三档取值4 步FLUX schnell 专用train_lora_flux_schnell_24gb.yaml 里注明 1 - 4 works well适合快速验证构图和风格。20 步FLUX dev 和 SD 系列的日常档FLUX 示例配置里 sample_steps 就是 20。25 步细节优先档Wan2.2 14B、Qwen-Image、SD3.5 Large 的官方示例统一用 25。generate: sampler: ddpm # SD 系列出图 sample_steps: 20 # 20 步是日常平衡点 width: 1024 height: 1024guidance_scale引导强度给多少引导尺度像遛狗的牵引绳拉太紧狗画面不敢动颜色过饱和、构图僵硬绳太松狗想跑哪跑哪提示词说了等于没说。不同模型家族的合理区间差得很多混用配置是最常见的翻车原因。1FLUX schnell 的固定值示例配置注释明确 schnell does not do guidance设高了反而不稳定。3–4flowmatch 家族区间。Qwen-Image 用 3FLUX dev 和 SD3.5 Large 用 4Wan2.2 用 3.5。7Stable Diffusion 经典档config/examples/generate.example.yaml 的默认值适合强文本引导。generate: guidance_scale: 7 # SD 系列强引导 sample_steps: 20sample: guidance_scale: 4 # FLUX dev 示例值 sample_steps: 20timestep weighting算力预算怎么分配时间步加权像灌溉不是每个时段浇一样多水苗期、坐果期多浇封垄期少浇。扩散模型也一样不同时间步对最终画面的贡献不均等把预算平均分配是浪费。默认加权曲线toolkit 内置一套针对 flowmatch 模型计算的权重表中段权重最高、两端回落到 0.5 以下开箱即用对应文件是 toolkit/timestep_weighing/default_weighing_scheme.py。linear / sigmoid训练侧可配 train.timestep_type仓库注释写明 linear or sigmoid线性分配适合需要对比基线的场景。动态 shiftFLUX 的 flowmatch 调度器内置 shift3.0 并开启 use_dynamic_shifting见 toolkit/sampler.py 的 flux_config按分辨率自动调整时间步分布复杂构图和高分辨场景受益更明显。train: noise_scheduler: flowmatch # 训练侧调度器 timestep_type: linear # linear or sigmoid按模型选配置速查表 即贴模板先按模型对号入座再把下面的配置块贴进自己的 yaml。所有数值都取自仓库 config/examples/ 下的真实示例不是理论推荐值。模型采样器步数引导尺度显存门槛FLUX.1-devflowmatch20424GBFLUX.1-schnellflowmatch4124GBWan2.2 14Bflowmatch253.524GBQwen-Imageflowmatch25324GBSD3.5 Largeflowmatch25424GBSD1.5 / SDXLddpm2078GBFLUX.1-devsample: sampler: flowmatch # must match train.noise_scheduler width: 1024 height: 1024 guidance_scale: 4 sample_steps: 20为什么这么配FLUX dev 是 flowmatch 模型调度器必须和训练的 noise_scheduler 一致4 引导 20 步是官方示例的平衡组合再往上加步数收益很小。参考文件config/examples/train_lora_flux_24gb.yamlWan2.2 14Bsample: sampler: flowmatch width: 1024 height: 1024 guidance_scale: 3.5 sample_steps: 25 num_frames: 1 # 出图设 1出视频再调大为什么这么配Wan2.2 14B 是 MoE 双专家结构示例里开了 cache_text_embeddings 和 4bit 量化才能在 24GB 上跑采样端 25 步 3.5 引导保证动态场景的帧间一致性。参考文件config/examples/train_lora_wan22_14b_24gb.yamlQwen-Imagesample: sampler: flowmatch width: 1024 height: 1024 guidance_scale: 3 sample_steps: 25为什么这么配Qwen-Image 对提示词的语义理解更强引导给到 3 就足够留出的空间让模型发挥25 步配合 bf16 训练精度文字渲染和细节更稳。参考文件config/examples/train_lora_qwen_image_24gb.yamlStable Diffusion 系列生成任务generate: sampler: ddpm width: 1024 height: 1024 guidance_scale: 7 sample_steps: 20为什么这么配SD 家族走传统 DDPM 调度路径7 引导 20 步是 generate 示例的默认组合这一档显存压力小8GB 卡也能跑。参考文件config/examples/generate.example.yaml根据显存定路径决策树与排障速查显存 ├─ ≥ 12GB │ ├─ 质量优先 → flowmatch 25步 引导 3~3.5Wan2.2 / Qwen │ └─ 均衡出图 → flowmatch 20步 引导 4FLUX dev ├─ 8–11GB │ ├─ SD 系列 → ddpm 20步 引导 7 │ └─ 大模型 → quantize: true low_vram: true 压进 FLUX / Qwen └─ 8GB ├─ 概念验证 → FLUX schnell 4步 引导 1 └─ 轻量出图 → SD1.5 ddpm 20步 引导 7为什么不同显存走不同路径显存决定了两件事——能不能用 bf16 全精度和更高分辨率以及大模型必须靠 4bit 量化qtype: uint4加 low_vram 卸载来腾空间。精度和分辨率一起上质量才有上限小显存卡则先保能跑起来用 schnell 这种 4 步模型做验证成本最低。常见偏差与调整动作画面模糊、细节不足sample_steps 从 20 提到 25先排除步数不够确认 sample.sampler 和 train.noise_scheduler 一致两者不匹配时调度器会退回到保守路径分辨率超过 1024 时先降回 1024再判断是参数问题还是算力不够。出图和提示词对不上SD 家族guidance_scale 向 7 靠拢同时检查 neg 负向提示词是否和主提示词打架flowmatch 家族引导尺度保持在 3–4 区间先确认没有把 schnell 的配置引导 1套到 dev 上提示词本身超过五个关键词时精简一下冲突描述会稀释引导效果。生成速度慢概念验证阶段改用 schnell4 步 引导 1显存够大于 10GB时保持 dtype: bf16避免回退到更慢的精度路径出视频或大批量时调大 sample_every降低采样频率。进阶组合三件事让输出再上一层混合采样前快后慢前几步采样决定构图大方向后几步才是细节精修所以不必全程慢速。如果你的工作流允许两遍出图可以试试先用 schnell 以 4 步 引导 1 锁定构图和色调满意后换 FLUX dev 走 20–25 步精修。两遍之间固定 seed第二遍只吃细节的账。相关调度器实现可以看 toolkit/samplers/ 下的 custom_flowmatch_sampler.py。sample: sampler: flowmatch sample_steps: 4 # 第一遍schnell 锁构图 guidance_scale: 1按内容调分辨率不同内容的合适分辨率不一样人物特写放 1024环境类素材 512 就够用。训练数据侧 toolkit 支持多分辨率分桶如果你的数据集里混着特写和远景可以试试多档分辨率让模型自己学分配datasets: - folder_path: /path/to/images/folder resolution: [ 512, 768, 1024 ] # flux enjoys multiple resolutions出图时再按内容选 width/height人物用 1024×1024横幅素材降到 768速度和细节都能兼顾。批量生成的内存缓存批量跑图或训练时最大的隐性开销是反复加载模型和重复编码文本。如果你需要连续生成几十张以上可以试试把文本嵌入和潜变量缓存打开toolkit 的内存管理逻辑在 toolkit/memory_management/manager.py 里示例配置给了两个现成的开关train: cache_text_embeddings: true # 24GB 卡上的必备项 datasets: - cache_latents_to_disk: true这两个缓存对 24GB 档的大模型几乎是必选项前者把提示词编码一次复用整个数据集后者避免每张图重复过 VAE。回到开头那个场景25 步和 8 步出图几乎一样多半是采样器或引导尺度先设错了步数只是最后一步。建议先用仓库示例的默认配置完整跑一遍把出图截图存档再每次只改一个参数并记录差异两三轮之后参数日志自然成形再谈优化才有依据。项目地址https://gitcode.com/GitHub_Trending/ai/ai-toolkit【免费下载链接】ai-toolkitThe ultimate training toolkit for finetuning diffusion models项目地址: https://gitcode.com/GitHub_Trending/ai/ai-toolkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进