Pinokio — это браузер, который позволяет локально устанавливать, запускать и автоматизировать любой искусственный интеллект на вашем компьютере . Все, что вы можете запустить в командной строке, можно автоматизировать с помощью сценария Pinokio с удобным пользовательским интерфейсом.
Вы можете использовать Pinokio для автоматизации чего угодно, в том числе:
Установите приложения и модели искусственного интеллекта
Управление и запуск приложений искусственного интеллекта
Создавайте рабочие процессы для управления установленными приложениями искусственного интеллекта.
Запустите любую команду для автоматизации процессов на вашем компьютере.
и многое другое...
Вот что делает Пинокио особенным:
Локально: все устанавливается и запускается локально. Никакие ваши данные не хранятся на чужом сервере.
Бесплатно: Pinokio — это приложение с открытым исходным кодом, которое можно использовать на 100% бесплатно без каких-либо ограничений. Платить за доступ к API некому, поскольку все работает на вашей локальной машине. Играйте с ИИ столько, сколько захотите, бесплатно и навсегда.
Конфиденциальность: вам не нужно беспокоиться об отправке личных данных только для запуска ИИ, все работает на 100% конфиденциально на вашем собственном компьютере.
Удобный интерфейс: Pinokio предоставляет удобный графический интерфейс для запуска и автоматизации всего, для чего вам обычно нужно использовать терминал.
Батарейки в комплекте: Pinokio — автономная система. Вам не нужно устанавливать какую-либо другую программу. Pinokio может автоматизировать что угодно, включая установку программ и библиотек. Единственная программа, которая вам понадобится, это Pinokio.
Кроссплатформенность: Pinokio работает на ВСЕХ операционных системах (Windows, Mac, Linux) .
Экономьте хранилище и ресурсы: Pinokio имеет множество функций оптимизации, которые сэкономят вам сотни гигабайт дискового пространства. Кроме того, с Pinokio возможны многие другие функции оптимизации ресурсов (например, памяти).
Выразительный язык сценариев: сценарий Pinokio — это мощный язык сценариев автоматизации с такими функциями, как память, динамические шаблоны и расширяемые API-интерфейсы низкого уровня.
Портативность: все хранится в изолированной папке и существует в виде файла, что означает, что вы можете легко создать резервную копию всего или удалить приложения, просто удалив файлы.
Пинокио черпает вдохновение из того, как работают традиционные компьютеры.
Подобно тому, как компьютер может делать все что угодно благодаря своей комплексной архитектуре, Pinokio как виртуальный компьютер представляет собой комплексную платформу для запуска и автоматизации всего, что вы можете себе представить, с помощью ИИ.
Файловая система: где и как Pinokio хранит файлы.
Процессор: как pinokio выполняет задачи.
Память: как pinokio реализует конечный автомат, используя встроенную встроенную память.
Скрипт: язык программирования, на котором работает pinokio.
Пользовательский интерфейс: пользовательский интерфейс (пользовательский интерфейс), через который пользователи получают доступ к приложениям.
Окна
Мак
Линукс
Обязательно выполните ВСЕ шаги ниже!
Скачать для Windows
Разархивируйте загруженный файл, и вы увидите файл установщика .exe.
Запустите файл установщика, и вы увидите следующее предупреждение Windows:
Это сообщение появляется, потому что приложение было загружено из Интернета, и именно это Windows делает с приложениями, загруженными из Интернета.
Чтобы обойти это,
Нажмите «Подробнее»
Затем нажмите «Выполнить в любом случае»
Обязательно выполните ОБА шаг 1 И шаг 2.
Загрузить для Apple Silicon Mac (M1/M2/M3/M4) Загрузить для Intel Mac
После загрузки файлов dmg вы ДОЛЖНЫ сделать патч , как показано ниже:
Запустите загруженный файл установщика DMG.
Перетащите приложение «Pinokio» в папку «Приложения».
Запустите «patch.command»
Откройте приложение Pinokio в папке приложений.
Для Linux вы можете загрузить и установить непосредственно из последней версии на Github (прокрутите страницу вниз, чтобы увидеть все двоичные файлы):
Перейти на страницу релизов
Чтобы быть в курсе всех новых API и интеграций приложений,
Подпишитесь на @cocktailpeanut на X, чтобы быть в курсе всех новых скриптов и обновлений функций.
Присоединяйтесь к дискорду Pinokio, чтобы задавать вопросы и получать помощь.
Pinokio — это автономная платформа, позволяющая устанавливать приложения изолированно.
Изолированная среда: не нужно беспокоиться о том, чтобы испортить глобальные системные конфигурации и среды.
Батарейки в комплекте: нет необходимости вручную устанавливать необходимые программы только для того, чтобы что-то установить (например, ffpeg , node.js , Visual Studio , Conda , Python , pip и т. д.). Пинокио позаботится об этом автоматически.
Для достижения этой цели Pinokio хранит все в одной изолированной папке («pinokio home») , поэтому ему никогда не приходится полагаться на общесистемные конфигурации и программы, а он запускает все автономно.
Вы можете установить домашнюю папку pinokio при первой настройке Pinokio, а также позже изменить ее на новое местоположение на вкладке настроек .
Так где же хранятся файлы? Нажмите кнопку «Файлы» на главной странице:
Это откроет домашнюю папку Pinokio в вашем проводнике:
Давайте быстро рассмотрим, что делает каждая папка:
api
: хранит все загруженные приложения (скрипты).
Папки внутри этой папки отображаются на домашней странице вашего Pinokio.
bin
: хранит глобально установленные модули, используемые несколькими приложениями, поэтому вам не нужно устанавливать их повторно.
Например, ffmpeg
, nodejs
, python
и т. д.
cache
: сохраняет все файлы, автоматически кэшируемые запускаемыми вами приложениями.
Если что-то не работает, удаление этой папки и запуск заново может исправить это.
Удалить папку cache
можно, так как она будет заново заполнена используемыми вами приложениями, когда вы начнете использовать приложения.
drive
: хранит все виртуальные диски, созданные API fs.link Pinokio.
logs
: хранит все файлы журналов для каждого приложения.
Подробнее о файловой системе можно узнать здесь.
Давайте напишем скрипт, который клонирует git-репозиторий.
Создайте папку с именем helloworld
в папке API Pinokio.
Создайте файл с именем git.json
в папке Pinokio api/helloworld
.
{ "run": [{"method": "shell.run", "params": { "message": "git clone https://github.com/pinokiocomputer/test"} }] }
Теперь, когда вы вернетесь в Pinokio, вы увидите свой репозиторий helloworld
. Перейдите в него и щелкните вкладку git.json
чтобы запустить его:
Вы увидите, что папка api/helloworld/test
была клонирована из репозитория https://github.com/pinokiocomputer/test.
Мы также можем динамически изменять, какие команды запускать и как их запускать, используя шаблоны.
В качестве примера давайте напишем сценарий, который запускает dir
в Windows и ls
в Linux и Mac.
В папке api/helloworld
создайте файл с именем files.json
:
{ "run": [{"method": "shell.run","params": { "message": "{{platform === 'win32' ? 'dir': 'ls'}}"} }] }
Выражение шаблона {{ }}
содержит выражение JavaScript.
Внутри каждого выражения шаблона доступно несколько переменных, и одна из них — платформа.
Значение platform
— darwin
(mac), win32
(windows) или linux
(linux).
Это означает, что в Windows приведенный выше сценарий эквивалентен:
{ "run": [{"method": "shell.run", "params": { "message": "dir"} }] }
Или, если это не Windows (Mac или Linux), это эквивалентно:
{ "run": [{"method": "shell.run", "params": { "message": "ls"} }] }
Подробнее о шаблонах можно узнать здесь
Когда сценарий Pinokio завершает работу, каждый сеанс оболочки, созданный с помощью сценария, удаляется, а все связанные процессы закрываются.
Например, попробуем запустить локальный веб-сервер с помощью http-сервера. Создайте новую папку с именем httpserver
в папке api
Pinokio и создайте новый скрипт с именем index.json
:
{ "run": [{"method": "shell.run", "params": { "message": "npx -y http-server"} }] }
Затем вернитесь в Pinokio, и вы увидите это приложение на главной странице. Щелкните и щелкните вкладку index.json
на боковой панели, и он запустит этот скрипт, который должен запустить веб-сервер с помощью npx http-server
.
Но проблема в том, что сразу после запуска сервера он сразу выключится, и вы не сможете пользоваться веб-сервером.
Это связано с тем, что Pinokio автоматически завершает все процессы, связанные со сценарием, когда он завершает выполнение всех шагов в массиве run
.
Чтобы избежать этого, вам нужно сообщить Pinokio, что это приложение должно работать даже после выполнения всех шагов. Нам просто нужно добавить атрибут daemon
:
{ "daemon": true, "run": [{"method": "shell.run", "params": { "message": "npx -y http-server"} }] }
Теперь повторите запуск сценария, и вы увидите, что веб-сервер запускается и не отключается.
Веб-сервер будет обслуживать все файлы в текущей папке (в данном случае только index.json
), например:
Вы можете остановить выполнение скрипта, нажав кнопку «Стоп» вверху страницы.
Подробнее о режиме демона можно узнать здесь.
Вы также можете запускать несколько команд одним вызовом shell.run
.
Давайте попробуем пример. Мы собираемся установить, инициализировать и запустить механизм документации в одном скрипте.
Раньше подобные вещи были недоступны обычным людям (поскольку их нужно запускать в терминале), но с Pinokio это делается одним щелчком мыши.
Создайте папку с именем docsify
в папке api
Pinokio.
Создайте файл с именем index.json
в папке api/docsify
. Файл index.json
должен выглядеть следующим образом:
{ "daemon": true, "run": [{"method": "shell.run","params": { "message": ["npx -y docsify-cli init docs","npx -y docsify- cli обслуживать документы" ] } }] }
Этот пример делает 2 вещи:
Инициализация проекта документации docsify
Запустите сервер разработки docsify
Когда вы щелкнете ссылку на сервер разработки в терминале Pinokio, в веб-браузере откроется страница документации:
Узнайте больше об API
shell.run
здесь.
Одним из распространенных случаев использования Pinokio является:
Создать/активировать венв
Установите зависимости в активированный venv
Давайте попробуем простой пример. Этот пример представляет собой минимальное приложение для градиента из официального руководства по градиенту.
Сначала создайте папку с именем gradio_demo
в папке api
Pinokio.
Затем создайте файл с именем app.py
в папке api/gradio_demo
.
# app.pyimport gradio as grdefприветствие(имя, интенсивность):return "Привет, " + имя + "!" * int(intensity)demo = gr.Interface(fn=greet,inputs=["text", "slider"],outputs=["text"], )демо.запуск()
Нам также понадобится файл requirements.txt
, который выглядит следующим образом:
# requirements.txt gradio
Наконец, нам нужен скрипт install.json
, который установит зависимости из файла requirements.txt
:
{ "run": [{"method": "shell.run", "params": { "venv": "env", "message": "pip install -r require.txt"} }] }
Структура папок будет выглядеть так:
/PINOKIO_HOME /api /gradio_demo app.py requirements.txt install.json
Вернитесь в Pinokio, и вы увидите приложение gradio_demo
. Щелкните пользовательский интерфейс и перейдите на вкладку install.json
, и он:
Создайте папку venv
по пути env
Активируйте среду env
Запустите pip install -r requirements.txt
, который установит зависимость gradio
в среду env
.
Вот как выглядит процесс установки (обратите внимание, что в конце создается новая папка env
):
Узнайте больше об API venv здесь.
продолжение с последнего раздела.
Теперь напишем простой скрипт, который будет запускать сервер градиента из app.py
из последнего раздела. Создайте файл с именем start.json
в той же папке:
{ "daemon": true, "run": [{"method": "shell.run", "params": { "venv": "env", "message": "python app.py"} }] }
Вернитесь в Pinokio, и вы увидите, что файл start.json
теперь также отображается на боковой панели. Нажмите, чтобы запустить сценарий start.json
. Это будет:
активируйте среду env
которую мы создали на этапе установки
запустите python app.py
в режиме демона ( daemon: true
), который запустит сервер Gradio и продолжит его работу.
Это будет выглядеть примерно так:
Узнайте больше об API venv здесь.
Pinokio имеет кроссплатформенный API для простой и надежной загрузки файлов (включая автоматические повторные попытки и т. д.).
Давайте попробуем написать простой скрипт, загружающий PDF-файл.
Сначала создайте папку с именем download
в папке api
Pinokio, а затем создайте файл с именем index.json
:
{ "run": [{"method": "fs.download", "params": { "uri": "https://arxiv.org/pdf/1706.03762.pdf", "dir": "pdf"} }] }
При этом файл по адресу https://arxiv.org/pdf/1706.03762.pdf будет загружен в папку с именем pdf
(API fs.download
автоматически создаст папку в этом месте, если она еще не существует). Вот как это выглядит:
Узнайте больше об API
fs.download
здесь.
Во многих случаях вам может потребоваться вызвать сценарий из другого сценария. Некоторые примеры:
Сценарий оркестровки, который запускает stable diffusion
, а затем llama
.
Агент, который запускает stable diffusion
, немедленно делает запрос на создание изображения и, наконец, автоматически останавливает сервер stable diffusion
для экономии ресурсов.
Агент, который отправляет запрос к конечной точке llama
, а затем передает ответ stable diffusion
.
Мы можем добиться этого, используя API script
:
script.start
: запустить удаленный скрипт (сначала загрузите, если он еще не существует)
script.return
: если текущий сценарий был дочерним процессом, укажите возвращаемое значение, которое будет доступно на следующем этапе вызывающего сценария.
Вот пример. Давайте создадим простые caller.json
и callee.json
:
caller.json
:
{ "run": [{"method": "script.start", "params": { "uri": "callee.json", "params": { "a": 1, "b": 2 } } }, {"method": "log","params": { "json2": "{{input}}"} }] }
Первый шаг: caller.json
вызовет callee.json
с параметрами { "a": 1, "b": 2 }
.
Этот объект параметров будет передан в callee.json
как args
:
callee.json
:
{ "run": [{"method": "script.return","params": { "ressponse": "{{args.a + args.b}}"} }] }
Скрипт callee.json
немедленно возвращает значение {{args.a + args.b}}
при вызове script.return
.
Наконец, caller.json
вызовет log
последнего шага, который напечатает значение {{input}}
, которое является возвращаемым значением из callee.json
. Это напечатает 3
:
В последнем разделе объясняется, как можно вызвать скрипт из того же репозитория. А что если вы хотите вызывать скрипты из других репозиториев?
API script.start
также позволяет загружать и запускать удаленные сценарии на лету.
Создайте папку с именем remotescript
в папке api
Pinokio и создайте файл с именем install.json
в папке api/remotescript
:
{ "run": [{"method": "script.start", "params": { "uri": "https://github.com/cocktailpeanutlabs/moondream2.git/install.js"} }, {"method": "script.start", "params": { "uri": "https://github.com/cocktailpeanutlabs/moondream2.git/start.js"} }, {"id": "run","method": "gradio.predict","params": { "uri": "{{kernel.script.local('https://github.com/cocktailpeanutlabs/ Moondream2.git/start.js').url}}", "path": "/answer_question_1", "params": [ { "path": "https://media.timeout.com/images/105795964/750/422/image.jpg" },"Объясните, что здесь происходит" ] } }, {"method": "log","params": { "json2": "{{input}}"} }, {"method": "script.stop", "params": { "uri": "https://github.com/cocktailpeanutlabs/moondream2.git/start.js"} }] }
Первый шаг запускает скрипт https://github.com/cocktailpeanutlabs/moondream2.git/install.js.
Если репозиторий moondream2.git
уже существует в Pinokio, он запустит скрипт install.js.
Если он еще не существует, Pinokio сначала автоматически клонирует репозиторий https://github.com/cocktailpeanutlabs/moondream2.git
, а затем запускает скрипт install.js.
После завершения установки приложение Gradio запускается с помощью сценария https://github.com/cocktailpeanutlabs/moondream2.git/start.js. Этот скрипт вернется после запуска сервера.
Теперь мы запускаем gradio.predict
, используя API kernel.script.local(), чтобы получить объект локальной переменной для сценария start.js, а затем получаем значение его url
(которое программно задается внутри файла moondream2.git/start.js
сценарий).
По сути, на этом шаге к конечной точке градиента отправляется запрос LLM «Объясните, что здесь происходит», передавая изображение.
Затем возвращаемое значение из gradio.predict
регистрируется на терминале с помощью API log
.
Наконец, мы останавливаем сценарий moondream2/start.js
чтобы завершить работу сервера градиента Moondream, используя API script.stop
.
Если мы не вызовем script.stop
, приложение Moondream2 продолжит работу даже после остановки этого сценария.
Вот как это будет выглядеть:
Возможность запускать
script.start
, а затемscript.stop
очень полезна для запуска ИИ на персональных компьютерах, поскольку большинство персональных компьютеров не имеют неограниченной памяти, и на вашем компьютере быстро закончится память, если вы не сможете выключить эти механизмы ИИ. программно.С помощью
script.stop
вы можете запустить скрипт, получить его ответ и немедленно закрыть его после завершения задачи, что освободит системную память, которую вы сможете использовать для запуска других последующих задач ИИ.
Приложения Pinokio имеют простую структуру:
Ярлык: Ярлык приложения, который отображается на главной странице Pinokio.
app: основной макет пользовательского интерфейса приложения.
Shortcut
App
Меню: боковая панель, на которой отображаются все ссылки, которые вы можете запустить (а также их статус работы).
Окно: область просмотра, в которой отображается веб-страница , или терминал , на котором выполняются сценарии.
По умолчанию, если в вашем проекте нет файла pinokio.js
,
ярлык отображает имя папки в качестве заголовка и значок по умолчанию в качестве значка приложения.
в меню отображаются все файлы .js
или .json
в корне вашего репозитория.
Хотя это удобно для начала работы, оно недостаточно гибко:
Вы не можете контролировать то, что отображается в строке меню.
Вы не можете контролировать запуск скриптов (например, передавая params
)
Вы не можете контролировать, как отображается приложение.
Название приложения будет именем вашей папки.
Нет описания
Значок будет просто отображать значок по умолчанию.
Чтобы настроить поведение вашего приложения, вам нужно написать сценарий пользовательского интерфейса с именем pinokio.js
.
Давайте попробуем написать минимальный UI:
Создайте папку с именем downloader
в папке /PINOKIO_HOME/api
.
Добавьте любой значок в папку /PINOKIO_HOME/api/downloader
и назовите его icon.png
Создайте файл с именем /PINOKIO_HOME/api/downloader/download.json
Создайте файл с именем /PINOKIO_HOME/api/downloader/pinokio.js
/PINOKIO_HOME/api/downloader/icon.png
/PINOKIO_HOME/api/downloader/download.json
{ "run": [{"method": "shell.run", "params": { "message": "git clone {{input.url}}"} }] }
/PINOKIO_HOME/api/downloader/pinokio.js
модуль.экспорт = { title: «Скачать что угодно», описание: "Загрузить git-репозиторий", значок: "icon.png", меню: [{text: "Пуск",href: "download.json",params: {url: "https://github.com/cocktailpeanut/dalai"} }]}
Конечный результат будет выглядеть в вашем проводнике следующим образом:
Теперь вернитесь в Pinokio и обновите, и вы увидите свое приложение:
в заголовке отображается Download Anything
в описании отображается Download a git repository
значок — это icon.png
который мы добавили.
Теперь, когда вы зайдете в приложение, вы увидите следующее:
Вы увидите пункт меню Start
.
Нажмите здесь, чтобы запустить файл download.json
, указанный атрибутом href
.
Также обратите внимание, что скрипт передает значение https://github.com/cocktailpeanut/dalai в качестве значения params.url
.
params
, передаваемые в download.json
, доступны в качестве input
переменной, поэтому git clone {{input.url}}
будет создан как git clone https://github.com/cocktailpeanut/dalai
.
Если у вас есть работающий репозиторий сценариев, вы можете опубликовать его на любом хостинге git и поделиться URL-адресом, и любой сможет установить и запустить ваш сценарий.
Вы можете очень легко установить любой репозиторий скриптов pinokio:
Нажмите кнопку «Загрузить с URL-адреса» в верхней части страницы «Обнаружение».
Введите URL-адрес git (при желании вы также можете указать ветку).
Если вы опубликовали на GitHub, вы можете пометить свой репозиторий как «pinokio», чтобы он отображался в «последнем» разделе на странице «Обнаружение».
Теперь он будет автоматически отображаться в разделе «Последние» (внизу страницы «Обнаружение»):
Pinokio автоматически создает раздел «Последние» из API GitHub «/repositories» по адресу https://api.github.com/search/repositories?q=topic:pinokio&sort=updated&direction=desc.
Итак, если вы пометили свой репозиторий как «pinokio», но он не отображается, проверьте результат API и попытайтесь выяснить, почему он туда не включен.
Хотя важно понимать, как все это работает, в большинстве случаев вам может понадобиться простой «комбо запуска», который включает в себя:
Сценарий установки приложения: устанавливает зависимости приложения.
Скрипт запуска приложения: запускает приложение.
Пользовательский интерфейс: отображает пользовательский интерфейс средства запуска.
Скрипт сброса: сбрасывает состояние приложения, если что-то идет не так.
Сценарий обновления: обновляет приложение до последней версии одним щелчком мыши.
Этот вариант использования необходим настолько часто, что мы внедрили программу, которая мгновенно автоматически генерирует эти сценарии. Это называется Гепето.
Часто вам может потребоваться поделиться дополнительной информацией о каждом сценарии. Для этого вы можете использовать ленту новостей.
Для этого просто создайте файл pinokio_meta.json
с атрибутом массива posts
, где каждый элемент представляет собой URL-адрес x.com. Вот пример:
{ "сообщения": ["https://x.com/cocktailpeanut/status/1819482952071323788","https://x.com/cocktailpeanut/status/1819439443394109837","https://x.com/cocktailpeanut/status/1800944955738685648" ,"https://x.com/cocktailpeanut/status/1754244867159413001","https://x.com/cocktailpeanut/status/1729884460114727197","https://x.com/cocktailpeanut/status/1728075614807048208" ] }
Вы можете увидеть это в действии: https://github.com/cocktailpeanutlabs/comfyui/blob/main/pinokio_meta.json.
Как только вы опубликуете, это будет немедленно отражено на целевой странице сценария.
<iframe width="1280" height="720" src="https://www.youtube.com/embed/D8jdowszkMg" title="Видеоплеер YouTube" Frameborder="0"allow="акселерометр; автозапуск; буфер обмена- запись; зашифрованный носитель; картинка в картинке»allowfullscreen></iframe>
Gepeto — это программа, которая позволяет автоматически генерировать сценарии Pinokio, специально для средств запуска приложений.
Давайте начнем с создания приложения и его средства запуска за 1 минуту.
<iframe width="1280" height="720" src="https://www.youtube.com/embed/I-_W-MkV8tc" title="Видеоплеер YouTube" Frameborder="0"allow="акселерометр; автовоспроизведение; запись в буфер обмена; гироскоп «картинка в картинке»; разрешен полноэкранный режим></iframe>
Если у вас еще не установлен gepeto, найдите его на Pinokio и сначала установите.
Вы увидите простой веб-интерфейс, который позволит вам заполнить форму. Для простоты просто введите Helloworld
в качестве имени проекта и нажмите «Отправить» .
Это инициализирует проект. Когда ты вернешься в дом Пинокио,
Вы увидите новую запись под названием Helloworld
. Нажмите на него, и вы увидите экран запуска.
Кроме того, проверьте папку /PINOKIO_HOME/api
, вы найдете новую папку с именем Helloworld
с некоторыми файлами сценариев.
Теперь давайте нажмем кнопку «Установить», чтобы установить приложение, а когда все закончится, нажмите «Пуск», чтобы запустить.
Вы увидите минимальное приложение Gradio, в котором вы можете ввести подсказку, и оно сгенерирует изображение с помощью Stable Diffusion XL Turbo.
Так что же только что произошло? Мы только что создали пустой проект , который поставляется с минимальным демонстрационным приложением.
Давайте рассмотрим каждый сгенерированный файл в следующем разделе.
Gepeto автоматически генерирует минимальный набор скриптов, необходимых для запуска приложений. Типичная программа запуска приложений имеет следующие функции:
Установка: установите зависимости, необходимые для запуска приложения. ( install.js
)
Запустить: Запустите само приложение. ( start.js
)
Сбросить установку: сброс всех установленных зависимостей на случай, если вам понадобится переустановить их заново. ( reset.js
)
Обновление: обновление до последней версии при обновлении проекта. ( update.js
)
Графический интерфейс: сценарий, описывающий, как будет выглядеть и вести себя программа запуска на главной странице Pinokio и в боковом меню. ( pinokio.js
)
Вот как это выглядит:
Обратите внимание, что в дополнение к упомянутым выше сценариям gepeto сгенерировал несколько дополнительных файлов:
app.py
: простое демонстрационное приложение. Замените это своим собственным кодом.
requirements.txt
: объявляет все необходимые зависимости PIP для app.py
Замените на свой.
icon.png
: файл значка по умолчанию для приложения. Замените на свой.
torch.js
: torch.js
— это служебный скрипт, который вызывается из install.js
. Поскольку torch используется практически во всех AI-проектах, и их кроссплатформенную установку довольно сложно установить, этот скрипт включен по умолчанию. Вам не нужно беспокоиться об этом файле, просто поймите, что он используется install.js
. Не трогайте.
Обратите внимание на файлы app.py
и requirements.txt
:
import gradio as grimport torchfrom диффузоры import DiffusionPipelineimport devicetorch# Получить текущее устройство («mps», «cuda» или «cpu»)device = devicetorch.get(torch)# Создать диффузионный конвейерpipe = DiffusionPipeline.from_pretrained(»stabilityai/sdxl -turbo").to(device)# Запустите inferencedefgenerate_image(prompt):return Pipe(prompt, num_inference_steps=2, Strength=0.5, Guiding_scale=0.0).images[0]# Создайте пользовательский интерфейс для ввода текста и вывода изображений с помощью Gradioapp = gr.Interface(fn=generate_image, inputs="text", outputs="image")app .запуск()
Ниже приведены библиотеки, необходимые для запуска app.py
transformers accelerate diffusers gradio devicetorch
Так как же на самом деле используются эти файлы?
Если вы заглянете внутрь install.js
, вы увидите, что он запускает pip install -r requirements.txt
для установки зависимостей внутри файла, например:
модуль.экспорт = { run: [// Удалите этот шаг, если ваш проект не использует torch{ метод: "script.start", params: {uri: "torch.js",params: { venv: "env", // Отредактируйте это, чтобы настроить путь к папке venv // xformers: true // раскомментируйте эту строку, если вашему проекту требуются xformers} }}, // Отредактируйте этот шаг с помощью своих пользовательских команд установки { метод: "shell.run", params: {venv: "env" , // Редактируем это чтобы настроить путь к папке venvmessage: [ "pip install -r require.txt"], }},// Раскомментируйте этот шаг, чтобы добавить автоматическую дедупликацию venv (экспериментальный)// {// метод: "fs.link",// params: {// venv: "env"// }// },{ метод: "notify", params: {html: "Нажмите вкладку "Пуск", чтобы начать!" }} ]}
На первом этапе выполняется script.start
для вызова скрипта с именем torch.js
. Это устанавливает факел.
На втором этапе запускается файл pip install -r requirements.txt
чтобы установить все, что содержится в этом файле.