Automation of post-rendering tasks.

Hi there,

I’d like to ask here since I bet there’s omeone with experience of automating several tasks after a job has been rendered.

What I need is exactly this:

I submit a 3D scene with render passes and all.
I then need Deadline to trigger an action to create a pre-comp in Nuke (most likely a predefined comp with only the rendered images set as read nodes etc…)
I then need this comp to get submitted (a Nuke job, with limit groups!) and rendered out
I’ll then need the final comped rendered images to get submitted as a Meta Render or RVIO job with a predefined preset (say to render out a Quicktime).

What would be the best practice to setup all this in Deadline?

I was thinking of creating a post-render Python script that’d do all of this taking all the Deadline commands and variables (such as output folders, job name etc…) and have the script Submit the Nuke job and then trigger another Python post-render script to submit the RVIO job?

Is this the correct way or are there better ways to do this?

The reason I ask is we’ll have a job here that will require a ton of very simple tasks to be done by artists, so, if I could streamline all of this and automate most of the, unnecessary manual labour, we could deliver faster and cheaper! :slight_smile:

Thanks a lot for any ideas, cheers…

Whenever we’ve had to do custom workflows like this in the past, we would write a new custom submitter that would submit all the jobs in one shot and use dependencies (as opposed to making the submissions a post-job task of another job). The thing we liked about this approach is that you see all the jobs in the Monitor immediately, so you get a sense of what’s queued up in the farm.

The way you described should work fine as well. It’s all just a matter of personal preference I guess. :slight_smile:

Cheers,

  • Ryan

Thanks a lot for the info, Ryan. I’m just a bit confues about your approach as when I’ll be submitting the 3D scene file for rendering, there won’t be any comps nor any renders that I could submit as another, dependant, job. So, what will I submit? Besides, I want to automate this for one reason, we’ll be submitting 20+ jobs at the same time, so, having to go through 20 directory structures for the 3D scene files will be enough of a hassle, but having to go through these x3 and setting up dependencies is even more manual labor that is not desired/necessary. That’s why I figured a post-rendering script would work best. But without the luxury of seeing what’s queued and what not, of course.

Regarding the post-rendering script, I’d simply write a Python script and specify that one as a job-finish script file in the submission panel, right? That Python script will have access to all the Deadline classes and methods, is that correct?

One question, though, how would I go about creating the custom submission script? I’d very much like to use the existing Nuke or RVIO submission plugins to use, just specifying the file paths, frame range and limit groups. Is it possible or do I have to generate a whole submission job myself in the script?

Thanks a lot in advance…

If you were building the comp from scratch (which I thought you were), then you would just populate the Read node with the expected output path from the first job, because you will probably already know this at submit time. For the QT job, nothing gets submitted with the job because the frames would be pulled directly from the network, so you’re okay there too. Like I said, it’s all based on preference, and your solution should work fine too.

Yes, that’s correct.

You can use the Nuke or RVIO submission scripts in the repository as a reference (\your\repository\scritps\Submission), but you will have to write your own submission script (aka: your post job script). However, there shouldn’t be any problem submitting those jobs to the existing Nuke/RVIO plugins.

Cheers,

  • Ryan

Ok, thank you very much, Ryan, I appretiate your help.

I’ll dive into the docs and see what I can come up with.

Hi,
last year I wrote a little post job script for deadline, that pythonically creates a nuke render on a renderslave to convert the whole (maya) rendered sequence to datawindowed exrs. It’s for linux, and a little clumsy, now I would do that differently, but does the job, and maybe gives the idea.
You can find it here here
I want update it soon, if you need I can post here when it’s done.
Hope this helps,
Gabor

Thanks a lot, Gabor! I’ll take a look at the script. :ugeek: