TeleStyle Image Transfer (Official)
TeleStyle Image Transfer (Official)
- model
- content_image
- style_image
- IMAGE
This is the node that does the actual magic. Feed it a photo and a style reference and it hands you back the photo re-styled - same subject, same composition, new look. That's the whole pitch of TeleStyle, and this is the ComfyUI node that runs it the "official" way, as the output half of the pair that starts with TeleStyle Image Model Loader (Official).
Why you'd reach for it
Content-preserving style transfer is where prompt-based editing gets fiddly: you want the "Mona Lisa-ness" of one image applied to another without the subject melting into a puddle of paint. TeleStyle (from Tele-AI, built on Qwen-Image-Edit-2509) handles this with a dedicated style LoRA, and this pack stacks on a Lightning 4-step LoRA so you don't pay for it with 30 denoising steps. Compared to describing a style in a prompt, you get actual fidelity to a reference image instead of vibes.
The defaults exist for a reason: a distilled Lightning model is designed for 4 steps at near-unity CFG, and cranking steps won't buy you much - that's the inherent tradeoff of every distillation (fewer steps, less room to refine). Don't dial steps to 30 expecting more detail. Try 4, maybe 8, and put your effort into seeds and resolution instead.
How it works
The loader hands this node a ready DiffSynth QwenImagePipeline. Each run, it resizes the content image so its shorter edge equals min_edge (aspect ratio kept, dimensions snapped to multiples of 16) and the style image to a square of the same size, then runs the pipeline in edit mode with your prompt at a fixed CFG of 1.0. It caches results in memory keyed on the content+style pair, seed, and settings - an identical rerun returns instantly instead of burning GPU time.
It also guards itself: black/invalid output from an attention backend triggers one automatic retry with sdpa, and CUDA allocator asserts get a soft cleanup + TF32-off + sdpa retry before it gives up. It's the rare ComfyUI node that fights for you.
The inputs that matter
model- the output of TeleStyle Image Model Loader (Official). No loader, no party.content_image- the image whose content you keep. Wire from a Load Image node.style_image- the reference whose style you're borrowing. Wire from Load Image.prompt- default is "Style Transfer the style of Figure 2 to Figure 1, and keep the content and characteristics of Figure 1." That Figure 1 / Figure 2 framing is how Qwen-Image-Edit understands the task - keep the structure, tweak the wording.steps- default 4 (the Lightning setting), range 1–50.seed- for reproducible runs; part of the cache key.min_edge- target length of the shorter edge, default 512, 256–2048 in multiples of 16 (the node snaps it for you). This is your speed/quality dial: bigger means more detail and a lot more VRAM and time. Run 512 for first passes and upscale separately when you like the result.
Output
A single IMAGE tensor - ordinary ComfyUI image output. Wire it into Preview Image or Save Image and you're done.
Getting it running
The whole dependency story lives on the loader side, and the loader article has the full install. The one thing to remember here: this node needs DiffSynth plus pinned transformers/accelerate installed with the same Python that runs ComfyUI, or you'll hit the "TeleStyle official image nodes require DiffSynth" error before the graph even starts. It's the single most common TeleStyle-in-ComfyUI failure the community runs into, and the error message itself contains the exact fix:
pip install git+https://github.com/modelscope/DiffSynth-Studio.git@11315d7 transformers==4.57.3 accelerate==1.2.1
The first run is slow because the loader is downloading the base Qwen-Image-Edit-2509 model plus both LoRAs - automatic, just be patient. After that, runtimes vary wildly with your GPU: the HuggingFace demos run on H100-class hardware, so your mid-range card will be slower, and enable_vram_management on the loader trades speed for the ability to fit at all.
If the output's bad
- Black frames - flash_attn misbehaving; it auto-retries with sdpa, or just set
attention_mode=sdpaon the loader. - Looked unfinished or washed out - try
dtype=bf16on the loader, nudgemin_edgeup, or change the seed. - Stuck after you changed loader settings - set
cache_policy=force_reloadonce. - OOM at high resolution - start ComfyUI with
--disable-cuda-mallocas a last resort.
It's fiddly on first contact, but once the pipeline is cached it's genuinely pleasant - the kind of node you keep a graph of around for fast style experiments.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| model | TELE_STYLE_IMAGE_MODEL | — | |
| content_image | IMAGE | — | |
| style_image | IMAGE | — | |
| prompt | STRING | Style Transfer the style of Figure 2 to Figure 1, and keep the content and characteristics of Figure 1. | — |
| steps | INT | 41–50 | — |
| seed | INT | 123 | — |
| min_edge | INT | 512256–2048 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |