ComfyUI-GigaAM
A ComfyUI extension with 3 custom nodes.
Nodes (3)
ComfyUI-GigaAM (Orex Nodes)
✅ После установки запустите custom_nodes\ComfyUI-GigaAM\INSTALL_DEPS.bat
Для установки зависимостей. Проверено на Torch 2.12 не сносит.
Комплексный набор пользовательских узлов (custom nodes) для ComfyUI, предназначенный для высококачественной транскрибации аудио, умной обработки субтитров и автоматического тайминг-выравнивания переозвучки видео (дубляжа).
Разработано: Oleg Konuykov (OreX)
🌟 Основные возможности
- Продвинутая транскрибация: Использование моделей GigaAM для точного распознавания речи с поддержкой обработки длинных аудиозаписей (Longform).
- Диаризация спикеров: Встроенная интеграция Pyannote для автоматического определения и разделения говорящих.
- Подготовка данных для LLM: Умная нарезка текста на батчи с учетом лимита токенов, количества предложений или слов. Идеально для последующего машинного перевода (например, через GGUF LLM).
- Бесшовная синхронизация аудио: Алгоритм WSOLA бережно растягивает или сжимает сгенерированную речь (TTS), чтобы она строго попадала в оригинальные таймкоды видео без искажения высоты голоса (pitch).
- Экспорт караоке: Возможность генерации
.srtсубтитров с подсветкой текущего слова<u>для стильных шортсов и рилсов.
🧩 Описание узлов
| Имя узла | Категория | Описание |
|:------------------------------------- |:---------------- |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| GigaAM Speech to Text | Audio/GigaAM | Главный узел транскрибации. Скачивает и загружает выбранную модель GigaAM. Поддерживает разделение текста, вывод таймкодов и настройку токена HuggingFace. Выдает цельный текст и text_batch для LLM. |
| Orex Cutting Subtitles ✂️ | Orex Nodes 🛠️ | Парсер и клинер субтитров. Принимает сырой текст с таймкодами от LLM, очищает его от галлюцинаций (лишних скобок/кавычек) и выдает два батча: с таймкодами и только чистый текст для TTS. |
| Audio Subtitle Aligner (OreX) 🎛️ | Orex Nodes 🛠️ | Узел синхронизации. Принимает батч сгенерированного аудио и батч оригинальных таймкодов. Автоматически подгоняет длительность каждого аудиофрагмента под таймкод и собирает единую звуковую дорожку. |
⚙️ Установка и требования
Для работы узлов требуются дополнительные Python-библиотеки. Перейдите в папку вашего портативного окружения (или активируйте venv ComfyUI) и выполните:
pip install gigaam pyannote.audio audiotsm soundfile
### Настройка HuggingFace (Для диаризации)
Если вы планируете использовать функцию разделения по спикерам (Speaker Diarization):
1. Зарегистрируйтесь на [Hugging Face](https://huggingface.co/).
2. Примите условия использования модели `pyannote/speaker-diarization-community-1`.
3. Создайте токен доступа (Read) в настройках профиля.
4. Вставьте токен в поле `hf_token` узла **GigaAM Speech to Text** (или задайте переменную среды `HF_TOKEN`). Модель скачается в ваш локальный кэш автоматически.
> **Примечание по кэшу:** Модели загружаются в стандартую директорию HuggingFace (`~/.cache/huggingface/hub` или по пути, указанному в ваших переменных среды, например `models/audio_encoders/gigaam_models`).
## 🔄 Пример пайплайна (Workflow) для дубляжа
1. **Load Audio / Video:** Загружаем исходный медиафайл.
2. **GigaAM Speech to Text:** Транскрибируем аудио, включив `word_timestamps` и задав `sentences_per_interval` (например, 1). На выходе получаем список предложений с таймкодами.
3. **LLM Node (Translate):** Отправляем `text_batch` в любую языковую модель для перевода с сохранением таймкодов.
4. **Orex Cutting Subtitles ✂️:** Очищаем ответ от LLM. Разделяем таймкоды и переведенный текст.
5. **TTS Node:** Генерируем голос (например, через XTTS или EdgeTTS) на основе `clean_text (batch)`.
6. **Audio Subtitle Aligner (OreX) 🎛️:** Соединяем сгенерированный аудио-батч с `subs_with_timestamps (batch)`. Узел соберет готовую русифицированную (или любую другую) дорожку, идеально совпадающую с движением губ в оригинальном видео!
## 🛠️ Известные особенности
- **WSOLA Лимиты:** Узел Aligner ограничивает скорость изменения аудио от `0.5x` до `2.0x`. Если сгенерированный текст слишком длинный, постарайтесь попросить LLM делать перевод более лаконичным.
- Модель `v3_e2e_rnnt` рекомендуется как оптимальная по соотношению скорости и качества.