摄影照片评分/Photo Scorer

v1.4.10

给你的照片打分、评价反馈、给出改进建议或美学分析 / Aesthetic photo scorer with detailed analysis

0· 131·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for kooui/photo-scorer.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "摄影照片评分/Photo Scorer" (kooui/photo-scorer) from ClawHub.
Skill page: https://clawhub.ai/kooui/photo-scorer
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install photo-scorer

ClawHub CLI

Package manager switcher

npx clawhub@latest install photo-scorer
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
Name/description (photo aesthetic scoring) aligns with the included scripts (Improved Aesthetic Predictor + NIMA), the config, and requirements. The heavy ML dependencies (PyTorch, TensorFlow) and model weight files are expected for local model inference.
Instruction Scope
SKILL.md instructs the agent to run the two scoring scripts, compute a dynamic weighted score, and generate multi-level textual evaluations. It also requires ALWAYS generating a 10-level (detailed ~4000-word) evaluation in the background and saving it for later retrieval. The code provides functions that produce reports but does not implement an explicit background-generation-and-save mechanism or specify storage locations — this is a behavioral/instruction vs. implementation mismatch and a privacy/retention consideration (saving user photos/evaluations). No instructions or code attempt to read unrelated system credentials or make external network calls.
Install Mechanism
No install spec in the registry (instruction-only), but the package contains code and a requirements.txt. README recommends cloning external model repositories and downloading weights from GitHub (expected for ML model setups). The code forces transformers to offline mode and uses local_files_only for CLIP; there are no hidden or obscure download URLs in the code. Installing will require pulling large ML packages and model weights from known sources (GitHub), which is normal but heavyweight.
Credentials
The skill does not request secrets or credentials. Optional environment variables exist to override model directories (AESTHETIC_SCORER_MODEL_DIR and AESTHETIC_SCORER_NIMA_DIR) which are proportionate to a local-model skill. The code does include a deprecated api_key parameter (not used), which is harmless but unnecessary.
Persistence & Privilege
The skill does not request elevated privileges and always:false. However, SKILL.md explicitly requires generating and saving detailed evaluations in the background so they can be retrieved later — that implies persistent storage of user-provided photos or evaluation text. The packaged code does not show where/how saved evaluations are persisted, so installing/using the skill may cause the agent or user to need to implement storage. This is not an escalation of system privileges but is a privacy consideration you should confirm (where are saved reports stored, retention policy, encryption, who can access them).
Assessment
This skill appears to do what it says: local aesthetic scoring using two models and AI-generated text. Before installing, consider the following: - Disk space & dependencies: Models and ML frameworks (PyTorch/TensorFlow) are large — ensure you have enough disk space and the ability to install them. The default model paths are Windows-style (F:\...), so you will likely need to set the AESTHETIC_SCORER_MODEL_DIR and AESTHETIC_SCORER_NIMA_DIR environment variables to point where you store downloaded weights. - Model downloads: README instructs cloning GitHub repos and downloading model weights. Those are normal for ML skills, but verify you download weights from trusted sources (the upstream project repos) and that you understand how to populate the local model cache for transformers/CLIP (the code expects local files only). - Background saving / privacy: SKILL.md says the skill must ALWAYS generate a detailed (~4000-word) evaluation in the background and save it for instant retrieval. The code included returns reports but does not show a storage implementation or location. Decide whether you are comfortable with the skill (or your agent) persisting full evaluations or copies of images on disk — ask where they will be stored, how long they are retained, and whether they are encrypted or accessible by others. - Offline claims: The scripts set transformers to offline and there are no explicit network calls in the code, but installing models initially requires network access. If strict offline operation is required, ensure you provision all model weights and transformers caches before running. - Minor oddities: The predict functions accept a deprecated api_key parameter and the code uses default Windows paths; these are not malicious but indicate the package expects manual configuration. If you want to proceed, verify model files are from trusted sources, update model directory env vars to sensible paths, and ask the skill author or provider where / how detailed evaluations and any cached artifacts will be stored and how to clear them. If you need, I can: (1) point out exactly which files to edit to change the save behavior, (2) suggest filesystem locations and cleanup scripts, or (3) produce a checklist for safe local installation.

Like a lobster shell, security has layers — review code before you run it.

AIvk97b2yq62hanc8gfvj97ddk12183eyrmaestheticvk97b2yq62hanc8gfvj97ddk12183eyrmbeautyvk97b2yq62hanc8gfvj97ddk12183eyrmimagevk97b2yq62hanc8gfvj97ddk12183eyrmlatestvk97b2yq62hanc8gfvj97ddk12183eyrmphotovk97b2yq62hanc8gfvj97ddk12183eyrmscorervk97b2yq62hanc8gfvj97ddk12183eyrmvisionvk97b2yq62hanc8gfvj97ddk12183eyrm
131downloads
0stars
1versions
Updated 1mo ago
v1.4.10
MIT-0

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
ParameterValueDescription
Base IAP Weight45%Balanced starting point
Base NIMA Weight55%Balanced starting point
Max Adjustment±25%IAP weight increases with controversy
IAP Weight Range45% - 70%Dynamic adjustment
Divergence Threshold2.0Score difference triggers penalty
Divergence Penalty0.05Per 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:

LevelNameWord Count per PhotoDescription
1简要~200字Concise overview, key points only
3中等 (默认)~300字Balanced, covers all aspects
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)

## [Photo Name]

综合评分: X.XX/10 (等级: 夯/顶级/人上人/NPC/拉完了)
构图: [2-3句话]
色彩: [2-3句话]
光线: [2-3句话]
技术: [2-3句话]
建议: [3-4条关键建议]

Level 3: 中等 (默认, ~300字 per photo)

## [Photo Name]

### 综合评分: X.XX/10 (夯/顶级/人上人/NPC/拉完了)

### 综合分析

#### 构图评价
[3-4句话]

#### 色彩评价
[3-4句话]

#### 光线评价
[3-4句话]

#### 技术质量评价
[3-4句话]

### 改进建议

#### 拍摄技巧
[3条建议]

#### 后期处理
[3条建议]

#### 构图优化
[3条建议]

### 总体评价
[2-3句话]

Level 10: 详细 (~4000字 per photo)

## [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)

## 照片对比分析

### 照片 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等级 / LevelDescription / 描述
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.9NPC不起眼,普普通通 / Average, unremarkable, plain
0.0-5.9拉完了差到没法再差 / Terrible, needs major improvement

Traditional Rating / 传统评分

Score RangeLevelDescription
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)

ModelLocation
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:

VariableDescriptionDefault
AESTHETIC_SCORER_MODEL_DIROverride IAP model directoryF:\software\skill\aesthetic-scorer\models\improved-aesthetic-predictor
AESTHETIC_SCORER_NIMA_DIROverride NIMA model directoryF:\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

Comments

Loading comments...