Skip to content

sohan-shingade/fujiLUT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FujiLUT

Live at fujilut.vercel.app

Convert Fujifilm X/GFX film simulation recipes into downloadable .cube 3D LUT files and HaldCLUT PNGs.

Paste a recipe from TikTok, Instagram, or a photography forum -- or dial in settings manually -- and download a LUT you can use in Darktable, Lightroom, Capture One, DaVinci Resolve, or any editor that supports .cube or HaldCLUT.

Disclaimer: These are approximations of Fujifilm's proprietary film simulations. Not affiliated with FUJIFILM Corporation.

Features

  • 14 Film Simulations -- Classic Neg, Classic Chrome, Velvia, Provia, Astia, Eterna, Nostalgic Neg, Reala Ace, Acros, and more
  • Smart Recipe Parser -- Paste recipe text from social media in any format (colon-separated, slash-separated, dash-separated, abbreviated) and it auto-detects all settings
  • 10 Built-in Presets -- Kodak Gold look, Portra 400 look, Cinestill 800T look, Tri-X B&W, and more
  • Two Export Formats -- .cube (Lightroom, Resolve, Capture One) and HaldCLUT PNG (Darktable, RawTherapee)
  • Live Preview -- Before/after comparison with sample images
  • Save Your Own Presets -- Saved to localStorage for quick access

Quick Start

Backend

cd backend
python -m venv venv
source venv/bin/activate  # or venv\Scripts\activate on Windows
pip install -r requirements.txt
uvicorn main:app --reload --port 8000

Frontend

cd frontend
npm install
npm run dev

Open http://localhost:5173. The Vite dev server proxies /api to the backend.

Run Tests

cd backend && source venv/bin/activate
pytest tests/ -v

How to Use

  1. Recipe Editor -- Pick a film simulation, adjust white balance, tone curves, color, and effects
  2. Paste Recipe -- Copy a recipe from TikTok/Instagram/forums and paste it. The parser handles formats like:
    Classic Neg
    Color chrome - strong
    WB - Daylight R+4 B-4
    Tone curve H -2 S-2
    Color +4
    
  3. Presets -- Browse built-in looks or save your own
  4. Download -- Choose 33x33x33 or 64x64x64 grid, download as .cube or HaldCLUT PNG

Supported Film Simulations

Simulation Character
Classic Neg Teal shadows, amber highlights, punchy contrast
Classic Chrome Muted documentary look, warm midtones, lifted blacks
Provia/Standard Neutral, balanced reference point
Velvia/Vivid Ultra-vivid saturation, strong contrast
Astia/Soft Soft contrast, flattering skin tones
PRO Neg. Std/Hi Low contrast, muted -- portrait headroom
ETERNA/Cinema Flat cinema look, desaturated, cool shadows
ETERNA Bleach Bypass Harsh contrast, extreme desaturation
Nostalgic Neg Warm amber vintage, high contrast
REALA ACE Accurate natural colors, great skin tones
ACROS Premium B&W, rich tonal range
Monochrome Standard B&W
Sepia Warm-toned B&W

Recipe Parameters

Parameter Range Notes
Film Simulation 14 options Base color profile
White Balance Mode + R/B shift (-9 to +9) Color temperature fine-tuning
Dynamic Range DR100 / DR200 / DR400 Shadow recovery
Highlights / Shadows -2 to +4 Tone curve adjustment
Color -4 to +4 Global saturation
Color Chrome Off / Weak / Strong Saturation rolloff in vivid areas
Color Chrome FX Blue Off / Weak / Strong Blue-specific rendering
Clarity -5 to +5 Midtone contrast
Grain, Sharpness, NR Shown in UI Spatial effects -- cannot be encoded in a LUT

Technical Details

LUT Pipeline

Every RGB point in the identity LUT grid goes through this chain in order:

  1. White balance R/B shift (per-channel multiplier in linear space)
  2. Film simulation (per-channel tone curves + 3x3 color matrix + per-hue HSL shifts + tints)
  3. Base saturation
  4. Tone curve highlight/shadow adjustment
  5. Global color/saturation
  6. Color Chrome (saturation rolloff)
  7. Color Chrome FX Blue
  8. Dynamic Range (shadow lift)
  9. Clarity (midtone S-curve)
  10. Clamp to [0.0, 1.0]

All transforms are fully vectorized with NumPy -- no Python loops over pixels.

Color Science

Film simulation profiles are approximations based on publicly available sample images, community analysis, and documented characteristics. They capture the overall feel of each simulation but will not produce identical results to in-camera processing.

Output Formats

  • .cube -- Industry standard 3D LUT. Works in Lightroom, Capture One, DaVinci Resolve, Premiere Pro, Final Cut Pro.
  • HaldCLUT PNG -- 512x512 image encoding a 64x64x64 3D LUT. Works in Darktable, RawTherapee, GIMP.

Stack

  • Backend: Python 3.9+, FastAPI, NumPy, SciPy, Pillow
  • Frontend: React 18, Vite, Tailwind CSS

License

MIT

About

Convert Fujifilm film simulation recipes into .cube LUT files and HaldCLUT PNGs

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages