NodeTable v2.5


 
This location is for Registered Users Only.
Perhaps you need to login or register.
Contributor: Mitja Müller-Jend
A spreadsheet to display and edit multiple nodes at a time
Requirements:
13.1, 13.0, 12.2, 12.1, 12.0, 11.3, 11.2, 11.1, 11 or later
Linux, Mac, Windows
28 Apr 2022
934

demo1 1

Features:

  • View and edit multiple nodes at a time (click anywhere or hit enter/return to commit new value, press esc to cancel editing)
  • Filter by node classes, node names and knob names (comma seperated).
  • Click on name selects node and shows it in node graph.
  • Double click on name opens properties bin.

 

Versions:

v2.5:

  • Fix a python-3 unicode issue (thanks Erik Carlson)

v2.4:

  • Fix Nuke crashing on startup when the Node Spreadsheet widget is saved to the default workspace.
  • Filter and layout appearance

v2.3:

  • Fix decimal precision of Array_Knob's editor
  • Fix AttributeError: 'PySide2.QtCore .QCoreApplication' object has no attribute 'palette' on Nuke 12.

v2.2

  • Fix displaying an Array_Knob on a 3D Node causes Nuke to crash.

v2.1

  • Implemented editing of the ColorChip_Knob (node color).
  • Minor bug fixes and code cleanup.

v2.0 (download on bitbucket only)

  • Implement multi-edit of boolean knobs via a checkbox.
  • New major version due to breaking change: Update package structure. Renamed `NodeTable` to `node_table`.
    • This changes the menu.py integration:

from nukescripts import panels
def get_node_table_widget():
    from node_table import view as node_table_view
    return node_table_view.NodeTableWidget(nuke.selectedNodes())

panels.registerWidgetAsPanel('get_node_table_widget', 'Node Spreadsheet','de.filmkorn.NodeSpreadsheet', False)

v1.4

  • Added option to menu bar to load selected Nodes inside of selected Groups.

v1.3

  • Bug fixes, performance and code style improvements.
  • Support for format knob.
  • Colums are resized after filtering.
  • Filter completer prefers shorter names and is now case insensitive.
  • Added warning when loading a large number of nodes.

v1.2

v1.1

  • colored rows
  • added filter for disabled and hidden knobs
  • bugfixes

v1.0:

  • initial release

Installation:

1. download Qt.py and copy only the Qt.py file into your .nuke folder or PYTHON_PATH

2.  You can download this tool from one of two sources:

    • nukepedia: Make sure to copy the NodeTable folder (as is - not individual files) into your .nuke folder or PYTHON_PATH.
    • gitlab: Click `download repository` to download the latest version. Extract the files and place them into a `NodeTable` folder. You can also clone the repository: 
    •  git clone https://[email protected]/filmkorn/nodetable.git NodeTable

3. add to your menu.py:

from nukescripts import panels
def get_node_table_widget():
    from node_table import view as node_table_view
    return node_table_view.NodeTableWidget(nuke.selectedNodes())

panels.registerWidgetAsPanel('get_node_table_widget', 'Node Spreadsheet','de.filmkorn.NodeSpreadsheet', False)

Development Status:

  • Known bugs:
    • Shuffle nodes 'in' knobs are filtered as hidden (Nuke bug).
  • Some knob classes can NOT be edited yet.
  • Please report suggestions, bugs or feature requests on gitlab!

 

MIT
Please login in order to download these files.

Comments   

 
0 # Frank Rueter 2017-09-06 02:04
nice!!! I have an unfinished version of this sitting on my server and never had the time to polish it off.
Can you make the rows have the same colour as the nodes?
I have the code sitting here for that part if you want it (ping me in email if you do)
 
 
0 # kito vfx 2017-09-06 06:20
Quoting Frank Rueter:
nice!!! I have an unfinished version of this sitting on my server and never had the time to polish it off.
Can you make the rows have the same colour as the nodes?
I have the code sitting here for that part if you want it (ping me in email if you do)

Yeah..it would be awesome if the rows have the same color as the nodes.
 
 
0 # Frank Rueter 2017-09-06 22:42
In case you want to incorporate this into your script, here are the two methods I use:
def __setColours(se lf):
'''get the node's actual tile colour'''
# bg colour
tileColour = self.node['tile _color'].value( ) or nuke.defaultNod eColor(self.nod e.Class())
bgCol = QtGui.QColor(*t ileToRGB(tileCo lour))
self.setBackground(QtGui.QBrush(bgCol))

def tileToRGB(v):
'''
__tileToRGB(v) -> tuple
Returns a tuple representing Red, Green, and Blue values
in a 0-255 range, from a 32 bit int as returned by Nuke's "tile_color" knob.
Keyword arguments:
v -- a 32 bit int as returned by Nuke's "tile_color" knob

Thanks to Ivan Busquets for this snippet
'''
R = (0xFF & v >> 24)
G = (0xFF & v >> 16)
B = (0xFF & v >> 8)
return R,G,B
 
 
0 # kito vfx 2017-09-06 06:19
this really helpfull ..thank you Mr.Mitja
 
 
0 # Frank Rueter 2017-09-06 06:56
Looks like it's only working in Nuke 11 as the knob_editors.py imports PySide2 directly rather than using Qt.py
 
 
0 # Frank Rueter 2017-09-06 22:41
Just to confirm: If you change the import statement in knob_editors.py to use Qt instead of PySide2 all seems to work well in Nuke 10.5.
 
 
0 # Mitja Müller-Jend 2017-09-08 19:19
Thanks for the input. Fixed the import and added coloured rows.
 
 
0 # Frank Rueter 2017-09-09 03:49
great, thanks!
 
 
0 # li zhaohui 2017-09-09 18:54
The panel is empty! ImportError: No module named NodeTable
 
 
0 # Frank Rueter 2017-09-09 22:27
You need to make sure the "NodeTable" folder is in your NUKE_PATH or inside your ~/.nuke directory
 
 
0 # li zhaohui 2017-09-11 03:18
ImportError: cannot import name knob_editors
 
 
0 # Mitja Müller-Jend 2017-10-18 04:45
Make sure to copy the whole folder, not just its content.
 
 
0 # Mohamed Abuzeid 2017-09-11 16:50
please make tutorial for installation , it's not easy , there's something wrong . Thanks .
 
 
0 # Frank Rueter 2017-09-11 22:37
It works just fine for me. Can you describe your installation steps so we can identify the issue?
 
 
0 # Nitant Karnik 2017-10-18 02:12
Hello, I can't seem to get the panel to show up in nuke. I should be able to right-click on the pane/tab area and see "Node Spreadsheet" in the list of windows right?

All the files are in the ~/.nuke directory and I don't see any errors
 
 
0 # Mitja Müller-Jend 2017-10-18 04:50
Yes, you should see the 'Node Spreadsheet' in the custom windows. Don't forget to add just the Qt.py file (https://github.com/mottosso/Qt.py/releases).
 
 
0 # Andreé Knutsson 2018-04-11 13:34
Funny enough, I get an error from NuBridge when I add the following pythonPath in our shared init.py

*nuke.pluginAddP ath("./Python/N odeTable")*

I've copied the qt.py into NUKE_PATH

OSX version 10.9.5
Nuke version 10.5v5

from terminal*
------------------------------------
Traceback (most recent call last):
File "*~"Path to nubridge pythonPath"*~/N uBridge/src/con troller/init.py ", line 4, in
import Nukepedia # for logger
File "src/controller /Nukepedia.py", line 20, in init controller.Nuke pedia (src/controller /Nukepedia.c:41 571)
File "src/controller /common.py", line 37, in init controller.comm on (src/controller/common.c:14396)
ImportError: No module named NukepediaDB
-------------------------------------------------------------

Edit: Nevermind, the nuke.pluginAddP ath("./Python/N odeTable") was unnecessary.
 
 
0 # Frank Rueter 2018-04-11 23:27
So you are ok or are you still seeing the import error?
 
 
-1 # Mitja Müller-Jend 2018-04-11 23:40
It is not necessary to add `nuke.pluginAdd Path("./Python/ NodeTable")` to add this package to the plugin path. Adrée confirmed it's now working but I'm not sure why this line would mess with nuBridge.

https://bitbucket.org/filmkorn/nodetable/issues/45/nubridge-error-from-nodetable
 
 
0 # Frank Rueter 2018-04-12 00:04
Yes, that is very odd. Sometimes Python's import framework is pretty frustrating.
 
 
0 # Paul Loop 2017-09-20 17:39
Hi.Seems a great tool. But I have a problem when running.I can see a widget inside nuke, but I can't edit nodes, when I select something or entr node class nothing happens. I'm on win7 and nuke 10.5.
 
 
0 # Mitja Müller-Jend 2017-10-18 04:51
Do you see any errors? Please create a ticket here: https://bitbucket.org/filmkorn/nodetable/issues?status=new&status=open
 
 
0 # Frank Rueter 2018-06-28 23:13
Is there a way to make it deal with nested groups?
And a way to change knob values in relative way (i.e. current value * .5)?
 
 
0 # baltazar gnomonich 2019-07-11 09:59
this is a real life saver tool,
so after using few hours i notised this

bug:
cant edit/insert nubmers smaller 0.01, it automatticaly changes any value smaller than 0.01 to 0.01

https://prnt.sc/odj6ep


improvements:
would it be possible to make the number changing process similar to nuke (ctrl+left click,alt or shift), without need to click and then type or click and slow change?


https://gph.is/g/ZPO2YB7
 
 
0 # Mitja Müller-Jend 2019-10-28 04:45
Hi Baltazar,

Thank you for your feedback. The bug has been fixed since: https://gitlab.com/filmkorn/nuke_node_table/-/archive/master/nuke_node_table-master.zip

I agree, it would be great to have the same knob editing behaviour in the node table as in the properties bin.
 
 
0 # li zhaohui 2019-10-27 13:44
nuke12 Not working properly
 
 
0 # li zhaohui 2019-10-27 18:18
File "C:/Program Files/Nuke12.0v 1/plugins\nukes cripts\panels.p y", line 153, in makeUI
self.widget = self.widgetClas s()
File "D:\ls\NodeTabl e/menu.py", line 4, in get_node_table_ widget
return node_table_view .NodeTableWidge t(nuke.selected Nodes())
File "D:\ls\NodeTabl e\node_table\vi ew.py", line 478, in __init__
self.table_mode l = model.NodeTable Model()
File "D:\ls\NodeTabl e\node_table\mo del.py", line 366, in __init__
self.palette = get_palette() # type: QtGui.QPalette
File "D:\ls\NodeTabl e\node_table\mo del.py", line 48, in get_palette
return app.palette(wid get)
 
 
0 # Mitja Müller-Jend 2019-10-28 04:41
Hi Li,

I tried it in Nuke 12 and could not replicate this issue. The actual error message is missing in the traceback you posted. Can you post the error you are seeing in script editor or terminal, please?
 
 
0 # Frank Rueter 2020-01-31 01:47
I'm getting the same error:
Traceback (most recent call last):
File "/usr/local/Nuk e12.0v3/plugins /nukescripts/pa nels.py", line 153, in makeUI
self.widget = self.widgetClas s()
File "/ohufx/pipelin e/tools/nuke/py thon/node_table _v2.2/menu.py", line 4, in get_node_table_ widget
return node_table_view .NodeTableWidge t(nuke.selected Nodes())
File "/ohufx/pipelin e/tools/nuke/py thon/node_table _v2.2/node_tabl e/view.py", line 478, in __init__
self.table_mode l = model.NodeTable Model()
File "/ohufx/pipelin e/tools/nuke/py thon/node_table _v2.2/node_tabl e/model.py", line 366, in __init__
self.palette = get_palette() # type: QtGui.QPalette
File "/ohufx/pipelin e/tools/nuke/py thon/node_table _v2.2/node_tabl e/model.py", line 48, in get_palette
return app.palette(widget)
AttributeError: 'PySide2.QtCore .QCoreApplicati on' object has no attribute 'palette'
 
 
0 # Mitja Müller-Jend 2020-02-02 17:58
Nuke creates a QCoreApplicatio n in terminal mode mode (instead of a QApplication) which probably means you added the menu integration into the init.py instead of the menu.py?
 
 
0 # Mitja Müller-Jend 2020-03-13 21:10
Ran into this issue now on Nuke 12.0v4 on Cent7 as well.

Seems to be caused by a bug in Qt: https://bugreports.qt.io/browse/PYSIDE-1164

Fixed in 2.3: https://gitlab.com/filmkorn/nuke_node_table/-/archive/2.3.0/nuke_node_table-2.3.0.zip

Will update the nukepedia version soon.
 
 
0 # Frank Rueter 2020-03-18 01:05
Downloaded 2.3 and added the unzipped folder to my plugin path, but this makes Nuke segfault on start up now.
 
 
0 # Frank Rueter 2020-03-18 01:09
Ah, ignore me, adding the plugin path in the menu.py makes it work (rather than the init.py). Nice!
 
 
0 # Mitja Müller-Jend 2020-03-18 03:04
Quoting Frank Rueter:
Ah, ignore me, adding the plugin path in the menu.py makes it work (rather than the init.py). Nice!

Looks like Qt crashes Nuke if the panel is saved to the default layout. Unfortunately this bisects to the workaround to get the QApplication instead of the QCoreApplicatio n. Furtunately the default palette also seems to work and returns the same values as the QApplication's palette. Will update shortly.
 
 
0 # Frank Rueter 2020-03-18 03:24
Great, thanks. Got more crashes on startup after I wrote the above (even when just using menu.py) but yes, I do have the node table in my startup workspace, so hopefully your suggestion will fix that. Thanks!
 
 
0 # Mitja Müller-Jend 2020-03-19 17:03
The crashing should be fixed in v2.4
 
 
0 # Frank Rueter 2020-03-20 03:57
beauty, seems to work again now, thanks!
 
 
0 # nader salah 2020-03-16 15:14
really helpful ,thank you
 
 
0 # Rion . 2020-03-17 09:16
hey mate,
is not working for me. my Nuke version is 10.05

can you please help.
 
 
0 # Mitja Müller-Jend 2020-03-17 23:55
Hi Rion, what exactly is not working for you? Do you see any error in the terminal or script editor?
 
 
0 # silly calvin 2020-03-21 23:28
Very nice, good work!
 
 
+1 # Nitant Karnik 2022-04-15 23:23
Hi, I love NodeTable! Do you happen to have an updated version for Python 3?
 
 
0 # Mitja Müller-Jend 2022-04-28 05:44
Hi Nitant, mind trying the new version 2.5?
 
 
0 # John Martini 2022-11-26 15:43
Great stuff
 

You have no rights to post comments

We have 2672 guests and 96 members online