SKILL.md
Steve McCurry Photo Processing
Transform your Sony RAW photos with professional color grading inspired by Steve McCurry's iconic National Geographic photography style.
Features
- Professional Color Grading: Warm, rich tones inspired by McCurry's legendary style
- Batch Processing: Process 50-200+ images efficiently
- High Quality: Output JPEGs at 85-95% quality with no visible loss
- Open Source: 100% free using darktable
- Command Line: Automated workflow for efficient processing
- Multiple Presets: Standard and vibrant variants
Quick Start
1. Install darktable
# Check if darktable is installed
bash scripts/install_darktable.sh
# Or install manually
brew install darktable
2. Process Your Photos
# Basic usage: process all ARW files
python scripts/batch_process.py raw/ output/
# Custom quality
python scripts/batch_process.py raw/ output/ --quality 95
# Use vibrant preset
python scripts/batch_process.py raw/ output/ --preset assets/mccurry-vibrant.xmp
3. Validate Output
# Check output quality
python scripts/validate_output.py output/
# Export detailed report
python scripts/validate_output.py output/ --json
Steve McCurry Color Style
This skill replicates the distinctive visual characteristics of Steve McCurry's photography:
- Warm Golden Tones: Rich oranges, reds, and earth colors
- High Contrast: Punchy but retains shadow and highlight detail
- Saturated Midtones: Colors pop without looking unnatural
- Golden Hour Feel: Amber/yellow color cast like Kodachrome film
- Deep Shadows: Rich blacks with preserved texture
- Vibrant Blues/Teals: Cool tones provide visual balance
- Cinematic Quality: Film-like smoothness with storytelling mood
Directory Structure
your-project/
├── raw/ # Input: Sony ARW files
└── output/ # Output: Processed JPEGs
Presets
mccurry-narrative.xmp (Standard)
Balanced McCurry-inspired grading suitable for most scenarios. This is the default preset.
Best for:
- General photography
- Portraits
- Street photography
- Documentary work
mccurry-vibrant.xmp (Vibrant)
More saturated variant for high-impact images.
Best for:
- Landscapes
- Travel photography
- Images with strong colors
- Festival/cultural events
Detailed Usage
Batch Processing Script
python scripts/batch_process.py INPUT_DIR OUTPUT_DIR [OPTIONS]
Arguments:
INPUT_DIR- Directory containing ARW filesOUTPUT_DIR- Directory for processed JPEGs (created if needed)
Options:
--quality QUALITY- JPEG quality 85-100 (default: 92)--preset FILE- Custom XMP preset file--verbose- Show detailed processing information
Examples:
# Process with default settings (92% quality, standard preset)
python scripts/batch_process.py ~/Photos/Raw ~/Photos/Processed
# Maximum quality for print
python scripts/batch_process.py raw/ output/ --quality 98
# Vibrant preset for landscapes
python scripts/batch_process.py landscape_raw/ landscape_out/ --preset assets/mccurry-vibrant.xmp
# Verbose output for debugging
python scripts/batch_process.py raw/ output/ --verbose
Validation Script
python scripts/validate_output.py OUTPUT_DIR [OPTIONS]
Arguments:
OUTPUT_DIR- Directory containing processed JPEGs
Options:
--json- Export detailed JSON validation report--verbose- Show all warnings (not just errors)
Examples:
# Quick validation
python scripts/validate_output.py output/
# Full report with JSON export
python scripts/validate_output.py output/ --json --verbose
Installation Script
bash scripts/install_darktable.sh
Checks for darktable installation and installs via Homebrew if needed.
Performance
Processing Speed:
- ~5-15 seconds per image (depends on image size and Mac specs)
- 100 images: 10-25 minutes
- 200 images: 20-45 minutes
System Requirements:
- macOS 11.0 (Big Sur) or later
- 8GB RAM minimum (16GB recommended for large batches)
- 50GB free disk space (for RAW + JPEG storage)
- Apple Silicon (M1/M2) or Intel Core i5+
File Sizes:
- Input ARW: ~24-42MB per file
- Output JPEG (92%): ~3-8MB per file
- Output JPEG (98%): ~6-12MB per file
Supported Cameras
All Sony cameras that produce ARW files, including:
- Sony Alpha A7 series (A7, A7R, A7S, A7III, A7IV, A7RV, etc.)
- Sony Alpha A9 series (A9, A9II, A9III)
- Sony Alpha A6000 series (A6000, A6100, A6400, A6600, etc.)
- Sony Alpha A1
- Sony ZV series
- Older Sony NEX cameras
Workflow Tips
For Best Results
- Shoot in RAW: Ensure your Sony camera is set to save ARW files
- Expose Properly: The preset works best with well-exposed images
- Organize First: Sort and cull images before batch processing
- Test First: Process 2-3 sample images to verify the look
- Adjust if Needed: Try the vibrant preset or adjust quality settings
When to Use Each Preset
Standard (mccurry-narrative.xmp):
- Portraits and people
- Indoor photography
- Balanced lighting conditions
- When you want subtlety
Vibrant (mccurry-vibrant.xmp):
- Landscapes and nature
- Outdoor travel photography
- Sunset/golden hour shots
- When you want maximum impact
Quality Settings Guide
| Quality | File Size | Use Case |
|---|---|---|
| 85-90% | 2-5MB | Web, social media, proofs |
| 90-94% | 3-8MB | General use, client delivery (recommended) |
| 95-100% | 6-15MB | Print, archival, portfolio |
Troubleshooting
darktable-cli not found
# Run installation script
bash scripts/install_darktable.sh
# Or create symlink manually
sudo ln -sf /Applications/darktable.app/Contents/MacOS/darktable-cli /usr/local/bin/darktable-cli
Processing very slow
- Close other applications to free up RAM
- Process in smaller batches (50 images at a time)
- Check Activity Monitor for CPU/memory usage
- Ensure sufficient disk space
Colors don't look right
- Try the alternate preset (vibrant vs. standard)
- Ensure input images are properly exposed
- Verify you're processing ARW files, not JPEGs
- Check your monitor color calibration
Some images fail to process
- Check if ARW files are corrupted (try opening in Sony's software)
- Ensure sufficient disk space
- Verify darktable version is up to date
- Run with
--verboseflag to see detailed errors
Advanced Usage
Creating Custom Presets
- Open darktable GUI application
- Import a sample Sony ARW file
- Adjust color grading modules to your taste
- Export the style as XMP
- Use your custom XMP with
--presetoption
Processing Specific Files
# Process only files matching a pattern
cd raw/
python ../scripts/batch_process.py \
--preset ../assets/mccurry-narrative.xmp \
DSC001*.ARW \
../output/
Integration with Other Tools
# Process then optimize for web
python scripts/batch_process.py raw/ output/ --quality 90
cd output/
mogrify -resize 2048x2048\> -quality 85 *.jpg
Reference Documentation
For more detailed information:
- [references/mccurry-style-analysis.md](references/mccurry-style-analysis.md) - Deep dive into McCurry's visual style
- [references/darktable-modules.md](references/darktable-modules.md) - Technical details of preset parameters
- [references/troubleshooting.md](references/troubleshooting.md) - Extended troubleshooting guide
FAQ
Q: Can I use this with other camera brands? A: The presets work with any RAW format darktable supports (Canon CR2/CR3, Nikon NEF, etc.). Just change the file pattern in the script.
Q: Will this work with JPEG files? A: It will process JPEGs, but results are much better with RAW files since they contain more color data.
Q: Can I adjust the strength of the effect? A: Yes, edit the XMP preset in darktable GUI or create custom presets with different intensity.
Q: Does this delete my original RAW files? A: No, the original ARW files are never modified. Only JPEGs are created in the output directory.
Q: Can I undo the processing? A: The processing creates new JPEGs without modifying originals, so you can always re-process with different settings.
Credits
Color Grading Style: Inspired by Steve McCurry's iconic photography Processing Engine: darktable open-source RAW processor Skill Created For: Claude Code by Anthropic
License
This skill and its presets are provided as-is for personal and commercial use. darktable is licensed under GPL-3.0.
Version
Version: 1.0.0 Last Updated: January 2026 Compatible With: darktable 4.4+
Made with Claude Code - https://claude.com/claude-code