Pull to refresh

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

Level of difficultyEasy
Reading time3 min
Views4.6K
Original author: Nick Bild

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


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


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



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



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


или тут под спойлером
  • 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 требования к памяти можно значительно снизить.



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




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

Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+11
Comments9

Articles