Skill: kooui/photo-scorer (version 1.4.10)

--- name: aesthetic-scorer version: "1.7.0" description: | 给你的照片打分、评价反馈、给出改进建议或美学分析 / Aesthetic photo scorer with detailed analysis author: "WorkBuddy Community" tags: [照片评分, 照片分析, 美学评分, 摄影评分, 图片评分, 视觉评分, photo-scoring, aesthetic-scoring, photography, image, vision, offline] --- # Aesthetic Scorer Skill This skill provides comprehensive aesthetic evaluation and improvement suggestions for images and photographs through a **dynamic weighted two-tier architecture**. ## Architecture Overview **Two Evaluation Sources with Dynamic Weight:** 1. **Improved Aesthetic Predictor**: CLIP ViT-L/14 + MLP for content-level aesthetic scoring - Understands image semantics and visual impact - Base Weight: 45% (adjustable 45%-70% based on NIMA consensus) 2. **NIMA (Neural Image Assessment)**: MobileNet for technical quality scoring - Provides detailed quality distribution and standard deviation - Base Weight: 55% (adjustable 30%-55% based on NIMA consensus) **Dynamic Weight Logic:** - NIMA returns a standard deviation (std) indicating score distribution spread - High std = controversial image = more weight to IAP (content-based) - Low std = consensus = use balanced weights ### Dynamic Weight Formula ``` normalized_std = min(nima_std / 2.5, 1.0) weight_iap = 0.45 + normalized_std * 0.25 // Range: 45% - 70% weight_nima = 1.0 - weight_iap // Penalty when scores diverge significantly (diff >= 2.0) penalty = 0.05 * |IAP_score - NIMA_score| weighted_score = weight_iap * IAP + weight_nima * NIMA - penalty ``` | Parameter | Value | Description | |-----------|-------|-------------| | Base IAP Weight | 45% | Balanced starting point | | Base NIMA Weight | 55% | Balanced starting point | | Max Adjustment | ±25% | IAP weight increases with controversy | | IAP Weight Range | 45% - 70% | Dynamic adjustment | | Divergence Threshold | 2.0 | Score difference triggers penalty | | Divergence Penalty | 0.05 | Per point of difference | **Evaluation Text Generation**: - The detailed evaluation text (composition, color, lighting, technical quality, improvement suggestions) is generated by the AI (WorkBuddy) based on: - The weighted scores from both models - Visual understanding of the photo content - Professional photography knowledge and best practices - This provides professional-grade analysis without requiring external API calls ## Workflow ### Phase 1: Execute Both Evaluations **Step 1: Improved Aesthetic Predictor (dynamic weight)** 1. Execute `scripts/score_improved_predictor.py <image_path>` 2. Parse output score (0-10 scale) 3. Record as `score_improved` **Step 2: NIMA Model (dynamic weight)** 1. Execute `scripts/score_nima.py <image_path>` 2. Parse mean score AND standard deviation 3. Record as `score_nima` and `nima_std` ### Phase 2: Calculate Weighted Comprehensive Score (Dynamic) **Step 2.1: Calculate Dynamic Weights** - Extract NIMA's standard deviation (std_score) - Normalize: `normalized_std = min(std_score / 2.5, 1.0)` - Calculate weights: `weight_iap = 0.45 + normalized_std * 0.25` **Step 2.2: Apply Penalty if Needed** - If `|IAP - NIMA| >= 2.0`, apply penalty: `penalty = 0.05 * |IAP - NIMA|` **Step 2.3: Calculate Final Score** ``` weighted_score = weight_iap * IAP + (1-weight_iap) * NIMA - penalty ``` **Example:** - IAP = 6.44, NIMA = 4.52, NIMA_std = 1.87 - normalized_std = 1.87/2.5 = 0.75 - weight_iap = 0.45 + 0.75×0.25 = 0.637 (63.7%) - weight_nima = 0.363 (36.3%) - Score_diff = 1.92 < 2.0, penalty = 0 - Final = 0.637×6.44 + 0.363×4.52 = **5.74** **Security Note:** All processing is 100% local - no data leaves your device ### Phase 3: Generate Evaluation at Appropriate Detail Level **CRITICAL: Three Detail Levels Available** Always generate the **detailed evaluation (10分)** in the background first and save it. Then present the evaluation at the requested detail level: | Level | Name | Word Count per Photo | Description | |-------|------|---------------------|-------------| | 1 | 简要 | ~200字 | Concise overview, key points only | | 3 | 中等 (默认) | ~300字 | Balanced, covers all aspects | ⭐ DEFAULT | | 10 | 详细 | ~4000字 | Comprehensive, in-depth analysis | **How User Requests Different Levels:** - 默认/未指定 → 使用 3分（中等），约300字 - "详细评价" / "详细版" / "完整评价" → 使用 10分（详细），约4000字 - "简要评价" / "简洁版" / "简要说明" → 使用 1分（简要），约200字 **Important:** - ALWAYS generate detailed evaluation (10分) in background first - Save detailed evaluation so it can be retrieved immediately if user requests it - Present the appropriate level based on user request (default: 3分) - If user requests detailed evaluation after seeing summary, retrieve the saved detailed version ## Output Format by Detail Level ### Level 1: 简要 (~200字 per photo) ```markdown ## [Photo Name] 综合评分: X.XX/10 (等级: 夯/顶级/人上人/NPC/拉完了) 构图: [2-3句话] 色彩: [2-3句话] 光线: [2-3句话] 技术: [2-3句话] 建议: [3-4条关键建议] ``` ### Level 3: 中等 (默认, ~300字 per photo) ```markdown ## [Photo Name] ### 综合评分: X.XX/10 (夯/顶级/人上人/NPC/拉完了) ### 综合分析 #### 构图评价 [3-4句话] #### 色彩评价 [3-4句话] #### 光线评价 [3-4句话] #### 技术质量评价 [3-4句话] ### 改进建议 #### 拍摄技巧 [3条建议] #### 后期处理 [3条建议] #### 构图优化 [3条建议] ### 总体评价 [2-3句话] ``` ### Level 10: 详细 (~4000字 per photo) ```markdown ## [Photo Name] ### 综合评分: X.XX/10 (夯/顶级/人上人/NPC/拉完了) ### 评分解读 [3-4句话] ### 综合分析 #### 构图评价 [6-10详细句话] #### 色彩评价 [6-10详细句话] #### 光线评价 [6-10详细句话] #### 技术质量评价 [6-10详细句话] ### 改进建议 #### 拍摄技巧 [5-7详细条建议] #### 后期处理 [5-7详细条建议] #### 构图优化 [5-7详细条建议] ### 总体评价 [3-4段，每段6-8句] ``` ### Multiple Photos Comparison (Level 3, ~600字 total) ```markdown ## 照片对比分析 ### 照片 1: [Name] [Level 3 evaluation as above, ~300字] ### 照片 2: [Name] [Level 3 evaluation as above, ~300字] ## 对比总结 | 对比项 | 照片1 | 照片2 | 胜出 | |--------|-------|-------|------| | 综合评分 | X.XX/10 | X.XX/10 | 照片X | | 构图 | [评级] | [评级] | 照片X | | 色彩 | [评级] | [评级] | 照片X | | 光线 | [评级] | [评级] | 照片X | | 技术质量 | [评级] | [评级] | 照片X | ## 综合建议 [3-4句话] ``` ## Score Interpretation Guide ### "从夯到拉" Rating System / "从夯到拉" 评分系统 | Score Range | 等级 / Level | Description / 描述 | |-------------|-------------|-------------------| | 9.0-10.0 | **夯 (Hāng)** | 好到没话说,顶级水平 / Exceptional, top-tier, perfect | | 8.0-8.9 | **顶级** | 极好,专业水准 / Excellent, professional level | | 7.0-7.9 | **人上人** | 很好,超越常人 / Very good, above average, outstanding | | 6.0-6.9 | **NPC** | 不起眼,普普通通 / Average, unremarkable, plain | | 0.0-5.9 | **拉完了** | 差到没法再差 / Terrible, needs major improvement | ### Traditional Rating / 传统评分 | Score Range | Level | Description | |-------------|-------|-------------| | 9.0-10.0 | 优秀 | Exceptional quality, professional level | | 8.0-8.9 | 很好 | High quality with minor improvements needed | | 7.0-7.9 | 良好 | Solid quality, above average | | 6.0-6.9 | 一般 | Average quality, noticeable room for improvement | | 4.0-5.9 | 较差 | Below average, significant improvements needed | | 0.0-3.9 | 很差 | Poor quality, substantial improvements needed | **重要说明**: 综合评分格式示例: ``` 综合评分: X.XX/10 (夯) 综合评分: X.XX/10 (顶级) 综合评分: X.XX/10 (人上人) 综合评分: X.XX/10 (NPC) 综合评分: X.XX/10 (拉完了) ``` ## Error Handling If any evaluation source fails: 1. **Improved Predictor fails**: Use NIMA only - Score: NIMA score only - Note in report: "Improved Predictor 不可用，仅使用 NIMA 评分" 2. **NIMA fails**: Use Improved Predictor only - Score: Improved Predictor score only - Note in report: "NIMA 不可用，仅使用 Improved Predictor 评分" 3. **Both sources fail**: Inform user and suggest trying again later ## Script Dependencies All scripts in `scripts/` directory must be executable: - `score_improved_predictor.py`: Fast aesthetic scoring - `score_nima.py`: Detailed quality analysis - `comprehensive_score.py`: Integrated weighted scoring ## Model Paths (Local Installation) ### Default Paths (Windows) | Model | Location | |-------|----------| | Improved Aesthetic Predictor (.pth) | `F:\software\skill\aesthetic-scorer\models\improved-aesthetic-predictor\sac+logos+ava1-l14-linearMSE.pth` | | NIMA MobileNet weights (.h5) | `F:\software\skill\aesthetic-scorer\models\neural-image-assessment\weights\mobilenet_weights.h5` | ### Environment Variables (Override Default Paths) You can override model paths by setting environment variables: | Variable | Description | Default | |----------|-------------|---------| | `AESTHETIC_SCORER_MODEL_DIR` | Override IAP model directory | `F:\software\skill\aesthetic-scorer\models\improved-aesthetic-predictor` | | `AESTHETIC_SCORER_NIMA_DIR` | Override NIMA model directory | `F:\software\skill\aesthetic-scorer\models\neural-image-assessment` | Python runtime: `F:\software\python\python.exe` (Python 3.12) Required packages (install via `pip install -r requirements.txt`): `torch>=2.0.0`, `torchvision>=0.15.0`, `transformers>=4.30.0`, `tensorflow>=2.12.0`, `tf_keras>=2.12.0`, `pillow>=10.0.0`, `numpy>=1.23.0` ## Usage Examples **User**: "请评价这张照片" **Action**: Execute both evaluations, calculate weighted score, generate Level 3 evaluation (default, ~300字) **User**: "详细评价这张照片" **Action**: Execute both evaluations, calculate weighted score, generate Level 10 evaluation (~4000字) **User**: "简要评价这张照片" **Action**: Execute both evaluations, calculate weighted score, generate Level 1 evaluation (~200字) **User**: "对比这两张照片" **Action**: Evaluate both photos, generate Level 3 comparison (~600字 total) **User**: [评价后] "给我看详细版" **Action**: Retrieve the saved Level 10 evaluation and present it immediately ## Notes - Always execute both evaluation sources when available - Present evaluation as unified expert opinion - Default to Level 3 (medium detail) unless user specifies otherwise - Always generate and save Level 10 (detailed) evaluation in background - Retrieve saved detailed evaluation when requested, don't regenerate - Avoid repetitive references to evaluation sources - Use natural, flowing language - Adjust detail level based on user request - Support both Chinese and English - Always display "从夯到拉" rating level in the score


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)