portrayt
portrayt copied to clipboard
2022 - Code for an e-paper+raspi based picture frame that generates StableDiffusion images from prompts given via a local dashboard
portrayt
This project combines e-paper, raspberry pi's, and StableDiffusion to make a picture frame that portrays anything you ask of it.
| E-Ink Screen + Raspi on an easel | Dashboard View |
|---|---|
![]() |
![]() |
Development
Installing python dependencies
poetry install
Running Tests
pytest .
Formatting Code
bash .github/format.sh
Linting
bash .github/check_lint.sh
Running the Program
Install docker
curl -sSL https://get.docker.com | sh
sudo groupadd docker
sudo usermod -aG docker $USER
Create a .env file in your current directory and fill in the API key:
REPLICATE_API_TOKEN=<your token here>
RENDERER=inky
Build and run the image
docker compose up --build -d
When using a Raspberry pi, make sure to enable the spi interface by going to raspi-config,
interface options, and selecting enable.
Running on desktop
For local development, OpenCV is used to render images to a window. The .env file needs
to be updated to allow opencv to be installed (and used for rendering).
In the .env file, fill out the following:
REPLICATE_API_TOKEN=<your token here>
RENDERER=opencv
POETRY_EXTRAS=--extras opencv
Then, in terminal give docker access to the X window manager:
xhost +
Then build and run using the above commands.

