Maya submitter reference¶
The Maya submitter is a plugin node that allows you to configure and submit jobs to Conductor from its attribute editor.
This document is a reference for all the attributes and functionality of the plugin. If you want to get up and running fast, head over to the Maya submitter tutorial page .
Submission Preview¶
The submission preview section shows how the other settings come together to create a submission. It is near the bottom of the attribute editor and its purpose is to help you check over the final submission properties to avoid mistakes.
The data in the preview panel updates live as you change attributes on the submitter and on other nodes like the Layer Manager and Render Globals. When you change the frame range in the Render Settings window, for example, connections to the submitter cause the list of tasks displayed in the submission preview to refresh.
To avoid sluggish behavior, the submission preview does not run asset scraping functions by default. Nor does it show more than a handful of resolved tasks. To change this, turn on Display Scraped Assets and set Display Tasks to -1
or a very large number.
When you submit the job for real, it always includes scraped assets and all tasks.
Actions¶
Reconnect¶
When you first show the attribute editor, it will attempt to establish a connection with your account on Conductor. After you sign in, the submitter will fetch data required to populate the UI such as projects and instance types.
If the submit button does not activate, press the reconnect button to force an update. This can also be useful when something changed on your account, such as your project list.
Submit¶
After some checks, the job is submitted to Conductor. If the submission is successful, you'll see a dialog window with a link to where you can monitor the job on the web dashboard.
Validate¶
Run validations but don't submit. Validation results may be of type info
, warning
, or error
.
If there are errors, warnings or info notices, a dialog pops up detailing the things to look out for. If there are no errors, you can continue the submission, but take heed of the warnings. If there are any errors, you must address them before you can submit.
Example Validations:¶
-
Error. The destination directory for output files contains assets that are in the upload list.
-
Warning. There are no renderable cameras.
-
Info. To start the upload daemon, enter the following command.
Attributes¶
Title¶
The title that appears in the Conductor dashboard. You may use angle-bracket tokens to construct the title. For example, if you want it to contain the scene name, the render layer, and the camera, separated by dashes, enter the following expression.
<Scene>-<RenderLayer>-<Camera>
Only tokens in the JOB scope are valid here. See the token table below.
Conductor project¶
A project you created on the Conductor dashboard. The drop-down menu updates when the submitter connects to your Conductor account. If the menu contains only the - Not Connected - option, or it doesn't show a newly created project from your account, then press the Reconnect button. Alternatively, right-click the label and choose Refresh Projects from the menu.
Render Layers¶
The following options are available for the Render Layers attribute.
- Current layer.
- Renderable layers in one job.
- Renderable layers in separate jobs.
In most cases, you'll want to render the current layer or the renderable layers in one job. However, if you have different cameras and frame ranges in each layer, separate jobs may be more efficient and be easier to track.
Destination path¶
Specify the location where files are written to. When tasks are complete, you'll be able to download rendered files to this folder on your computer.
There are some constraints to be aware of:
- All files produced by the job must be written to a location below the
output_path
, otherwise they won't be available. - None of the assets you upload may exist anywhere below the output path.
By default, the destination path points to the images directory as specified in the project window. See File->Project Window.
Instance Type¶
Specify the hardware configuration used to run your tasks. You are encouraged to run tests to find the most cost-efficient combination that meets your deadline. You can read about hardware choices and how they affect costs in this blog post.
Preemptible¶
Preemptible instances are less expensive to run than non-preemptible. The drawback is that they may be stopped at any time by the cloud provider. The probability of a preemption rises with the duration of the task. Conductor does not support checkpointing, so if a preemption occurs, the task starts from scratch on another instance. It is possible to change the preemptible setting in the dashboard for your account.
Maya Version¶
The version of Maya to run on the render nodes. You are not required to use the same as your local version, but be aware of feature changes that could affect your render.
Right-click on the Maya Version label to detect the appropriate Maya and plugin versions automatically.
Plugin Version¶
Choose the plugins that will render your job.
Chunk Size¶
A chunk is the set of frames handled by one task. If your renders are reasonably fast, it may make sense to render many frames per task because the time it takes to spin up instances, and sync can be significant by comparison.
Use Custom Range¶
When Use Custom Range is on, a text field appears and we ignore the frame range specified in the Render Settings window. Instead, enter a frame-spec.
A frame-spec is a comma-separated list of arithmetic progressions. In most cases, this will be a simple range:
1001-1200
However, any set of frames may be specified efficiently in this way.
1,7,10-20,30-60x3,1001
Negative numbers are also valid.
-7,-20--10
Scout Frames¶
Specify a set of frames to render first. We start any tasks that contain these frames. All others are put on hold, which allows you to check a subsample of your sequence before committing to the full render.
You can use a frame spec to specify scout frames, for example: 1-100x30
. Alternatively, you can select how many scout frames you want and let the submitter calculate scout frames from the current frame range. To specify three well-spaced scout frames automatically, enter auto:3
.
Note
The remote render nodes execute tasks in their entirety, so if you have chunk size set greater than 1, then all frames are rendered in any task containing a scout frame.
Sequence Info¶
This section provides read-only information on the resolved sequence of frames and scout frames.
Use Upload Daemon¶
Use upload Daemon is off by default. This means that assets are uploaded within Maya itself. If you have a large number of assets to upload, it will block Maya until it finishes uploading.
A better solution may be to turn on Use Upload Daemon. An upload daemon is a separate background process. It means assets are not uploaded in the application. The submission, including the list of expected assets, is sent to Conductor, and the upload daemon continually asks the server if there are assets to upload. When your job hits the server, the upload daemon will get the list and upload them, which allows you to continue with your work.
You can start the upload daemon either before or after you submit the job. Once started, it will listen to your entire account, and you can submit as many jobs as you like.
Note
You must have Conductor Core installed in order to use the upload daemon and other command line tools. See the installation page for options.
To run an upload daemon, open a terminal or command prompt, and run the following command.
conductor uploader
Once started, the upload daemon runs continuously and uploads files for all jobs submitted to your account.
Asset Scrapers¶
Asset scrapers are Python scripts, responsible for gathering asset paths required by the render. We provide several asset scraping scripts.
The document icon button to the right of each scraper entry is the test button. Use it to print the result of the scrape to the script editor.
If there are assets not found by the scrapers above, you have 2 options.
-
Browse for assets in the Extra Assets section. This is quick and easy for one-off requirements, or when the asset you want is always in the same place.
-
Write an asset scraper and register it here. This is perfect when you need to discover assets programmatically.
Write your own scraper¶
If you want to write an asset_scraper, you'll need to know Python and follow the guidelines below.
An asset scraper is a Python script, starting with scrape_
by convention, though it’s not required.
It must live in a Python module directory, for example, your Maya scripts directory.
It must contain a run()
function that takes one argument, the submitter node.
It must return a list of dictionaries where each dictionary contains a path
key.
You can return paths containing glob patterns. This avoids the need to hit the filesystem. Those filenames are resolved later for the submission itself. You can test this by turning on Display Scraped Assets in the Submission Preview.
Only glob style wildcards are valid in the returned paths. If you want to resolve patterns such as <udim>
, $F4
, or <frame>
, you must do so in your scraper code, or replace those tokens with *
, to make them globbable.
Scraper scripts are reloaded every time you run or test, so they are always up to date. This makes development easy. Just Save the script, hit the test button, and check the script editor.
Extra Assets¶
If the scrapers miss some assets, or if you want to upload a script, or maybe a color profile, you can browse explicitly to make sure they are available on the render nodes.
Notifications¶
Add one or more email addresses, separated by commas to receive an email when the job completes.
Task Template¶
A template for the commands to run on remote instances. The template defines the shape of a Maya
command-line render. It uses tokens in angle brackets similar to those used in the Job
title above. It can also use Task level tokens: start
, end
, step
, chunk_length
. See the token table below.
If you examine the task template and then check the Submission Preview section, you'll see how it is resolved.
Example template and resolved task commands¶
Render -r <Renderer> -s <start> -e <end> -b <step> -rl "<RenderLayer>" -rd "<OutputPath>" -proj "<WorkspacePath>" "<SceneFile>"
Render -r arnold -s 1 -e 5 -b 2 -rl "masterLayer" -rd "/Volumes/xtr/gd/duck/images" -proj "/Volumes/xtr/gd/duck" "/Volumes/xtr/gd/duck/scenes/quack.0003.ma"
Render -r arnold -s 7 -e 9 -b 2 -rl "masterLayer" -rd "/Volumes/xtr/gd/duck/images" -proj "/Volumes/xtr/gd/duck" "/Volumes/xtr/gd/duck/scenes/quack.0003.ma"
In the example above, we set the frame-spec to 1-10x2
with a chunk size of 3
. The submission, therefore, contains 2 tasks, each rendering a maximum of 3 frames. The start, end, and step parameters are substituted into the template accordingly.
Metadata¶
Metadata consists of arbitrary Key/Value pairs that are attached to your submission. The purpose of metadata is to allow you to filter information in the Conductor web UI.
Example: To break down costs by shot number, you can add a metadata key called shot
and enter the shot number in the Value field. You can also enter environment variables in the value field that resolve in the submission. In the above example, you might use $SHOT
for the value.
Extra Environment¶
By default, your job's environment variables are defined automatically based on the software and plugin versions you choose. Sometimes, however, it can be necessary to append to those variables or add more of your own.
For example, you may have a script you want to upload and run without entering its full path. In that case, you can add its location to the PATH
variable.
Add an entry with the Add button and enter the Name of the variable: PATH
, the Value /my/scripts/directory
. Make sure Exclusive is switched off to indicate that the variable should be appended.
You can also enter local environment variables in the value field itself. They will then be active in the submission. You might use $MY_SCRIPTS_PATH
(if it's defined) for the value in the above example.
Automatic Retries¶
A task may fail if the command returns a non-zero exit code or is preempted by the cloud provider. Set a value above 0 if you would like to try the task again in either of these situations automatically.
Autosave¶
On submission, you'll usually want to include the current file. It can be tedious to save the scene each time manually. The autosave feature allows you to set a filename template instead.
By default, autosave is active, and the template is the filename, prefixed by cio_
.
If cleanup is on, then the autosave file is removed after submission.
You cannot use cleanup if you are using an upload daemon because the file itself is one of the assets to be uploaded, and the submitter doesn't know or care when the daemon has uploaded it.
The autosave template has access to the set of job-level tokens in the token table below, along with any environment variables available on your local system.
Location Tag¶
Attach a location to this submission for the purpose of matching to an uploader and/or downloader process.
If your organization is distributed in several locations, you can enter a value here, for example, London. Then when you run a downloader daemon you can add the location option to limit downloads to only those that were submitted in London.
Tokens¶
Token name | Example value | Scope |
---|---|---|
Scene | quack.0003.ma | Job |
SceneFile | /Volumes/xtr/gd/duck/scenes/quack.0003.ma | Job |
Object | ConductorRender1 | Job |
RenderLayer | masterLayer | Job |
Layer | masterLayer | Job |
Camera | shotCameraShape | Job |
WorkspacePath | /Volumes/xtr/gd/duck | Job |
Renderer | arnold | Job |
OutputPath | /Volumes/xtr/gd/duck/images | Job |
ConductorVersion | 0.1.26 | Job |
start | 1 | Task |
end | 10 | Task |
step | 2 | Task |
If you feel there's some useful piece of information that the submitter could provide as a token, please submit a ticket to Conductor Support.
Troubleshooting¶
I can't see the Conductor plugin in the Plugin Manager.¶
If the plugin does not appear, check to make sure the conductor.mod
file exists in the modules folder.
~/Library/Preferences/Autodesk/maya/modules/conductor.mod
~/maya/modules/conductor.mod
C:\Users\<username>\Documents\maya\modules\conductor.mod
If not, open a terminal or command prompt and enter the following command.
python ~/Conductor/maya/ciomaya/post_install.py
python C:\Users\<username>\Conductor\maya\ciomaya\post_install.py