[Перевод] Storybook — генератор сказок с ИИ на Raspberry Pi 5 и 7-цветном дисплее E-Ink

Последнее время только ленивый не пишет о великом прорыве человечества в области разработки искусственного интеллекта под общим названием «большая языковая модель» (LLM, large language model). И хотя у них остается еще много возможностей для совершенствования, но за последние несколько лет подобные приложения стали действительно востребованными. Большие языковые модели привлекают своей сверхъестественной способностью резюмировать текст, понимать естественный язык и создавать контент (и судя качеству некоторых статей, в том числе и тут на Хабре).

Правда подобные инструменты иногда сбоят и выдают некорректную информацию т.е. «галлюцинируют», которую выдают за правду. Генераторы изображений могут нарисовать лошадей с пятью ногами или семью пальцами на ладонях рук. Однако подобные «фантазии» не всегда плохо. Например, когда творчество ценится выше точности, генерация не существующего контента, но похожего на правду, может оказаться полезной.

Томас Валадес (Thomas Valadez) воспользовался этим творческим потенциалом, чтобы создать интересное устройство под названием «Storybook». Его проект с открытым исходным кодом превращает Raspberry Pi в рассказчика на базе искусственного интеллекта, способного создавать иллюстрированные сказки. Это устройство использует LLM и генератор изображений для создания одной страницы книги из никогда не существовавшего сборника рассказов и выводит их на E-Ink дисплей.

vdct_bjw5c6z3ticiyiut67vva0.png

Устройство состоит всего из нескольких обычных компонентов;

Программное обеспечение и инструкцию по его установке можно посмотреть на сайте проекта


или тут под спойлером
  • Image the SD card with RPi OS, then boot and update the OS
  • Enable I2C and SPI interfaces: sudo raspi-config
  • Install Ollama
  • Pull and serve an Ollama model. I find that Mistral and Gemma models work well. ollama run gemma:7b
  • Build/install XNNPACK and Onnxstream
  • Download an SD model. I find that Stable Diffusion XL Turbo 1.0 works well.
  • Clone this repository. git clone https://github.com/tvldz/storybook.git
  • Create a Python virtual environment: cd storybook && mkdir .venv && python -m venv .venv
  • Activate the environment: source .venv/bin/activate
  • Install the Inky libraries. Follow these instructions for RPi 5 compatibility: pimoroni/inky#182
  • Install requests and pillow: pip install requests pillow
  • Modify the constants (paths) at the top of main.py to match your own environment.
  • execute main.py: python main.py. Execution takes ~5 minutes.

Для генерации изображений использован Stable Diffusion XL Turbo 1.0, который является довольно «тяжелым» запуска на выбранной аппаратной платформы с ограниченными ресурсами. Однако с помощью Onnxstream требования к памяти можно значительно снизить.

k440gywabas__ziuzbreef6w228.png

Тщательно подобрав подсказки для LLM и генератора изображений, можно создавать иллюстрированные страницы из сборника детских рассказов и отображать ее на экране E Ink. Благодаря особенностям этих дисплеев, они могут работать в течение всего дня, не потребляя энергии, предлагая развлечения и вдохновение. Выполнение программы генерации на Raspberry Pi довольно медленный процессе. Так, создание новой страницы занимает около 5 минут.

b9-721rz96by32v_l4gvqoad8am.png

jvrj08d7r6obf11fjpguukc_0ss.png

З.Ы.
В комментариях на разных портала при обсуждении проекта, постоянно предлагается заменить промпт, чтобы он генерировал не детский, а хардкорный 18+ контент, для целей более активного продвижения данного устройства.

Habrahabr.ru прочитано 7202 раза