Nodes/ComfyUI-UltimateUpsacaler/Geekatplay HyperTile Caption Tiles
ComfyUI Node

Geekatplay HyperTile Caption Tiles

Caption tiles with Florence-2 — or skip it, the fallback is fine

By GeekatplayStudio·Created 5 months ago·Updated 5 months ago· 7
Geekatplay HyperTile Caption Tiles
  • image
  • prompt
  • captions
model_name
detail_level
max_tiles16
max_new_tokens96
prefix
suffixfabric weave, skin pores, clean edges, coherent details

The name makes it sound mandatory. It isn't. HyperTileCaptionTiles is the optional Florence-2 captioning step in Geekatplay's upscale stack, and the bundled workflows ship with it disabled. That's the pack being honest about what captions are for: when you tile a big image and denoise each tile, telling the sampler what each region contains helps it add the right kind of detail - pores where there's skin, weave where there's fabric. But it's a refinement, not a requirement, and the first run is the slowest thing in the pack.

How it works

It takes the first frame of the input, works out a spatial grid from the aspect ratio and your max_tiles budget (wide images get more columns than rows), crops each cell, and runs Florence-2 over each crop. detail_level maps straight onto Florence's own task prompts: brief<CAPTION>, detailed<DETAILED_CAPTION>, material-aware<MORE_DETAILED_CAPTION>. Each caption becomes a tile N: ... line, and the merged prompt is prefix + deduped captions + suffix, comma-joined.

If model_name is disabled - or Florence fails for any reason - it degrades gracefully to just prefix + suffix. That's exactly why the default suffix reads "fabric weave, skin pores, clean edges, coherent details". The fallback prompt is doing real work; don't wipe it.

Inputs that matter

  • model_name - disabled (the default behavior), microsoft/Florence-2-base-ft, or microsoft/Florence-2-large-ft. Base is lighter and quicker; large gives better captions and eats more VRAM.
  • detail_level - brief / detailed / material-aware. Material-aware is the interesting one for upscaling: it pushes the model to name the surfaces it sees.
  • max_tiles - the grid budget (1–128, default 16). More tiles, finer captions, slower.
  • max_new_tokens - how long each caption may run (default 96).
  • prefix / suffix - text around the captions; the suffix is where your texture-recovery phrasing lives.

Outputs

  • prompt (STRING) - the merged, deduped prompt. Wire it into the Prompt Composer or straight to CLIP Text Encode.
  • captions (STRING) - the per-tile lines, newline-separated. Handy for debugging, and it's the natural input to the Regional Conditioning node's captions field.

Install

It ships in GeekatplayStudio/ComfyUI-UltimateUpsacaler, so install the pack: Manager → search "ComfyUI-UltimateUpsacaler", or:

cd ComfyUI/custom_nodes && git clone https://github.com/GeekatplayStudio/ComfyUI-UltimateUpsacaler

Then restart. The heavy lifting is Florence-2 itself: the model downloads into the active Python environment's cache on first use - not into ComfyUI/models - via transformers, and the pack's requirements pull in transformers, timm, sentencepiece, and accelerate to run it. The README is explicit that captioning is an extra: pip install .[captioning] if you install the package with pip, while install.py installs the full runtime either way.

Common issues

  • First run is slow. Florence-2 populates its cache on first use; later runs are quicker. The README flags this so you don't think it hung.
  • Hugging Face metadata warnings. Expected noise during Florence setup, not a ComfyUI model-loading error. The README says so in so many words.
  • No internet or blocked HF access → the node catches the failure and returns the prefix+suffix fallback. You'll see "Captioning unavailable, using fallback prompt only" in the captions output. That's the safety net working.
  • Small GPU? Use base-ft, not large. The node won't offload the model for you.

The honest take: for a first upscale pass, leave captioning off and let the default suffix carry the prompt. Turn it on when tiles come back generic and you want the sampler to know what each region actually contains.

CategoryGeekatplay HyperTile/Captioning

Inputs (7)

NameTypeDefaultDescription
imageIMAGE
model_nameCOMBO3 options: disabled, microsoft/Florence-2-base-ft, microsoft/Florence-2-large-ft
detail_levelCOMBO3 options: brief, detailed, material-aware
max_tilesINT161–128
max_new_tokensINT9616–256
prefixSTRING
suffixSTRINGfabric weave, skin pores, clean edges, coherent details

Outputs (2)

NameTypeDescription
promptSTRING
captionsSTRING