Pinokio
Pinokio (также известная как Пиноккио, деревянный мальчик, костыль для нормисов, убийца глобального питона) — эпичная софтина, созданная неким азиатским гением под ником cocktailpeanut, призванная принести нейросетевые технологии в массы путем нажатия ровно 1 кнопки. Сабж позиционирует себя как The Localhost Cloud, то есть локальное облако, что само по себе звучит как взаимоисключающие параграфы, но на деле является встроенным браузером, который под капотом тянет за собой портативный Git, портативный Python, Node.js, Conda, FFmpeg и еще over 9000 зависимостей, чтобы среднестатистический Вася Пупкин мог генерировать порнокартинки с анимешными девочками и клонировать голоса бывших без необходимости открывать страшную черную консоль и курить мануалы на StackOverflow.
Истоки баттхерта[править]
До появления сабжа, установка любой локальной нейросети, будь то Stable Diffusion, ComfyUI или какой-нибудь текстовый генератор, представляла собой изощренный квест для красноглазиков. Юный падаван, насмотревшись на YouTube роликов о том, как ИИ лишит всех работы, решал приобщиться к технологиям. Он шел на GitHub, скачивал архив, и тут начинался настоящий производственный ад. Оказывалось, что для запуска нужен Python версии строго 3.10.6, а у Васи стоял 3.11, из-за чего модули отказывались собираться. Затем выяснялось, что нужно поставить CUDA toolkit, прописать пути в переменные среды, обновить драйвера на свою несчастную RTX 3060 с 8 гигабайтами видеопамяти, после чего pip install -r requirements.txt радостно вываливал красную простыню ошибок, потому что версия xformers не совпадала с версией torch.
Потратив 2 дня на гугление ошибок и переустановку Windows, юзер либо уходил в монастырь, либо платил деньги за облачные сервисы. И тут на сцену верхом на белом коне въезжает Pinokio. Идея создателя была проста как 3 копейки: написать графическую оболочку на базе Electron, которая будет парсить специальные JSON-скрипты. В этих скриптах добрые дяди-программисты уже прописали все команды для создания виртуальных окружений, скачивания репозиториев, подтягивания нужных весов моделей с HuggingFace и запуска локального веб-сервера. Юзеру остается лишь ткнуть мышкой в кнопку Install, пойти попить чайку минут эдак на 40, пока софтина выкачивает половину интернета, а затем нажать Launch. ПРОФИТ!
Анатомия деревянного мальчика[править]
Вся эта магия работает благодаря довольно интересной и местами костыльной архитектуре, которая заставляет настоящих девопс-инженеров плакать кровавыми слезами, а обывателей пищать от восторга. В основе всего лежит папка pinokio, которую сабж создает при установке. Это его личная песочница, его манямирок, в котором он творит свои темные дела.
Внутри этой папки есть директория bin, куда софтина заботливо и без спроса устанавливает свою собственную, изолированную версию Miniconda, свой собственный Git, свой Node.js и прочий софт. Это сделано для того, чтобы не конфликтовать с системными установками, хотя на практике это иногда приводит к былинным отказам, о которых мы поговорим ниже.
Далее идет директория api, куда загружаются сами проекты. Захотел ты поставить FaceFusion, чтобы приклеить лицо начальника к туловищу порноактера? Pinokio создает папку api/facefusion.git, клонирует туда репозиторий, разворачивает там виртуальное окружение питона и начинает неистово качать гигабайты зависимостей.
Но самая мякотка — это директория drive. Создатель сабжа быстро понял, что если 5 разных приложений для генерации картинок будут качать одни и те же чекпоинты Stable Diffusion весом по 6 гигабайт каждый, то SSD юзера быстро скажет кряк и прикажет долго жить. Поэтому была придумана система виртуальных дисков. Pinokio использует жесткие ссылки и симлинки, чтобы хранить общие файлы вроде моделей, LoRA, VAE и даже одинаковых пакетов питона в одном месте, раздавая приложениям лишь ярлыки. Звучит как гениальный план, надежный как швейцарские часы, но в реалиях Windows с ее специфической файловой системой это периодически приводит к тому, что симлинки бьются, программы не видят модели, а юзер в панике жмет кнопку Factory Reset.
It is not that it doesn't work. It did work. But it broke every single other AI installation I had, including Automatic1111, Forge, and Fluxgym. It uninstalls and reinstalls everything without asking you, as if it is the only program you use. It completely broke my workflow. Now I have to reinstall everything from scratch.
Разорванные пердаки[править]
Любой инструмент, пытающийся сделать сложное простым, неизбежно порождает два лагеря: армию казуалов, которые молятся на разработчика, и элитарную касту олдфагов, которые презирают сабж. Платформа Reddit стала главным полем боя для этих двух фракций.
В сабреддитах, посвященных локальным ИИ, регулярно вспыхивают треды с заголовками в духе PSA: Do not use Pinokio.computer on Windows. Суть претензий сводится к тому, что Pinokio, по утверждениям некоторых потерпевших, ведет себя как вирус-шифровальщик, только вместо шифрования он переписывает глобальные переменные среды. Один небезызвестный юзер под ником asdasci поднял эпичный вой, заявив, что сабж сломал ему уже установленные вручную A1111, Forge и Fluxgym, потому что якобы перезаписал системные пути к Python и CUDA.
В ответ на это набежала толпа адептов ручной установки, которые с высоты своего ЧСВ начали пояснять ньюфагу, что он сам ССЗБ (сам себе злобный Буратино), потому что не использовал venv (виртуальные окружения) при ручной установке своих нейронок. Начался классический срач на тему Skill Issue. Оппонент с пеной у рта доказывал, что установщик не должен лезть в глобальные директории без спроса, на что ему резонно отвечали, что Pinokio вообще-то использует встроенную изолированную Конду и физически не мог сломать глобальный питон, если только юзер сам не натворил дичи.
How can it be a skill issue when I just double-clicked its executable and used it? Did I have to time the double-click just right? Saying git gud lel in this situation is the epitome of clownery.
Тем временем, маководы тоже не остались в стороне. Операционная система от Apple исторически славится тем, что считает пользователя дебилом, которому нельзя доверять. Поэтому скачанный из интернета бинарник Pinokio macOS заботливо помещает в карантин и блокирует его выполнение с криком о том, что файл поврежден или содержит малварь. Разработчик сабжа не придумал ничего лучше, чем положить в .dmg образ специальный скрипт patch.command, который делает ровно 1 вещь: выполняет команду sudo -s xattr -d com.apple.quarantine /Applications/Pinokio.app.
Для человека, понимающего, как работает macOS, это стандартный костыль для обхода паранойи Gatekeeper. Но для среднестатистического соевого пользователя макбука, который боится терминала как огня, требование ввести пароль администратора в черном окошке вызывает приступ панической атаки. На форумах тут же поползли слухи, что Pinokio — это троян, кейлоггер, майнер и вообще китайская шпионская программа. Люди на полном серьезе писали посты о том, что после установки сабжа их макбук удалил приложение на следующий день, и они пошли делать полный System Restore, дабы спасти свои биткоины.
Паноптикум доступных нейросетей[править]
Если отбросить паранойю и срачи, то сабж предоставляет доступ к поистине огромному количеству ИИ-инструментов, которые можно установить в 1 клик. Пробежимся по основным категориям, чтобы понять, ради чего люди готовы терпеть баги и скачивать по 100 гигабайт файлов.
В первую очередь, это, конечно же, генерация картинок. В Pinokio заботливо упакованы все основные интерфейсы: старый добрый Automatic1111, более быстрый Forge, минималистичный Fooocus для тех, кому лень писать длинные промпты, и великий и ужасный ComfyUI. Последний заслуживает отдельного упоминания, ибо представляет собой нодовую систему, в которой картинка собирается путем соединения макаронинами разных блоков. Для новичка интерфейс ComfyUI выглядит как пульт управления атомной электростанцией, но именно там сейчас тестируются самые передовые технологии вроде Flux, SDXL Turbo и прочих диффузионных моделей.
Особый ажиотаж вызывает генерация видео. На машинах простых смертных это занятие обычно заканчивается синим экраном смерти из-за нехватки видеопамяти, но разработчики скриптов стараются оптимизировать процесс. В каталоге есть Wan2GP — супер-оптимизированный интерфейс для генерации видео на моделе Wan, который, по заявлениям авторов, способен работать даже на видеокартах с 6 гигабайтами памяти. На практике это выглядит как изощренное издевательство над железом: карточка уровня RTX 2070 Super пыхтит 15 минут, чтобы выдать 4 секунды видео в разрешении 480p, на котором человек ест кусок пиццы так, будто его лицо засасывает в черную дыру. Но зато локально и без цензуры! Также популярностью пользуются инструменты вроде HunyuanVideo и CogStudio, которые пытаются выжать максимум из видеокарт для бедных (так называемых GPU poor).
Не отстает и генерация звука. Тема клонирования голоса и создания музыки сейчас на пике популярности. Юзеры массово качают Qwen3-TTS, F5-TTS и Kokoro-TTS. Последняя славится своей легковесностью и скоростью. Для мамкиных диджеев есть ACE-Step и DiffRhythm — локальные альтернативы всяким платным Suno и Udio. С их помощью можно за 10 секунд сгенерировать песню на русском языке про то, как Вася пошел за пивом, используя всего 4 гигабайта VRAM на видеокарте RTX 3090 (тут кроется легкая ирония, ибо RTX 3090 имеет 24 гигабайта памяти, но авторы скриптов любят хвастаться минимальными требованиями). Люди на Reddit жалуются, что голоса звучат слишком быстро, роботизированно и с артефактами в виде щелчков, на что более опытные анонимусы советуют им крутить параметры chunk size или накидывать сверху RVC (Retrieval-based Voice Conversion), чтобы голос звучал хоть немного похоже на человеческий, а не на задыхающегося Дарта Вейдера.
Отдельная ниша — это замена лиц и улучшение фото. Инструмент FaceFusion стал абсолютным мастхэвом для любителей создавать дипфейки. Работает он настолько просто, что с ним справится даже макака: загружаешь фото жертвы, загружаешь целевое видео, жмешь кнопку — получаешь результат. Конечно же, 99 процентов пользователей применяют это исключительно в образовательных целях (нет), отключая встроенные NSFW-фильтры. Для реставрации старых или шакальных картинок есть Supir и InstantIR, которые могут из набора пикселей 64x64 сделать 4K изображение, дорисовав детали, которых там никогда не было.
Для любителей поболтать с машиной есть интерфейсы для локальных языковых моделей (LLM), такие как Text Generation WebUI от Oobabooga, Open WebUI и SillyTavern. Последняя — это вообще отдельный феномен, представляющий собой интерфейс для ролевых игр с ИИ-персонажами. Именно там одинокие хиккикомори проводят часы, переписываясь со своими виртуальными вайфу, которые благодаря локальным моделям не ограничены цензурой и корпоративной этикой, присущей кастрированным коммерческим ботам.
Подводные камни[править]
Несмотря на всю внешнюю простоту и красивую обертку, Pinokio остается куском нестабильного кода, зависящего от сотен сторонних репозиториев, которые обновляются каждый день. Это приводит к тому, что опыт использования сабжа напоминает игру в русскую рулетку.
Проблема номер 1 — это мертвые скрипты. Какой-нибудь разработчик из Китая выкатывает новую прорывную модель, энтузиаст пишет под нее установочный JSON-скрипт для Pinokio и заливает его в каталог. Юзеры радостно скачивают, все работает. Через неделю разработчик модели делает коммит в свой репозиторий, который ломает обратную совместимость с какой-нибудь библиотекой Gradio или Torch. Скрипт в Pinokio об этом не знает, он пытается скачать свежую версию кода, запускает установку зависимостей и… процесс намертво виснет или выплевывает бесконечный лог ошибок питона. Поскольку многие пользователи сабжа не умеют даже открыть терминал, они идут на Reddit или Discord и начинают спамить сообщениями в духе Why is it stuck on processing? Help!.
Проблема номер 2 — это инфраструктура. Внезапно, в мае 2024 года, у сабжа отвалился основной домен pinokio.computer. У миллионов пользователей при запуске программы перестал открываться раздел Discover, отображая девственно белую страницу или ошибку ERR_TUNNEL_CONNECTION_FAILED. Началась массовая истерия, люди думали, что проект заброшен, разработчик сбежал с их данными или сервера закрыла кровавая гэбня за распространение дипфейков. На деле же, судя по комментариям на GitHub, разработчик просто забыл или не смог вовремя продлить домен. Олдам пришлось править файл hosts в своих операционных системах, прописывая напрямую IP-адрес 3.75.10.80 portal.pinokio.computer, чтобы вернуть софтине зрение, пока создатель не переехал на новый домен pinokio.co.
Проблема номер 3 — это неадекватное потребление дискового пространства. Даже с учетом системы симлинков и виртуальных дисков, ИИ-модели весят очень много. Юзер, решивший попробовать 5 разных приложений для генерации картинок и пару текстовых моделей, через неделю обнаруживает, что папка pinokio разрослась до 300 гигабайт и сожрала весь его системный диск. Попытки удалить ненужные приложения через интерфейс сабжа часто заканчиваются тем, что программа оставляет за собой гигабайты мусора, скрытых файлов блокировки .lock и кэша HuggingFace, который приходится вычищать вручную с помощью утилиты вроде TreeSize.
Проблема номер 4 — медлительность. Из-за того, что Pinokio запускает все через свою прослойку, прокидывая порты и отслеживая логи через веб-интерфейс, некоторые приложения работают субъективно медленнее, чем если бы они были запущены нативно из консоли. К тому же, встроенный браузер жрет оперативную память не хуже хрома, что на системах с 16 гигабайтами ОЗУ может привести к уходу системы в своп и лютым тормозам.
Писанина скриптов[править]
Для тех, кто немного понимает, как работают компьютеры, создатель Pinokio выкатил целый API для написания собственных скриптов. По сути, скрипт Pinokio — это JSON или JavaScript файл, который описывает последовательность действий в формате RPC-вызовов (Remote Procedure Call).
Все начинается с файла pinokio.json, который описывает метаданные проекта: название, иконку, описание и список ссылок, которые будут отображаться в боковом меню приложения. Это лицо твоего установщика.
Далее идет файл pinokio.js, который отвечает за логику отображения меню. В нем можно прописать динамическое поведение. Например, с помощью встроенного API ядра можно проверить, существует ли папка с установленным окружением (kernel.exists('env')). Если папки нет, меню покажет только кнопку Install, которая ведет на скрипт install.json. Если папка есть, меню покажет кнопку Start (ведущую на start.json), кнопку Update и кнопку запуска веб-интерфейса, если скрипт уже запущен в данный момент.
Сам процесс установки описывается в файле install.json в массиве run. Там последовательно вызываются методы:
1. fs.download — для скачивания нужного репозитория с гитхаба или весов модели.
2. shell.run — основной рабочий конь. С его помощью можно выполнить любую консольную команду. При этом можно указать параметр venv, и сабж автоматически создаст виртуальное окружение питона по указанному пути, активирует его и выполнит внутри него команду вроде pip install -r requirements.txt.
3. fs.link — та самая магия для создания симлинков на виртуальный диск drive, чтобы не дублировать папки с моделями.
4. log — для вывода сообщений в консоль, чтобы юзер видел, что процесс не завис.
Запуск описывается в start.json. Там обычно стоит параметр daemon: true, который говорит программе, что этот скрипт не должен завершаться сразу после выполнения последней команды (поскольку он запускает веб-сервер). Вызывается тот же shell.run, который стартует python app.py, а также используется регулярное выражение в параметре on: [{ event: '/http:\\/\\/[0-9.:]+/', done: true }], чтобы парсить вывод консоли. Как только программа видит в логах локальный IP-адрес сервера, она понимает, что приложение успешно запустилось, и выводит ссылку на веб-интерфейс.
Вся эта система позволяет автоматизировать практически любой процесс. Создатель даже интегрировал агентов (вроде Claude Code или Gemini CLI), которые могут анализировать историю терминала и автоматически генерировать эти самые запускаторы. Звучит как киберпанк, который мы заслужили: ИИ пишет скрипты для установки других ИИ, чтобы человек мог генерировать анимешных девочек.
Альтернативы[править]
Конечно же, Pinokio — не единственный игрок на рынке инсталляторов для ленивых. У него есть как минимум один мощный конкурент и несколько нишевых решений.
Главный враг сабжа — это Stability Matrix. Эта программа написана на C# (WPF), выглядит более нативно под Windows и специализируется в первую очередь на генерации изображений (A1111, ComfyUI, Fooocus, InvokeAI). В отличие от Pinokio, который пытается быть мастером на все руки и тащит в себя видео, звук и тексты, Stability Matrix делает одну вещь, но делает ее хорошо. У нее есть отличный встроенный менеджер моделей, который умеет качать чекпоинты напрямую с Civitai, раскидывая их по общим папкам с помощью симлинков. Она работает стабильнее, не требует обходов карантина на маках и вообще считается выбором более продвинутых юзеров, которым нужны только картинки.
Еще один вариант — LynxHub, но о нем мало кто слышал, и большинство пользователей на Reddit рапортуют о том, что им так и не удалось заставить через него работать хоть что-то.
Для любителей контейнеров всегда есть старый добрый Docker. Настоящие суровые бородатые админы презирают все эти графические инсталляторы и запускают ИИ исключительно в докер-контейнерах. Аргументация проста: контейнер полностью изолирован, не гадит в систему, его можно перенести на любую машину и развернуть за секунду с помощью команды docker run. Скачиваешь образ на 15 гигабайт, прокидываешь порты, монтируешь папку с моделями и радуешься жизни. Но для типичного потребителя контента словосочетание docker-compose.yml звучит как заклинание вызова Сатаны, поэтому они продолжают жрать кактус под названием Pinokio.