/dalle-playground

A playground to generate images from any text prompt using DALL-E Mini and based on OpenAI's DALL-E https://openai.com/blog/dall-e/

Primary LanguageJavaScriptMIT LicenseMIT

Dali

DALL-E Playground

A playground for DALL-E enthusiasts to tinker with the open-source version of OpenAI's DALL-E, based on DALL-E Mini.

DALLE.Playground.demo.mp4

Fast usage

You can tinker with the DALL-E playground using a Github-hosted frontend. Follow these steps:

  1. Run the DALL-E backend using Google Colab Open In Colab
  2. Copy the URL from the last executed cell. Look for the line having your url is: https://XXXX.loca.lt
  3. Wait for the backend to fully load, this should take ~2min and you should see --> DALL-E Server is up and running!
  4. Browse https://saharmor.github.io/dalle-playground/?backendUrl=https://XXXX.loca.lt where the backendUrl query parameter should be the url from the previous step

General note: while it is possible to run the DALL-E Mini backend on the free tier of Google Colab, generating more than 1-2 images would take more than 1min, which will result in a frontend timeout. Consider upgrading to Colab Pro or run the backend notebook on your stronger ML machine (e.g. AWS EC2).

Using DALL-E Mega

DALL-E Mega is substianlly more capable than DALL-E Mini and therefore generates higher fidelity images. If you have the computing power--either through a Google Colab Pro+ subcription or by having a strong local machine, select the DALL-E Mega model in the colab notebook or run the backend with a Mega or Mega_full parameter, e.g. python dalle-playground/backend/app.py --port 8000 --model_version mega

Local development

Follow these steps in case you'd like to clone and run the DALL-E playground locally:

  1. Clone or fork this repository
  2. Create a virtual environment cd backend && python3 -m venv ENV_NAME
  3. Install requirements pip install -r requirements.txt
  4. Make sure you have pytorch and its dependencies installed Installation guide
  5. Run web server python app.py --port 8080 --model_version mini (you can change from 8080 to your own port)
  6. In a different terminal, install frontend's modules cd interface && npm install and run it npm start
  7. Copy backend's url from step 5 and paste it in the backend's url input within the web app

Local development with Docker-compose

  1. Make sure you have docker and The NVIDIA Container Toolkit installed

  2. Clone or fork this repository

  3. start server docker-compose up, add -d to docker-compose up if you'd like to run it in the background

  4. The first time will take some time to download the images, models and other dependencies. models and other dependencies are downloaded only once, and then cached.

  5. Copy backend's url from step 2 and paste it in the backend's url input within the web app.

    webapp at http://localhost:3000/dalle-playground

Acknowledgements

This repo is a full-stack flavour of Boris Dayma's DALL-E Mini repository.