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

Get Sampler Data (Texturaizer)

Every sampling dial Blender set, as a ready-to-wire bundle

By LatentSpaceDirective·Created 2 years ago·Updated 8 months ago· 22
Get Sampler Data (Texturaizer)
  • data_optional
  • seed
  • cfg
  • sampler
  • scheduler
  • steps
  • denoise
  • adv steps
  • adv steps start
  • batch size
  • use empty latent
  • noise mode
  • data_hash
directory_optional

This is the busiest node in the Texturaizer pack, and it deserves to be: it's the entire sampler settings block from your Blender scene, unpacked into one pile of outputs. Get Sampler Data reads the seed, CFG, sampler, scheduler, steps, denoise, and batch settings out of data/ai_data.json and hands them to you as native ComfyUI types - so you can either feed them straight into the pack's own KSamplerAdvanced (Texturaizer) or wire them into any stock sampler.

Texturaizer is a Blender addon (paid, Gumroad, by Luke Kratsios / LatentSpaceDirective) that exports per-object data and render passes to ComfyUI; these nodes are the free open-source side of that pipeline. This one is the read-half of the sampling story.

The outputs that matter

Eleven values plus a hash. You'll mostly care about these:

  • seed (INT) and cfg (FLOAT) - straight from the scene.
  • sampler and scheduler (both *) - the names, e.g. euler_ancestral, karras. They're typed as any so they'll plug into whatever sampler node you're using.
  • steps (INT) and denoise (FLOAT).
  • adv steps and adv steps start (INT) - the "advanced" start/end step window, straight out of the JSON (step_start/step_end). For a normal full-denoise render, adv steps equals steps and start is 0.
  • batch size (INT), use empty latent (BOOLEAN), and noise mode (GPU(=A1111) / CPU).
  • data_hash (STRING) - the change-detection hash.

The mechanism

Under the hood it's the same pattern as every Get * Data node: read data/ai_data.json from the given directory (or the Set Global Dir fallback), then parse_sampler_data() pulls the relevant keys out of scene_info with sensible defaults if they're missing (euler, normal, 20 steps, CFG 4, denoise 1.0). The data_hash is an MD5 of the whole bundle and feeds IS_CHANGED, so when you tweak a slider in Blender and re-export, the entire sampling side of your graph re-runs. No manual seed-syncing between Blender and ComfyUI.

Two inputs, same as the family: directory_optional (path or blank-for-global) and data_optional (a pre-read DICTIONARY to use instead of disk).

Why the bundle beats hand-wiring

If you've spent time in ComfyUI you know the drift problem: you set seed 42 in ComfyUI, then Blender exports seed 77, and your render subtly changes and you have no idea why. This node kills that class of bug because there's exactly one source of truth - the Blender scene - and every sampling parameter flows from it. If you want to override something for a test, don't fight the node; just add a node between the output and the sampler, or swap the input through a Switch Any when you need a fallback.

Install and the one real gotcha

Install the whole pack, once:

cd ComfyUI/custom_nodes
git clone https://github.com/LatentSpaceDirective/ComfyUI-Texturaizer

or search "Texturaizer" in ComfyUI Manager. Dependencies are already in ComfyUI (torch, numpy, scipy, Pillow, torchvision) - nothing to download.

The gotcha: this node just reads settings. It doesn't sample anything, so the sampler/scheduler outputs are only as good as what's plugged in downstream. The pack's own KSamplerAdvanced is the natural home - it also wants an Impact Pack dependency (it routes sampling through RegionalSampler from ComfyUI-Impact-Pack), so if you're on a fresh install, grab Impact Pack too or the sampler will refuse to run. If you'd rather use the stock KSampler, this node's outputs plug in just fine.

CategoryTexturaizer

Inputs (2)

NameTypeDefaultDescription
directory_optionaloptSTRING
data_optionaloptDICTIONARY[object Object]

Outputs (12)

NameTypeDescription
seedINTTexturaizer JSON data.
cfgFLOATHash value for debugging purposes.
sampler*
scheduler*
stepsINT
denoiseFLOAT
adv stepsINT
adv steps startINT
batch sizeINT
use empty latentBOOLEAN
noise modeGPU(=A1111),CPU
data_hashSTRING