Install
openclaw skills install aesthetic-scorer给你的照片打分、评价反馈、给出改进建议或美学分析 / Aesthetic photo scorer with detailed analysis
openclaw skills install aesthetic-scorerThis skill provides comprehensive aesthetic evaluation and improvement suggestions for images and photographs through a dynamic weighted two-tier architecture.
Two Evaluation Sources with Dynamic Weight:
Improved Aesthetic Predictor: CLIP ViT-L/14 + MLP for content-level aesthetic scoring
NIMA (Neural Image Assessment): MobileNet for technical quality scoring
Dynamic Weight Logic:
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:
Step 1: Improved Aesthetic Predictor (dynamic weight)
scripts/score_improved_predictor.py <image_path>score_improvedStep 2: NIMA Model (dynamic weight)
scripts/score_nima.py <image_path>score_nima and nima_stdStep 2.1: Calculate Dynamic Weights
normalized_std = min(std_score / 2.5, 1.0)weight_iap = 0.45 + normalized_std * 0.25Step 2.2: Apply Penalty if Needed
|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:
Security Note: All processing is 100% local - no data leaves your device
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 |
| 10 | 详细 | ~4000字 | Comprehensive, in-depth analysis |
How User Requests Different Levels:
Important:
## [Photo Name]
综合评分: X.XX/10 (等级: 夯/顶级/人上人/NPC/拉完了)
构图: [2-3句话]
色彩: [2-3句话]
光线: [2-3句话]
技术: [2-3句话]
建议: [3-4条关键建议]
## [Photo Name]
### 综合评分: X.XX/10 (夯/顶级/人上人/NPC/拉完了)
### 综合分析
#### 构图评价
[3-4句话]
#### 色彩评价
[3-4句话]
#### 光线评价
[3-4句话]
#### 技术质量评价
[3-4句话]
### 改进建议
#### 拍摄技巧
[3条建议]
#### 后期处理
[3条建议]
#### 构图优化
[3条建议]
### 总体评价
[2-3句话]
## [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句]
## 照片对比分析
### 照片 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 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 |
| 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 (拉完了)
If any evaluation source fails:
Improved Predictor fails: Use NIMA only
NIMA fails: Use Improved Predictor only
Both sources fail: Inform user and suggest trying again later
All scripts in scripts/ directory must be executable:
score_improved_predictor.py: Fast aesthetic scoringscore_nima.py: Detailed quality analysiscomprehensive_score.py: Integrated weighted scoring| 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 |
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
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