Built by @NYskytigers
Generate professional Shutterstock-style captions and keywords automatically.
Export your metadata asshutterstock_content_upload.csvin one click.
Automatically generate Shutterstock-ready captions and SEO keywords from your stock photos and images — powered by BLIP (image captioning) and KeyBERT (keyword extraction).
This app runs 100% locally — no API key or internet connection required after initial setup.
- 🧠 AI caption generation using the BLIP model (
Salesforce/blip-image-captioning-base) - 🔑 Keyword extraction using KeyBERT (
all-MiniLM-L6-v2) - 🗂️ Export to CSV format
- ✏️ Full Editing Control
- 🎨 Category and metadata selection
- 💾 Works completely offline — no OpenAI or external APIs needed
- Python 3.10+
- A virtual environment (
venvrecommended) - Packages listed in
requirements.txt
-
Clone this repository
git clone https://github.com/nyskytigers/stock-auto-caption.git cd stock-auto-caption -
Create and activate a virtual environment
python -m venv venv- On Windows
venv\Scripts\activate- On macOS/Linux
# source venv/bin/activate -
Install dependencies
pip install -r requirements.txt -
▶️ Run the Appstreamlit run app.pyThen open your browser and go to: http://localhost:8501
All generated results can be downloaded as a Shutterstock-compatible CSV file(sutterstock_content_upload.csv):
Shutterstock Example
| Filename | Description | Keywords | Categories | Editorial | Mature content | Illustration |
|---|---|---|---|---|---|---|
| photo1.jpg | Close-up portrait of a cat | cat, feline, pet, cute, whiskers, animal | Animals/Wildlife | no | no | yes |
Adobe Stock Example
| Filename | Title | Keywords | Category | Releases |
|---|---|---|---|---|
| photo2.jpg | A beautiful mountain landscape | mountain, landscape, nature, sky, clouds | 12 |
iStock (Zipped CSVs)
Generates istock_metadata.zip containing one CSV per image: File: photo3.csv
| file name | description | country | title | keywords | color |
|---|---|---|---|---|---|
| photo3.eps | Urban city skyline | Urban city skyline | city, urban, sky... | yes |
BLIP: Bootstrapped Language-Image Pretraining
→ Generates descriptive captions from images.
KeyBERT
→ Extracts SEO-friendly keywords from text using sentence embeddings.
💬 User feedback saving (learning system)
🔍 CLIP-based similarity search for smarter keyword suggestions
🌐 Public web version hosted via Streamlit Cloud or Hugging Face Spaces
🪪 License This project is open-source and available under the MIT License.