๐งพ DramaBox Dataset Rows
Turn your staged clips into a real training manifest
- clip_dataset
- manifest_path
- manifest_info
DramaBox's official trainer wants a JSONL manifest: one row per audio clip, with its transcript, speaker, and language. If you're building a training set entirely inside ComfyUI, this is the node that writes that file. It takes the staged clips from ๐๏ธ Training Clip Staging, pairs each one with a transcript you type in, and emits a manifest under ComfyUI/input/.
It's the least glamorous step in the TTS Audio Suite training flow and the one people most often mess up - because the whole thing hinges on you typing exactly one transcript per clip.
The inputs that matter
clip_dataset- theTRAINING_CLIP_DATASEToutput from๐๏ธ Training Clip Staging. That node takes rawAUDIOsources, slices them, and hands the staged clips here. There's no other way in - the node validates that its input came from staging.transcript_lines- the big one. Exactly one line per clip, in clip order. Blank lines skip the corresponding clip rather than erroring, which is handy for dropping bad takes without rebuilding the whole list.speaker_lines- optional, one speaker name per line. Blank lines fall back todefault_speaker. This is where you assign voice identity per clip.language_lines- same idea, per-clip language codes falling back todefault_language(en).
manifest_name sets the output filename (.jsonl is appended if you forget), output_subdir defaults to tts_audio_suite_training/dramabox/manifests inside ComfyUI/input/, and overwrite lets you regenerate freely.
How it works
The node counts your staged clips, checks your transcript lines match that count, then builds each JSONL row with the audio path, text, speaker, language, and measured duration - no GPU involved, this is pure bookkeeping. If your line count is off you get a clear error telling you exactly how many lines it expected, which beats the silent "training did nothing" alternative. It also verifies every row actually references an audio file.
Outputs are manifest_path (STRING, the file you just wrote) and manifest_info (STRING, a summary). Feed the path into ๐ฆ DramaBox Dataset Prep as dataset_source with dataset_type=manifest, and you've completed the all-ComfyUI pipeline: Clip Staging โ Dataset Rows โ Dataset Prep โ Training Config โ Model Training.
Gotchas worth knowing
Each speaker needs at least two clips. DramaBox's trainer wants a reference tail per speaker, and a speaker with one clip is a speaker with a broken voice. If a voice sounds off after training, check you gave it a couple of clean clips rather than a single perfect one.
Transcript quality is everything. The trainer accepts plain transcripts or full scene-style prompts (A woman speaks warmly, "..."), but scene descriptions only help if they accurately describe the clip. A mismatched description actively teaches the model the wrong delivery. Plain transcripts are the safer default unless you curated the scenes deliberately.
One more thing: the transcript and speaker lines are positional, and there's no preview telling you which clip is which. Keep a text editor open, label your staged clips as you go, and you'll thank yourself an hour later when you're not untangling a fifty-line mismatch.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| clip_dataset | TRAINING_CLIP_DATASET | Staged audio from Training Clip Staging. | |
| manifest_name | STRING | dramabox_train.jsonl | Output manifest filename. .jsonl is appended when missing. |
| transcript_lines | STRING | Hello there, this is a training sample. This is the second sample from the same speaker. | Exactly one line per staged clip, in clip order. Blank lines skip the corresponding clip. |
| speaker_linesopt | STRING | Optional speaker name per clip. Blank lines use default_speaker. | |
| language_linesopt | STRING | Optional language code per clip. Blank lines use default_language. | |
| default_speakeropt | STRING | speaker_1 | Speaker assigned when the corresponding speaker line is blank. Each DramaBox speaker needs at least two clips. |
| default_languageopt | STRING | en | Language code assigned when the corresponding language line is blank. |
| output_subdiropt | STRING | tts_audio_suite_training/dramabox/manifests | Subdirectory inside ComfyUI input/ for the generated manifest. |
| overwriteopt | BOOLEAN | true | Overwrite an existing manifest with the same name. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| manifest_path | STRING | โ |
| manifest_info | STRING | โ |