From 44b4d04bbeb12029dd55ebac4c3b7c7e74a73dfb Mon Sep 17 00:00:00 2001 From: Simone Barbieri Date: Thu, 23 Nov 2023 16:24:41 +0000 Subject: [PATCH 01/13] Added attributes to publisher and fixed chunk size --- .../publish/submit_blender_deadline.py | 47 ++++++++++++++++--- 1 file changed, 41 insertions(+), 6 deletions(-) diff --git a/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py b/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py index 094f2b1821..e1bf5c074a 100644 --- a/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py @@ -6,8 +6,14 @@ import getpass import attr from datetime import datetime -from openpype.lib import is_running_from_build +from openpype.lib import ( + is_running_from_build, + BoolDef, + NumberDef, + TextDef, +) from openpype.pipeline import legacy_io +from openpype.pipeline.publish import OpenPypePyblishPluginMixin from openpype.pipeline.farm.tools import iter_expected_files from openpype.tests.lib import is_in_tests @@ -22,7 +28,8 @@ class BlenderPluginInfo(): SaveFile = attr.ib(default=True) -class BlenderSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline): +class BlenderSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline, + OpenPypePyblishPluginMixin): label = "Submit Render to Deadline" hosts = ["blender"] families = ["render.farm"] @@ -67,8 +74,6 @@ class BlenderSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline): job_info.Pool = instance.data.get("primaryPool") job_info.SecondaryPool = instance.data.get("secondaryPool") - job_info.Comment = context.data.get("comment") - job_info.Priority = instance.data.get("priority", self.priority) if self.group != "none" and self.group: job_info.Group = self.group @@ -83,8 +88,9 @@ class BlenderSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline): machine_list_key = "Blacklist" render_globals[machine_list_key] = machine_list - job_info.Priority = attr_values.get("priority") - job_info.ChunkSize = attr_values.get("chunkSize") + job_info.Comment = context.data.get("comment") + job_info.ChunkSize = attr_values.get("chunkSize", self.chunk_size) + job_info.Priority = attr_values.get("priority", self.priority) # Add options from RenderGlobals render_globals = instance.data.get("renderGlobals", {}) @@ -180,3 +186,32 @@ class BlenderSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline): the metadata and the rendered files are in the same location. """ return super().from_published_scene(False) + + @classmethod + def get_attribute_defs(cls): + defs = super(BlenderSubmitDeadline, cls).get_attribute_defs() + defs.extend([ + BoolDef("use_published", + default=cls.use_published, + label="Use Published Scene"), + + NumberDef("priority", + minimum=1, + maximum=250, + decimals=0, + default=cls.priority, + label="Priority"), + + NumberDef("chunkSize", + minimum=1, + maximum=50, + decimals=0, + default=cls.chunk_size, + label="Frame Per Task"), + + TextDef("group", + default=cls.group, + label="Group Name"), + ]) + + return defs From ee7bf575953fcfc29bb8bc1f56d2df418918830f Mon Sep 17 00:00:00 2001 From: Simone Barbieri Date: Thu, 23 Nov 2023 16:25:22 +0000 Subject: [PATCH 02/13] Changed family for render --- openpype/hosts/blender/plugins/create/create_render.py | 2 +- openpype/hosts/blender/plugins/publish/collect_render.py | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/openpype/hosts/blender/plugins/create/create_render.py b/openpype/hosts/blender/plugins/create/create_render.py index 7fb3e5eb00..a643ccdaa3 100644 --- a/openpype/hosts/blender/plugins/create/create_render.py +++ b/openpype/hosts/blender/plugins/create/create_render.py @@ -10,7 +10,7 @@ class CreateRenderlayer(plugin.BaseCreator): identifier = "io.openpype.creators.blender.render" label = "Render" - family = "render" + family = "render.farm" icon = "eye" def create( diff --git a/openpype/hosts/blender/plugins/publish/collect_render.py b/openpype/hosts/blender/plugins/publish/collect_render.py index 00faf85aed..d1b1da5f4e 100644 --- a/openpype/hosts/blender/plugins/publish/collect_render.py +++ b/openpype/hosts/blender/plugins/publish/collect_render.py @@ -15,7 +15,7 @@ class CollectBlenderRender(pyblish.api.InstancePlugin): order = pyblish.api.CollectorOrder + 0.01 hosts = ["blender"] - families = ["render"] + families = ["render.farm"] label = "Collect Render Layers" sync_workfile_version = False @@ -101,7 +101,6 @@ class CollectBlenderRender(pyblish.api.InstancePlugin): expected_files = expected_beauty | expected_aovs instance.data.update({ - "family": "render.farm", "frameStart": frame_start, "frameEnd": frame_end, "frameStartHandle": frame_handle_start, From f40125d7b2a49cf35bc3e165a8c53102eca799eb Mon Sep 17 00:00:00 2001 From: Simone Barbieri Date: Thu, 23 Nov 2023 16:25:57 +0000 Subject: [PATCH 03/13] Fixed problem when preparing rendering --- openpype/hosts/blender/api/render_lib.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/openpype/hosts/blender/api/render_lib.py b/openpype/hosts/blender/api/render_lib.py index d564b5ebcb..646f87f9d7 100644 --- a/openpype/hosts/blender/api/render_lib.py +++ b/openpype/hosts/blender/api/render_lib.py @@ -1,4 +1,4 @@ -import os +from pathlib import Path import bpy @@ -59,7 +59,7 @@ def get_render_product(output_path, name, aov_sep): instance (pyblish.api.Instance): The instance to publish. ext (str): The image format to render. """ - filepath = os.path.join(output_path, name) + filepath = output_path / name.relative_to(name.anchor) render_product = f"{filepath}{aov_sep}beauty.####" render_product = render_product.replace("\\", "/") @@ -180,7 +180,7 @@ def set_node_tree(output_path, name, aov_sep, ext, multilayer): return [] output.file_slots.clear() - output.base_path = output_path + output.base_path = str(output_path) aov_file_products = [] @@ -191,8 +191,9 @@ def set_node_tree(output_path, name, aov_sep, ext, multilayer): output.file_slots.new(filepath) - aov_file_products.append( - (render_pass.name, os.path.join(output_path, filepath))) + filename = output_path / filepath.relative_to(filepath.anchor) + + aov_file_products.append((render_pass.name, filename)) node_input = output.inputs[-1] @@ -212,14 +213,13 @@ def imprint_render_settings(node, data): def prepare_rendering(asset_group): - name = asset_group.name + name = Path(asset_group.name) - filepath = bpy.data.filepath + filepath = Path(bpy.data.filepath) assert filepath, "Workfile not saved. Please save the file first." - file_path = os.path.dirname(filepath) - file_name = os.path.basename(filepath) - file_name, _ = os.path.splitext(file_name) + file_path = filepath.parent + file_name = Path(filepath.name).stem project = get_current_project_name() settings = get_project_settings(project) @@ -232,11 +232,11 @@ def prepare_rendering(asset_group): set_render_format(ext, multilayer) aov_list, custom_passes = set_render_passes(settings) - output_path = os.path.join(file_path, render_folder, file_name) + output_path = Path.joinpath(file_path, render_folder, file_name) render_product = get_render_product(output_path, name, aov_sep) aov_file_product = set_node_tree( - output_path, name, aov_sep, ext, multilayer) + output_path, str(name), aov_sep, ext, multilayer) bpy.context.scene.render.filepath = render_product From 714f66f7643d840f9dab44d49874cd7379cd44ce Mon Sep 17 00:00:00 2001 From: Simone Barbieri Date: Fri, 24 Nov 2023 10:44:10 +0000 Subject: [PATCH 04/13] Fixes and suggestions applied from comments --- openpype/hosts/blender/api/render_lib.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/openpype/hosts/blender/api/render_lib.py b/openpype/hosts/blender/api/render_lib.py index 646f87f9d7..22c51d664a 100644 --- a/openpype/hosts/blender/api/render_lib.py +++ b/openpype/hosts/blender/api/render_lib.py @@ -191,6 +191,7 @@ def set_node_tree(output_path, name, aov_sep, ext, multilayer): output.file_slots.new(filepath) + filepath = Path(filepath) filename = output_path / filepath.relative_to(filepath.anchor) aov_file_products.append((render_pass.name, filename)) @@ -213,12 +214,12 @@ def imprint_render_settings(node, data): def prepare_rendering(asset_group): - name = Path(asset_group.name) + name = asset_group.name filepath = Path(bpy.data.filepath) assert filepath, "Workfile not saved. Please save the file first." - file_path = filepath.parent + dirpath = filepath.parent file_name = Path(filepath.name).stem project = get_current_project_name() @@ -232,11 +233,11 @@ def prepare_rendering(asset_group): set_render_format(ext, multilayer) aov_list, custom_passes = set_render_passes(settings) - output_path = Path.joinpath(file_path, render_folder, file_name) + output_path = Path.joinpath(dirpath, render_folder, file_name) - render_product = get_render_product(output_path, name, aov_sep) + render_product = get_render_product(output_path, Path(name), aov_sep) aov_file_product = set_node_tree( - output_path, str(name), aov_sep, ext, multilayer) + output_path, name, aov_sep, ext, multilayer) bpy.context.scene.render.filepath = render_product From cc82e645c6b2210dccbc63fc63a6e6a56244bf3d Mon Sep 17 00:00:00 2001 From: Simone Barbieri Date: Fri, 24 Nov 2023 10:54:30 +0000 Subject: [PATCH 05/13] Fixed compatibility with old instances --- openpype/hosts/blender/plugins/publish/collect_render.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openpype/hosts/blender/plugins/publish/collect_render.py b/openpype/hosts/blender/plugins/publish/collect_render.py index d1b1da5f4e..4f23f30cc0 100644 --- a/openpype/hosts/blender/plugins/publish/collect_render.py +++ b/openpype/hosts/blender/plugins/publish/collect_render.py @@ -15,7 +15,7 @@ class CollectBlenderRender(pyblish.api.InstancePlugin): order = pyblish.api.CollectorOrder + 0.01 hosts = ["blender"] - families = ["render.farm"] + families = ["render", "render.farm"] label = "Collect Render Layers" sync_workfile_version = False @@ -101,6 +101,7 @@ class CollectBlenderRender(pyblish.api.InstancePlugin): expected_files = expected_beauty | expected_aovs instance.data.update({ + "family": "render.farm", "frameStart": frame_start, "frameEnd": frame_end, "frameStartHandle": frame_handle_start, From 75519b0a959f468d714f53bdcd7db2a57f75bfc1 Mon Sep 17 00:00:00 2001 From: Simone Barbieri Date: Fri, 24 Nov 2023 12:19:59 +0000 Subject: [PATCH 06/13] Fix increment workfile for render.farm family --- .../hosts/blender/plugins/publish/increment_workfile_version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/hosts/blender/plugins/publish/increment_workfile_version.py b/openpype/hosts/blender/plugins/publish/increment_workfile_version.py index 7e33fd53fa..9f8d20aedc 100644 --- a/openpype/hosts/blender/plugins/publish/increment_workfile_version.py +++ b/openpype/hosts/blender/plugins/publish/increment_workfile_version.py @@ -14,7 +14,7 @@ class IncrementWorkfileVersion( optional = True hosts = ["blender"] families = ["animation", "model", "rig", "action", "layout", "blendScene", - "pointcache", "render"] + "pointcache", "render.farm"] def process(self, context): if not self.is_active(context.data): From 5162d8e4074ff46143558984f98283f5208720c4 Mon Sep 17 00:00:00 2001 From: Simone Barbieri Date: Fri, 24 Nov 2023 12:20:38 +0000 Subject: [PATCH 07/13] Added Delay option --- .../deadline/plugins/publish/submit_blender_deadline.py | 6 ++++++ openpype/settings/defaults/project_settings/deadline.json | 3 ++- .../schemas/projects_schema/schema_project_deadline.json | 5 +++++ server_addon/deadline/server/settings/publish_plugins.py | 4 +++- server_addon/deadline/server/version.py | 2 +- 5 files changed, 17 insertions(+), 3 deletions(-) diff --git a/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py b/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py index e1bf5c074a..4c04b4a9c4 100644 --- a/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py @@ -40,6 +40,7 @@ class BlenderSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline, jobInfo = {} pluginInfo = {} group = None + job_delay = "00:00:00:00" def get_job_info(self): job_info = DeadlineJobInfo(Plugin="Blender") @@ -91,6 +92,7 @@ class BlenderSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline, job_info.Comment = context.data.get("comment") job_info.ChunkSize = attr_values.get("chunkSize", self.chunk_size) job_info.Priority = attr_values.get("priority", self.priority) + job_info.JobDelay = attr_values.get("job_delay", self.job_delay) # Add options from RenderGlobals render_globals = instance.data.get("renderGlobals", {}) @@ -212,6 +214,10 @@ class BlenderSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline, TextDef("group", default=cls.group, label="Group Name"), + + TextDef("job_delay", + default=cls.job_delay, + label="Job Delay"), ]) return defs diff --git a/openpype/settings/defaults/project_settings/deadline.json b/openpype/settings/defaults/project_settings/deadline.json index 2c5e0dc65d..50dd5367da 100644 --- a/openpype/settings/defaults/project_settings/deadline.json +++ b/openpype/settings/defaults/project_settings/deadline.json @@ -107,7 +107,8 @@ "use_published": true, "priority": 50, "chunk_size": 10, - "group": "none" + "group": "none", + "job_delay": "00:00:00:00" }, "ProcessSubmittedJobOnFarm": { "enabled": true, diff --git a/openpype/settings/entities/schemas/projects_schema/schema_project_deadline.json b/openpype/settings/entities/schemas/projects_schema/schema_project_deadline.json index 64db852c89..a3408e9871 100644 --- a/openpype/settings/entities/schemas/projects_schema/schema_project_deadline.json +++ b/openpype/settings/entities/schemas/projects_schema/schema_project_deadline.json @@ -581,6 +581,11 @@ "type": "text", "key": "group", "label": "Group Name" + }, + { + "type": "text", + "key": "job_delay", + "label": "Delay job (timecode dd:hh:mm:ss)" } ] }, diff --git a/server_addon/deadline/server/settings/publish_plugins.py b/server_addon/deadline/server/settings/publish_plugins.py index 54b7ff57c1..1d8b8c4eb2 100644 --- a/server_addon/deadline/server/settings/publish_plugins.py +++ b/server_addon/deadline/server/settings/publish_plugins.py @@ -237,6 +237,7 @@ class BlenderSubmitDeadlineModel(BaseSettingsModel): priority: int = Field(title="Priority") chunk_size: int = Field(title="Frame per Task") group: str = Field("", title="Group Name") + job_delay: str = Field("", title="Delay job (timecode dd:hh:mm:ss)") class AOVFilterSubmodel(BaseSettingsModel): @@ -424,7 +425,8 @@ DEFAULT_DEADLINE_PLUGINS_SETTINGS = { "use_published": True, "priority": 50, "chunk_size": 10, - "group": "none" + "group": "none", + "job_delay": "00:00:00:00" }, "ProcessSubmittedJobOnFarm": { "enabled": True, diff --git a/server_addon/deadline/server/version.py b/server_addon/deadline/server/version.py index ae7362549b..bbab0242f6 100644 --- a/server_addon/deadline/server/version.py +++ b/server_addon/deadline/server/version.py @@ -1 +1 @@ -__version__ = "0.1.3" +__version__ = "0.1.4" From 862cb05d2f5d358e7c62dde8637553191fbfe431 Mon Sep 17 00:00:00 2001 From: Simone Barbieri Date: Fri, 24 Nov 2023 14:47:16 +0000 Subject: [PATCH 08/13] Get comment from instance --- .../modules/deadline/plugins/publish/submit_blender_deadline.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py b/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py index 4c04b4a9c4..c5217b45f1 100644 --- a/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py @@ -75,6 +75,7 @@ class BlenderSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline, job_info.Pool = instance.data.get("primaryPool") job_info.SecondaryPool = instance.data.get("secondaryPool") + job_info.Comment = instance.data.get("comment") if self.group != "none" and self.group: job_info.Group = self.group @@ -89,7 +90,6 @@ class BlenderSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline, machine_list_key = "Blacklist" render_globals[machine_list_key] = machine_list - job_info.Comment = context.data.get("comment") job_info.ChunkSize = attr_values.get("chunkSize", self.chunk_size) job_info.Priority = attr_values.get("priority", self.priority) job_info.JobDelay = attr_values.get("job_delay", self.job_delay) From c3c9a93f50e4583e69bb3a0bd1c8948ebbacb8fd Mon Sep 17 00:00:00 2001 From: Simone Barbieri Date: Fri, 24 Nov 2023 14:54:37 +0000 Subject: [PATCH 09/13] Make clearer some path joins --- openpype/hosts/blender/api/render_lib.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/openpype/hosts/blender/api/render_lib.py b/openpype/hosts/blender/api/render_lib.py index 22c51d664a..1ab3b260bb 100644 --- a/openpype/hosts/blender/api/render_lib.py +++ b/openpype/hosts/blender/api/render_lib.py @@ -59,7 +59,7 @@ def get_render_product(output_path, name, aov_sep): instance (pyblish.api.Instance): The instance to publish. ext (str): The image format to render. """ - filepath = output_path / name.relative_to(name.anchor) + filepath = output_path / name.lstrip("/") render_product = f"{filepath}{aov_sep}beauty.####" render_product = render_product.replace("\\", "/") @@ -191,8 +191,7 @@ def set_node_tree(output_path, name, aov_sep, ext, multilayer): output.file_slots.new(filepath) - filepath = Path(filepath) - filename = output_path / filepath.relative_to(filepath.anchor) + filename = output_path / filepath.lstrip("/") aov_file_products.append((render_pass.name, filename)) @@ -235,7 +234,7 @@ def prepare_rendering(asset_group): output_path = Path.joinpath(dirpath, render_folder, file_name) - render_product = get_render_product(output_path, Path(name), aov_sep) + render_product = get_render_product(output_path, name, aov_sep) aov_file_product = set_node_tree( output_path, name, aov_sep, ext, multilayer) From a35f9d935ea2de29ae8853006bb569097a3efc6b Mon Sep 17 00:00:00 2001 From: Simone Barbieri Date: Fri, 24 Nov 2023 15:37:27 +0000 Subject: [PATCH 10/13] Reverted family to render and fixed problems with family --- .../hosts/blender/plugins/create/create_render.py | 2 +- .../hosts/blender/plugins/publish/collect_render.py | 12 ++++-------- .../plugins/publish/validate_deadline_publish.py | 2 +- .../plugins/publish/submit_blender_deadline.py | 2 +- 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/openpype/hosts/blender/plugins/create/create_render.py b/openpype/hosts/blender/plugins/create/create_render.py index a643ccdaa3..7fb3e5eb00 100644 --- a/openpype/hosts/blender/plugins/create/create_render.py +++ b/openpype/hosts/blender/plugins/create/create_render.py @@ -10,7 +10,7 @@ class CreateRenderlayer(plugin.BaseCreator): identifier = "io.openpype.creators.blender.render" label = "Render" - family = "render.farm" + family = "render" icon = "eye" def create( diff --git a/openpype/hosts/blender/plugins/publish/collect_render.py b/openpype/hosts/blender/plugins/publish/collect_render.py index 4f23f30cc0..da02f99052 100644 --- a/openpype/hosts/blender/plugins/publish/collect_render.py +++ b/openpype/hosts/blender/plugins/publish/collect_render.py @@ -11,12 +11,12 @@ import pyblish.api class CollectBlenderRender(pyblish.api.InstancePlugin): - """Gather all publishable render layers from renderSetup.""" + """Gather all publishable render instances.""" order = pyblish.api.CollectorOrder + 0.01 hosts = ["blender"] - families = ["render", "render.farm"] - label = "Collect Render Layers" + families = ["render"] + label = "Collect Render" sync_workfile_version = False @staticmethod @@ -78,8 +78,6 @@ class CollectBlenderRender(pyblish.api.InstancePlugin): assert render_data, "No render data found." - self.log.debug(f"render_data: {dict(render_data)}") - render_product = render_data.get("render_product") aov_file_product = render_data.get("aov_file_product") ext = render_data.get("image_format") @@ -101,7 +99,7 @@ class CollectBlenderRender(pyblish.api.InstancePlugin): expected_files = expected_beauty | expected_aovs instance.data.update({ - "family": "render.farm", + "families": ["render", "render.farm"], "frameStart": frame_start, "frameEnd": frame_end, "frameStartHandle": frame_handle_start, @@ -120,5 +118,3 @@ class CollectBlenderRender(pyblish.api.InstancePlugin): "colorspaceView": "ACES 1.0 SDR-video", "renderProducts": colorspace.ARenderProduct(), }) - - self.log.debug(f"data: {instance.data}") diff --git a/openpype/hosts/blender/plugins/publish/validate_deadline_publish.py b/openpype/hosts/blender/plugins/publish/validate_deadline_publish.py index d8826adc9c..bb243f08cc 100644 --- a/openpype/hosts/blender/plugins/publish/validate_deadline_publish.py +++ b/openpype/hosts/blender/plugins/publish/validate_deadline_publish.py @@ -19,7 +19,7 @@ class ValidateDeadlinePublish(pyblish.api.InstancePlugin, """ order = ValidateContentsOrder - families = ["render.farm"] + families = ["render"] hosts = ["blender"] label = "Validate Render Output for Deadline" optional = True diff --git a/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py b/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py index c5217b45f1..52a307646e 100644 --- a/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py @@ -32,7 +32,7 @@ class BlenderSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline, OpenPypePyblishPluginMixin): label = "Submit Render to Deadline" hosts = ["blender"] - families = ["render.farm"] + families = ["render"] use_published = True priority = 50 From d1cf2e895fb23b247bb836a9762220af8e43bdcb Mon Sep 17 00:00:00 2001 From: Simone Barbieri Date: Fri, 24 Nov 2023 16:20:33 +0000 Subject: [PATCH 11/13] Fix problem with imprinting of data when saving render settings --- openpype/hosts/blender/api/render_lib.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/hosts/blender/api/render_lib.py b/openpype/hosts/blender/api/render_lib.py index 1ab3b260bb..b437078ad8 100644 --- a/openpype/hosts/blender/api/render_lib.py +++ b/openpype/hosts/blender/api/render_lib.py @@ -191,7 +191,7 @@ def set_node_tree(output_path, name, aov_sep, ext, multilayer): output.file_slots.new(filepath) - filename = output_path / filepath.lstrip("/") + filename = str(output_path / filepath.lstrip("/")) aov_file_products.append((render_pass.name, filename)) From d4afd11241583c6e1d7c568c399a0b3ef3c9bd1f Mon Sep 17 00:00:00 2001 From: Simone Barbieri Date: Wed, 29 Nov 2023 09:48:41 +0100 Subject: [PATCH 12/13] Added placeholder and tooltip for delay attribute --- .../deadline/plugins/publish/submit_blender_deadline.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py b/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py index 52a307646e..b5c3944891 100644 --- a/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py @@ -217,7 +217,10 @@ class BlenderSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline, TextDef("job_delay", default=cls.job_delay, - label="Job Delay"), + label="Job Delay", + placeholder="dd:hh:mm:ss", + tooltip="Delay the job by the specified amount of time. " + "Timecode: dd:hh:mm:ss."), ]) return defs From 1abbee13a00af40e288d4bb0d60e9a6420cd636d Mon Sep 17 00:00:00 2001 From: Simone Barbieri Date: Wed, 29 Nov 2023 10:40:02 +0100 Subject: [PATCH 13/13] Fix missing ScheduledType --- .../modules/deadline/plugins/publish/submit_blender_deadline.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py b/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py index b5c3944891..8f9e9a7425 100644 --- a/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_blender_deadline.py @@ -92,6 +92,7 @@ class BlenderSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline, job_info.ChunkSize = attr_values.get("chunkSize", self.chunk_size) job_info.Priority = attr_values.get("priority", self.priority) + job_info.ScheduledType = "Once" job_info.JobDelay = attr_values.get("job_delay", self.job_delay) # Add options from RenderGlobals