Compositor¶
Part of the post skill: these tools appear once it is loaded — by blender_enable_skill with post, or by find_tool when a search returns one of them.
blender_compositor ¶
Reads or edits the compositor by hand: list nodes, reset to Render Layers → output, add a node with inputs and settings, link sockets, remove a node. Render passes appear as outputs of the Render Layers node. Grain, glare and the rest of the post stack come from blender_lens_effects. Applies to every render from then on.
only adds · every call adds · stays inside Blender.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
action |
string |
— | info |
info (list nodes and links), clear (reset to Render Layers → output), add_node, link, remove_node. |
type |
string? |
— | null |
add_node: compositor node bl_idname or suffix: Blur, Glare, Filter, ColorBalance, HueSat, BrightContrast, Denoise, Lensdist, Defocus, Kuwahara, AlphaOver, Viewer, OutputFile, RLayers; Mix, Math and Noise from the shader set; Composite is the output. |
name |
string? |
— | null |
add_node: name for the node; remove_node: node to delete. |
inputs |
object? |
— | null |
add_node: input sockets by name, e.g. {"Size": 10}; menu sockets take their label, e.g. Filter {"Type": "Box Sharpen"}. |
properties |
object? |
— | null |
add_node: settings by Python name, e.g. {"filter_type": "GAUSS"}, {"glare_type": "FOG_GLOW"}. |
location |
array? |
— | null |
add_node: [x, y] position in the editor. |
fromNode |
string? |
— | null |
link: source node name. |
fromSocket |
string? |
— | null |
link: output socket on the source, e.g. Image, Depth, Normal. |
toNode |
string? |
— | null |
link: target node name. |
toSocket |
string? |
— | null |
link: input socket on the target. |
JSON Schema
{
"type": "object",
"properties": {
"action": {
"description": "info (list nodes and links), clear (reset to Render Layers \u2192 output), add_node, link, remove_node.",
"type": "string",
"default": "info"
},
"type": {
"description": "add_node: compositor node bl_idname or suffix: Blur, Glare, Filter, ColorBalance, HueSat, BrightContrast, Denoise, Lensdist, Defocus, Kuwahara, AlphaOver, Viewer, OutputFile, RLayers; Mix, Math and Noise from the shader set; Composite is the output.",
"type": [
"string",
"null"
],
"default": null
},
"name": {
"description": "add_node: name for the node; remove_node: node to delete.",
"type": [
"string",
"null"
],
"default": null
},
"inputs": {
"description": "add_node: input sockets by name, e.g. {\u0022Size\u0022: 10}; menu sockets take their label, e.g. Filter {\u0022Type\u0022: \u0022Box Sharpen\u0022}.",
"type": [
"object",
"null"
],
"default": null
},
"properties": {
"description": "add_node: settings by Python name, e.g. {\u0022filter_type\u0022: \u0022GAUSS\u0022}, {\u0022glare_type\u0022: \u0022FOG_GLOW\u0022}.",
"type": [
"object",
"null"
],
"default": null
},
"location": {
"description": "add_node: [x, y] position in the editor.",
"type": [
"array",
"null"
],
"items": {
"type": "number"
},
"default": null
},
"fromNode": {
"description": "link: source node name.",
"type": [
"string",
"null"
],
"default": null
},
"fromSocket": {
"description": "link: output socket on the source, e.g. Image, Depth, Normal.",
"type": [
"string",
"null"
],
"default": null
},
"toNode": {
"description": "link: target node name.",
"type": [
"string",
"null"
],
"default": null
},
"toSocket": {
"description": "link: input socket on the target.",
"type": [
"string",
"null"
],
"default": null
}
}
}
blender_file_output ¶
Configures a File Output node in the compositor: a folder, a format with its depth and codec, and one slot per render pass wired from the Render Layers node, each with an optional format of its own. Passes that are off get switched on. A multilayer EXR keeps every slot in one file; other formats write one file per slot.
only adds · every call adds · stays inside Blender.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
action |
string |
— | configure |
configure (create or update the node), info (list File Output nodes), remove. |
name |
string? |
— | null |
Node name; File Output otherwise. Several nodes write to several places. |
directory |
string? |
— | null |
Absolute folder the files go to. |
fileName |
string? |
— | null |
File name prefix before the slot name and frame number, e.g. shot01_. |
fileFormat |
string? |
— | null |
OPEN_EXR_MULTILAYER (every slot in one file), OPEN_EXR, PNG, JPEG, TIFF, WEBP, DPX. |
colorDepth |
integer? |
— | null |
Bits per channel: 8 or 16 for PNG and TIFF, 16 (half) or 32 (full float) for EXR, 8, 10 or 12 for video and DPX. |
exrCodec |
string? |
— | null |
EXR compression: ZIP (lossless, the default), PIZ, ZIPS, RLE, PXR24 (lossy for 32-bit), DWAA and DWAB (lossy, small), B44, B44A, HTJ2K or NONE. |
slots |
array? |
— | null |
Slots, one per pass, replacing the current ones: pass names such as Image, Depth, Normal, Mist, AO, Vector, Position, UV, Emit, Env, Shadow, IndexOB, CryptoObject00, or objects {"pass": "Depth", "name": "Z", "file_format": "OPEN_EXR", "color_depth": 32, "save_as_render": false}; save_as_render applies the view transform, off for data passes and for EXR unless asked. |
allPasses |
boolean |
— | false |
One slot for every pass the Render Layers node offers. |
JSON Schema
{
"type": "object",
"properties": {
"action": {
"description": "configure (create or update the node), info (list File Output nodes), remove.",
"type": "string",
"default": "configure"
},
"name": {
"description": "Node name; File Output otherwise. Several nodes write to several places.",
"type": [
"string",
"null"
],
"default": null
},
"directory": {
"description": "Absolute folder the files go to.",
"type": [
"string",
"null"
],
"default": null
},
"fileName": {
"description": "File name prefix before the slot name and frame number, e.g. shot01_.",
"type": [
"string",
"null"
],
"default": null
},
"fileFormat": {
"description": "OPEN_EXR_MULTILAYER (every slot in one file), OPEN_EXR, PNG, JPEG, TIFF, WEBP, DPX.",
"type": [
"string",
"null"
],
"default": null
},
"colorDepth": {
"description": "Bits per channel: 8 or 16 for PNG and TIFF, 16 (half) or 32 (full float) for EXR, 8, 10 or 12 for video and DPX.",
"type": [
"integer",
"null"
],
"default": null
},
"exrCodec": {
"description": "EXR compression: ZIP (lossless, the default), PIZ, ZIPS, RLE, PXR24 (lossy for 32-bit), DWAA and DWAB (lossy, small), B44, B44A, HTJ2K or NONE.",
"type": [
"string",
"null"
],
"default": null
},
"slots": {
"description": "Slots, one per pass, replacing the current ones: pass names such as Image, Depth, Normal, Mist, AO, Vector, Position, UV, Emit, Env, Shadow, IndexOB, CryptoObject00, or objects {\u0022pass\u0022: \u0022Depth\u0022, \u0022name\u0022: \u0022Z\u0022, \u0022file_format\u0022: \u0022OPEN_EXR\u0022, \u0022color_depth\u0022: 32, \u0022save_as_render\u0022: false}; save_as_render applies the view transform, off for data passes and for EXR unless asked.",
"type": [
"array",
"null"
],
"default": null
},
"allPasses": {
"description": "One slot for every pass the Render Layers node offers.",
"type": "boolean",
"default": false
}
}
}
blender_cryptomatte_matte ¶
Adds a Cryptomatte node that mattes the named objects, materials or assets, switching the cryptomatte pass on, and optionally writes the matte through a File Output slot. Its Matte output isolates them for grading or replacement.
only adds · every call adds · stays inside Blender.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
names |
array |
yes | — | Objects, materials or assets to matte, by name. |
layer |
string |
— | object |
object (the default), material or asset: which cryptomatte layer the names live in. |
name |
string? |
— | null |
Name for the Cryptomatte node; derived from the names otherwise. |
output |
string? |
— | null |
File Output node to write the matte through; created when missing. |
directory |
string? |
— | null |
Folder for that File Output node. |
slot |
string? |
— | null |
Slot name in the File Output node; Matte otherwise. |
scene |
string? |
— | null |
Scene to act on; the current scene otherwise. |
JSON Schema
{
"type": "object",
"properties": {
"names": {
"description": "Objects, materials or assets to matte, by name.",
"type": "array",
"items": {
"type": "string"
}
},
"layer": {
"description": "object (the default), material or asset: which cryptomatte layer the names live in.",
"type": "string",
"default": "object"
},
"name": {
"description": "Name for the Cryptomatte node; derived from the names otherwise.",
"type": [
"string",
"null"
],
"default": null
},
"output": {
"description": "File Output node to write the matte through; created when missing.",
"type": [
"string",
"null"
],
"default": null
},
"directory": {
"description": "Folder for that File Output node.",
"type": [
"string",
"null"
],
"default": null
},
"slot": {
"description": "Slot name in the File Output node; Matte otherwise.",
"type": [
"string",
"null"
],
"default": null
},
"scene": {
"description": "Scene to act on; the current scene otherwise.",
"type": [
"string",
"null"
],
"default": null
}
},
"required": [
"names"
]
}