Options

Input & Output

The easiest way to run PPRC is within a directory full of .raw files. An out/ directory will be created automatically. But you can specify input and output directories with these options:

--dir [dir]

Process a specific directory of .raw files instead of the current directory.

--dir-out [dir]

Specify the output directory. Defaults to out/ inside the input directory. Supports the INPUT_DIR placeholder which is replaced with the input folder’s name.

If the output directory already exists, PPRC auto-increments the name (out, out_2, out_3, etc.).

Start with ../ to place the output beside the input folder. Absolute paths are used as-is; if an absolute output directory already exists, PPRC stops with an error instead of auto-incrementing it.

pprc --dir-out INPUT_DIR_inverted
pprc --dir-out ../INPUT_DIR_pprc_out
pprc --dir-out /path/to/output

Processing Mode

By default, PPRC assumes color negative film. Use --mode to process other film types or to get unmanipulated linear data for another tool. See Modes for what each mode does (including the raw 16-bit shift) and how to combine them.

--mode <modes>

Processing mode(s), comma-separated. Choices:

Tuning options only affect the modes they apply to. For example, --clip and --output-gamma affect negative, e6, and bw but are ignored by raw, which always writes the linear sensor data unmanipulated.

Contrast Stretch

After processing, PPRC applies a contrast stretch to map the output to the full tonal range. This applies to all modes except raw. The options below control how the stretch is computed. These options only apply when contrast stretch is enabled.

--clip <percent>

Only applies when contrast stretch is enabled.

Clip both black and white ends by % when computing the stretch (default: 0.001). Sets both --clip-black and --clip-white at once.

--clip-black <percent>

Only applies when contrast stretch is enabled.

Clip the darkest % of pixels to black (default: 0.001).

--clip-white <percent>

Only applies when contrast stretch is enabled.

Clip the brightest % of pixels to white (default: 0.001).

--border-exclude <percent>

Exclude the outer % of each image from contrast stretch calculations (default: 2). Helps eliminate film holder and rebate artifacts from affecting the output levels. Also applied during inversion profiling in --mode negative.

--no-stretch

Disable contrast stretch entirely. No contrast stretch will be applied to the output.

Negative Inversion

Applies to: --mode negative only.

--per-image-balancing

By default, PPRC analyzes all frames together to compute a single shared color profile, which produces more consistent results but works best when processing a full roll at once. Use this flag to compute a separate inversion profile for each image instead.

--no-frame-rejection

Only applies when using shared whole-roll analysis.

By default, frames with very different color characteristics (e.g. backlit shots) are automatically excluded from the shared profile so they don’t skew the rest of the roll. Use this flag to include all frames regardless.

--pixel-rejection-percentage <percent>

Ignore the brightest/darkest % of pixels within each frame when computing the shared color profile (default: 0.1). Prevents dust spots and specular highlights from skewing the inversion profile.

--output-gamma <value>

Output gamma applied during negative inversion (default: 2.15).

Color space

Applies to: negative, e6, bw, bw-rgb. Ignored by raw, which always writes unmanipulated linear sensor data.

Advanced color management. PPRC works in RGB and lets you set the primaries (the gamut) at three stages of the pipeline. All three default to Adobe RGB, a good general-purpose choice. Valid values for each: srgb, adobergb, rec2020, prophoto, acescg. Most users never need to change these.

--colorspace-input <space>

The RGB primaries PPRC assumes the incoming scan data is in (default: adobergb).

--colorspace-working <space>

The RGB primaries used internally while inverting and balancing (default: adobergb). A wide gamut such as prophoto or acescg leaves more room for the color math before values are clipped.

--colorspace-output <space>

The RGB primaries the output TIFFs are written in (default: adobergb).

Profiles

Applies to: --mode negative only.

A profile saves the color analysis PPRC computes from a batch (the shared inversion baseline), so you can reuse it. This is different from a config, which saves settings like clipping, gamma, and output directory. A config controls how PPRC processes; a profile captures the analysis itself. A config can also reference a profile (via the profile setting), so a saved profile is applied automatically on every run.

--save-profile <name>

Analyze input files, save the computed inversion profile, then exit without processing. Profiles are stored in ~/.pprc/profiles/<name>.json.

--profile <name>

Use a previously saved inversion profile instead of analyzing the current batch. Useful for consistent color across multiple rolls of the same film stock, or to rescue a batch that is hard to analyze on its own.

Reusing the last run’s profile

After each negative run, PPRC saves the profile it used to ~/.pprc/profiles/last_run.json. If you liked a result, copy it to a named profile and apply it with --profile:

cp ~/.pprc/profiles/last_run.json ~/.pprc/profiles/my-favorite.json

Utility

--save-config [name]

Save the current CLI options to ~/.pprc/configs/default.json (or <name>.json) and exit. See Global Config for details.

--use-config <name>

Load a named config from ~/.pprc/configs/<name>.json instead of the default. See Global Config for details.

--install-quick-action / --uninstall-quick-action

Install or remove the macOS Finder Quick Action.

--examples

Show usage examples.

Deprecated

These flags still work but will show a warning pointing to their replacement.

--no-negfix

Use --mode raw instead.

--e6 / --bw / --bw-rgb

Use --mode e6, --mode bw, or --mode bw-rgb instead.

--dimensions [width]x[height]

Manually specify pixel dimensions for headerless raw files. Not needed when “Add File Header” is enabled in TLXClientDemo, or if your dimensions are standard sizes and you did not rotate images within TLXClientDemo. If you need to work out the dimensions of a headerless file, use the dimensions calculator.