Batch Convert (advanced) to JPG

Hope i make sense. I got about 300.000 images in PSD format i want to process into JPEG form previous photoshoots. I was using Rawtherapee as the interface is so much better than darktable to handle image selection but after few days fiddling around with Rawtherapee-CLI i can’t get it to export JPEG using a pp3 file (to apply Canon Portrait style) making me apply the style in every folder to every image (copy style).

Is there really an issue with Rawtherapy to work the way i want oit to work?

I wrote a script that recursively runs through all model folders and in eaxch model folder is a xxxxxx.pp3 file to indicate which camera it was taken with and which style i want to apply to all images. I expert using quality 8/9 and dont change resolution. It works if i don’t use a pp3 file but that kills automation.

I got as far as finding the interface to work properly but not the CLI since it is probably missing the main DLL’s needed which aren’t included in the installation package? (Libraw and some other…?) I’m not an expert unfortunately so i hope you guys can set me off in the right direction to make this work.

Here’s the code if it makes sense i run in Powershell v7…

$RTCLI = “C:\Program Files\RawTherapee\5.12\rawtherapee-cli.exe”
$RootFolder = “E:\Space Keeping\Modelsabcde”

Loop through each model folder

Get-ChildItem -Path $RootFolder -Directory | ForEach-Object {

$ModelFolder = $_.FullName
$PP3 = Join-Path $ModelFolder "camera.pp3"

if (!(Test-Path $PP3)) {
    Write-Host "No PP3 found in $ModelFolder — skipping"
    return
}

Write-Host "Using PP3: $PP3"

# Process RAW files inside this model folder
Get-ChildItem -Path $ModelFolder -Recurse -File -Include *.cr2, *.cr3 |
    ForEach-Object -Parallel {

        $rawFile = $_.FullName
        $jpgPath = [System.IO.Path]::ChangeExtension($rawFile, ".jpg")

        if (Test-Path $jpgPath) {
            Write-Host "Skipping (exists): $jpgPath"
            return
        }

        Write-Host "Converting: $rawFile → $jpgPath"

        & $using:RTCLI -o "$jpgPath" -p "$using:PP3" -j=95 "$rawFile"

    } -ThrottleLimit 8

}

Correction: Not PSD but CR2 CR3 raw files from Canon.
By the way, i tried running CLI from it’s own folder and things like that to no avail. It runs through everything correctly but does not give any output. (I checkd it can find all the folders and files while error trapping). Sadly it gives any error and just completes without creating the JPG files…

I cannot help with RawTherapee, but If you are batch-processing from the command-line anyway, and the selection is the only thing holding you back from darktable: darktable also has a CLI. That is not to say that RT is worse, in any way, of course, I’m just addressing the specific reason you gave for using RT.

Thanks. I actually also used Darktable but it does not allow me to use the Canon/Adobe DCP files as it is only ICC based. It comes near the output i seek, but not the exact output as i intended it to be as a photographer. UNless i’m mistaken, darktable was really smooth and good, but not giving me the output i wanted.

I write a similar script

@echo off
setlocal enabledelayedexpansion

REM === Change to darktable stable directory ===
cd /d “C:\Program Files\darktable\bin”

echo Processing RAW files recursively…
echo.

REM === Recursively process all CR2 files ===
for /R “E:\Space Keeping\modelname” %%F in (*.CR2) do (

REM Convert input path to forward slashes
set "IN=%%~fF"
set "IN=!IN:\=/!"

REM Build output JPG path (same folder as RAW)
set "OUT=%%~dpF%%~nF.jpg"
set "OUT=!OUT:\=/!"

echo Converting: %%~nxF
darktable-cli.exe "!IN!" "!OUT!"

)

echo.
echo Done!
pause