TV Paint Render Layer Creation Issue

Hi there, another question regarding the TV paint integration, I’m having some trouble following the documentation for creating render layers and passes as described in TVPaint Artist Docs | AYON Docs.

When I try to create a render layer in the publisher, it defaults to “Main” as the variant, but the product name is empty on the created instance.

If I delete and recreate the instance, or relaunch the publisher and change the variant name, the product name then gets stuck on “<Valid variant>” and I don’t see how to change it from the UI.

So I’m seeking clarification on what exactly is supposed to go into the variant field, and how this relates to what is then set as the product name. Is there a template somewhere to define this? I looked around on the server but didn’t see anything in TV paint settings.

Thanks in advance!

Inside product name profiles settings

ayon+settings://core/tools/creator/product_name_profiles

you can find product name template for tv paint.
I’ve these by default.

Thanks, I see now that we have the same default as you for tv paint

However, there’s still the issue in the publisher/creator of the product getting stuck on “<Valid variant>” …

Did you select any Group in the combobox?

Yes, it’s the same behavior whether or not I select something in the Group combo. I had already created the color groups in the tv paint file before trying to publish.

I’m afraid I can’t help right now as we don’t have available TVPaint for debugging.

I will try to dig in myself, but debugging has been a bit challenging since tv paint doesn’t have a python console… are there log files from ayon core that I can access somewhere?

I found where this is bugging out for us – in the ayon_core 0.4.2 CreateModel class, the get_product_name method has some backwards compatibility logic to pop the “project_entity” argument from the DCC specific get_product name method if needed

        # Backwards compatibility for 'project_entity' argument
        # - 'get_product_name' signature changed 24/07/08
        if not is_func_signature_supported(
            creator.get_product_name, *args, **kwargs
        ):
            kwargs.pop("project_entity")
        return creator.get_product_name(*args, **kwargs)

The issue is that the TVPaintCreator get_product_name method just takes generic args and then passes them along to another method, _custom_get_product_name, so the check passes, but actually the project_entity argument is not valid. I can get around this issue by forcibly popping the project_entity argument.

There’s also a second potential issue where the host_name argument is not getting set anywhere in the tvpaint addon, so it’s not able to retrieve the correct templates from the server. When I added host_name: “tvpaint” to the kwargs we were able to get the expected templates back from the server and successfully create a renderLayer instance.

Thanks for your investigation and bug report.

Could you create an issue here ?