Nodes/SDXL Auto Prompter/APNext QwenVL Vision Cloner
ComfyUI Node

APNext QwenVL Vision Cloner

Clone an image's style with a local model — no API, no uploads

By dagthomas·Created 3 years ago·Updated about 18 hours ago· 285
APNext QwenVL Vision Cloner
  • images
  • formatted_output
  • raw_json
  • faded_image
fade_percentage15.0
qwen_modelQwen3-VL-2B-Instruct
max_tokens4096
temperature0.70
keep_model_loadedtrue
use_flash_attentionfalse
strip_quotesfalse
seed-1
randomize_each_runtrue
custom_prompt

"Make it look like this" is one of the most useful things you can ask a vision model, and this node lets you ask it locally. Feed QwenVL Vision Cloner one or more reference images and it writes a detailed style-clone prompt - the lighting, palette, lens, grain, composition, mood - that you can hand to your image or video model. No API key, no uploads, no per-call billing. If you've ever tried to describe why a photo looks the way it looks, you know this is harder than it sounds; a vision model that can see the reference beats you at it.

The interesting twist is multi-image blending. When you connect more than one reference, fade_percentage (default 15, up to 50) controls how much the images are blended into a composite before analysis - so you can clone the palette of one image and the composition of another, and the model describes the blend rather than being confused by two separate pictures.

How it works

Images go into a Qwen3-VL model (2B–8B; the node runs whatever qwen_model you pick), guided by a style-clone prompt template, and the model writes back a description. The node returns three outputs:

  • formatted_output - the cleaned-up style prompt, ready to wire into a text encoder or prompt preview.
  • raw_json - the model's structured raw response, useful if you want the underlying data or to debug what the model saw.
  • faded_image - the blended composite (when fade_percentage > 0), so you can see exactly what the model was looking at.

strip_quotes (off by default) cleans quote characters out of the output when they'd otherwise pollute a prompt. custom_prompt overrides the analysis instruction if the default clone template isn't what you want. max_tokens defaults to 4096 - generous, because style descriptions run long - and temperature 0.7 is a fine middle ground. The standard QwenVL controls (keep_model_loaded, use_flash_attention, seed, randomize_each_run) apply as everywhere else in this family.

Install

Pack install is the shared routine - ComfyUI Manager (search "comfyui_dagthomas") or:

cd ComfyUI/custom_nodes
git clone https://github.com/dagthomas/comfyui_dagthomas
cd comfyui_dagthomas
pip install -r requirements.txt

Restart. The QwenVL model downloads itself to ComfyUI/models/LLM/Qwen-VL/ on first use; no API keys anywhere in the picture.

Common issues

  • The clone prompt is generic - a small model will default to vague adjectives. Try a bigger qwen_model (8B), or describe the purpose in custom_prompt ("this will be a video prompt; emphasize camera, motion and palette").
  • Blend looks wrong - fade_percentage is the dial: too low and the composite keeps both images side by side; too high and one style swamps the other. Check the faded_image output to see what the model actually saw.
  • Out of memory on a big batch - use the FP8 variant of your chosen model, or drop to 2B. The blend happens before analysis, so memory pressure comes from the model, not the image count.
Categorycomfyui_dagthomas/LLM

Inputs (11)

NameTypeDefaultDescription
imagesIMAGE
fade_percentageFLOAT15.00.1–50
qwen_modelCOMBOQwen3-VL-2B-Instruct23 options: Qwen3-VL-2B-Instruct, Qwen3-VL-2B-Thinking, Qwen3-VL-2B-Instruct-FP8, Qwen3-VL-2B-Thinking-FP8, Qwen3-VL-4B-Instruct, Qwen3-VL-4B-Thinking, +17
max_tokensINT4096512–8192
temperatureFLOAT0.700.1–1
keep_model_loadedBOOLEANtrue
use_flash_attentionBOOLEANfalse
strip_quotesBOOLEANfalse
seedINT-1-1–18446744073709550000
randomize_each_runBOOLEANtrue
custom_promptoptSTRING

Outputs (3)

NameTypeDescription
formatted_outputSTRING
raw_jsonSTRING
faded_imageIMAGE