Нейронные сети, рисующие “всякое” по запросу, не обошли стороной и меня. После того, как наигрался, я решил, что так как тема из области искусственного интеллекта, то и интерфейс взаимодействия нужен соответствующий. Например, голос и желательно на русском языке. Так появилась идея создать быструю команду для siri. Что из этого получилось, читайте далее. В конце статьи - видео, ссылки на быстрые команды, репозиторий с необходимыми файлами и инструкция по установке.
В качестве генератора изображений я выбрал Wombo Dream, так как нейросеть выдает неплохие результаты и имеет простой API. В качестве основы используется скрипт на python, который делает серию запросов в Dream и получает ссылку на итоговое изображение. Wombo в качестве входных данных принимает текст на английском, поэтому отдельно написан метод перевода с русского языка через google translate.
Мой выбор приложения, поддерживающего запуск скриптов на python из быстрой команды, остановился на a-shell. Если "приложение не доступно в вашей стране", его можно установить через TestFlight. При запуске скрипта из быстрой команды с использованием расширения (в фоне) есть ограничения:
Нет возможности подключить модули установленные с помощью pip
Время выполнения не должно превышать 5 секунд
Иногда вылетает без объяснения причины
Учитывая ограничения, в скрипт добавлена возможность разделить взаимодействие с Wombo на этапы. Методом проб и ошибок я пришёл к следующему алгоритму действий:
Получение входных данных (Siri или клавиатура)
Перевод полученного текста на английский
Запрос в wombo dream
Получение идентификатора задачи
Опрос задачи по идентификатору до тех пор пока ее статус не изменится на completed
Получение ссылки на итоговое изображение
Скачивание изображения
Обрезка изображения
Отображение результата + Сохранение изображения в фото и установка в качестве обоев (опционально)
Репозиторий со скриптом и инструкцией по установке.
Дополнительно
Если при выполнении после ожидания возникает ошибка
К сожалению работа быстрых команд в фоне сильно ограничена и если Wombo Dream долго не возвращает результат работы, то появится ошибка. Однако задача уже на генерацию уже запущена и зная ID задачи можно запросить результат повторно. Для этого я написал отдельную быструю команду.
Установка обоев по расписанию
Нужно добавить всего одно действие в быструю команду
Далее можно создать автоматизацию и запускать скрипт по расписанию
Случайный рисунок
В скрипте присутствует генератор фраз. Для активации необходимо добавить ключ -p r
. Принцип работы: файл words1.txt содержит 600 самых популярных существительных в английском языке, файл words2.txt 25 самых популярных предлогов. Фраза составляется из трех слов: на первом месте случайное существительное, на втором случайный предлог, на третьем снова случайное существительное.
P.S. Помимо Wombo Dream есть и другие проекты , если кто то знает как с ними взаимодействовать (желательно на бесплатной основе) напишите пожалуйста в комментариях.