Small GUI utility to Batch process Camera RAW images with OpenColorIO 3D Lut support. A tool designed as a helper tool for photogrammetry (3D scanning) image batch processing tool where speed is more important than feature-rich raw image processors.
- Support all camera raws supported in Libraw library, including ProRAW DNG
- Headless (CLI) mode
- Multithreaded and asynchronous batch processing
- Drag and drop interface with recursive subfolders support
- Half Resolution camera raws import
- Export as raw sensor data (bw), Bayers pattern (RGB), and different demosaic methods (supported in libraw)
- Smart (per folder_suffix/filename_suffix) 3D Lut grading presets (via OpenColorIO)
- Smart per-camera (Make, Model) LUT
- Export as 8/16/32bit int/float tiff/jpeg/jpeg2000/jpegxl/heic/PPM/PNG
- Export Exif and XMP metatags (only subset)
- tool configuration via TOML config file
Cropping RAWs is not guaranteed to be identical to commercial raw processors' crops.
Settings are available through *.toml config file and UI menu
Global app settings
Console = true/false
Choose these settings depending on your CPU, memory, and IO specs
Threads = 10
(TODO: check if still used)
ThredsMult = 1.0
If set to true, processed images will be stored in the lut_name folder. Otherwise, lut_name will be added as a suffix (aka. filename_lut_name.ext)
ExportSubf = true
relative path prefix. For example, "../Proc" will create a folder Proc in a parent folder to a camera raw images source folder.
PathPrefix = ""
0 = trace, 1 = debug, 2 = info, 3 = warning, 4 = error, 5 = fatal
- 0 = only fatal errors,
- 1 = error,
- 2 = warning,
- 3 = info (default),
- 4 = debug,
- 5 = trace (most outputs)
Verbosity = 3
(TODO: check if still needed; this part of code from Solidify)
- 0 - Unsigned 0.0 ~ 1.0
- 1 - Signed -1.0 ~ 1.0
- 2 - Signed to Unsigned -1.0
1.0 -> 0.01.0 - 3 - Unsigned to Signed 0.0
1.0 -> -1.01.0
RangeMode = 0
Export settings
- -1 - Same as input. If the input format can't be used for export (for example, CameraRAWs) app will use the default
- 0 - TIFF
- 1 - OpenEXR
- 2 - PNG
- 3 - JPEG
- 4 - JPEG-2000
- 5 - JPEG XL
- 6 - HEIC
- 7 - PPM
DefaultFormat = 3
FileFormat = -1
- -1 - Original
- 0 - uint8 (8bit unsigned int)
- 1 - uint16 (16bit unsigned int)
- 2 - uint32 (64bit unsigned int) !! most file formats do not support 32bit unsigned int
- 3 - uint64 (64bit unsigned int) !! most file formats do not support double-precision
- 4 - half (16bit float)
- 5 - float (32bit float)
- 6 - double (64-bit float) !! Most file formats do not support double-precision
DefaultBit = 4
BitDepth = -1
- 100 - lossless or best quality
- 0 - worst quality
Quality = 95
- -1 - Auto EXIF
- 0 - Unrotated/Horizontal
- 3 - 180 Horizontal
- 5 - 90 CW Vertical
- 6 - 90 CCW Vertical
RawRotation = -1
(TODO: Check if this is an actual color conversion in LibRAW or just a tagging)
- 0 - raw
- 1 - sRGB
- 2 - sRGB-linear (sRGB primaries, but a linear transfer function)
- 3 - Adobe
- 4 - Wide
- 5 - ProPhoto
- 6 - ProPhoto-linear
- 7 - XYZ
- 8 - ACES (only supported by LibRaw >= 0.18)
- 9 - DCI-P3 (LibRaw >= 0.21)
- 10 - Rec2020 (LibRaw >= 0.2)
RawColorSpace = 1
- -2 - raw data (Single channel)
- -1 - no demosaic (RGB)
- 0 - linear
- 1 - VNG
- 2 - PPG
- 3 - AHD (default)
- 4 - DCB
- 5 ~ 10 is not used
- 11 - DHT
- 12 - AAHD (Modified AHD)
Demosaic = 3
half_size = false
Use automatic white balance obtained after averaging over the entire image.
use_auto_wb = false
If possible, use the white balance from the camera.
use_camera_wb = true
- 0: do not use an embedded color profile
- 1 (default): use embedded color profile (if present) for DNG files (always); for other files only if use_camera_wb is set; -# 3: use embedded color data (if present) regardless of the white balance setting.
use_camera_matrix = 1
0-9: Highlight mode (0=clip, 1=unclip, 2=blend, 3+=rebuild).
highlights = 3
Correction of chromatic aberrations (red multiplier, blue multiplier)
aberrations = 1.0, 1.0
It is not recommended to use both wavelet denoising and FBDD noise reduction!
- 0 - disabled
- 1 - wavelength
- 2 - fbdd
- 3 - both
denoise_mode = 1
Use wavelets to erase noise while preserving real detail. The best threshold should be somewhere between 100 and 1000.
dnz_threshold = 100.0
Controls FBDD noise reduction before demosaic.
- 0 - do not use FBDD noise reduction
- 1 - light FBDD reduction
- 2 (and more) - full FBDD reduction
fbdd_noiserd = 2
At this moment, both auto and force work the same. TODO: merge them into the one
- -1 - disabled
- 0 - auto
- 1 - force
exif_crop = 0
OCIO config file: If empty, the OpenColorIO library will use the $OCIO environment variable
OCIO_Config = "aces_1.2/config.ocio"
Luts folder, absolute or relative to a program folder. UnRAWer automatically loads the list of LUTs in this folder in load time. Use a console to check if LUTs are correctly recognized. No LUT checking load time!! (TODO: check if non-default handle correctly)
LutFolder = "LUTs"
LUT mode. If set to Smart check if path or image file name have included lut preset name. For example, several folders with raw files: diffuse, cross, parallel, and you have dedicated LUT presets for such images. UnRAWer should automatically recognize and use a dedicated LUT preset.
- -1 - disabled
- 0 - Smart (file path/name)
- 1 - Force
LutTransform = 1
Force/Default preset
LutDefault = "hdr"
Per camera model presets
exif_lut = false
Unsharp mode:
- -1 - disabled
- 0 - smart
- 1 - Force
sharp_mode = 1
- 0 - gaussian (default)
- 1 - sharp-gaussian
- 2 - box
- 3- triangle
- 4 - blackman-harris
- 5 - mitchell
- 6 - b-spline
- 7 - catmull-rom
- 8 - lanczos3
- 9 - disk
- 10 - binomial
- 11 - laplacian
- 12 - median
sharp_kernel = 0
sharp window size
sharp_width = 3.0
sharp strength
sharp_contrast = 0.5
threshold
sharp_treshold = 0.125
source + contrast * (source - blur) if (source - blur) < threshold => result == source (no sharp)
Process single RAW file from CLI using default config file settings (less efficient way to use CLI)
UnRAWer.exe path_to_file.ext
Process a folder with raw files from CLI using default config file settings.
UnRAWer.exe path_to_folder
Process multiply folders with raw files from CLI using default config file settings and more silent verbosity
UnRAWer.exe -v=1 path_to_folder1 path_to_folder2
Process multiply inputs (folders and files) with raw files from CLI using default config file settings and more verbosity
UnRAWer.exe -v=4 path_to_folder1 path_to_folder2 path_to_file1.ext path_to_file2.ext path_to_file3.ext
Process multiply inputs (folders and lists) with raw files from CLI using custom config file settings and more verbosity
UnRAWer.exe -v=4 path_to_config.toml path_to_folder1 path_to_file_list.txt
- OpenImageIO
- LibRAW
- OpenImageIO
- libTIFF
- OpenJpeg (jpeg2000)
- libJpeg-turbo (jpeg)
- libjxl (jpeg xl)
- zlib-ng
- QT6
- etc.
Please consider supporting this project via https://www.patreon.com/MadProcessor
Copyright © 2021-2024 Erium Vladlen.
UnRAWer is licensed under the GNU General Public License, Version 3. Individual files may have a different but compatible license.