Geekatplay HyperTile Caption Tiles
Caption tiles with Florence-2 — or skip it, the fallback is fine
- image
- prompt
- captions
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, ormicrosoft/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'scaptionsfield.
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
captionsoutput. 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.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| model_name | COMBO | 3 options: disabled, microsoft/Florence-2-base-ft, microsoft/Florence-2-large-ft | |
| detail_level | COMBO | 3 options: brief, detailed, material-aware | |
| max_tiles | INT | 161–128 | — |
| max_new_tokens | INT | 9616–256 | — |
| prefix | STRING | — | |
| suffix | STRING | fabric weave, skin pores, clean edges, coherent details | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| captions | STRING | — |