This Streamlit web app allows you to generate images using various pre-trained Stable Diffusion models and evaluates the generated image against the input prompt using CLIP similarity scoring. The generated images, their prompts, model used, and similarity scores are saved in a SQLite database and displayed in a paginated gallery and sidebar history.
- 🔥 Choose from multiple Stable Diffusion models (via Hugging Face)
- 🖼️ Generate high-quality AI images from text prompts
- 📂 Saves each image, prompt, and model info into a local SQLite database
- 🧠 Evaluates image-to-prompt similarity using OpenAI's CLIP model
- 🗝️ Gallery view with pagination and prompt/model/similarity display
- 📜 Sidebar shows recent image history
- 🛩️ Clear all history with a single click
git clone https://github.com/bchachar/image-generation.git
cd image-generationpython3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activatepip install -r requirements.txtYou need to have PyTorch installed with GPU support (
torch.cuda.is_available()) for best performance.
streamlit run app.pystreamlit
transformers
torch
accelerate
scipy
safetensors
diffusers
Pillow
sqlalchemy- You enter a prompt and select a Stable Diffusion model.
- The app generates an image using the selected model.
- The image is evaluated with OpenAI's CLIP model to determine how well it matches the prompt.
- The image, prompt, model name, and similarity score are saved in
history.db. - The gallery displays the most recent images with prompt, model name, and similarity.
We use OpenAI’s CLIP model (ViT-B/32) to compute the cosine similarity between the prompt and generated image. This gives a percentage score (0–100) indicating how well the image matches the text prompt.
.
├── app.py # Streamlit app
├── requirements.txt # Python dependencies
├── history.db # SQLite DB (auto-created)
├── generated_images/ # Folder for saved images
└── README.md # You're here!
Use the "Clear History" button in the sidebar to remove all stored images and data from the database.
This project is licensed under the MIT License. See LICENSE file for details.
