Youtu-VL (Advanced)
Same Youtu-VL, but now you get to twiddle temperature
- image
- text
This is AILab_YoutuVL with the training wheels off. Same Tencent Youtu-VL 4B model, same transformers engine, same six preset prompts, same single text output - but where the standard node hardcodes its sampling at temperature 0.1 and top_p 0.001, this one lets you turn the knobs. If you never want creative output from a captioner, you don't need this node. If you've ever wanted a vision model to answer a question in two different ways, or to try again because the first answer was too terse, this is the one.
What's actually new
Honestly, the defaults are the right call for most jobs. A LoRA caption or an OCR pass wants the most deterministic, focused output you can get - 0.1–0.4 temperature, and the default top_p of 0.001 is near-greedy on purpose. The point of the Advanced node is the when it's not: visual QA where a bit of variety helps, brainstorming an art direction from a reference image, or any time the "Analyze Elements" preset gives you a list that's too dry. Crank temperature to 0.7+ and Youtu-VL stops being a stenographer and starts offering opinions.
- temperature - 0.1–0.4 is focused, 0.7+ is creative. Default 0.1.
- top_p - nucleus sampling cutoff, default 0.001 (extremely conservative).
- repetition_penalty - 1.05 default; push toward 1.1–1.2 if output loops on the same phrase.
- device -
auto/cuda/cpu/mps. Auto picks based on what it detects; forcing cpu is there for when you want to free the GPU for sampling. - max_tokens - raised to 32768, so a genuinely long detailed description won't get clipped the way the standard node's 4096 cap can.
Everything else carries over
model (only Youtu-VL-4B-Instruct is offered), quantization (FP16 / 8-bit / 4-bit), attention_mode (auto / flash_attention_2 / sdpa), the six preset_prompt options, custom_prompt override, keep_model_loaded, seed, and the optional image input. Output is a single text string. First run still downloads ~8GB to models/LLM/Youtu-VL, and the same VRAM auto-step-down (FP16 → 8-bit → 4-bit) applies.
Installation
Identical to the rest of the pack - ComfyUI Manager ("ComfyUI Youtu-VL", publisher 1038lab) or clone + pip install -r requirements.txt:
cd ComfyUI/custom_nodes/
git clone https://github.com/1038lab/ComfyUI-Youtu-VL.git
cd ComfyUI-Youtu-VL
pip install -r requirements.txt
The same transformers>=4.56.0 floor applies; if it won't import, your transformers is too old.
One caveat that matters
The extra knobs don't fix the pack's Apple Silicon problem. The community-documented failure on macOS is in the attention path ('sdpa' exception during processing), so forcing device: cpu or device: mps here is not a workaround - if you're on a Mac, use the GGUF nodes instead, where inference runs through llama.cpp and actually works. Also remember Youtu-VL's Tencent license is non-commercial and not intended for EU use, whichever node you pick.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | Youtu-VL-4B-Instruct | Select the Youtu-VL model. First run downloads weights to models/LLM/Youtu-VL. |
| quantization | COMBO | None (FP16) | Precision vs VRAM. FP16 gives best quality; 8-bit suits 8-16GB GPUs; 4-bit fits 6GB or less. |
| attention_mode | COMBO | auto | auto tries flash-attn v2 when available, falls back to SDPA. |
| device | COMBO | auto | 4 options: auto, cuda, cpu, mps |
| preset_prompt | COMBO | 🖼️ Describe Image | Built-in instruction for how Youtu-VL should analyze the input. |
| custom_prompt | STRING | Optional override - replaces preset template when filled. | |
| max_tokens | INT | 51264–32768 | Maximum number of new tokens to generate. |
| temperature | FLOAT | 0.100.01–2 | Sampling randomness. 0.1-0.4 is focused, 0.7+ is creative. |
| top_p | FLOAT | 0.0010.001–1 | Nucleus sampling cutoff. Lower values keep only top tokens. |
| repetition_penalty | FLOAT | 1.050.5–2 | Values >1 penalize repeated phrases. |
| keep_model_loaded | BOOLEAN | true | Keep model in VRAM after run for faster subsequent inference. |
| seed | INT | 11–4294967295 | Seed for reproducible results. |
| imageopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |