Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Nuke: render instance with subset name filtered overrides #3117

Conversation

jakubjezek001
Copy link
Member

@jakubjezek001 jakubjezek001 commented Apr 28, 2022

Brief description

Adding ability to override Anatomy imagio required nodes with subset filtering.

Description

Some studios were requesting overriding per subset name regex filtering. This will allow to have different colorspace on subset renderCompMain then on renderCompMask for example. Overrides and also adding missing knob values if they are not found in the original Required Plugin nodes.

Additional info

  • if override knob is having the same name but different value, value is overriten
  • if override knob is not having its equivalent in original knobs, it is added
  • if override knob is having matching equivalent in original knobs and having empty value, it is removed from original knobs.

Testing notes:

  1. Start testing workfile in nuke
  2. go to Studio settings project_anatomy/imageio/nuke/nodes/overrideNodes at your project
  3. configure new override similary to the image, and save settings
    image
  4. in nuke go to openpype/create/Create Write Render, set Subset to Boho and Create
  5. Select the node and CTRL+Enter to see content of render group. Double click at write node and see properties bin. It should look similar to following image, if your colorspace was originaly defined as ACES
    image
  6. now try to create again but Subset name as Main and repeate step 5 and look to project_anatomy/imageio/nuke/nodes/requiredNodes/0/knobs and compare. It shold be set exactly as it is in settings.

@ynbot
Copy link
Contributor

ynbot commented Apr 28, 2022

@jakubjezek001 jakubjezek001 added the type: enhancement Enhancements to existing functionality label Apr 28, 2022
Copy link

@hound hound bot left a comment

Choose a reason for hiding this comment

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

Some files could not be reviewed due to errors:

Traceback (most recent call last):
Traceback (most recent call last):
  File "/usr/local/bin/flake8", line 8, in 
    sys.exit(main())
  File "/usr/local/lib/python3.8/dist-packages/flake8/main/cli.py", line 18, in main
    app.run(argv)
  File "/usr/local/lib/python3.8/dist-packages/flake8/main/application.py", line 393, in run
    self._run(argv)
  File "/usr/local/lib/python3.8/dist-packages/flake8/main/application.py", line 381, in _run
    self.run_checks()
  File "/usr/local/lib/python3.8/dist-packages/flake8/main/application.py", line 300, in run_checks
    self.file_checker_manager.run()
  File "/usr/local/lib/python3.8/dist-packages/flake8/checker.py", line 331, in run
    self.run_serial()
  File "/usr/local/lib/python3.8/dist-packages/flake8/checker.py", line 315, in run_serial
    checker.run_checks()
  File "/usr/local/lib/python3.8/dist-packages/flake8/checker.py", line 598, in run_checks
    self.run_ast_checks()
  File "/usr/local/lib/python3.8/dist-packages/flake8/checker.py", line 502, in run_ast_checks
    for (line_number, offset, text, check) in runner:
  File "/usr/local/lib/python3.8/dist-packages/flake8_django/checker.py", line 56, in run
    parser.visit(self.tree)
  File "/usr/lib/python3.8/ast.py", line 363, in visit
    return visitor(node)
  File "/usr/lib/python3.8/ast.py", line 371, in generic_visit
    self.visit(item)
  File "/usr/local/lib/python3.8/dist-packages/flake8_django/checker.py", line 39, in visit_ClassDef
    self.capture_issues_visitor('ClassDef', node)
  File "/usr/local/lib/python3.8/dist-packages/flake8_django/checker.py", line 33, in capture_issues_visitor
    self.generic_visit(node)
  File "/usr/lib/python3.8/ast.py", line 373, in generic_visit
    self.visit(value)
  File "/usr/local/lib/python3.8/dist-packages/flake8_django/checker.py", line 36, in visit_Call
    self.capture_issues_visitor('Call', node)
  File "/usr/local/lib/python3.8/dist-packages/flake8_django/checker.py", line 30, in capture_issues_visitor
    issues = checker.run(node)
  File "/usr/local/lib/python3.8/dist-packages/flake8_django/checkers/render.py", line 22, in run
    if isinstance(arg, ast.Call) and arg.func.id == 'locals':
AttributeError: 'Attribute' object has no attribute 'id'

Copy link

@hound hound bot left a comment

Choose a reason for hiding this comment

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

Some files could not be reviewed due to errors:

Traceback (most recent call last):
Traceback (most recent call last):
  File "/usr/local/bin/flake8", line 8, in 
    sys.exit(main())
  File "/usr/local/lib/python3.8/dist-packages/flake8/main/cli.py", line 18, in main
    app.run(argv)
  File "/usr/local/lib/python3.8/dist-packages/flake8/main/application.py", line 393, in run
    self._run(argv)
  File "/usr/local/lib/python3.8/dist-packages/flake8/main/application.py", line 381, in _run
    self.run_checks()
  File "/usr/local/lib/python3.8/dist-packages/flake8/main/application.py", line 300, in run_checks
    self.file_checker_manager.run()
  File "/usr/local/lib/python3.8/dist-packages/flake8/checker.py", line 331, in run
    self.run_serial()
  File "/usr/local/lib/python3.8/dist-packages/flake8/checker.py", line 315, in run_serial
    checker.run_checks()
  File "/usr/local/lib/python3.8/dist-packages/flake8/checker.py", line 598, in run_checks
    self.run_ast_checks()
  File "/usr/local/lib/python3.8/dist-packages/flake8/checker.py", line 502, in run_ast_checks
    for (line_number, offset, text, check) in runner:
  File "/usr/local/lib/python3.8/dist-packages/flake8_django/checker.py", line 56, in run
    parser.visit(self.tree)
  File "/usr/lib/python3.8/ast.py", line 363, in visit
    return visitor(node)
  File "/usr/lib/python3.8/ast.py", line 371, in generic_visit
    self.visit(item)
  File "/usr/local/lib/python3.8/dist-packages/flake8_django/checker.py", line 39, in visit_ClassDef
    self.capture_issues_visitor('ClassDef', node)
  File "/usr/local/lib/python3.8/dist-packages/flake8_django/checker.py", line 33, in capture_issues_visitor
    self.generic_visit(node)
  File "/usr/lib/python3.8/ast.py", line 373, in generic_visit
    self.visit(value)
  File "/usr/local/lib/python3.8/dist-packages/flake8_django/checker.py", line 36, in visit_Call
    self.capture_issues_visitor('Call', node)
  File "/usr/local/lib/python3.8/dist-packages/flake8_django/checker.py", line 30, in capture_issues_visitor
    issues = checker.run(node)
  File "/usr/local/lib/python3.8/dist-packages/flake8_django/checkers/render.py", line 22, in run
    if isinstance(arg, ast.Call) and arg.func.id == 'locals':
AttributeError: 'Attribute' object has no attribute 'id'

@jakubjezek001 jakubjezek001 merged commit b8649c5 into develop Apr 29, 2022
@jakubjezek001 jakubjezek001 deleted the feature/OP-2998_Nuke-render-instance-with-subset-name-filtered-overrides branch April 29, 2022 08:25
@jrsndl
Copy link
Collaborator

jrsndl commented Apr 29, 2022

Works nicely for string knob overrides. It ignores boolean settings, and fails on integer settings.
It expects first character to be uppercase in the settings, to match to the Subset in the Instance Creator.

@jakubjezek001 jakubjezek001 restored the feature/OP-2998_Nuke-render-instance-with-subset-name-filtered-overrides branch May 2, 2022 14:41
@mkolar mkolar deleted the feature/OP-2998_Nuke-render-instance-with-subset-name-filtered-overrides branch May 30, 2022 08:05
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
type: enhancement Enhancements to existing functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants