Nodes/Strata-T8/Strata 图片分析 / Vision
ComfyUI Node

Strata 图片分析 / Vision

Caption, reverse-prompt, OCR — or just ask the model about the picture

By T8mars·Created 21 days ago·Updated 10 days ago· 20
Strata 图片分析 / Vision
  • connection
  • images
  • text
  • reasoning
  • usage_json
◄task▾►
◄question►
◄schema►
◄max_pixels1048576►
◄max_tokens1024►
◄temperature0.70►
◄top_p0.95►
◄top_k20►
◄seed0►
◄reasoning_effort▾►
◄refresh0►

The vision node. Wire an image in, pick what you want to know about it, get text out: a caption for a LoRA set, a prompt that would recreate the image, text scraped off a screenshot, or a plain answer to a plain question.

Why you'd reach for it

The KB splits image captioners into two lineages: taggers like WD14, which emit the booru vocabulary a Pony/Illustrious model was trained on, and natural-language describers like JoyCaption and Florence-2 (the KB's llm-in-comfyui notes § 2 - that essay's own framing, not this pack's). This node is squarely the second kind, running on the same large local Qwen-family model the rest of Strata uses plus its own BF16 vision encoder. No API, no key, no per-call cost, nothing leaving your machine - which for captioning work is half the reason people run local at all.

The other half is that it's in-graph. Florence-2 gives you a caption; this gives you a caption you can immediately feed into a prompt node, a JSON schema, or an output folder without leaving ComfyUI.

How it works

Images are converted on the CPU first: NaN/Inf checked before anything else, clipped and quantised to 8-bit, RGBA flattened onto white, then scaled with Lanczos so the pixel count fits max_pixels. Each frame is encoded as a base64 PNG data URL and sent as an image part alongside your instructions. The engine needs its vision encoder enabled - if the profile says vision:no, you get "Enable the bundled vision encoder in this profile", which is also the honest answer on Windows AMD, where this path isn't supported yet.

Inputs

  • connection - from StrataT8Connection.
  • images - the IMAGE tensor. Up to 8. More than that is an error, not a batch.
  • task - caption (visible content only), reverse_prompt (an English prompt to recreate the image), ocr (transcribe readable text in reading order, preserving language and line breaks, marking illegible text), question (answer using the image, separating evidence from inference), evaluate (judge against your rubric and admit the score is subjective).
  • question - empty by default, and only really matters for the question and evaluate tasks; when it's set, it becomes the actual instruction you send.
  • schema - optional JSON Schema for structured image analysis. Empty means ordinary analysis. It must be an object-rooted schema (the engine's protocol insists) and it's validated before it's sent. Note the docs' sharp little caveat: writing null or false in there does not count as leaving it empty.
  • max_pixels - 65536 to 4194304, default 1048576 (~1MP). Bumping it costs context and time for detail the model may not use; dropping it is the cheap way to make OCR and captioning faster.
  • Sampling: max_tokens, temperature, top_p, top_k, seed, reasoning_effort, refresh.

Outputs

text is the answer. reasoning is the model's scratch work kept in its own channel - useful when an evaluate verdict looks odd and you want to see the reasoning that produced it. usage_json is token accounting.

Where does it go? text into a CLIP Text Encode for img2img, into a save-text node when you're building caption files, or into StrataT8Prompt when you want to reshape a raw description into a generation prompt - the "describe, then rewrite" chain the KB notes people actually use.

Install

Manager → search Strata-T8 (strata-t8, publisher t8star), or:

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-Strata-T8.git
python -m pip install -r Comfyui-Strata-T8/requirements.txt

That's jsonschema and nothing else - image handling rides on the Pillow, NumPy and PyTorch ComfyUI already has. Then save a profile in the Strata-T8 sidebar with vision: gpu and point Connection at it. The vision encoder is a ~907MB BF16 weight file that ships with the runtime's VisionReady release, not with the node pack; the main IQ3_S model data is a separate ~83.6GB download. Follow the runtime's install/import steps and verify hashes - copying just the GGUF files is not the same thing as a prepared data directory.

Where people get burned

Multi-subject attribution, the one weakness nobody has fixed. JoyCaption's own release notes admit mixing up who's wearing what when two people are in frame, and it's shared across every VLM in this class (the KB's llm-in-comfyui notes § 2, that essay's summary). Expect it here too. For a LoRA dataset, auto-caption the bulk and hand-fix the two-person shots - it's still faster than typing them all.

OCR is transcription, not magic. The preset is explicit about marking illegible text rather than inventing characters, which matters because the failure mode of OCR prompts is confident hallucination. Blown-out or tiny text will show up as "illegible".

Screenshotting UI? The vision path uses the bundled encoder - fine - but the same-GPU gate is what runs things: ComfyUI's models get unloaded, 12GiB VRAM and 60GiB RAM are checked, and the engine exits before your sampler starts. If you have other heavy things running, you'll get a conflict error rather than a quiet bad time.

CategoryStrata-T8

Inputs (13)

NameTypeDefaultDescription
connectionSTRATA_CONNECTION—
imagesIMAGE—
taskCOMBO5 options: caption, reverse_prompt, ocr, question, evaluate
questionSTRING—
schemaSTRING—
max_pixelsINT104857665536–4194304—
max_tokensINT10241–131072—
temperatureFLOAT0.700–2—
top_pFLOAT0.950.01–1—
top_kINT201–64—
seedINT00–2147483647—
reasoning_effortCOMBO5 options: none, low, medium, high, xhigh
refreshINT00–2147483647—

Outputs (3)

NameTypeDescription
textSTRING—
reasoningSTRING—
usage_jsonSTRING—