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