Texture Analyzer
The QA pass before your texture goes anywhere
- image
- analysis
- visualization
"Does this texture actually tile?" is a question you should answer before you spend twenty minutes converting it into a full PBR set. Texture Analyzer answers it, plus a bunch of boring-but-useful stats about the texture, in one pass. It's the node you drop at the end of a wire to check your work - a cheap QA gate for a pipeline full of nodes that will happily process a bad input into a bad output.
How it works
It reads the image and reports a structured breakdown. You get resolution, aspect ratio, megapixels, channel count, mean/standard-deviation/range per channel, brightness, and contrast - all the numbers that tell you whether a map is washed out, clipped, or just wrong. Then, if check_seamless is on (it is by default), it does the genuinely useful part: it compares a 5-pixel strip along the left edge against the right edge, and the top against the bottom, using edge_tolerance (default 0.05) as the pass/fail bar. Difference under the tolerance → SEAMLESS; over → NOT SEAMLESS, reported separately for horizontal and vertical.
It's an output node (it's meant to be a terminal in your graph), returning two things:
analysis- aSTRINGreport with the full breakdown.visualization- an image overlay showing what it concluded.
The report also prints to the console, which this pack does loudly anyway.
What to reach for it for
Pre-tile sanity checking is the headline: run your source photo through it, see "NOT SEAMLESS," and know you need the pack's Seamless Tiling Maker before you bother extracting maps from it. It's also the fastest way to check whether an extracted map is broken - a roughness map with near-zero contrast or a clipped range tells you the extraction went wrong before you see it in a renderer.
Installing it
Part of amtarr/ComfyUI-TextureAlchemy. ComfyUI Manager → search "Texture Alchemy", or:
cd ComfyUI/custom_nodes
git clone https://github.com/amtarr/ComfyUI-TextureAlchemy
Restart, then right-click → Add Node → Texture Alchemist → Analysis. No dependencies, no models - pure tensor statistics.
The honest gotchas
The seamless check is a 5-pixel strip comparison, which is a heuristic, not a proof. A texture with identical edges but a lighting gradient across the middle will pass the edge test and still tile badly - the analyzer catches seams, not gradients. And edge_tolerance is a dial with opinions: 0.05 is strict (organic textures often fail), loosen it to ~0.1 for noisy sources or you'll chase false negatives. If you want to hand the analysis string to another node, wire it into a Show Text node; it's plain text, ready to read or log.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| check_seamless | BOOLEAN | true | — |
| edge_tolerance | FLOAT | 0.050–0.5 | Tolerance for seamless detection |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| analysis | STRING | — |
| visualization | IMAGE | — |