Photo AI CLI - allow arguments to influence settings

I just bought the Photo AI package because it has initial CLI functionality - which is a good starting point.

I’m currently programming a Windows Service for my local workstation, that recursively monitors input directories and upon detecting supported files starts up the Photo AI CLI to process those images storing them in defined output directories.

I was thinking of having a few input directories like
And having the windows service pass along options to the CLI accordingly.

I usually have very specific types of images - where I already know that filters to use.
For example lots of CGI generated images. Or images that need std-sharpening.

But my problem is, that there is currently no way for me to influence how images are processed via CLI in terms of which models are applied and to what factor. And I also can’t use Gigapixel AI, Sharpen AI, etc. directly as they provide no CLI at all (at least to my current knowledge).

I assumed, that at least setting the autopilot default options in the Photo AI GUI (that are stored in the Win Registry) would have some influence over what the CLI chooses, but it doesn’t seem to matter what is set there, e.g. I have face detection: none, scale: fixed 4x. But when using the CLI it does its own thing scaling it only to 2x…

  1. What I propose is some way to set the desired settings also in CLI (so that each CLI call can have different settings).
    We’re mainly talking about the major features via argument
    -enhance=std/hq/gfx/lowres (this is important for me)
    -upscale=1x/2x/4x/max (this is important for me)
    Or someting along those lines.
    The auto settings inside the models usually work quite well; once the correct model for the images is selected.

  2. There is another/alternative idea: You already provide the option of viewing most settings via --showSettings
    Autopilot Settings for c:\PhotoAI\2.jpg

    "Denoise": {
        "auto": true,
        "enabled": false,
        "model": "Low Light",
        "param1": 0,
        "param2": 0
    "Enhance": {
        "enabled": true,
        "model": "High Fidelity",
        "param1": null,
        "param2": null,
        "param3": null
    "Face Recovery": {
        "auto": true,
        "enabled": false,
        "param1": 0.800000011920929,
        "selectedFaces": null
    "Sharpen": {
        "auto": true,
        "compression": 0,
        "enabled": false,
        "lensblur": 0,
        "mask": false,
        "model": "Sharpen Motionblur",
        "motionblur": 0,
        "noise": 0,
        "param1": null,
        "param2": null

As far as I can tell, only the upscale setting is missing there.

In the GUI you have an option “Apply current settings to all images”.
If there was an additional option “Save current setting to file” in the GUI and the CLI had an argument allowing for --useSettings c:\mySettings.json that would be ideal. Plus an argument allowing to also influence the upscale factor (in case that is not part of the json already).
The methods for applying existing settings are already there in Photo AI (via GUI), therefore it should be easy to adapt that to the CLI.

I really hope that something along these lines is possible to implement.
As Photo AI is a really great product. And the CLI is encouraging one to use it and to write programs and or scripts wrapped around it.
But the limitations of not being able to manually set options for the desired jobs is a killer (at least from my point of view).
It’s no fun processing 10.000 images via GUI…

Thanks a lot in advance and keep up the good work!

I would much prefer to have the options adjustable within the command line. I need to change the options for every iteration, especially the scale factor.


CLI Enhance enabled is upscaling with 4x for me in it acquires it from the GUI preferences>set output size=4, so not sure why you are not seeing it with regedit. Maybe you have GUI preferences set to scale only small rather than all images? Note that CLI upscaling last worked in 1.3.2 it broke in 1.3.3 and claimed fixed in 1.3.4.

Also denoise is badly needed as this is not even a GUI auto setting so there is no way to control it other than manual GUI per image, which is painful because auto enhance parameters when denoise is set would be wrong if you turn off denoise.

The existing --show settings would work fine for an import .json setting, but for CLI you also want -switch argument equivalents. Both ways would need to have the ability for auto to derive the parameters per image, or to manually set the parameters just like with the GUI.

Often I have a bunch of images, where I know exactly what kind of images they are. For example computer generated graphics. And currently there is no way to set the enhance model to graphics in the CLI (it auto-detects every picture, mostly wrong as High Fidelity), which makes it completely unusable. If there was at least a GUI preferences for such things, that would help a bit (one could save/restore the registry before a CLI job).
But direct command line switches for these aspects would of course be way better…