Skip to main content

check-processing

Run a phased processing-workflow audit from UI submit bindings to backend execution: map workflow paths first, then validate parameter, type, and initialization correctness.

소스 정보

저장소
vladmandic/sdnext
최근 소스 활동
2026년 7월 14일 07:33
감지된 SKILL.md 언어
영어
스타
7,356
포크
582

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
check-processing
description
Run a phased processing-workflow audit from UI submit bindings to backend execution: map workflow paths first, then validate parameter, type, and initialization correctness.
argument-hint
Optionally focus on txt2img, img2img, control, caption, or process-only and include changed files
# Check Processing Workflow Contracts Perform a detailed step-by-step trace of generation workflows from UI definitions and submit bindings to backend execution, then validate that parameters are passed, typed, and initialized correctly. ## When To Use - A change touched UI submit wiring for txt2img, img2img, control, or caption workflows - Processing code changed and regressions are suspected in argument ordering or defaults - A new parameter was added to UI or processing classes/functions and needs end-to-end validation - You want a pre-PR contract audit for generation flow integrity ## Guidance - Consult `.github/instructions/core.instructions.md` for relevant core runtime guidance before proceeding. ## Required Workflow Coverage Run workflow coverage in this order to keep checks focused and complete: 1. `txt2img`: `modules/ui_txt2img.py` -> `modules/txt2img.py` -> `modules/processing.py:process_images` -> `modules/processing_diffusers.py:process_diffusers` 2. `img2img`: `modules/ui_img2img.py` -> `modules/img2img.py` -> `modules/processing.py:process_images` -> `modules/processing_diffusers.py:process_diffusers` 3. `control/process`: `modules/ui_control.py` -> `modules/control/run.py` (and related control processing entrypoints) -> `modules/processing.py:process_images` -> `modules/processing_diffusers.py:process_diffusers` 4. `caption/process`: `modules/ui_caption.py` -> caption handler module(s) -> `modules/processing.py:process_images` and/or postprocess/caption execution module(s), depending on selected caption backend 5. `video`: `modules/ui_video.py` -> `modules/video_models/video_run.py` -> `modules/processing.py:process_images` and/or postprocess/video execution module(s), depending on implementation Also validate script hooks when present: - `modules/scripts_manager.py` (`run`, `before_process`, `process`, `process_images`, `after`) ## Primary Files - `modules/ui_txt2img.py` - `modules/txt2img.py` - `modules/ui_img2img.py` - `modules/img2img.py` - `modules/ui_control.py` - `modules/control/run.py` - `modules/ui_caption.py` - `modules/ui_video.py` - `modules/video_models/video_run.py` - `modules/processing.py` - `modules/processing_diffusers.py` - `modules/scripts_manager.py` ## Audit Goals For each covered workflow, verify all three dimensions: 1. Parameter pass-through correctness (name, order, semantic meaning) 2. Type correctness (UI component output shape vs function signature expectations) 3. Initialization correctness (defaults, `None` handling, fallback logic, and object state) ## Procedure ### 1. Build End-To-End Call Graph For each workflow (`txt2img`, `img2img`, `control`, `caption`, `video`): - Locate submit/click bindings in UI modules. - Capture the exact `inputs=[...]` list order and target function (`fn=...`). - Resolve wrappers (`call_queue.wrap_gradio_gpu_call`, queued wrappers) to actual function signatures. - Follow function flow through processing class construction and execution (`processing.process_images`, then `process_diffusers` when applicable). Produce a table per workflow with standardized columns and consistent formatting: - UI input component name - UI expected output type - receiving argument in submit target - receiving processing-object field (if applicable) - downstream consumption point ### 2. Validate Argument Order And Arity For each submit path: - Compare UI `inputs` order against function positional parameter order. - Validate handling of `*args` and script arguments. - Confirm `state`, task id, mode flags, and tab selections align with function signatures. - Flag positional drift where adding/removing an argument in one layer is not propagated. ### 3. Validate Name And Semantic Parity Check that semantically related parameters remain coherent across layers: - sampler fields (`sampler_index`, `hr_sampler_index`, sampler name conversion) - guidance/cfg fields - size/resize fields - denoise/refiner/hires fields - detailer, hdr, grading fields - override settings fields Flag mismatches such as: - same concept with divergent naming and wrong destination - field sent but never consumed - required field consumed but never provided ### 4. Validate Type Contracts Audit type compatibility from UI component to processing target: - `gr.Image`/`gr.File`/`gr.Video` outputs vs expected Python types (`PIL.Image`, bytes, list, path-like, etc.) - radios returning index/value and expected downstream representation - sliders/number inputs (`int` vs `float`) and conversion points - optional objects (`None`) and `.name`/attribute access safety Flag ambiguous or unsafe assumptions, especially for optional file inputs and mixed scalar/list values. ### 5. Validate Initialization And Defaults In target modules (`txt2img.py`, `img2img.py`, `control/run.py`, processing classes): - verify defaults/fallbacks for invalid or missing inputs - verify guards for unset model/state and expected error paths - verify object fields are initialized before first use - verify flow-specific defaults are not leaking across workflows Include checks for common regressions: - `None` passed into required processing fields - missing fallback for sampler/seed/size values - stale fields retained from prior job state ### 6. Validate Script Hook Contracts Where script systems are involved: - verify `scripts_*.run(...)` fallback behavior to `processing.process_images(...)` - verify `scripts_*.after(...)` receives compatible processed object - ensure script args wiring matches `setup_ui(...)` order ### 7. Runtime Spot Check (Preferred) If feasible, run lightweight smoke validation for each workflow: - one minimal txt2img run - one minimal img2img run - one minimal control run - one minimal caption run Use very small dimensions/steps to limit runtime. If runtime checks are not feasible, explicitly report static-only limitations. ## Reporting Format Return findings by severity: 1. Blocking contract failures (will break execution) 2. High-risk mismatches (likely wrong behavior) 3. Type/init safety issues 4. Non-blocking consistency issues For each finding include: - workflow (`txt2img` | `img2img` | `control` | `caption`) - layer transition (`ui -> handler`, `handler -> processing`, `processing -> diffusers`) - file location - mismatch summary - minimal fix Also include summary counts: - workflows checked - UI bindings checked - function signatures checked - parameter mappings validated - runtime checks executed vs skipped ## Pass Criteria A full pass requires all of the following: - UI submit input order matches target function signatures - all required parameters are passed end-to-end with correct semantics - type expectations are explicit and compatible at each boundary - initialization/default logic prevents unset/invalid state usage - scripts fallback path to `processing.process_images` is coherent If only part of the workflow scope was checked, report partial pass with explicit exclusions.
GitHub에서 보기