2026-08-09 21:56:42 +02:00
|
|
|
# lektor_ai_comfy — default settings
|
|
|
|
|
#
|
|
|
|
|
# These are the values used when a flag is not given on the command line.
|
|
|
|
|
# Precedence: command-line flag > this file > built-in defaults
|
|
|
|
|
#
|
|
|
|
|
# Delete a line (or the whole file) to fall back to the built-in default.
|
|
|
|
|
# A malformed value is reported and ignored, never fatal.
|
|
|
|
|
#
|
|
|
|
|
# Not configurable here, because they belong to a single run rather than to
|
|
|
|
|
# your setup: --start --end --seed --regen --rebuild --resume-from
|
|
|
|
|
# --embedded-subs --skip-tts
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[tts]
|
|
|
|
|
# Voice reference. Either a name in voices/ (expects NAME.wav + NAME.txt),
|
|
|
|
|
# or a full path to a .wav file.
|
2026-08-10 12:36:59 +02:00
|
|
|
voice = gudowski_short_3
|
2026-08-09 21:56:42 +02:00
|
|
|
|
|
|
|
|
# Per-clip speed-up applied with atempo, before assembly.
|
|
|
|
|
# Raise it if speech regularly overruns its subtitle window; 1.0 = no change.
|
|
|
|
|
speed = 1.2
|
|
|
|
|
|
|
|
|
|
# Sampling temperature. 1.0 makes the model occasionally recite the reference
|
|
|
|
|
# transcript instead of the subtitle; 0.9 largely prevents that. Lower is more
|
|
|
|
|
# deterministic but flatter.
|
2026-08-12 19:40:44 +02:00
|
|
|
temperature = 0.8
|
2026-08-09 21:56:42 +02:00
|
|
|
|
|
|
|
|
# Ceiling on audio tokens per clip. Raise only if long clips are cut off
|
|
|
|
|
# mid-word.
|
|
|
|
|
max_tokens = 4096
|
|
|
|
|
|
2026-08-10 14:12:33 +02:00
|
|
|
# Roughly one clip in twelve comes back cut off mid-word. Those are detected and
|
|
|
|
|
# asked for again with a different seed, up to this many extra attempts. 0 to
|
|
|
|
|
# switch retrying off.
|
|
|
|
|
truncation_retries = 2
|
|
|
|
|
|
2026-08-09 21:56:42 +02:00
|
|
|
# Trim this many ms from the start of every clip, to remove an inhale artifact.
|
|
|
|
|
# Try 80-150 if you hear one. Too high clips the first consonant.
|
|
|
|
|
strip_leading_ms = 0
|
|
|
|
|
|
|
|
|
|
# Fade out the last N ms of every clip to suppress tail pops. 0 disables.
|
|
|
|
|
trailing_fade_ms = 80
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[mix]
|
|
|
|
|
# Levels inside the Polish lektor track only. Track 0 is always the untouched
|
|
|
|
|
# original, so mixing aggressively here costs you nothing.
|
|
|
|
|
# Dialogue-heavy sources: orig 0.5 / tts 2.0. Quiet sources: orig 1.0 / tts 1.4.
|
|
|
|
|
orig_volume = 0.70
|
|
|
|
|
tts_volume = 1.4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[paths]
|
|
|
|
|
# Where clips, assembled audio and the finished video are written.
|
|
|
|
|
# Relative paths are resolved from wherever you run the script.
|
|
|
|
|
output_dir = output
|
|
|
|
|
|
2026-08-12 19:40:44 +02:00
|
|
|
# Word and phrase replacements applied to the subtitles before they are spoken,
|
|
|
|
|
# e.g. "km/h = kilometrów na godzinę". One rule per line in that file; see the
|
|
|
|
|
# comments at the top of it. A relative name is looked for in the current
|
|
|
|
|
# directory first, then next to lektor_ai_comfy.py, so a single film can have
|
|
|
|
|
# its own list. A missing file is not an error.
|
|
|
|
|
dictionary = dictionary.txt
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[normalize]
|
|
|
|
|
# Spell digits out as Polish words before the text reaches the TTS, in the right
|
|
|
|
|
# grammatical case: "Wygrał 1247 złotych" -> "Wygrał tysiąc dwieście czterdzieści
|
|
|
|
|
# siedem złotych". Higgs Audio misreads long digit strings and sometimes turns
|
|
|
|
|
# them into non-words. Standalone single digits are read correctly and are left
|
|
|
|
|
# alone. Runs last, on the text that goes into tts_input.srt. yes/no.
|
|
|
|
|
numbers = yes
|
|
|
|
|
|
|
|
|
|
# Interpreter of the normalizer's own environment — it needs transformers>=5,
|
|
|
|
|
# which must not be installed next to ComfyUI's pinned versions. Created by
|
|
|
|
|
# normalizer/setup.sh. Relative paths are resolved next to lektor_ai_comfy.py.
|
|
|
|
|
# If it is missing the run continues with the digits untouched.
|
|
|
|
|
python = normalizer/venv/bin/python
|
|
|
|
|
|
|
|
|
|
# Second model, used for the grammar of plain integers. num2words supplies the
|
|
|
|
|
# value (it cannot miscount) and this model puts the numeral into the right
|
|
|
|
|
# case: "o 250000 uchodzcach" -> "o dwustu piecdziesieciu tysiacach uchodzcow".
|
|
|
|
|
# The fine-tune alone gets that wrong, and sometimes loses the number itself.
|
|
|
|
|
# Blocks with times, dates, decimals or identifiers skip it — it is worse than
|
|
|
|
|
# the fine-tune on those. Leave empty to use the fine-tune for everything.
|
|
|
|
|
llm = normalizer/models/PLLuM-4B-instruct-2512
|
|
|
|
|
|
|
|
|
|
# Seconds to wait for one block. On a GPU a block takes well under a second;
|
|
|
|
|
# this only exists so a wedged worker cannot stall the whole run.
|
|
|
|
|
timeout = 60
|
|
|
|
|
|
|
|
|
|
# Ask ComfyUI to unload Higgs before normalizing, so the normalizer gets the
|
|
|
|
|
# GPU. Higgs stays resident between runs and leaves too little VRAM; a
|
|
|
|
|
# normalizer that does not fit spills to RAM silently and runs about 5x slower.
|
|
|
|
|
# ComfyUI reloads on the first clip of step 2 (20-30s, once per run). --regen
|
|
|
|
|
# and --rebuild never normalize, so they never pay it. yes/no.
|
|
|
|
|
free_comfy_vram = yes
|
|
|
|
|
|
2026-08-09 21:56:42 +02:00
|
|
|
|
|
|
|
|
[comfy]
|
|
|
|
|
# Address of the ComfyUI backend running Higgs Audio V3.
|
|
|
|
|
comfy_url = http://127.0.0.1:8189
|
2026-08-10 14:12:33 +02:00
|
|
|
|
|
|
|
|
# Start ComfyUI automatically when it stops answering. A crash loses its queue,
|
|
|
|
|
# so the clip in flight is resubmitted once the backend is back. At most 3
|
|
|
|
|
# attempts per run, 90s apart, so a backend that dies on startup cannot spawn an
|
|
|
|
|
# endless stream of terminal windows. yes/no.
|
|
|
|
|
autostart = yes
|
|
|
|
|
|
|
|
|
|
# The script used to start it. Relative paths are resolved next to
|
|
|
|
|
# lektor_ai_comfy.py.
|
|
|
|
|
start_command = start_comfyui.sh
|