Extract ControlNet Data (Texturaizer)
Pull one ControlNet's settings out of Blender's exported list
- cn_data
- type
- model
- preprocesed image
- strength
- start
- end
If Texturaizer_ApplyControlNets is the "just run everything" node, this is the manual-control version. Blender can export a whole list of ControlNets for one render - a depth pass here, a canny pass there, each with its own strength and step range - and this node reaches into that list by index and hands you back one entry's settings as individual, wireable values instead of a black-box dictionary.
How it works
cn_data is the dictionary Texturaizer_GetCNData reads out of Blender's export - a list of ControlNet configurations under the hood. This node's index field picks which one of those entries to unpack. Rather than passing the whole thing straight into a bundled apply node, you get each field broken out on its own, which means you can inspect a single ControlNet's config, override one field before applying it, or build your own custom apply chain instead of relying on Texturaizer_ApplyControlNets to handle everything internally.
The inputs and outputs that matter
cn_data- the ControlNet dictionary, fromTexturaizer_GetCNData.index(default 0) - which entry in the list to pull out. Index 0 is the first ControlNet Blender configured for this render; bump it up to reach the second, third, and so on if you've got multiple stacked.
Outputs, all describing that one ControlNet entry:
type- the conditioning type as a string (canny, depth, pose - whatever preprocessor Blender used to generate it).model- the ControlNet model name for this entry, meant to feed a loader likeTexturaizer_CachedCNLoader.preprocesed image- the already-preprocessed conditioning image (note the pack's own spelling on this output name) - Blender renders the depth/canny/pose pass itself, so you're not running a separate preprocessor node in ComfyUI at all.strength- how strongly this one ControlNet influences generation.start/end- the step range (0.0–1.0) this ControlNet is active for.
Wire preprocesed image, model (via a loader), strength, start and end into a standard ControlNet Apply Advanced node if you're building the apply chain by hand instead of using Texturaizer_ApplyControlNets.
Installing it
ComfyUI Manager → search Texturaizer → Install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/LatentSpaceDirective/ComfyUI-Texturaizer
then restart ComfyUI. No extra dependencies - this is pure data unpacking, the actual ControlNet weights still come from your own controlnet folder.
Where people get burned
There's no bounds-checking mentioned anywhere in the schema, so setting index higher than the number of ControlNets Blender actually exported is the obvious failure mode - if a run errors out or comes back with empty fields right after this node, check the index against how many ControlNets you actually configured on the Blender side before assuming anything else is wrong. And because the preprocessed image arrives already generated by Blender rather than by a ComfyUI preprocessor node, swapping preprocessing strategy (a different depth model, a different canny threshold) means going back into Blender's render settings, not tweaking anything in this ComfyUI graph - this node reports what was already baked, it doesn't regenerate it.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| cn_data | DICTIONARY | — | |
| index | INT | 0 | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| type | STRING | — |
| model | — | |
| preprocesed image | IMAGE | — |
| strength | FLOAT | — |
| start | FLOAT | — |
| end | FLOAT | — |