From 0834ea41e9676e4cb9df19aa8b6eebc5f889e424 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Mon, 8 Jun 2026 08:35:47 +0200 Subject: [PATCH] update skills Signed-off-by: Vladimir Mandic --- .github/copilot-instructions.md | 1 + .github/instructions/core.instructions.md | 1 + .github/skills/check-schedulers/SKILL.md | 18 ++++++++++++++---- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 25e8e0390..5104a7ec8 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -67,6 +67,7 @@ This file contains general guidelines for contributing to the SD.Next codebase, ## File Creation - Any temporary scripts or markdown reports must be stored in `tmp/` folder +- Any helper scripts, task execution scripts, or output capture that need temporary files should always use the repository-local `tmp/` folder - Any reusable test scripts must be stored in `test/` folder ## Repo-Local Skills diff --git a/.github/instructions/core.instructions.md b/.github/instructions/core.instructions.md index 3185d73ae..e59ce2e60 100644 --- a/.github/instructions/core.instructions.md +++ b/.github/instructions/core.instructions.md @@ -37,6 +37,7 @@ applyTo: "launch.py, webui.py, installer.py, modules/**/*.py, pipelines/**/*.py, - `pnpm` for managing JavaScript dependencies and scripts, with key commands defined in `package.json`. - `ruff` and `pylint` for Python linting, with configurations in `pyproject.toml` and executed via `pnpm ruff` and `pnpm pylint`. - `pre-commit` hooks which also check line-endings and other formatting issues, configured in `.pre-commit-config.yaml`. +- When writing helper scripts or capturing temporary output/files for a task, always use the repository-local `tmp/` folder. ## Build And Test diff --git a/.github/skills/check-schedulers/SKILL.md b/.github/skills/check-schedulers/SKILL.md index 777b03614..d7df144a5 100644 --- a/.github/skills/check-schedulers/SKILL.md +++ b/.github/skills/check-schedulers/SKILL.md @@ -1,6 +1,6 @@ --- name: check-schedulers -description: "Run a phased scheduler audit from modules/sd_samplers_diffusers.py: verify class loadability first, then config validity against scheduler capabilities, then SamplerData correctness." +description: "Run a phased scheduler audit from modules/sd_samplers_diffusers.py and scheduler UI definitions: verify class loadability first, then config validity against scheduler capabilities, then SamplerData correctness and UI option alignment." argument-hint: "Optionally focus on a scheduler subset, such as flow-matching, res4lyf, or parallel schedulers" --- @@ -10,11 +10,12 @@ Use `modules/sd_samplers_diffusers.py` as the starting point and verify that sch ## Required Guarantees -The audit must explicitly verify all three: +The audit must explicitly verify all four: 1. All scheduler classes can be loaded and compiled. 2. All scheduler config entries are valid and match scheduler capabilities in `__init__`. -3. All scheduler classes have valid associated `SamplerData` entries and mapping correctness. +3. Scheduler-related UI option values are valid and consistent with the runtime scheduler path. +4. All scheduler classes have valid associated `SamplerData` entries and mapping correctness. ## Scope @@ -24,6 +25,7 @@ Primary file: Related files: +- `modules/ui_sections.py` for scheduler UI definitions in `create_sampler_and_steps_selection` and `create_sampler_options` - `modules/sd_samplers_common.py` for `SamplerData` definition and sampler expectations - `modules/sd_samplers.py` for sampler selection flow and runtime wiring - `modules/schedulers/**/*.py` for custom scheduler implementations @@ -62,7 +64,14 @@ Create a joined table by sampler name with: - config key used - custom scheduler category (diffusers, SD.Next custom, Res4Lyf) -### 2. Validate Scheduler Class Resolution +### 2. Validate Scheduler UI Definitions and Class Resolution + +Before validating runtime scheduler classes, inspect `modules/ui_sections.py` and confirm that the UI definitions for scheduler options are consistent with the later scheduler code. + +- verify `create_sampler_and_steps_selection` presents sampler names that exist in the sampler registry and are valid for the downstream selection flow +- verify `create_sampler_options` option lists and values match the scheduler runtime option names and accepted values used later in code +- verify UI displayed values such as `default`, `karras`, `betas`, `exponential`, `flowmatch`, `linspace`, `leading`, `trailing`, and checkbox option labels are consumed correctly by scheduler configuration handling +- detect mismatches where a UI option can be selected but would later be rejected, ignored, or misrouted by scheduler code For each mapped scheduler class: @@ -94,6 +103,7 @@ For each `SamplerData` entry: - callable builds `DiffusionSampler` with the expected scheduler class - mapping is not accidentally pointing to a different named preset - no duplicate names with conflicting class/config behavior +- if UI sampler names are displayed in multiple contexts, verify the same name resolves to the same scheduler class and behavior across tabs Flag mismatches such as wrong display name, wrong class wired to name, or stale aliasing.