Nodes/ComfyUI-Texturaizer/Get Segment Data (Texturaizer)
ComfyUI Node

Get Segment Data (Texturaizer)

The whole segmented-prompt payload, handed over in one object

By LatentSpaceDirective·Created 2 years ago·Updated 8 months ago· 22
Get Segment Data (Texturaizer)
  • data_optional
  • data
  • data_hash
directory_optional

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, including scene_info plus 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.

CategoryTexturaizer

Inputs (2)

NameTypeDefaultDescription
directory_optionaloptSTRING
data_optionaloptDICTIONARY[object Object]

Outputs (2)

NameTypeDescription
dataDICTIONARYTexturaizer JSON data.
data_hashSTRINGHash value for debugging purposes.