USD layer muting for rendering - general workflow

Hi,

I was wondering whether anyone has successfully handled layer mute states for rendering in combination with ayon/houdini/husk, or if there is a recommended approach for this.

We use the usdShot / usdAsset file to load all task contributions, and then automatically mute any layers an artist does not want to see in the current session via a custom HDA (similar to the AYON “mute department layers” HDA):

As far as I know, it is not possible to save the muted state of a layer into the render USD itself, which might result in unexpected behavior during rendering.
(Flattening the stage would technically work, but that is not really an option for a clean and optimized workflow.)

At the moment, we ask artists to temporarily disable the HDA responsible for muting so they can verify the output in the same unmuted state that husk will eventually render. However, I am looking for a more automated and robust solution that avoids this workaround.

In some cases, when there is only one additional upstream task involved, we replace the usdShot with the actual published USD contribution file instead. But again, this does not feel like a great solution and could potentially break future dependencies between tasks.

One possible workaround might be to use variable expressions for sublayers inside the usdShot / usdAsset file:
https://openusd.org/dev/user_guides/variable_expressions.html

However, I am not sure whether Houdini/husk properly supports this workflow

Any advice or experience would be greatly appreciated.

Cheers,
Sebastian

Hello,
What about adding custom data to houdini info prim?

Here’s an example from Houdini addon