Nodes/Breeze TTS 2 · T8star-Aix/Breeze TTS 2 · T8 生成音频
ComfyUI Node

Breeze TTS 2 · T8 生成音频

The node that turns requests into sound

By T8mars·Created 2 days ago·Updated a day ago· 2
Breeze TTS 2 · T8 生成音频
  • model
  • request
  • settings
  • audio
  • generation_info

This is the payoff node. T8_BreezeTTS_Generate takes the three things the rest of the pack builds - a loaded model from the ModelLoader, a request from the Design/Clone/Direction nodes, and a settings bundle from the GenerationSettings node - runs Breeze TTS 2 inference, and hands you back a standard ComfyUI AUDIO. Everything before this was setup; everything after this is output. It's marked as an output node in the pack, so it's designed to be the end of the line.

What you get out

Two outputs:

  • audio (AUDIO) - the generated speech in ComfyUI's standard audio format. That's the important part: because it's the standard format, it plugs straight into the core SaveAudio node (which the pack's example workflows use) or into anything else that eats ComfyUI audio - video lip-sync, a VHS clip, a multi-track mix.
  • generation_info (STRING) - a JSON dump with the good stuff: which mode ran, sample rate, the actual seed used, elapsed seconds, duration, the real-time factor (rtf), and whether the reference audio hit the cache. The rtf is the one worth reading: under 1.0 means it generated faster than real time, so on a decent GPU this thing talks as fast as you can type.

How it works

The node validates first - text can't be empty, and if the request carries a reference clip it must have an accurate reference_text (same rule the Clone and Direction nodes enforce). The reference gets checked for the 60-second ceiling on the raw waveform, before encoding or GPU transfer, so a too-long clip fails cheaply instead of OOM-ing later. Then it encodes the reference to codec tokens (or uses the cached encoding if you've run this clip before), builds the positive and negative prompt segments, and generates audio tokens autoregressively with a progress bar in the UI. RNG is fully isolated to your seed, so reproducibility isn't a hope - it's the design.

Two behaviors are worth knowing because they look like bugs until you understand them:

  1. Generation is serialized. The pack holds a lock around inference, so if two Generate nodes fire at once, the second one raises a "Breeze TTS 2 is currently generating; T8 nodes execute serially" error instead of corrupting the cache or fighting over VRAM. Parallelism here would be a liability; this is the pack protecting you.
  2. It cleans up after itself. On an out-of-memory error it empties cached tensors and tells you to free up VRAM from other models, rather than leaving your GPU in a half-dead state.

Wiring it up

T8 模型加载器 → T8 声音设计 → T8 生成设置 → T8 生成音频 → SaveAudio

The three inputs have no defaults - you must wire all of them, which the composable design of the pack makes trivial: every request mode outputs the same BREEZE_T8_REQUEST type, so you can swap Design for Clone or Direction and the Generate node doesn't care.

Where it fits in the wider picture

The KB's audio essay is blunt that TTS was bolted onto ComfyUI, not designed into it - the models are good, the integration is a maintained workaround. This pack is one of the better-mannered workarounds: the Generate node hands you plain ComfyUI audio, which is exactly what the ecosystem expects, so the output flows into talking-head pipelines (drive a portrait with the voice) or straight to disk. The one thing to keep in mind before you wire it anywhere permanent: the model is research/non-commercial, so this is for personal projects and prototypes, not for the thing you're planning to sell.

CategoryT8star-Aix/Audio/Breeze TTS

Inputs (3)

NameTypeDefaultDescription
modelBREEZE_T8_MODEL
requestBREEZE_T8_REQUEST
settingsBREEZE_T8_SETTINGS

Outputs (2)

NameTypeDescription
audioAUDIO
generation_infoSTRING