Read node syntax from command line


I’m trying to get something like the following line to work, for a range of images starting at frame 800 through 824. I cannot figure out how to get Natron not to freak out about the Reader syntax:

NatronRenderer -i myReader inputImage.#.exr -w myWriter output.#.png 800-824 myNatronFile.ntp

No matter what I change the frame placeholder to be, Natron always gives me some error like:

inputImage.0.exr: Cannot load frame

Is this a bug? If not, how does one say “read frame 800, and write frame 800”?

Try ###.exr instead of .#.exr
And .###.png for the output.

This assumes that my frame range exclusively lies between 100-999 though, right? If I have a frame range that goes from 1-2000, and my frames are NOT zero-padded, what is the correct way to run a natron script with command-line-provided inputs and outputs?

In Aftereffects or Nuke, “#” signifies “nonzero-padded images”, and “#” will happily work with frame 1, 100, or 1000. Natron seems to be saying that “#” means a single-digit frame (so, only valid from 1-9), is that true?

Actually, even this suggestion doesn’t work; I get errors:

Persistent message: inputImage.000.exr: Cannot load frame

This problem seems to exist when I have a natron script with “un-initialized” Read nodes. If I pre-point the read nodes to an image sequence, they seem to behave a bit better (though my “number of hashes” question above still stands). It seems there are some sort of callbacks built into the Read node that need to be triggered before the script can be used from the command line.

For example, if I have a Read node pointed to “imagesA.###.exr”, then do this:

NatronRenderer -i myReader imagesB.#.exr -w myWriter output.#.png 800-824 myNatronFile.ntp

it seems to work, but I don’t want to have to go pre-load my Reads with dummy image sequences just for the sake of getting this to behave properly.

Try adding ‘800-824’ after ‘.exr’ , to tell natron which frames to read, instead of parsing the whole sequence from frame 0.
Might work.