60. Как мы два дня устанавливали SadTalker на Linux Mint (реальная история)

Иногда установка программ из мира нейросетей превращается в небольшое приключение.
Так произошло и с SadTalker — проектом, который умеет анимировать лицо на фотографии и заставлять его говорить.

Казалось бы, всё просто: клонировать репозиторий, установить зависимости и запустить.
На практике всё заняло почти два дня.


День первый. Всё должно работать… но не работает

Началось всё довольно стандартно.

Склонировали репозиторий:

git clone https://github.com/OpenTalker/SadTalker.git
cd SadTalker

Создали виртуальное окружение и начали устанавливать зависимости.

Но уже на этапе запуска появилась первая ошибка:

ModuleNotFoundError: No module named 'pkg_resources'

Это означало, что Python не видит модуль pkg_resources, который входит в пакет setuptools.

Странность заключалась в том, что setuptools был установлен.

Проверка:

pip install setuptools

Ответ системы:

Requirement already satisfied

Но Python продолжал утверждать, что модуля не существует.


Первая гипотеза — версия Python

Первоначально использовался Python 3.11.

Многие проекты машинного обучения до сих пор плохо поддерживают эту версию.
Особенно старые зависимости вроде librosa, numpy и scikit-image.

После нескольких попыток стало ясно — нужно перейти на Python 3.10.

После смены версии часть ошибок исчезла.

Но не все.


Вторая проблема — numpy

Следующей неожиданностью стала версия numpy.

Новая версия (1.26+) конфликтует с рядом библиотек, которые использует SadTalker.

Решение оказалось простым:

pip install "numpy<1.26"

После этого большинство библиотек установилось без ошибок.


День второй. Виртуальное окружение и «магия»

К утру стало ясно, что проблема могла быть в самом virtualenv.

Иногда окружение повреждается во время установки зависимостей.

Поэтому было принято простое решение:

удалить его и создать заново.

rm -rf venv
python3.10 -m venv venv
source venv/bin/activate

После этого:

pip install -r requirements.txt

И — неожиданно — всё установилось намного спокойнее.


Ещё одна мелочь — ffmpeg

SadTalker использует ffmpeg для сборки видео.

Если его нет в системе, программа не сможет создать итоговый ролик.

Решение:

sudo apt install ffmpeg

Наконец запуск

После всех исправлений программа наконец стартовала:

python app_sadtalker.py --cpu

В консоли появился адрес:

Running on local URL: http://127.0.0.1:7860

Открываем браузер — и интерфейс работает.

Фотография загружается, аудио добавляется, лицо начинает говорить.


Что оказалось самым важным

За два дня экспериментов выяснилось несколько ключевых вещей.

  1. Лучше использовать Python 3.10
  2. numpy должен быть ниже версии 1.26
  3. virtualenv иногда проще пересоздать
  4. ffmpeg обязательно должен быть установлен
  5. проекты с нейросетями часто чувствительны к версиям библиотек

Итог

Несмотря на сложности установки, SadTalker отлично работает даже на обычной системе без GPU.

Самое сложное — не сама программа, а правильная комбинация библиотек Python.

Когда они совпадают — всё запускается буквально одной командой.

Почти повторение этого

github

Оставьте комментарий