Node Preview - Rendered Thumbnails for Shader Nodes

Hi,

The official Blender 2.92 uses Python 3.7.7, which is supported by my addon.
You probably installed Blender via your OS package manager, those versions sometimes use different Python versions.

There are two ways to fix this:

  • Easy way: download the official 2.92 Linux release from here: https://download.blender.org/release/Blender2.92/blender-2.92.0-linux64.tar.xz
    Extract and run the “blender” executable.
  • Harder way: Download the source code zip archive of Node Preview and compile the worker module yourself against the required Python version (3.8 in your case). There’s a compilation script for Linux, so it’s not super complicated, but it’s best if you have used the command line a bit if you want to do this. If you need any further help with it, you can also contact me via the Blender Market messaging system.

Let me know if this helps.
Best,
Simon

1 Like

Thanks a lot! you are always so kindly! I will download your blender’s link and change my installation.
Good luck for you.
Spirou4D

Node Preview v1.13 is out, with the following improvements:

  • Fixed background process sometimes not starting on macOS
  • Fixed a minor bug where an operator poll function would raise an Exception instead of simply returning False
2 Likes

Do previews appear for anyone in 3.5? I don’t know if problem is on my end or addon needs update

Thanks for letting me know, I’ll check.

It’s working fine in 3.5 here. Can you send me a testscene that’s showing the problem, and maybe check the Blender console for errors?
You can also contact me via the Blender Market messaging system.

Important for macOS users:

If the addon doesn’t work in Blender 3.5 on macOS, do the following:

  1. Open the User Preferences
  2. Go to the System tab
  3. Switch the GPU Back end from “Metal” to “OpenGL”

This is a temporary workaround until the reason for the problems on Metal is fixed.

1 Like

Node Preview v1.15 brings the following improvements:

  • Added support for UDIM images
  • Added a new sphere preview mode. The default shortcut to switch between plane and sphere modes is Ctrl+P
  • Eevee is now used to render the previews if Eevee is the active render engine. This means that Eevee-only nodes like “Shader to RGB” or “Specular BSDF” are now supported.
  • Added a popover menu for Node Preview in the node editor header (button on the right)
  • The addon now uses the new GPU module instead of the deprecated BGL module. This makes it more future-proof (as BGL will be removed at some point) and also solves a problem that happened on macOS with the new Metal backend.
  • Fixed addon not loading in Blender 3.6 alpha due to a change in the Blender API (script_directories)

The new sphere preview mode is especially useful on nodes with effects only seen on a 3D object, like the examples below:

The new popover menu can be found on the right side of the node editor header.
It contains the most useful operators to make them more visible (of course they all have keyboard shortcuts, which is the faster way to use them). It also has a button to quickly open the addon preferences.

You can get Node Preview on Blender Market and Gumroad.

7 Likes

Regarding the Show Previews icon.
2023-07-13_140240
Is there a way to assign a hotkey on it?

I could find only one option for doing it. Via another addon - Pie Menu Editor, as a switcher.

However, there is a problem - it works only for the current material:
bpy.data.materials[“Metal01”].node_tree.node_preview.enabled = False
bpy.data.materials[“Metal01”].node_tree.node_preview.enabled = True

Is there some sort “AnyMaterial” record/command instead of using current material name “Metal01”?

Hi,

If you can use custom scripts with Pie Menu Editor, you could use either this, to disable/enable the whole addon:

# Note: The name is the folder name where the addon is
import addon_utils
addon_utils.disable("NodePreview")
addon_utils.enable("NodePreview")

Or, the “AnyMaterial” mechanism you wanted:

import bpy
for mat in bpy.data.materials:
    if mat.node_tree:
        mat.node_tree.node_preview.enabled = False
    
1 Like

Hi, B.Y.O.B
Thank you for the answer! :+1:
I’ve tried the second variant and here is the result:


It’s quite convenient!
But there is one nuance - it doesn’t work in edit group mode unfortunately

I have released Node Preview v1.16.
The main highlights in this version are:

  • Easier update and removal on Windows (now like most other addons)
  • Support for Blender 4.0 beta
  • Improved performance

I also made a new demo video:

Full changelog:

  • Removed the “nodepreview_worker” binary module (replaced with Blender API and numpy). This makes the addon more future-proof, because a new Python version in Blender will no longer require a re-compilation of the binary module. The best thing however is that you no longer need to follow special steps when updating or removing the addon. Performance also got better because of this (see below).
  • Added support for Float and Vector curve nodes
  • Improved performance for node groups with lots of links between their nodes
  • Improved image texture loading performance in the background process (e.g. from 3s to 0.6s loading time for a giant 40 megapixel image)
  • Improved render result loading performance in the background process
  • Added support for Raw and Non-Color colorspaces of image textures
  • Fixed addon not working if another addon registers a buggy class
  • Fixed a text rendering problem in Blender 4.0 beta caused by a change in the Blender API
  • Fixed problems with node groups in Blender 4.0 beta caused by changes in the Blender API
7 Likes

File “C:\Users\CP\AppData\Roaming\Blender Foundation\Blender\4.0\scripts\addons\NodePreview\background.py”, line 287, in do
exec(script)
File “”, line 110, in
TypeError: NodeTreeInterface.new_socket(): error with keyword argument “socket_type” - enum “NodeSocketFloatFactor” not found in (‘NodeSocketVector’, ‘NodeSocketShader’, ‘NodeSocketFloat’, ‘NodeSocketColor’)

@chen-pan I was getting the same error here.

Check if you have custom nodegroups in the nodetree.
For some reason, some sockets of nodegroups created in older version, don’t have a Type assigned when opened in Blender 4.0

image

But I don’t have node groups in this material, or do I have to check all the node groups in my blender?

I would start with a new scene, with one material, with no groups, and see what you get.

Make the scene as simple as possible so that it’s easier to determine where the problem might be.

Hi,

I can reproduce the problem and I’m working on a fix. To me, this looks like a bug in Blender - either an oversight in the versioning code, or a limitation in the new node group interface API. I’ll let you know when I found a workaround.

2 Likes

can you disable the updates in animation playback … sometimes its important(rarely) but most of the time it just shaves off a few frames from my playbackspeed

Node Preview is currently 30% off as part of Blender Market’s Cyber Sale!

I’ve released v1.17 with a hotfix for the node group errors.

The Blender API for creating node group sockets was changed and now only allows 4 types of sockets to be created (vector, shader, float, color). All other socket types were leading to errors.

Note that while this fix should make Node Preview usable again in 99% of cases, there might still be some edge cases where a node group uses an exotic socket type that is now unsupported and can’t be emulated with the 4 basic types that we are now limited to. The only example I currently know of are string sockets, like on the principled volume node, but there might be more. In such a case, the preview thumbnail for the node group might not match the rendered result.

Please contact me about any issues you find in the addon.

1 Like

I just added this as an option in the user preferences. It will be part of the next release.

1 Like