А АTuesday, 7 January 2025

Домашний GenАI сервер.

Всем привет.

Как-то под Новый год мне не удалось попасть физически на свой компьютер (с Windows 10, но далее назовем его гордо GenАI-сервер) который и выступает собственно в роли GenАI. А вот ноутбук оказался доступен. И чертовски захотелось поработать творчески...

Тут я вспонимл про то что почти все генераторы могут работать по сети.  В конце концов gradio тот же web frontend, a волшебный ключик --listen творит чудеса.

Что мы имеем в таком случае? У себя на нотубуке в web-браузере мы можем запустить тот же ComfyUI как https://GenAI_ip_adr:8187 и начинать творить. Все ресурсы для генерации, CPU+RAM+VRAM, будут использованы на удаленном сервере. Отлично. 

А что в минусах? 

Первое - у нас нет консоли (backend) самого генератора, иногда полезно и туда заглядывать, хотя для ComfyUI автор эту проблему уже решил: хитрая панелька снизу в окне web-браузера.

Второе - мы не можем переключиться на другой генератор, например на Fooocus, если тот не запущен. Я пробовал запустить их несколько одновременно, однако печаль по памяти.

Какие есть варианты?

Самый простой это использовать RDP сеанс к своему серверу. Теперь в отдельном окне у меня Desktop сервера со всеми вытекающими плюсами. Если здесь минус? Практически нет, за исключением небольших настроек для RDP.  Но можно пойти еще дальше.

Если вы пользуетесь удалённым компьютером для запуска одного приложения в RDP сессии, скорее всего вам будет удобнее запускать эту программу в режиме RemoteApp. Технология RemoteApp это одна из возможностей терминальной службы Remote Desktop Services, которая позволяет запускать приложения, установленные на удаленном RDS (RDP) сервере так, как будто они запускаются на клиенте локально. Т.е. на монитор клиента доставляется не весь рабочий стол удаленного сервера, а только окно опубликованного приложения, например web-браузера.

Хорошая новость - несмотря на то, что официально RemoteApp поддерживаются только в Windows Server с развернутой ролью RDS, вы можете опубликовать любое установленное приложение в виде RemoteApp в том числе и на десктопных версиях, таких как Windows 10. Можно вообще ничего не публиковать, а запускать любое из имеющихся приложений на сервере, достаточно его указать его в параметрах rdp-файла соединения (ниже фрагмент для Chrome, но подробнее здесь): 

RemoteApplicationName:s:Server_GenAI

RemoteApplicationProgram:s:"C:\Program Files\Google\Chrome\Application\chrome.exe"

DisableRemoteAppCheck:i:1

Prompt for Credentials on Client:i:0

Alternate Shell:s:rdpinit.exe

Для этого обязательно создайте параметр реестра fAllowUnlistedRemotePrograms со значением 1 на удаленном сервере с Windows 10: 

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v fAllowUnlistedRemotePrograms /t REG_DWORD /d 1 

Все работает без перезагрузки. Вы получаете только окно приложения, само приложение выполняется на сервере. Как вы понимаете теперь ключик --listen для каждого генератора не нужен. Т.е. и так можно работать, но мне лично больше нравится полная RDP сессия. Единственный минус - Windows 10 в качестве сервера поддерживает только одного RDP-клиента одновременно. Есть хаки против этого, но стоит ли? Разве что у вас семья будущих АІ-художников дома, а сервер один.)

Удачи.

No comments:

Post a Comment

А что вы думаете по этому поводу?

Версия на печать

Популярное