FIRST
This commit is contained in:
104
README.md
Normal file
104
README.md
Normal file
@@ -0,0 +1,104 @@
|
||||
# ✨ LinkedIn Carousel Generator
|
||||
|
||||
A complete application that automatically generates professional, highly visual LinkedIn carousels from simple text or articles using Google's **Gemini 3 Pro** (for advanced reasoning and content structuring) and **Gemini 3 Image** (for high-quality, style-consistent backgrounds).
|
||||
|
||||
Built with **Python**, **Streamlit**, and the latest **Google GenAI SDK**.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Features
|
||||
|
||||
- **Automated Content Generation**: Extracts key points from any text or article and structures them into a compelling multi-slide narrative optimized for LinkedIn.
|
||||
- **AI Image Generation**: Dynamically creates unique, high-quality background images tailored to the content of each slide using Gemini's image models.
|
||||
- **Consistent Styling**: Supports multiple visual styles or a custom user-uploaded reference image to maintain brand consistency across all slides.
|
||||
- **Auto-Formatting**: Automatically overlays text, headlines, and code snippets onto the generated backgrounds using Python Pillow.
|
||||
- **Cost Estimation**: Provides real-time token and cost estimation for transparency.
|
||||
- **Multi-Language Support**: Generate carousels in over 10 different languages.
|
||||
- **Export Ready**: Download all generated slides as a ZIP file, ready to be converted to PDF and posted directly to LinkedIn.
|
||||
|
||||
## 🛠️ Tech Stack
|
||||
|
||||
- **Frontend**: [Streamlit](https://streamlit.io/)
|
||||
- **AI Models**: Google Gemini (via `google-genai` SDK)
|
||||
- **Image Processing**: [Pillow (PIL)](https://python-pillow.org/)
|
||||
- **Deployment**: Docker & Docker Compose
|
||||
|
||||
---
|
||||
|
||||
## 📦 Getting Started
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- A **Google Gemini API Key**. You can get one from [Google AI Studio](https://aistudio.google.com/).
|
||||
- **Docker** and **Docker Compose** (Recommended) or **Python 3.10+** (for local development).
|
||||
|
||||
### Option 1: Running with Docker (Recommended)
|
||||
|
||||
The easiest way to run the application is using Docker Compose.
|
||||
|
||||
1. **Clone the repository** (if you haven't already) and navigate to the project directory:
|
||||
```bash
|
||||
cd linkedin-carousel-generator
|
||||
```
|
||||
|
||||
2. **Run the application**:
|
||||
You can either export your API key first or pass it inline:
|
||||
```bash
|
||||
export GOOGLE_API_KEY="your_api_key_here"
|
||||
docker compose up --build -d
|
||||
```
|
||||
*Alternatively, you can provide the API key later through the web UI.*
|
||||
|
||||
3. **Access the app**:
|
||||
Open your browser and navigate to [http://localhost:8501](http://localhost:8501).
|
||||
|
||||
### Option 2: Local Python Setup
|
||||
|
||||
1. **Navigate to the app directory**:
|
||||
```bash
|
||||
cd linkedin-carousel-generator/linkedin_carousel_app
|
||||
```
|
||||
|
||||
2. **Create a virtual environment**:
|
||||
```bash
|
||||
python -m venv venv
|
||||
source venv/bin/activate # On Windows, use `venv\Scripts\activate`
|
||||
```
|
||||
|
||||
3. **Install the dependencies**:
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
4. **Run the application**:
|
||||
```bash
|
||||
streamlit run app.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ Project Structure
|
||||
|
||||
```text
|
||||
linkedin-carousel-generator/
|
||||
├── Dockerfile # Container definition for the app
|
||||
├── docker-compose.yml # Compose file for easy deployment
|
||||
├── .dockerignore # Files to exclude from Docker builds
|
||||
├── linkedin_carousel_app/ # Main application source code
|
||||
│ ├── app.py # Main Streamlit UI and execution logic
|
||||
│ ├── generator.py # Integration with Google Gemini for Text & Images
|
||||
│ ├── styles.py # Configuration for visual styles and layouts
|
||||
│ ├── utils.py # Helper functions (Image formatting, fonts, etc.)
|
||||
│ └── requirements.txt # Python dependencies
|
||||
└── README.md # Project documentation
|
||||
```
|
||||
|
||||
## 💡 How to Use
|
||||
|
||||
1. **Enter API Key**: Open the settings sidebar and paste your Gemini API Key if you haven't set it via environment variables.
|
||||
2. **Paste Text**: In the main area, paste the article, blog post, or ideas you want to convert into a carousel.
|
||||
3. **Configure**: Select an output language and visual style (e.g., Tech Minimalist, Bold Gradient).
|
||||
4. **Generate**: Click "Generate Carousel". The app will first break down your text into slides, and then generate imagery for each one concurrently.
|
||||
5. **Download**: Once finished, preview the slides in the app and click the download button to get a ZIP archive of your completed carousel.
|
||||
|
||||
*(Tip: To post on LinkedIn as a swipeable carousel, convert the downloaded images into a single PDF document first).*
|
||||
Reference in New Issue
Block a user