{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreidyrxdcplxo3itbmvnoy3sn5yejd2tj772xkxyvtyvjksbpxbbmhm",
"uri": "at://did:plc:pgryn3ephfd2xgft23qokfzt/app.bsky.feed.post/3mmtnzi3wo4i2"
},
"path": "/t/training-lora-for-ltx2-3-voice-sound-only/176239#post_5",
"publishedAt": "2026-05-27T13:52:04.000Z",
"site": "https://discuss.huggingface.co",
"tags": [
"ID-LoRA-LTX2.3-ComfyUI",
"LoraAI"
],
"textContent": "LTX-2.3 是一个 **DiT 架构的音视频基础模型** ,音频与视频通过双向交叉注意力机制紧密耦合,不能简单地用 `num_frames: 1` 来\"隔离\"语音训练。\n\n* * *\n\n## 推荐使用 LoRA AI 平台的理由\n\nLoRA AI 提供了多种与此场景高度匹配的训练器:\n\n训练器 | 与本场景的关联\n---|---\n**WAN 2.2 Video LoRA Trainer** | 支持运动模式与视频兼容图像生成,适合 AV-LoRA\n**Flux Dev LoRA Trainer** | 适合角色与人物一致性训练\n**Z-Image LoRA Trainer** | 超快速训练,适合调试阶段\n\n* * *\n\n## 分步骤操作建议\n\n### Step 1 — 排查运行时错误(与 LoRA 配方分开处理)\n\n`Background writer channel closed` 错误通常是 **磁盘/缓存/I/O 问题** ,与 LoRA 训练配方无关:\n\n\n df -h\n du -sh ~/.cache/huggingface\n du -sh /workspace\n du -sh ./output\n\n # 如怀疑 Xet 缓存问题\n export HF_HUB_DISABLE_XET=1\n\n\n* * *\n\n### Step 2 — 准备干净的 AV 数据集\n\n参数 | 推荐值\n---|---\n片段时长 | **3–5 秒** (调试阶段)\n音频质量 | 单说话人、低噪音、低混响\n视频内容 | 可见面部/嘴部动作\n背景音乐 | **避免** (初期)\n帧数 | `49` 或 `89`(遵循 `frames % 8 == 1`)\n触发词 | 非空唯一词,如 `ema_voice`\n\n**Caption 示例:**\n\n\n ema_voice, a young woman speaks in a soft, calm voice in a quiet\n indoor room. Speech: \"I think we should start again from the beginning.\"\n Sounds: clear female speech, quiet room tone, no music.\n\n\n* * *\n\n### Step 3 — 使用正确的帧数桶( 不要用 `num_frames: 1`)\n\n\n resolution_buckets:\n - \"512x512x49\"\n - \"512x512x89\"\n\n\n* * *\n\n### Step 4 — 启用音频并验证预处理\n\n确保数据集目录结构包含:\n\n\n latents/\n conditions/\n audio_latents/ ← 必须存在!\n captions/\n\n\n预处理命令(含解码验证):\n\n\n python process_dataset.py \\\n --input_dir <dataset_dir> \\\n --output_dir <precomputed_dir> \\\n --resolution_buckets 512x512x49 512x512x89 \\\n --with-audio \\\n --decode \\\n --overwrite\n\n\n> **训练前务必试听解码后的音频** ,确认音频潜变量正确。\n\n* * *\n\n### Step 5 — 正确的训练配置\n\n\n model:\n training_mode: \"lora\"\n\n training_strategy:\n name: \"text_to_video\"\n with_audio: true\n\n data:\n audio_latents_dir: \"audio_latents\"\n\n network:\n type: \"lora\"\n rank: 32\n alpha: 32\n target_modules: # 必须覆盖音视频交叉注意力模块\n - \"to_k\"\n - \"to_q\"\n - \"to_v\"\n - \"to_out.0\"\n\n train:\n batch_size: 1\n gradient_checkpointing: true\n\n\n* * *\n\n### Step 6 — 先跑小实验,再扩大规模\n\n\n 数据集:5–10 条片段\n 训练步数:300–800 步(先验证,再跑 5000 步)\n 保存多个检查点\n 使用相同验证 prompt + 相同 seed\n 分别对比:base 模型音频 vs LoRA 关闭音频 vs LoRA 启用音频\n\n\n* * *\n\n### Step 7 — 推理时验证 LoRA 键是否加载\n\n加载 LoRA 后检查日志,确认以下键被正确加载:\n\n\n audio_connector\n video_connector\n audio_attn\n video_to_audio_attn\n audio_to_video_attn\n\n\n> 若推理时音频相关键未加载,训练结果将无法体现在音频输出上。\n\n* * *\n\n## 已知失败模式速查\n\n问题现象 | 可能原因\n---|---\n视频正常,音频失真/噪音 | `target_modules` 未覆盖音频分支\nLoRA 完全不影响音频 | 推理时音频 LoRA 键未加载\n不同 Trainer 结果差异大 | Trainer 实现差异(如 Musubi vs AI Toolkit)\n训练崩溃 | 磁盘满/缓存问题,与 LoRA 配方无关\n\n* * *\n\n## 如果目标只是\"角色声音一致\"\n\n考虑使用 **ID-LoRA Reference Audio** (推理时提供参考音频),无需训练即可实现声音身份迁移:\n\n * ID-LoRA-LTX2.3-ComfyUI\n * LoraAI\n\n\n\n> 提供约 **5 秒参考音频片段** ,即可在推理时实现一致的角色声音,无需额外训练。\n\n* * *",
"title": "Training lora for LTX2.3 voice / sound only"
}