You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/changelog.qmd
+11-2Lines changed: 11 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,17 @@
2
2
title: Changelog
3
3
---
4
4
5
+
## v520.10.0 - 2026-08-03
6
+
7
+
### Fixes
8
+
-**Asset generation exposes every interface input** — introspecting an asset node group skipped inputs that Blender's socket-usage inference marks inactive under the group's current node options (e.g. a Menu Switch selection deactivating the inputs of the branches not taken), so those parameters were silently missing from the generated `__init__`. All interface inputs are now generated; the bundled essentials APIs were regenerated and pick up the previously hidden menu-gated inputs (e.g. the compositor `ChromaticAberration` gains `axis`, `center`, `samples` and `fit`).
9
+
10
+
## v520.9.0 - 2026-07-22
11
+
12
+
### Enhancements
13
+
- Generated asset classes now carry numpy-style docstrings (description, `Parameters`, `Inputs`, `Outputs`) built from the asset's own socket tooltips, so editors show documentation alongside the type hints. Pass `docstrings=False` to `generate_asset_api` (or `--no-docstrings` to `python -m nodebpy.assets`) for the terser output.
14
+
- Menu sockets on generated asset classes are typed with the items they actually offer — `shape: InputMenu | Literal["Line", "Circle", "Curve", "Transform"]` — matching how menu sockets are already typed on the built-in nodes.
- Changed the linking of asset node groups for the `_AssetGroupMixin` to be 'linked & packed' by default
45
-
- Generated asset classes now carry numpy-style docstrings (description, `Parameters`, `Inputs`, `Outputs`) built from the asset's own socket tooltips, so editors show documentation alongside the type hints. Pass `docstrings=False` to `generate_asset_api` (or `--no-docstrings` to `python -m nodebpy.assets`) for the terser output.
46
-
- Menu sockets on generated asset classes are typed with the items they actually offer — `shape: InputMenu | Literal["Line", "Circle", "Curve", "Transform"]` — matching how menu sockets are already typed on the built-in nodes.
The position the transformations pivot around, in normalized coordinates. 0 means the lower left corner and 1 means the upper right corner of the image.
44
+
samples : InputInteger
45
+
The number of samples used to compute the blur. The more samples the smoother the result, at the expense of more compute time. The actual number of samples is two to the power of this input, so it increases exponentially.
46
+
fit : InputBoolean
47
+
Scale the image such that it fits entirely in the frame, leaving no empty spaces at the corners
40
48
41
49
Inputs
42
50
------
43
51
i.image : ColorSocket
44
52
Image
45
53
i.type : MenuSocket
46
54
Different styles of aberrations
55
+
i.axis : MenuSocket
56
+
Direction of the aberration effect
47
57
i.factor : FloatSocket
48
58
The intensity of the aberration effect
59
+
i.center : VectorSocket
60
+
The position the transformations pivot around, in normalized coordinates. 0 means the lower left corner and 1 means the upper right corner of the image.
61
+
i.samples : IntegerSocket
62
+
The number of samples used to compute the blur. The more samples the smoother the result, at the expense of more compute time. The actual number of samples is two to the power of this input, so it increases exponentially.
63
+
i.fit : BooleanSocket
64
+
Scale the image such that it fits entirely in the frame, leaving no empty spaces at the corners
49
65
50
66
Outputs
51
67
-------
@@ -62,8 +78,16 @@ class _Inputs(SocketAccessor):
62
78
"""Image"""
63
79
type: MenuSocket
64
80
"""Different styles of aberrations"""
81
+
axis: MenuSocket
82
+
"""Direction of the aberration effect"""
65
83
factor: FloatSocket
66
84
"""The intensity of the aberration effect"""
85
+
center: VectorSocket
86
+
"""The position the transformations pivot around, in normalized coordinates. 0 means the lower left corner and 1 means the upper right corner of the image."""
87
+
samples: IntegerSocket
88
+
"""The number of samples used to compute the blur. The more samples the smoother the result, at the expense of more compute time. The actual number of samples is two to the power of this input, so it increases exponentially."""
89
+
fit: BooleanSocket
90
+
"""Scale the image such that it fits entirely in the frame, leaving no empty spaces at the corners"""
@@ -218,8 +256,28 @@ class FilmGrain(AssetCompositorGroup):
218
256
Amount of mixing between the effect and original image
219
257
preset : InputMenu | Literal["8 mm Caffenol", "8 mm Home Movie", "Super 8 mm", "16 mm Broadcast", "16 mm Indie Cinema", "35 mm Portra 400", "Super 35 mm", "70 mm Cinema", "Custom"]
0 commit comments