IO Tools#

Overview#

The Prism IO Tools allow you to automate advanced workflows typically required for VFX projects.
These tools have been developed in collaboration with multiple studios to ensure high quality and enough flexibility for different production use-cases.

Although these tools are used in production by some studios, they should be still considered as "Beta" since they are under very active development.

The IO Tools are part of the Prism Pro plan. Please contact the support if you want to see a demo of these tools.

The IO Tools are visible in the Prism User Interface when a Pro license is active.
To hide the IO Tools, you can set the environment variable PRISM_IO_TOOLS_ADD_TO_GUI to "1". This will hide the IO Tools from the Prism User Interface.
The IO Tools include the following tools:

Ingest Tool#

The ingest tool allows studios to ingest plates, CDLs, LUTs and other files, typically received from a client, into the current Prism project.
During the ingestion the plates can be processed using Nuke templates to convert colorspaces or generate proxies.
The ingestion can be processed locally or on a render farm using Deadline.
../../_images/ingest_tool.jpg
Before using the ingest tool, you need to set up the ingest configuration for your project. This includes setting up the Nuke templates for processing the plates and defining the metadata fields to extract from the file names.
The ingest configuration is defined in a json file and can be customized for each project.
The ingest tool supports custom metadata fields, which can be extracted from the file names using regular expressions. This allows you to automatically populate the metadata fields in Prism based on the file names of the ingested files.
The ingest config should be created at <project_root>/00_Pipeline/Configs/ingest.json.
You can use the PRISM_INGEST_CONFIG environment variable to point to a different location for the ingest config file.
An example ingest config file can be found here.
The ingest tool can be opened from the "IO Tools" menu in the Prism Project Browser.

To add files to the list of files to ingest, you can drag and drop them from your file explorer or rightclick and select "Add Folder...".
The ingest tool scans all subfolders of the added folders and adds all files to the list of files to ingest.
Filesequences are automatically detected and grouped together.
All columns are configurable in the ingest config file, so you can add custom metadata fields and have them extracted from the file names.
You can press delete to remove files from the list of files to ingest.
Once you have the list of files to ingest ready, you can press the "Ingest" button to start the ingestion process.
The files will be processed according to the ingest config and added to the Prism project.

Creating a custom ingest config#

To create a custom ingest config, you can start from the example ingest config file here.
The ingest config file is a json file that defines the settings for the ingest tool.
The ingest config file has the following options:
  • "submit": Defines if the ingest jobs should be submitted to Deadline. If "submit" is set to false, the ingest jobs will be processed locally.

  • "job_prio": Defines the priority of the ingest jobs when submitted to Deadline.

  • "job_pool": Defines the pool to which the ingest jobs will be submitted in Deadline.

  • "job_snd_pool": Defines the secondary pool to which the ingest jobs will be submitted in Deadline.

  • "batch_per_shot": If set to true, a separate batch will be created for each shot. If set to false, all ingest jobs will be submitted in a single batch.

  • "dft_source_path": Defines the default source path to open when adding files to ingest.

  • "date_format": Defines the date format to be used for displaying dates in the job names and job batch names.

  • "prism_root": Defines the root path of the Prism installation to load for Deadline jobs. This is required to load the correct version of Prism for the ingest jobs.

  • "required_plugins": A list of plugins required for processing the ingested files (optional).

  • "create_shot_settings": Setting to create shots in Prism for the ingested files. If set to true, shots will be created based on the metadata extracted from the file names.

  • "columns": Defines the columns to be displayed in the ingest tool. Each column has the following settings: - "name": The label to be displayed in the ingest tool for this column. - "type": The type of the column. This can be "active", "name", "type", "episode", "sequence", "shot", "version" or "variable".

  • "filetypes": Defines a list of possible file types to be ingested. Each filetype can have its own ingest processing steps like copying files, running Nuke templates, etc. The filetypes are defined as follows: - "name": The name of the filetype. This is used to identify the filetype in the Type column of the ingest tool. - "extensions": A list of file extensions that belong to this filetype. This is used to automatically detect the filetype based on the file extension. - "template": The filepath template to be used for processing the ingested files of this filetype. It is used to extract variables from the file path of the ingested files. - "autofill_variables": A list of variables to be automatically extracted from the file path using regex or patterns when loading sources into the ingest tool. - "context_variables": A list of variables, which will be available during the ingestion process for this filetype. These variables will be evaluated after the ingest GUI was accepted and can be used to generate filepaths based on the user provided settings in the ingest tool. - "ingest_steps": A list of steps to be executed for ingesting files of this filetype.

Version Zero Tool#

The Version Zero tool uses a Nuke script to render out a shot, publish it to Shotgrid and put it on a playlist, which can be run through the delivery tool to generate Version Zeros for a client.

Before using the Version Zero tool, you need to set up the version zero configuration for your project. This includes setting up the Nuke template for rendering the version zero and defining the settings to be used for processing.
The version zero configuration is defined in a json file and can be customized for each project.
The version zero config should be created at <project_root>/00_Pipeline/Configs/version_zero.json.
You can use the PRISM_VERSION_ZERO_CONFIG environment variable to point to a different location for the version zero config file.
An example version zero config file can be found here.
The tool can be triggered from the "Actions" menu when rightclicking shots in the Prism Project Browser.
The settings are configured in a json file.

Creating a custom version zero config#

To create a custom version zero config, you can start from the example version zero config file here.
The version zero config file is a json file that defines the settings for the version zero tool.
The version zero config file has the following options:
  • "submit": Defines if the version zero jobs should be submitted to Deadline. If "submit" is set to false, the version zero jobs will be processed locally.

  • "job_prio": Defines the priority of the version zero jobs when submitted to Deadline.

  • "job_pool": Defines the pool to which the version zero jobs will be submitted in Deadline.

  • "job_snd_pool": Defines the secondary pool to which the version zero jobs will be submitted in Deadline.

  • "date_format": Defines the date format to be used for displaying dates in the job names and job batch names.

  • "prism_root": Defines the root path of the Prism installation to load for Deadline jobs. This is required to load the correct version of Prism for the version zero jobs.

  • "department": Defines the department from which to take the latest Nuke script to be used as a template for the version zero renders (optional).

  • "task": Defines the task from which to take the latest Nuke script to be used as a template for the version zero renders (optional).

  • "create_from_template": If set to true, the version zero will be created from the Nuke template, which is defined in the steps below. If set to false, the version zero will be created using the latest scenefile in the task and department defined above. If the latest scenefile is used, the Nuke template step in the steps below will be skipped since the scenefile will be used as a template itself. If not defined, a popup will ask the user to choose if the version zero should be created from the template or from the latest scenefile in the task and department defined above.

  • "context_variables": A list of variables, which will be available during the version zero process. These variables can be used to generate filepaths which can be used in steps of the version zero process.

  • "steps": A list of steps to be executed for creating the version zero.

Media Publish Tool#

The media publish tool allows you to publish media files, such as plates, proxies, renders, etc. to Shotgrid and link them to the corresponding entities in Shotgrid.
The published media can be processed using a Nuke template to generate exrs and quicktimes with the correct color spaces, slate and burn-ins in the client specification.
To use this tool, you need to set up the media publish configuration for your project. This includes setting up the Nuke templates for processing the media files and defining the settings to be used for processing.
The media publish configuration is defined in a json file and can be customized for each project.
The media publish config should be created at <project_root>/00_Pipeline/Configs/media_publish.json.
You can use the PRISM_MEDIA_PUBLISH_CONFIG environment variable to point to a different location for the media publish config file.
An example media publish config file can be found here.

The media publish config tool will be used by default if the config file exists, but it can be disabled by setting the environment variable PRISM_USE_IOTOOLS_MEDIA_PUBLISH to 0.

Creating a custom media publish config#

To create a custom media publish config, you can start from the example media publish config file here.
The media publish config file is a json file that defines the settings for the media publish tool.
The media publish config file has the following options:
"submit": Defines if the media publish jobs should be submitted to Deadline. If "submit" is set to false, the media publish jobs will be processed locally.
"job_prio": Defines the priority of the media publish jobs when submitted to Deadline.
"job_pool": Defines the pool to which the media publish jobs will be submitted in Deadline.
"job_snd_pool": Defines the secondary pool to which the media publish jobs will be submitted in Deadline.
"date_format": Defines the date format to be used for displaying dates in the job names and job batch names.
"prism_root": Defines the root path of the Prism installation to load for Deadline jobs. This is required to load the correct version of Prism for the media publish jobs.
"context_variables": A list of variables, which will be available during the media publish process. These variables can be used to generate filepaths which can be used in steps of the media publish process.
"steps": A list of steps to be executed for publishing the media.

Delivery Tool#

The delivery tool let's you select a Shotgrid playlist and process the versions in it for client deliveries.
The versions can be processed using a Nuke template to generate exrs and quicktimes with the correct color spaces, slate and burn-ins in the client specification.
The deliveries can be processed locally or on a render farm using Deadline.
../../_images/delivery_tool.jpg
Before using the delivery tool, you need to set up the delivery configuration for your project. This includes setting up the Nuke template for processing the versions and defining the settings to be used for processing.
The delivery configuration is defined in a json file and can be customized for each project.
The delivery config should be created at <project_root>/00_Pipeline/Configs/delivery.json.
You can use the PRISM_DELIVERY_CONFIG environment variable to point to a different location for the delivery config file.
An example delivery config file can be found here.

The delivery tool can be opened from the "IO Tools" menu in the Prism Project Browser.

Creating a custom delivery config#

To create a custom delivery config, you can start from the example delivery config file here.
The delivery config file is a json file that defines the settings for the delivery tool.
The delivery config file has the following options:
  • "playlist_default": Defines the default playlist to open when opening the delivery tool.

  • "submit_default": Defines if the submit jobs option in the delivery tool should be enabled by default. If "submit_default" is set to false, the submit jobs setting will be turned off when opening the delivery tool.

  • "always_submit": Defines if the delivery jobs should always be submitted to Deadline. If "always_submit" is set to true, the delivery jobs will always be submitted to Deadline and the setting will be hidden in the delivery tool.

  • "create_sg_versions_default": Defines if the create Shotgrid versions option in the delivery tool should be enabled by default. If "create_sg_versions_default" is set to false, the create Shotgrid versions setting will be turned off when opening the delivery tool.

  • "always_create_sg_version": Defines if a Shotgrid version should always be created for each version in the playlist when processing deliveries. If "always_create_sg_version" is set to true the setting will be hidden in the delivery tool.

  • "always_create_folders": Defines if the folder structure for the deliveries should always be created when processing deliveries. If "always_create_folders" is set to true, the setting will be hidden in the delivery tool.

  • "always_append_csv": Defines if the csv report should always be appended to when processing deliveries. If "always_append_csv" is set to true, the setting will be hidden in the delivery tool.

  • "playlist_filter_default": Defines the default filter for the playlist name in the delivery tool.

  • "version_filter_default": Defines the default filter for the version name in the delivery tool.

  • "exr_default": Defines if the exr checkbox in the delivery tool should be enabled by default.

  • "enable_mov": Defines if the mov checkbox should be enabled in the delivery tool. If "enable_mov" is set to false, the mov checkbox will be hidden in the delivery tool.

  • "mov_default": Defines if the mov checkbox in the delivery tool should be enabled by default.

  • "enable_mxf": Defines if the mxf checkbox should be enabled in the delivery tool. If "enable_mxf" is set to false, the mxf checkbox will be hidden in the delivery tool.

  • "mxf_default": Defines if the mxf checkbox in the delivery tool should be enabled by default.

  • "version_padding": Defines the padding for the delivery version number.

  • "version_prefix": Defines the prefix for the delivery version name.

  • "frame_padding": Defines the padding for the frame numbers in the delivery file names.

  • "csv_path": Defines the path where the csv report will be saved. This can be a template with variables.

  • "csv_row_per_format": Defines if a separate row should be created in the csv report for each format (exr, mov, mxf) being delivered. If "csv_row_per_format" is set to true, a separate row will be created for each format in the csv report. If "csv_row_per_format" is set to false, only one row will be created for each version being delivered, even if multiple formats are being delivered.

  • "job_prio": Defines the priority of the delivery jobs when submitted to Deadline.

  • "job_pool": Defines the pool to which the delivery jobs will be submitted in Deadline.

  • "job_snd_pool": Defines the secondary pool to which the delivery jobs will be submitted in Deadline.

  • "date_format": Defines the date format to be used for displaying dates in the job names and job batch names.

  • "prism_root": Defines the root path of the Prism installation to load for Deadline jobs. This is required to load the correct version of Prism for the delivery jobs.

  • "allow_empty_notes": Defines if the notes field in the delivery tool can be left empty. If "allow_empty_notes" is set to false, the user will be required to enter a value in the notes field before processing the deliveries.

  • "version_name": Defines the template for the version name to be used for the deliveries. This can be a template with variables that will be evaluated for each version being processed.

  • "project_code": Defines the project code to be used for the deliveries. This can be used as a variable in template paths in this config.

  • "delivery_folder": Defines the folder where the delivery files will be saved. This can be a template with variables that will be evaluated for each version being processed.

  • "add_playlist_to_deliverypath": Defines if the playlist name should be added to the delivery path. If "add_playlist_to_deliverypath" is set to true, the playlist name will be added as a subfolder in the delivery path.

  • "add_notes_to_sg": Defines if the notes entered in the delivery tool should be added to the Shotgrid version created for the delivered version.

  • "sg_submission_notes_field": Defines the Shotgrid field to which the notes entered in the delivery tool will be added when creating a Shotgrid version for the delivered version.

  • "sg_delivery_tags": Defines a list of tags to be added to the Shotgrid version created for the delivered version.

  • "steps": A list of steps to be executed for processing the deliveries.

  • "csv_fields": A list of fields to be included in the csv report generated after processing the deliveries. Each field has the following settings: - "column": The name of the field. This is used as the column header in the csv report. - "type": The type of the field. This can be "version_name", "static", "notes", "format", "filename", "resolution", "sg", "delivery_in", "delivery_out", "column". - "value": If the type is "static", this defines the value to be included in the report for this field. - "sg_field": If the type is "sg", this defines the Shotgrid field to be included in the report. The value of the field will be taken from the Shotgrid entity linked to the version being processed. - "name": If the type is "column", this defines the name of the column in the delivery tool to take the value from.

  • "extra_version_columns": A list of additional version columns to be included in the delivery tool. Each column has the following settings: - "name": The name of the column to be displayed in the delivery tool. - "type": The type of the column. This can be "combobox" or "sg". - "sg_field": If the type is "sg", this defines the Shotgrid field to be included in the column. The value of the field will be taken from the Shotgrid entity linked to the version being processed. - "level": If the type is "sg", this defines the level of the Shotgrid field to be included in the column. This can be "version" or "shot". This is used to determine from which linked entity to take the value of the Shotgrid field. - "items": If the type is "combobox", this defines the list of items to be included in the combobox. The value selected in the combobox for each version will be available as a variable in the processing steps.