Get Segment Data (Texturaizer)
The whole segmented-prompt payload, handed over in one object
- data_optional
- data
- data_hash
The other Get * Data nodes in this pack are precise: this one gives you a prompt, that one a resolution. Get Segment Data is the blunt instrument - it reads the object's data/ai_data.json and hands you the entire dictionary back, plus a hash. It's the node you reach for when you don't know yet which field you need, or when you're feeding the pack's own data-driven conditioning nodes, which want the whole payload rather than a single sliced value.
Quick context: Texturaizer is a paid Blender addon by Luke Kratsios (LatentSpaceDirective) that exports per-object render data to ComfyUI; these nodes are its free open-source companion half. Every Get * node reads the same ai_data.json - Get Seg Data is the one that doesn't slice it.
What it outputs
Just two outputs:
data(DICTIONARY) - the full JSON, includingscene_infoplus the segment payload: local and global positive prompts,use_other_prompt, the delimiter/prefix/append rules, width/height, mask expand, mask blur, condition strength,segment_type, and the segment data itself. If you've set up segmented prompting in Blender (different prompts per object region), the whole recipe lives in this dictionary.data_hash(STRING) - the usual change-detection hash.
How it works
Internally it's Texturaizer_GetJsonData with a tweak: it computes its hash over the extracted segment data (all 18-ish fields it pulls out of the JSON), but returns the raw dictionary. That split matters - the node is telling ComfyUI "the segment-relevant stuff changed, re-run everything downstream," while handing you the full object so nothing is lost. The IS_CHANGED mechanism then does its thing: tweak segmentation in Blender, re-export, and every node fed from data re-executes.
Inputs are the family standard: directory_optional (path, or blank to fall back on Set Global Dir) and data_optional (a pre-read dictionary to bypass disk entirely).
Where it goes
The intended consumer is the pack's segment-combining node, which takes a DICTIONARY like this and turns it into CONDITIONING (and a mask) for the segmented render. If you're hand-rolling instead, data is a goldmine: you can pull positive_prompt_l, mask_expand, mask_blur, and condition_strength out of it with a simple dict-get node and drive your own regional masking - which is exactly the regional-prompting playbook the ecosystem has used since Latent Couple: give each region its own prompt, mask the conditioning, keep composition intact.
Install and the honest warning
Install is the pack-level one-liner, or Manager:
cd ComfyUI/custom_nodes
git clone https://github.com/LatentSpaceDirective/ComfyUI-Texturaizer
search "Texturaizer" in ComfyUI Manager, restart. No extra deps, no model files - the requirements.txt is stock ComfyUI packages.
The honest warning: this node returns a dictionary, and a dictionary is only useful if something downstream knows its schema. It's great inside the Texturaizer family because the sibling nodes already speak that language. If you're expecting a clean typed output like the other Get * nodes give you, this one will feel loose - pair it with the pack's combining nodes or a dict-access node, not with a bare string input. And like the others, if it can't find the JSON it returns an empty dict rather than erroring, which means silent failure if you forgot to set the global directory. Start from Set Global Dir.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| directory_optionalopt | STRING | — | |
| data_optionalopt | DICTIONARY | [object Object] | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| data | DICTIONARY | Texturaizer JSON data. |
| data_hash | STRING | Hash value for debugging purposes. |