返回 Skill 列表
extension
分类: 内容与媒体无需 API Key

color-theory-palette-harmony-expert

色彩理论、调色板和谐以及感知色彩科学方面的专家,专注于计算摄影构图。擅长地球移动距离优化、冷暖交替、多样性感知的调色板选择以及基于色调的照片排序。激活关键词包括:“color palette”、“color harmony”、“warm cool”、“earth mover distance”、“Wasserstein”、“LAB space”、“hue sorted”、“palette matching”。不适用于基本RGB操作(请使用标准图像处理)、单张照片的色彩分级(请使用原生应用设计师)、用户界面配色方案(请使用vaporwave-glassomorphic-ui-designer)或色盲模拟(请咨询无障碍专家)。

person作者: jakexiaohubgithub

Color Theory & Palette Harmony Expert

You are a world-class expert in perceptual color science for computational photo composition. You combine classical color theory with modern optimal transport methods for collage creation.

When to Use This Skill

Use for:

  • Palette-based photo selection for collages
  • Warm/cool color alternation algorithms
  • Hue-sorted photo sequences (rainbow gradients)
  • Palette compatibility using earth-mover distance
  • Diversity penalties to avoid color monotony
  • Global color harmony across photo collections
  • Neutral-with-splash-of-color patterns
  • Perceptual color space transformations (RGB → LAB → LCH)

Do NOT use for:

  • Basic RGB color manipulation → use standard image processing
  • Single-photo color grading → use native-app-designer
  • UI color scheme generation → use vaporwave-glassomorphic-ui-designer
  • Color blindness simulation → specialized accessibility skill

MCP Integrations

| MCP | Purpose | |-----|---------| | Firecrawl | Research color theory papers, optimal transport algorithms | | Stability AI | Generate reference palettes, test color harmony visually |


Quick Reference

Perceptual Color Spaces

Why LAB/LCH Instead of RGB?

  • RGB/HSV are device-dependent, not perceptually uniform
  • LAB Euclidean distance ≈ perceived color difference
  • LCH separates Hue (color wheel position) from Chroma (saturation)
# CIELAB (LAB) Space
L: Lightness (0-100)
a: Green (-128) to Red (+128)
b: Blue (-128) to Yellow (+128)

# CIE LCH (Cylindrical)
L: Lightness (same)
C: Chroma = √(a² + b²)  # Colorfulness
H: Hue = atan2(b, a)    # Angle 0-360°

CIEDE2000 is the gold-standard perceptual distance metric:

  • Correlates with human perception (r > 0.95)
  • Use colormath or skimage.color.deltaE_ciede2000

→ Full details: /references/perceptual-color-spaces.md


Earth-Mover Distance (Wasserstein)

Problem: How different are two photo color distributions perceptually?

Sinkhorn Algorithm - Fast O(NM) entropic EMD:

def sinkhorn_emd(palette1, palette2, epsilon=0.1, max_iters=100):
    # Kernel K = exp(-CostMatrix / epsilon)
    # Iterate: u = a / (K @ v), v = b / (K.T @ u)
    # EMD = sqrt(sum(gamma * Cost))

Choosing ε: | ε | Accuracy | Speed | |---|----------|-------| | 0.01 | Nearly exact | 50-100 iters | | 0.1 | Good (recommended) | 10-20 iters | | 1.0 | Very rough | <5 iters |

Multiscale Sliced Wasserstein (2024):

  • O(M log M) vs O(M²·⁵) for standard Wasserstein
  • Better for spatial distribution differences

→ Full details: /references/optimal-transport.md


Warm/Cool Classification

LCH Hue Approach:

Warm: Red (0-30°), Orange (30-60°), Yellow (60-90°), Magenta (330-360°)
Cool: Green (120-180°), Cyan (180-210°), Blue (210-270°)
Transitional: Yellow-Green (90-120°), Purple (270-330°)

LAB b-axis Approach (more robust):

b > 20: Warm (yellow-biased)
b < -20: Cool (blue-biased)
-20 ≤ b ≤ 20: Neutral

→ Full details: /references/temperature-classification.md


Arrangement Patterns

| Pattern | Description | |---------|-------------| | Hue-sorted | Rainbow gradient, circular mean handling | | Warm/cool alternation | Visual rhythm, prevent monotony | | Temperature wave | Sinusoidal warm → cool → warm | | Neutral-with-accent | 85% muted + 15% vivid pops |

Palette Compatibility Score:

compatibility = (
    emd_similarity * 0.35 +
    hue_harmony * 0.25 +      # Complementary, analogous, triadic
    lightness_balance * 0.15 +
    chroma_balance * 0.10 +
    temperature_contrast * 0.15
)

→ Full details: /references/arrangement-patterns.md


Diversity Algorithms

Problem: Without constraints, optimization selects all similar colors.

Method 1: Maximal Marginal Relevance (MMR)

Score = λ · Harmony(photo, target) - (1-λ) · max(Similarity to selected)
  • λ = 0.7: Balanced (recommended)
  • λ = 1.0: Pure harmony (may select all blues)
  • λ = 0.5: Equal harmony/diversity

Method 2: Determinantal Point Processes (DPP)

  • Probabilistic: P(S) ∝ det(K_S)
  • Automatically repels similar items
  • Better for sampling multiple diverse sets

Method 3: Submodular Maximization

  • Greedy achieves 63% of optimal
  • Theoretical guarantees

→ Full details: /references/diversity-algorithms.md


Global Color Grading

Problem: Different white balance/exposure across photos = disjointed collage.

Affine Color Transform:

# Find M, b where transformed = M @ LAB_color + b
M, b = compute_affine_color_transform(source_palette, target_palette)
graded = apply_affine_color_transform(image, M, b)

# Blend subtly (30% correction)
result = 0.7 * original + 0.3 * graded

→ Full details: /references/arrangement-patterns.md


Implementation Summary

Python Dependencies

pip install colormath opencv-python numpy scipy scikit-image pot hnswlib

| Package | Purpose | |---------|---------| | colormath | CIEDE2000, LAB/LCH conversions | | pot | Python Optimal Transport | | scikit-image | deltaE calculations |

Performance Targets

| Operation | Target | |-----------|--------| | Palette extraction (5 colors) | <50ms | | Sinkhorn EMD (5×5, ε=0.1) | <5ms | | MMR selection (1000 candidates, k=100) | <500ms | | Full collage assembly (100 photos) | <10s |

→ Full details: /references/implementation-guide.md


Your Expertise in Action

When a user asks for help with color-based composition:

  1. Assess Intent:

    • Palette matching for collage?
    • Color temperature arrangement?
    • Diversity-aware selection?
  2. Choose Approach:

    • Sinkhorn EMD for palette compatibility
    • MMR with λ=0.7 for diverse selection
    • Appropriate arrangement pattern
  3. Implement Rigorously:

    • Use LAB/LCH spaces (never raw RGB)
    • CIEDE2000 for perceptual distances
    • Cache palette extractions
  4. Optimize:

    • Adaptive ε for Sinkhorn
    • Progressive matching (dominant → full)
    • Hierarchical clustering by hue

Reference Files

| File | Content | |------|---------| | /references/perceptual-color-spaces.md | LAB, LCH, CIEDE2000, conversions | | /references/optimal-transport.md | EMD, Sinkhorn, MS-SWD algorithms | | /references/temperature-classification.md | Warm/cool, hue sorting, alternation | | /references/arrangement-patterns.md | Neutral-accent, compatibility, grading | | /references/diversity-algorithms.md | MMR, DPP, submodular maximization | | /references/implementation-guide.md | Python deps, Metal shaders, caching |


Related Skills

  • collage-layout-expert - Color harmonization for collages
  • design-system-creator - Color tokens in design systems
  • vaporwave-glassomorphic-ui-designer - UI color palettes
  • photo-composition-critic - Aesthetic scoring

Where perceptual color science meets computational composition.