scoring-pipeline
Python scoring pipeline architecture — models, workers, engine, and how to extend the system.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Python scoring pipeline architecture — models, workers, engine, and how to extend the system.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Update CHANGELOG.md and package.json via compiled release_bump harness, then commit/push only when the user asks. Use for /release, changelog updates, or shipping gallery versions.
Works in image-scoring-gallery on electron/db.ts contract, IPC, apiService, React/Vite, and alignment with sibling image-scoring-backend schema. Use for desktop app bugs, database.engine modes, API URL/port from webui.lock, or TypeScript changes under electron/ or src/. Triggers include Electron gallery, db.ts, IPC, apiService, config.api, PostgreSQL vs api engine, and Vite renderer.
React component patterns, CSS Modules styling, design tokens, virtualization, and UX constitution for the Driftara Gallery renderer. Use for src/ UI work, styling, FilterPanel/GalleryGrid/ImageViewer, or design:check—not electron/db unless coordinated with gallery-electron-ts.
Verify implementation against spec AC-n criteria via compiled harness. Use after /implement or /test-and-fix, before /pr-ready. Parses ACs and emits the report; LLM assigns Verified/Failed/Unknown when evidence is not a clean command exit.
Use before claiming work is complete, fixed, passing, ready to commit, or ready for PR. Runs scripts/agent_skills/verification_before_completion.py for the claim→proof catalog; LLM interprets output. Never upgrade incomplete verification.
Driftara Gallery MCP — is-ui-* router-first; backend triage via sibling is-be-mcp search+dispatch.
| name | scoring-pipeline |
| description | Python scoring pipeline architecture — models, workers, engine, and how to extend the system. |
The image-scoring project uses a multi-stage pipeline to assess image quality using neural network models. This skill covers the architecture, key modules, and how to safely make changes.
Input (folder/file)
→ PrepWorker (RAW conversion, thumbnails, skip checks)
→ ScoringWorker (GPU inference: MUSIQ, LIQE, TOPIQ)
→ ResultWorker (DB upsert, XMP metadata write, cleanup)
The pipeline uses producer-consumer queues with threading.Thread workers.
| Module | Purpose |
|---|---|
modules/pipeline.py | Worker classes: PrepWorker, ScoringWorker, ResultWorker, ImageJob dataclass |
modules/scoring.py | ScoringRunner — orchestrates batch/single scoring, Fix DB, and metadata repair |
modules/engine.py | BatchImageProcessor — low-level batch processing engine |
modules/config.py | load_config(), get_config_value() — reads config.json |
modules/utils.py | Path conversion (WSL ↔ Windows), hashing, thumbnail utilities |
| File | Model | Framework | Score Range |
|---|---|---|---|
musiq/run_all_musiq_models.py | MUSIQ (SPAQ, AVA, KonIQ, PaQ2PiQ) | TensorFlow | 0–100 (normalized to 0–1) |
modules/liqe.py | LIQE (language-image quality evaluator) | PyTorch (pyiqa) | 1–5 (normalized to 0–1) |
modules/topiq.py | TOPIQ-IAA | PyTorch (pyiqa) | 0–1 |
modules/qalign.py | Q-Align | PyTorch | 1–5 |
General = 0.50 × LIQE + 0.30 × AVA + 0.20 × SPAQ
Technical = LIQE (primary)
Aesthetic = 0.60 × AVA + 0.40 × SPAQ
All composite scores are stored as floats 0.0–1.0 in the database.
modules/ (e.g., modules/newmodel.py) that exposes a score(image_path) → float method.ScoringWorker.process() inside modules/pipeline.py.modules/db.py → _init_db_impl().modules/scoring.py → ScoringRunner.fix_image_metadata().All config lives in config.json at the project root. Key sections:
database — filename, user, passwordscoring — force_rescore_default, model weights