Skip to content

e-johnstonn/FableForge

Repository files navigation

📚 FableForge

📄 Description

Generate a picture book from a single prompt using OpenAI's new function calling and Replicate's API for Stable Diffusion. Store all your generated images and corresponding prompts in Deep Lake. Check example.pdf or watch the video below for a peek at the output.

Built with LangChain, Deep Lake, and Replicate.

📺 Demo

fableforge_demo.mp4

🛠 Install

  1. Clone the repository
  2. Install requirements.txt
  3. Set up your OpenAI and Replicate API keys in keys.env - More on this below
  4. To save your images and prompts, set up your Activeloop Deep Lake token and dataset path in keys.env - More on this below
  5. Run streamlit run main.py to start the app!

🧠 Deep Lake Setup

During the creation of this project, I used Deep Lake to store the generated pictures and prompts in the cloud, as it makes it easy to work with multiple modalities of data (image/text), and displays them in a web UI. To set this up yourself, go to the Deep Lake website and make an account. Once logged in, you can click "Train deep learning models", then "Create dataset", which will guide you through getting an API token and dataset link. Put the token and dataset path in the keys.env file and you're good to go.

🖼️ Replicate Setup

A Replicate API key is necessary for this app. To get one, go to the Replicate website and create an account, then take your API key and put it in keys.env. Replicate provides free image generation for new users.

📐Architecture

architecture

Improvements

  • This demo uses Replicate for image generation due to its ease of use. Connect it to your own Stable Diffusion setup (local or cloud-based) for better results. I recommend some combination of Diffusers and FastAPI as a starting point.

License

MIT License

About

Generate a picture book from a single prompt using OpenAI function calling, replicate, and Deep Lake

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages