Examples

Basic usage

Process the current directory:

cd /path/to/raw/files
pprc

Or point at a directory:

pprc --dir /path/to/raw/files

Custom output directory

By default, output goes to an out subdirectory inside the input folder. If out already exists, it auto-increments (out_2, out_3, etc.).

Output to a named subdirectory instead:

pprc --dir-out inverted

Or an absolute path:

pprc --dir-out /Users/ali/Desktop/scans_output

If that absolute directory already exists, PPRC will stop with an error instead of auto-incrementing it.

Place output beside the input folder using ../:

pprc --dir-out ../inverted

Relative paths like ../ are resolved relative to the input directory (--dir), not the current working directory.

Use the INPUT_DIR placeholder to include the input folder's name:

# If input folder is "roll_042", outputs to "roll_042_inverted"
pprc --dir-out INPUT_DIR_inverted

Combine both to place a named output beside the input folder:

# If input folder is "roll_042", outputs to "../roll_042_inverted"
pprc --dir-out ../INPUT_DIR_inverted

Skip inversion (for use with other tools)

Get raw 16-bit TIFFs without orange mask removal, ready for Negative Lab Pro, ColorPerfect, etc.:

pprc --mode raw

Slide film (E6)

For positive/slide film scans:

pprc --mode e6

Skips inversion, applies contrast stretch.

Black and white

Greyscale output:

pprc --mode bw

B&W but keep RGB channels (useful for toning in post):

pprc --mode bw-rgb

More contrast

Clip 1% on each end for punchier results:

pprc --clip 1

Or clip black and white independently:

pprc --clip-black 0.5 --clip-white 0.2

Custom gamma

Adjust the output gamma applied during inversion (default: 2.15):

pprc --output-gamma 2.5

Disable contrast stretch

pprc --no-stretch

Per-image balancing

Compute a separate profile for each frame instead of sharing one across the roll:

pprc --per-image-balancing

Include all frames in profile

Disable outlier frame rejection (useful if your roll has intentionally varied exposures):

pprc --no-frame-rejection

Save and reuse a profile

Create a named profile from a well-exposed reference roll:

pprc --save-profile portra400 --dir /path/to/reference/roll

Then apply that profile to future rolls of the same stock:

pprc --profile portra400

Profiles are stored in ~/.pprc/profiles/<name>.json (%USERPROFILE%\.pprc\profiles\<name>.json on Windows).

Save global defaults

Save your preferred options so they apply to every run:

pprc --clip 2.5 --dir-out ../INPUT_DIR_inverted --save-config

Defaults are saved to ~/.pprc/configs/default.json (%USERPROFILE%\.pprc\configs\default.json on Windows).

Combining options

Per-image balancing with extra contrast, output beside the input folder:

pprc --per-image-balancing --clip 0.5 --dir-out ../INPUT_DIR_pprc