Nuke 11 Frame Server setup

Nuke 11 Frame Server setup

Recently I was working on a short film called “June”, directed by actor/director Dwayne Cameron. In short we’re working on 4K plates and the render farm software in the facility is under maintenance. Looking at 2 – 4 hours of render time I just ran out of patience. So I’ve decided to look at Frame Server in Nuke 11 since I’m sitting in a floor full of computers that no one is using. Basically what it allows me to do is send my nuke renders to other machines while I keep working, like a render farm, except only on the computers I need to manually setup.

Surprisingly there’s not a lot of documentation out there and I mainly reference The Foundry’s guide and took me a while, so here’s what I figured out.

In a frame server setup, there’s your main workstation and slave machines you want to use for render. You only need to do the following things:

    1. Main workstation’s IP address/System name (You don’t need the slaves’ IP or system name, just the main)
      • you can get the former by executing ipconfig in cmd and look for the IPv4 address. As for system name just look at the computer properties.
    2. Make sure each slave machines have the same nuke version installed and running on the same network.
    3. Write the batch file which you can open from each slaves (Which I will explain below)
    4. Run the batch file on each slave machines.
      • if it’s running correctly, the command prompt window should stay opens.
      • Any error you might encounter will be logged on this window, until you close it.
    5. Run this command on your main workstation in nuke to see if your slaves are connected:
      from hiero.ui.nuke_bridge.FnNsFrameServer import frameServer
      print [worker.address for worker in frameServer.getStatus(1).workerStatus]
    6. If they shows up, you have your frame server running!
    7. Once you are done and wish to terminate frame server, simply close the command prompt window.

 

 

For the batch file, you need to type it with a text editor, Windows default notepad works just fine. First, change directory to wherever your nuke directory is, in my case it’s

C:\apps\nuke\11.0v3

So the start of the batch file is

cd /d C:\apps\nuke\11.0v3

This is because in your nuke installation should comes with python installation and frame server requires python to run. But whether your computer has python installed or not, changing directory also makes it easier for later step.

Next runs runframeserver.py with Python software, which should be in your nuke directory, inside

.\pythonextensions\site-packages\foundry\frameserver\nuke\runframeserver.py

And if you’ve included the command to change directory to your nuke directory, it became way easier to access the path above. Batch file should look like this now:

cd /d C:\apps\nuke\11.0v3
python.exe .\pythonextensions\site-packages\foundry\frameserver\nuke\runframeserver.py

After that you need to put in the arguements required to run frameserver, which is explained pretty clearly in The Foundry’s guide. Here’s what my final batch file looks like after putting in the required arguements.

cd /d C:\apps\nuke\11.0v3
python.exe .\pythonextensions\site-packages\foundry\frameserver\nuke\runframeserver.py --numworkers 2 --nukeworkerthreads 4 --nukeworkermemory 16192 --workerconnecturl tcp://2017C018:5560 --nukepath=Nuke11.0.exe --useInteractiveLicense

What you really needs to pay attention here is the –workerconnecturl. Which I spent most of my time figuring it out. In my case it is tcl://2017C018:5560

2017C018 is the name of my main workstation, where the slave machines is going to get the job from. You can also use IP address for this which you can get from running ipconfig. But I prefer system name as its easier to remember. 5560 is nuke default communication port, which shouldn’t change. Nuke path is where your nuke exe resides, if you changed your directory in the beginning of this script it should be just –nukepath=nuke(version).exe

In my case I have to use interactive license instead of the default nuke_r license, because the facility I was in doesn’t have nuke render license, just bunch of interactive license. Hence the last flag –useInteractiveLicense

Finally, save this file as a batch file, which is (name).bat I named it as frameserver2017C018 so I know which main workstation is the frame server running for.

 

Now back to step 4 and enjoy your faster renders!

Leave a Reply

Your email address will not be published. Required fields are marked *