Найти в Дзене

Ошибка "Failed Building Wheel for InsightFace" в нейросетях (и не только)

Часто при установке "ReActor for Stable Diffusion" и других "приблуд" для определения в графике лиц и их подмены, происходит ошибка "building Wheel for InsightFace". Причина в том, что в файле requirements.txt, описывающем пакеты питона, требующиеся к установке, установка одного из пакетов выглядит так: Некоторые системы под Windows, особенно у начинающих пользователей, еще не "замусорены" никакими "лишними" библиотеками, драйверами, программным обеспечением вроде VS (который тащит за собой "целу-кучу библиотек всяко-разных"), кэш еще пустой, и т.п., в результате чего при установке пакета "insightface" происходит обнаружение в репозитории его исходного кода (вместо обнаружения бинарной версии пакета), и для его установки требуется "скомпилировать из сырцов" исходный код пакета.
Для этого процесса требуется еще одна "цела-куча библиотек всяко-разных", которых у пользователя на машине, конечно же, нет. В результате процесс компиляции завершается ошибкой по причине "чего-то нет, что-то
Оглавление

Часто при установке "ReActor for Stable Diffusion" и других "приблуд" для определения в графике лиц и их подмены, происходит ошибка "building Wheel for InsightFace".

В чем причина?

Причина в том, что в файле requirements.txt, описывающем пакеты питона, требующиеся к установке, установка одного из пакетов выглядит так:

-2

Некоторые системы под Windows, особенно у начинающих пользователей, еще не "замусорены" никакими "лишними" библиотеками, драйверами, программным обеспечением вроде VS (который тащит за собой "целу-кучу библиотек всяко-разных"), кэш еще пустой, и т.п., в результате чего при установке пакета "insightface" происходит обнаружение в репозитории его исходного кода (вместо обнаружения бинарной версии пакета), и для его установки требуется "скомпилировать из сырцов" исходный код пакета.

Для этого процесса требуется еще одна
"цела-куча библиотек всяко-разных", которых у пользователя на машине, конечно же, нет. В результате процесс компиляции завершается ошибкой по причине "чего-то нет, что-то есть, но не той версии, а это есть, но оно прямо написано, а надо "задом наперед"". В результате "Ошибка установки пакета".

Все! Приехали! (((

Исправление ошибки

Избежать этой ошибки поможет изменение описания установки пакета, надо лишь указать кроме имени и версии пакета, еще и URL-адрес, откуда взять уже скомпилированную (бинарную) версию пакета.

Строка:

insightface==0.7.3

... меняется на строку:

insightface==0.7.3 --index-url [здесь URL бинарного пакета]


А проще вообще установить пакет "insightface" вручную. Ниже приведены адреса, которые надо подставить вслед за "--index-url", и команды "pip" для установки пакетов.

Пакеты скомпилированы под 4 версии питона:

3.9, 3.10, 3.11 и 3.12


Соответственно, надо подставить имя файла в адресе в зависимости версии питона, на который производится установка. Вот они:

https://github.com/Nestorchik/insightface.whl/releases/download/insightface/insightface-0.7.3-cp312-cp312-win_amd64.whl

https://github.com/Nestorchik/insightface.whl/releases/download/insightface/insightface-0.7.3-cp311-cp311-win_amd64.whl

https://github.com/Nestorchik/insightface.whl/releases/download/insightface/insightface-0.7.3-cp310-cp310-win_amd64.whl

https://github.com/Nestorchik/insightface.whl/releases/download/insightface/insightface-0.7.3-cp39-cp39-win_amd64.whl


Вручную, пакет 'insightface", ставится следующими командами:
(тут при форматировании переносится строка, используйте каждую команду как одну строку, и включите в нее все, что находится между кавычками!)

для Python 3.12
"
python -m pip install
https://github.com/Nestorchik/insightface.whl/releases/download/insightface/insightface-0.7.3-cp312-cp312-win_amd64.whl
"
для
Python 3.11
"
python -m pip install https://github.com/Nestorchik/insightface.whl/releases/download/insightface/insightface-0.7.3-cp311-cp311-win_amd64.whl
"
для
Python 3.10
"
python -m pip install https://github.com/Nestorchik/insightface.whl/releases/download/insightface/insightface-0.7.3-cp310-cp310-win_amd64.whl
"
для
Python 3.9
"
python -m pip install https://github.com/Nestorchik/insightface.whl/releases/download/insightface/insightface-0.7.3-cp39-cp39-win_amd64.whl
"

Исправления в requirements.txt

В файле requirements.txt достаточно записать строку установки пакета как:

insightface==0.7.3 --index-url https://github.com/Nestorchik/insightface.whl/releases/download/insightface/insightface-0.7.3-cp312-cp312-win_amd64.whl

... и будет вам "Щасте"!

После установки пакета с использованием URL эти пакеты попадут в кэш "pip", и, пока они будут находиться в кэше, можно будет использовать команду установки уже без указания URL, а просто именем пакета с номером версии.

Сами пакеты лежат вот тут: https://github.com/Nestorchik/insightface.whl/releases/tag/insightface

Их можно скачать локально, и, в дальнейшем, проводить инсталляцию пакета указав вместо URL просто полный путь к пакету на локальном диске как обычный файл.

Можно даже не указывать при установке имя пакета, а указать просто полный путь к whl-файлу вот так:

python -m pip install c:\мой_архив\insightface-0.7.3-cp312-cp312-win_amd64.whl

Примечание

Иногда установка пакета по URL заканчивается ничем, или ответом "Не могу обнаружить указанную версию" и т.п. Не раз сталкивался с этим, но в чем причина — так и не уразумел.
Помогает в таких случаях ТОЛЬКО предварительное скачивание пакета на компьютер и локальная его установка как:

python -m pip install NAME.whl

Удачи!
NStor
https://t.me/stable_cascade_rus
https://t.me/srigert