A command-line tool for analyzing EXIF data from Fujifilm camera images to identify and match film simulation settings against predefined configurations.
- Film Simulation Identification: Automatically detects film simulation settings from Fujifilm camera EXIF data
- Configurable Presets: Uses YAML configuration files to define custom film simulation presets
- Verbose Mode: Detailed field-by-field comparison with color-coded output
- Keyword Updates: Automatically adds film simulation keywords to image metadata
- Batch Processing: Process multiple images or entire directories
- Partial Match Detection: Identifies close matches and suggests new simulation configurations
- exiftool: Required for reading EXIF data from images
# macOS (using Homebrew) brew install exiftool # Ubuntu/Debian sudo apt-get install exiftool # CentOS/RHEL sudo yum install exiftool
- Clone or download the repository
- Make the script executable:
chmod +x whatsim
- Ensure
film_simulations.yamlis in the same directory as the script
# Analyze a single image
./whatsim image.jpg
# Analyze multiple images
./whatsim image1.jpg image2.jpg image3.jpg
# Process all JPG files in a directory
./whatsim /path/to/images/
# Use wildcards
./whatsim *.JPG--verboseor-v: Enable verbose mode for detailed field-by-field comparison--update: Automatically add film simulation keywords to image metadata
# Basic analysis
./whatsim DSCF6388.JPG
# Output: DSCF6388.JPG: Summer Chrome
# Verbose mode with detailed comparison
./whatsim --verbose DSCF6103.JPG
# Shows extracted EXIF values and color-coded field comparisons
# Update image keywords
./whatsim --update DSCF6388.JPG
# Adds "Fujifilm:Summer Chrome" keyword to the image
# Combine options
./whatsim --verbose --update *.JPG
# Detailed analysis and keyword updates for all JPG filesFilm simulation presets are defined in film_simulations.yaml. Each preset includes:
- name: "Preset Name"
film_mode: "Classic Chrome"
dynamic_range: "StandardAuto"
dynamic_range_setting: "Auto"
development_dynamic_range: ""
highlight_tone: "-1 (medium soft)"
shadow_tone: "-1 (medium soft)"
saturation: "+2 (high)"
sharpness: "Soft"
clarity: "0"
grain_effect_roughness: "Weak"
grain_effect_size: "Small"
color_chrome_effect: "Strong"
color_chrome_fx_blue: "Weak"
white_balance: "Auto"
white_balance_fine_tune: "Red +40, Blue -80"- Edit
film_simulations.yaml - Add a new preset following the format above
- Use the suggested YAML output from the script to create accurate presets
Clean, minimal output showing only the identified simulation:
DSCF6388.JPG: Summer Chrome
DSCF6246.JPG: Vibrant Arizona (Custom)
DSCF4553.JPG: Classic Cuban Negative (Custom)
Detailed analysis with:
- Extracted EXIF values from the image
- Field-by-field comparison with each simulation
- Color-coded comparison with the best match:
- Green: Matching fields
- Red: Mismatched fields with expected values
- Suggested YAML for unknown or weak matches
The script analyzes the following EXIF fields:
- Film Mode
- Dynamic Range
- Dynamic Range Setting
- Development Dynamic Range
- Highlight Tone
- Shadow Tone
- Saturation
- Sharpness
- Clarity
- Grain Effect Roughness
- Grain Effect Size
- Color Chrome Effect
- Color Chrome FX Blue
- White Balance
- White Balance Fine Tune
-
"exiftool: command not found"
- Install exiftool (see Installation section)
-
"Configuration file not found"
- Ensure
film_simulations.yamlis in the same directory as the script
- Ensure
-
"Unknown Simulation"
- The image settings don't match any defined presets
- Use verbose mode to see the extracted values
- Add a new preset to the YAML file using the suggested output
Use verbose mode to see detailed information:
./whatsim --verbose image.jpgThis will show:
- All extracted EXIF values
- Field-by-field comparisons
- Color-coded best match analysis
- Suggested YAML for unknown simulations
- Fork the repository
- Create a feature branch
- Make your changes
- Test with various image files
- Submit a pull request
This project is open source. Feel free to use and modify as needed.
- ExifTool for EXIF data extraction
- Fujifilm for their excellent film simulation technology