Skip to content

Add slate frame to collected frame sequence.#272

Open
JoseCovaOS wants to merge 2 commits into
ynput:developfrom
JoseCovaOS:bugfix/271-frame_offset_when_publishing_with_use_existing_frames_farm_and_slate_frame_present
Open

Add slate frame to collected frame sequence.#272
JoseCovaOS wants to merge 2 commits into
ynput:developfrom
JoseCovaOS:bugfix/271-frame_offset_when_publishing_with_use_existing_frames_farm_and_slate_frame_present

Conversation

@JoseCovaOS

@JoseCovaOS JoseCovaOS commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

This PR fixes #271

Changelog Description

Fixed publishing with use existing frames - farm for Nuke renders that include a slate frame. The collector now includes the existing slate frame in the collected frame list before setting expected files, preventing a one-frame offset during integration.

Additional review information

When publishing existing frames through the frames_farm render target, the collector only gathered the regular render frame range and used that list to populate expectedFiles. For instances with the slate family, this meant the publish/integration path expected a slate frame at frameStart - 1, but the collected file list did not include that actual slate filename.

This PR reuses the existing slate-frame collection logic by calling _add_slate_frame_to_collected_frames() for the frames_farm path as well. This keeps the behavior aligned with the regular use existing frames path without calling _set_existing_files_data(), avoiding unintended representation creation for farm publishing.

The change is scoped to collection of expected files for frames_farm publishes and should only affect Nuke instances that have a slate frame available in the output sequence.

Testing notes

  • Create a Nuke comp with a slate node connected before an AYON write node, for example ColorBars -> Slate -> AYON Write.
  • Render or otherwise ensure the existing image sequence includes the slate frame at start_frame - 1, for example 1000, plus the regular range starting at 1001.
  • Publish using Use existing frames - farm.
  • Check the publish logs for IntegrateAsset destination mapping.
  • Confirm the slate frame is integrated as frame 1000, frame 1001 as 1001, frame 1002 as 1002, and so on, with no one-frame offset.

Comment on lines +431 to +448
def _get_collected_frames_with_slate(self, instance):
"""Get collected frames and include slate frame if available.

Args:
instance (pyblish.api.Instance): pyblish instance

Returns:
list: collected frames with slate if available
"""

first_frame, _ = self._get_frame_range_data(instance)
collected_frames = self._get_collected_frames(instance)

return self._add_slate_frame_to_collected_frames(
instance,
collected_frames,
first_frame
)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't have to be an extra method I'd say. This logic can just live at the end of _get_collected_frames because it applies to all calls to it anyway.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, have pushed the change :D

Comment on lines -366 to 368
if not os.path.exists(expected_slate_path):
if os.path.exists(expected_slate_path):
slate_frame = os.path.basename(expected_slate_path)
collected_frames.insert(0, slate_frame)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, this does make more sense 🤔 - @jakubjezek001 @moonyuet any thoughts?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed.

@BigRoy BigRoy requested review from jakubjezek001 and moonyuet June 19, 2026 11:27
@BigRoy BigRoy assigned BigRoy and jakubjezek001 and unassigned BigRoy Jun 19, 2026
@BigRoy BigRoy added type: bug Something isn't working sponsored This is directly sponsored by a client or community member labels Jun 19, 2026

@moonyuet moonyuet left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested successfully in Nuke 16.0

publish-report-260620-16-11.json

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

sponsored This is directly sponsored by a client or community member type: bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Frame offset when publishing with "use existing frames - farm" and slate frame present

4 participants