Prhub

#24270 [codex] Add official diffusion GT workflow mode

原始 PR 作者 mickqian 合并时间 2026-05-03 15:10 文件变更 1 提交数 1 评论 1 代码增减 +298 / -4

执行摘要

为扩散 CI 添加强制官方 GT 模式

根据PR描述,需要引入一种可选的官方扩散GT模式,以运行官方可比案例进行一致性验证,作为原生SGLang GT生成的补充。这允许针对特定案例组进行定向GT再生,并能够将大型案例路由到H200以利用更多资源。

如果负责扩散模型的CI维护,建议仔细阅读此PR以理解官方GT模式的工作原理;对其他开发者而言,了解即可,无需深入。

讨论亮点

无有效讨论;仅有一条Gemini Code Assist bot的评论,表示无法为涉及的文件类型生成review。

实现拆解

  1. 新增输入参数:在workflow的on.workflow_dispatch.inputs中增加了三个输入项——run_official_cases(布尔,默认false)、official_case_ids(空格分隔的案例ID字符串)、official_source_group(组筛选:all/diffusers/wan21/ltx23)。
  2. 添加compute-official-gt-matrix job:当run_official_cases为true时,运行一个compute-official-gt-matrix job。该job使用内联Python脚本,根据official_source_groupofficial_case_ids计算要运行的案例矩阵,并将大型案例(如Flux2和LTX两阶段)标记为使用H200 runner。矩阵作为job输出传递给后续的main job。
  3. 修改main job:条件性地根据run_official_cases设置PUBLISH_TARGET_DIR默认值(官方输出到diffusion-ci/consistency_gt/official_generated)。runner选择逻辑被更新:如果矩阵中包含H200标签,则切换到H200 runner。
  4. 优化artifact上传:修改artifact上传步骤,只包含生成的图像和manifest文件,避免模型权重、输入资产等被错误上传作为GT artifacts。
  5. 更新并发组键:将新输入纳入并发组键计算,以避免相同ref下不同参数的工作流互相取消。
文件 模块 状态 重要度
.github/workflows/diffusion-ci-gt-gen.yml CI 工作流 modified 6.25

关键符号

link

关键源码片段

.github/workflows/diffusion-ci-gt-gen.yml infrastructure

唯一的变更文件,新增官方扩散 GT 模式的核心实现,包括输入参数、矩阵计算 job、runner 路由和 artifact 优化。

# 新增输入参数定义(工作流调度时可选)
run_official_cases:
  description: 'Run official comparable GT cases instead of native SGLang GT cases.'
  required: false
  default: false
  type: boolean
official_case_ids:
  description: 'Specific official case IDs to run (space-separated). Leave empty to run all official comparable cases.'
  required: false
  default: ''
  type: string
official_source_group:
  description: 'Official GT source group filter: all, diffusers, wan21, or ltx23. Used only when run_official_cases is true.'
  required: false
  default: ''
  type: string# 并发组键包含新输入以避免冲突
concurrency:
  group: diffusion-ci-gt-gen-${{ github.ref }}-${{ inputs.output_name || inputs.case_ids || inputs.official_case_ids || inputs.official_source_group || inputs.run_official_cases || 'default' }}
  cancel-in-progress: true# 根据 run_official_cases 决定默认发布目录
env:
  PUBLISH_TARGET_DIR: ${{ inputs.publish_target_dir || (inputs.run_official_cases && 'diffusion-ci/consistency_gt/official_generated' || 'diffusion-ci/consistency_gt/sglang_generated') }}# 新增 compute-official-gt-matrix job(仅当启用官方模式时运行)
jobs:
  compute-official-gt-matrix:
    if: github.repository == 'sgl-project/sglang' && inputs.run_official_cases
    runs-on: ubuntu-latest
    outputs:
      matrix: ${{ steps.compute.outputs.matrix }}
      case-count: ${{ steps.compute.outputs.case-count }}
    steps:
      - name: Compute official case matrix
        id: compute
        env:
          OFFICIAL_CASE_IDS: ${{ inputs.official_case_ids }}
          OFFICIAL_SOURCE_GROUP: ${{ inputs.official_source_group || 'all' }}
        # 内联 Python 脚本根据组和 ID 筛选案例,并标记需要 H200 的案例
        run: |
          python3 - <<'PY'
          import json, os
          # 定义案例组
          groups = {
            "diffusers": ["flux_2_image_t2i", "flux_2_klein_image_t2i", ...],
            "wan21": ["wan2_1_t2v_1.3b"],
            "ltx23": ["ltx_2.3_two_stage_t2v_2gpus", "ltx_2.3_one_stage_ti2v"],
          }
          # 根据 source_group 筛选组
          # 根据 case_ids 筛选具体案例
          # 将大型案例标记为 h200 runner
          # 输出 JSON 矩阵
          PY

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险较低,仅影响CI工作流。可能的风险包括:

  • H200 runner条件判断错误导致job失败;
  • artifact过滤规则过严导致必要文件缺失;
  • 并发组键变更可能影响并行工作流的取消行为。但这些风险在已有验证步骤中已被覆盖。

影响限于diffusion-ci-gt-gen.yml工作流的使用者。启用官方模式后,GT生成会切换到官方案例,输出目录不同,且大型案例使用H200。对核心服务无影响,团队成员需要了解新模式以修改触发配置。

CI 流程变更 缺少测试覆盖

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论