Prhub

#27496 Update SGLang diffusion skills

原始 PR 作者 BBuf 合并时间 2026-06-08 12:22 文件变更 10 提交数 3 评论 1 代码增减 +276 / -344

执行摘要

更新扩散技能目录,移除过时技能,刷新基准脚本

根据 PR body,本 PR 旨在清理过时的 AKO4ALL kernel 技能(由于不再维护),并刷新所有扩散相关技能以反映最新的模型支持状态和基准测试配置,确保新模型和 GPU 测试覆盖被纳入技能文档和脚本中。

值得关注 if 您从事 SGLang diffusion 模型开发或基准测试工作。建议阅读 bench_diffusion_denoise.py 的模型预设更新和 existing-fast-paths.md 的新融合模式,了解当前支持状态。总体来说,这是一个维护型 PR,面向开发者工具,不涉及核心运行时变更。

讨论亮点

在 review 中 gemini-code-assist[bot] 指出 bench_diffusion_denoise.py 中的 run_benchmark_once 函数中变量 cfg 未定义,会导致 NameError。作者在第 3 个 commit 'Fix diffusion benchmark env preset lookup' 中修复了此问题。此外,没有其他讨论。

实现拆解

  1. 删除整个 sglang-diffusion-ako4all-kernel 技能目录(SKILL.md、ensure_ako4all_clean.sh、ako-loop.md),并清除其他技能中对 AKO4ALL 的引用。
  2. 更新 benchmark 脚本 bench_diffusion_denoise.py:扩大 GATED_MODELS 包含 flux2-klein 系列;扩展 MODELS 字典添加来自注册表和 GPU 测试的当前源码跟踪预设(qwen-image、qwen-edit-2509、flux2-klein、cosmos3-nano-t2i 等);修复 env 变量查找时 cfg 未定义的 bug。
  3. 更新 existing-fast-paths.md 文档,添加新的融合模式(fuse_layernorm_scale_shift_gate、varlen USP attention 等)和相关测试和基准文件。
  4. 更新 benchmark-and-profile.md 文档,明确预设分类(夜间对齐、当前源码 extras、纯技能压力预设)。
  5. 微调其他技能的 SKILL.md(performance、add-model、ModelOpt、benchmark-profile)以更新手页指南和引用。
文件 模块 状态 重要度
python/sglang/multimodal_gen/.claude/skills/sglang-diffusion-benchmark-profile/scripts/bench_diffusion_denoise.py 基准脚本 modified 6.88
python/sglang/multimodal_gen/.claude/skills/sglang-diffusion-benchmark-profile/existing-fast-paths.md 快速路径文档 modified 3.31
python/sglang/multimodal_gen/.claude/skills/sglang-diffusion-ako4all-kernel/scripts/ensure_ako4all_clean.sh AKO4ALL 脚本 removed 4.68
python/sglang/multimodal_gen/.claude/skills/sglang-diffusion-ako4all-kernel/SKILL.md AKO4ALL 技能文档 removed 4.05
python/sglang/multimodal_gen/.claude/skills/sglang-diffusion-benchmark-profile/benchmark-and-profile.md 基准文档 modified 3.25

关键源码片段

python/sglang/multimodal_gen/.claude/skills/sglang-diffusion-benchmark-profile/scripts/bench_diffusion_denoise.py core-logic

基准测试核心脚本,修改最大 (+157/-22):扩展模型预设、更新 GATED_MODELS、修复 env 变量查找 bug

# bench_diffusion_denoise.py (head version with bugfix applied)# --- 新增的当前源码跟踪预设(Current-source extras) ---
# 这些预设来自注册表或 GPU 测试案例,但尚未纳入夜间比较配置。
"qwen-image": {
    "path": "Qwen/Qwen-Image",
    "prompt": "A futuristic cyberpunk city at night, neon lights reflecting on wet streets",
    "extra_args": ["--width=1024", "--height=1024"],
},
"qwen-edit-2509": {
    "path": "Qwen/Qwen-Image-Edit-2509",
    "prompt": "Make the cat wear a red hat",
    "image_path": str(ASSET_DIR / "cat.png"),
    "extra_args": ["--width=1024", "--height=1024"],
},
"flux2-klein": {
    "path": "black-forest-labs/FLUX.2-klein-4B",
    "prompt": "...",
    "extra_args": ["--width=1024", "--height=1024", "--dit-layerwise-offload", "false"],
},
# ... ( 还有其他 extras, 如 cosmos3-nano-t2i 等 )# --- run_benchmark_once 中的 env 修复(根据 review 建议) ---
def run_benchmark_once(model_key, ...):
    env = os.environ.copy()
    env.setdefault("FLASHINFER_DISABLE_VERSION_CHECK", "1")
    # 修复 : 必须先获取模型配置字典,否则 cfg 未定义
    cfg = MODELS[model_key] # 新增此行
    for key, value in cfg.get("env", {}).items():
        env.setdefault(key, str(value))

评论区精华

bench_diffusion_denoise.py 中 cfg 变量未定义导致 NameError 正确性

gemini-code-assist[bot] 指出在 run_benchmark_once 函数中 for 循环使用了未定义的变量 cfg,这将导致 NameError。建议在循环前添加 cfg = MODELS[model_key]。

结论:作者在第 3 个 commit 中修复了此问题,在代码中添加了 MODELS[model_key] 赋值。 · 已解决

风险与影响

风险较低。删除过时技能可能影响依赖它的开发者工作流,但该技能标记为过时且不再维护。benchmark 脚本的改动经过 review 和修复,新增的模型预设需要进行验证(PR body 提供了验证步骤)。主要风险在于新预设是否匹配实际支持状态,但这些预设来自当前注册表和测试,所以风险可控。

对用户:删除 AKO4ALL 技能后,开发者需要直接使用 AKO4ALL 仓库而非通过技能引导;新增的模型预设使基准测试更全面。对系统:脚本质量提升,支持更多模型。对团队:维护成本降低(清理过时内容)。整体影响中等偏低。

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论