Нарисуй сон

Нейронные сети, рисующие “всякое” по запросу, не обошли стороной и меня. После того, как наигрался, я решил, что так как тема из области искусственного интеллекта, то и интерфейс взаимодействия нужен соответствующий. Например, голос и желательно на русском языке. Так появилась идея создать быструю команду для siri. Что из этого получилось, читайте далее. В конце статьи — видео, ссылки на быстрые команды, репозиторий с необходимыми файлами и инструкция по установке.

В качестве генератора изображений я выбрал Wombo Dream, так как нейросеть выдает неплохие результаты и имеет простой API. В качестве основы используется скрипт на python, который делает серию запросов в Dream и получает ссылку на итоговое изображение. Wombo в качестве входных данных принимает текст на английском, поэтому отдельно написан метод перевода с русского языка через google translate.

Мой выбор приложения, поддерживающего запуск скриптов на python из быстрой команды, остановился на a-shell. Если «приложение не доступно в вашей стране», его можно установить через TestFlight. При запуске скрипта из быстрой команды с использованием расширения (в фоне) есть ограничения:

  • Нет возможности подключить модули установленные с помощью pip

  • Время выполнения не должно превышать 5 секунд

  • Иногда вылетает без объяснения причины

Учитывая ограничения, в скрипт добавлена возможность разделить взаимодействие с Wombo на этапы. Методом проб и ошибок я пришёл к следующему алгоритму действий:

  1. Получение входных данных (Siri или клавиатура)

  2. Перевод полученного текста на английский

  3. Запрос в wombo dream

  4. Получение идентификатора задачи

  5. Опрос задачи по идентификатору до тех пор пока ее статус не изменится на completed

  6. Получение ссылки на итоговое изображение

  7. Скачивание изображения

  8. Обрезка изображения

  9. Отображение результата + Сохранение изображения в фото и установка в качестве обоев (опционально)

Быстрая команда.

Репозиторий со скриптом и инструкцией по установке.

Дополнительно

Если при выполнении после ожидания возникает ошибка

К сожалению работа быстрых команд в фоне сильно ограничена и если Wombo Dream долго не возвращает результат работы, то появится ошибка. Однако задача уже на генерацию уже запущена и зная ID задачи можно запросить результат повторно. Для этого я написал отдельную быструю команду.

Установка обоев по расписанию

Нужно добавить всего одно действие в быструю команду

Далее можно создать автоматизацию и запускать скрипт по расписанию

Случайный рисунок

В скрипте присутствует генератор фраз. Для активации необходимо добавить ключ -p r. Принцип работы: файл words1.txt содержит 600 самых популярных существительных в английском языке, файл words2.txt 25 самых популярных предлогов. Фраза составляется из трех слов: на первом месте случайное существительное, на втором случайный предлог, на третьем снова случайное существительное.

Быструю команду можно скачать тут.

P.S. Помимо Wombo Dream есть и другие проекты , если кто то знает как с ними взаимодействовать (желательно на бесплатной основе) напишите пожалуйста в комментариях.


ссылка на оригинал статьи https://habr.com/ru/post/703292/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *