[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80861":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":15,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":18,"topics":21,"createdAt":9,"pushedAt":9,"updatedAt":22,"readmeContent":23,"aiSummary":24,"trendingCount":14,"starSnapshotCount":14,"syncStatus":15,"lastSyncTime":25,"discoverSource":26},80861,"ComfyUI-DramaBox","FranckyB\u002FComfyUI-DramaBox","FranckyB","Port of resemble-ai's DramaBox for ComfyUI",null,"Python",38,6,1,0,2,3,40.84,false,"master",true,[],"2026-06-12 04:01:30","# ComfyUI-DramaBox\n\nComfyUI custom nodes for [DramaBox](https:\u002F\u002Fgithub.com\u002Fresemble-ai\u002FDramaBox) — ResembleAI's expressive text-to-speech system built on the LTX-2.3 audio diffusion transformer.\n\n**Please Note:** DramaBox offers two generation methods. `dramabox_wrapper` runs the original DramaBox pipeline for native behavior, while `clip_loader` uses ComfyUI memory management for a more integrated and reliable workflow. Users wanting to experiment, can enable wrapper mode in Preferences or in the DramaBox Options node.\n\n**VRAM Recommendation:** For the smoothest experience, a **16 GB GPU** is strongly recommended. Lower-VRAM GPUs can still work with aggressive offloading, but may be slower and more prone to out-of-memory errors.\n\n**Users with sufficient VRAM can disable model offloading in Preferences for faster generation.**\n\n## Nodes\n\n| Node | Description |\n|------|-------------|\n| **DramaBox TTS** | Generates speech audio from a text prompt. Optionally accepts a voice reference clip and advanced options. All model weights are downloaded automatically on first use. |\n| **DramaBox CLIP Loader** | Loads a Gemma text encoder from your `text_encoders` folder. Supports `.safetensors` and optional `.gguf` (when ComfyUI-GGUF is installed). Connect to the TTS node's `dramabox_clip` input to override the default encoder. |\n| **DramaBox Options** | Advanced generation settings (steps, CFG scale, duration, memory policy, etc.). (Optional) Connect to the DramaBox TTS node's `options` input. |\n| **DramaBox Unload** | Utility passthrough node that releases both clip_loader and wrapper caches, then returns input unchanged. Useful at workflow boundaries to force memory cleanup. |\n\n## Text Encoder\n\nDramaBox uses a Gemma 3 12B text encoder. By default the node loads **`gemma_3_12B_it_fp4_mixed.safetensors`** — the same file used by ComfyUI's own LTX-2 workflows, so if you already have it you're good to go. If it is not present it is downloaded automatically into your `ComfyUI\u002Fmodels\u002Ftext_encoders\u002F` folder on first use.\n\n### Changing the default encoder\n\n**Per-installation preference** — open *ComfyUI Settings → DramaBox → Default Text Encoder filename* and enter a Gemma filename from your models folder. Supports `.safetensors` and `.gguf` (with ComfyUI-GGUF installed). If you omit the extension, DramaBox tries `.safetensors` first, then `.gguf`. Leave it blank to keep the fp4 default.\n\n**Memory preference** — open *ComfyUI Settings → DramaBox → Memory* and keep **Automatic model offload (text encoder + post-generate)** enabled (default). This does two things automatically:\n\n- Offloads Gemma right after prompt encoding.\n- Offloads DramaBox models to CPU after generation.\n\nIf you have plenty of VRAM and prefer maximum throughput, you can disable this preference to keep models resident on GPU.\n\n**Per-workflow override** — add a **DramaBox CLIP Loader** node, select the model you want (`.safetensors` or optional `.gguf`), and connect its output to the TTS node's `dramabox_clip` input. This takes precedence over the global preference and lets you switch encoders between workflows without touching settings.\n\n### Post-generate memory policy (Options node)\n\nThe **DramaBox Options** node includes `post_generate_model_policy` with three modes:\n\n- `keep_loaded` — keep Gemma and DramaBox on GPU (fastest next run, highest VRAM usage).\n- `offload_to_cpu` — offload Gemma after text encoding and offload DramaBox to CPU after generation. (Default)\n- `offload` — offload Gemma after text encoding and fully unload DramaBox after generation.\n\nFor most users, `offload_to_cpu` is a good balance between memory savings and iteration speed.\n\n## Generation modes (advantages \u002F disadvantages)\n\nSet via **DramaBox Options** (`generation_mode`) or globally in *ComfyUI Settings → DramaBox → Use DramaBox Wrapper mode by default*.\n\n### `clip_loader`\n\nAdvantages:\n- Best ComfyUI-native VRAM control.\n- Text encoding and diffusion are staged cleanly (less overlap in VRAM).\n- Best fit when using custom CLIP Loader \u002F GGUF text encoders.\n\nDisadvantages:\n- Not the original native DramaBox warm-server path.\n- Output can differ from native DramaBox (tone, pacing, or phrasing may vary).\n\n### `dramabox_wrapper`\n\nAdvantages:\n- Closest to original DramaBox warm-server behavior.\n- Best match when you want native DramaBox-like output.\n\nDisadvantages:\n- In `keep_loaded`, prompt encoder and transformer can overlap in VRAM.\n- ComfyUI cannot fully manage wrapper internals like it does patcher-based models.\n\nWrapper + memory policy notes:\n- `keep_loaded`: fastest repeated runs, highest VRAM use.\n- `offload_to_cpu` \u002F `offload`: uses one-shot low-memory execution (including LoRA entries) to avoid warm overlap, then releases wrapper cache.\n- Add **DramaBox Unload** to force cleanup at a specific workflow point.\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"docs\u002Fimages\u002Fexample.png\" alt=\"DramaBox\">\n\u003C\u002Fdiv>\n\n## LoRA Support\n\nThe **DramaBox TTS** node accepts a `lora_stack` input (connect any ComfyUI **LORA_STACK** output). LoRA weights are applied directly into the already-loaded model and removed immediately after generation, so you can switch LoRAs between runs without triggering a slow model reload.\n\nLoRAs and voice reference samples work independently and can be used together. A LoRA bakes a trained voice style into the model weights, while a voice reference sample is fed as audio conditioning during generation. Using both at once — for example a LoRA trained on a voice alongside a reference clip of that same voice — will reinforce the effect.\n\n> **Note:** DramaBox LoRAs are specific to this model and cannot be used with other ComfyUI nodes such as LTX Video.\n\n\n### Training your own voice LoRAs\n\nVoice LoRAs for DramaBox can be trained with **[Voice Clone Studio — DramaBox Edition](https:\u002F\u002Fgithub.com\u002FFranckyB\u002FVoice-Clone-Studio-DramaBox)**, a stripped-down version of Voice Clone Studio, made for DramaBox, for both inference and LoRA training. It provides a dataset creator that automatically transcribes and splits your long audio clips into smaller clips ready to be used by the trainer. Drop the resulting `.safetensors` file into ComfyUI's `models\u002Floras\u002F` folder.\n\n## Installation\n\nFollow these steps:\n\n### 1) Add DramaBox to `custom_nodes`\n\nOpen a terminal in your ComfyUI `custom_nodes` folder, then run:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FFranckyB\u002FComfyUI-DramaBox.git\n```\n\n### 2) Install requirements with the SAME Python ComfyUI uses\n\nChoose **one** option below that matches your ComfyUI install.\n\n#### A) ComfyUI Windows Portable\n\n1. Open your `ComfyUI_windows_portable` folder.\n2. Open a terminal in that folder.\n3. Run:\n\n```bat\npython_embeded\\python.exe -m pip install -r ComfyUI\\custom_nodes\\ComfyUI-DramaBox\\requirements.txt\n```\n\n(If your folder is named `python_embedded`, use that instead of `python_embeded`.)\n\n#### B) ComfyUI Desktop\n\n1. Open the folder where ComfyUI Desktop is installed.\n2. Open a terminal in that folder.\n3. Run (adjust the path if your layout differs):\n\n```bat\npython\\python.exe -m pip install -r ComfyUI\\custom_nodes\\ComfyUI-DramaBox\\requirements.txt\n```\n\n#### C) Manual Python \u002F venv install\n\n1. Open a terminal in your ComfyUI folder.\n2. Activate the same environment you use to launch ComfyUI.\n3. Install the requirements:\n\n**Windows (cmd):**\n\n```bat\ncd C:\\path\\to\\ComfyUI\nvenv\\Scripts\\activate\npip install -r custom_nodes\\ComfyUI-DramaBox\\requirements.txt\n```\n\n**Linux \u002F macOS (bash\u002Fzsh):**\n\n```bash\ncd \u002Fpath\u002Fto\u002FComfyUI\nsource venv\u002Fbin\u002Factivate\npip install -r custom_nodes\u002FComfyUI-DramaBox\u002Frequirements.txt\n```\n\n### 3) Restart ComfyUI\n\nAfter restart, search for `DramaBox TTS` in the node menu.\n\n### Quick troubleshooting\n\n- If install fails, check that the requirements path is correct.\n- If ComfyUI starts but node is missing, confirm folder is `custom_nodes\u002FComfyUI-DramaBox` (not nested like `ComfyUI-DramaBox-main\u002FComfyUI-DramaBox`).\n- If `pip` command installs to the wrong place, you are likely using a different Python than ComfyUI. Re-run using option A, B, or your active venv Python.\n\n## Changelog\n\n### May 2026\n- **Generation mode control** — added `generation_mode` (`clip_loader` or `dramabox_wrapper`) in DramaBox Options plus a global default wrapper-mode preference.\n- **Wrapper LoRA parity** — wrapper mode now supports direct LoRA stack\u002Fstrength application and cleanup, matching non-wrapper behavior.\n- **Wrapper offload behavior** — when wrapper mode uses `offload_to_cpu` \u002F `offload`, it now runs through one-shot low-memory execution (with LoRA support) to reduce VRAM overlap.\n- **DramaBox Unload node** — added a passthrough unload node to release both clip and wrapper caches on demand.\n- **Text encoder overhaul** — DramaBox now uses ComfyUI's standard CLIP infrastructure for the Gemma text encoder, matching the native LTX-2 loading path for correct VRAM management.\n- **Default encoder** — switched to `gemma_3_12B_it_fp4_mixed.safetensors` (ComfyUI\u002FComfy-Org's own quantized file, ~8 GB vs ~24 GB for the previous bnb-4bit snapshot). Downloaded automatically into `text_encoders\u002F` on first use if not already present.\n- **DramaBox CLIP Loader node** — optional node to load Gemma text encoders from `text_encoders\u002F` (safetensors) and GGUF files when ComfyUI-GGUF is installed. Connect to the TTS node's `dramabox_clip` input for per-workflow encoder selection.\n- **Settings preference** — added *ComfyUI Settings → DramaBox → Default Text Encoder filename* to set a global default without needing a CLIP Loader node in every workflow.\n- **LTX package compatibility** — DramaBox now relies on installed `ltx-core` \u002F `ltx-pipelines` packages and ships only DramaBox-specific compatibility code in `py\u002F`, reducing conflicts with other LTX-based custom nodes.\n- **Old Gemma snapshot cleanup** — the large `gemma-3-12b-it-bnb-4bit\u002F` model directory (previously downloaded into `models\u002Fdramabox\u002F`) is automatically removed on startup since it is no longer needed.\n- **Removed info output** — the `info` string output has been removed from the DramaBox TTS node.\n\n## Credits\n\n- [DramaBox](https:\u002F\u002Fgithub.com\u002Fresemble-ai\u002FDramaBox) by [ResembleAI](https:\u002F\u002Fwww.resemble.ai\u002F)\n- Built on the [LTX-Video](https:\u002F\u002Fgithub.com\u002FLightricks\u002FLTX-Video) audio diffusion architecture by Lightricks\n","ComfyUI-DramaBox 是一个将 ResembleAI 的 DramaBox 表达式文本转语音系统移植到 ComfyUI 的项目。它通过自定义节点实现，支持两种生成方法：`dramabox_wrapper` 保留原始的 DramaBox 流程，而 `clip_loader` 则利用 ComfyUI 的内存管理机制以获得更稳定的工作流程。该项目特别适用于需要高质量、富有表现力的语音合成场景，如虚拟助手、有声读物制作等。推荐使用 16 GB GPU 以确保流畅体验，但低 VRAM 设备仍可通过积极的卸载策略运行，只是速度较慢且更容易出现内存不足错误。此外，用户可以通过偏好设置或特定节点调整模型加载和内存管理策略，进一步优化性能。","2026-06-11 04:02:35","CREATED_QUERY"]