# Screenshot Studio - Setup Guide Complete guide to set up and run Screenshot Studio. ## Quick Start ```bash # 1. Install dependencies pip install -r requirements.txt # 2. Install Playwright browsers playwright install chromium # 3. Configure API cp config/config.example.py config/config.py # Edit config/config.py with your API credentials # 4. Start the application python start.py ``` ## Detailed Setup ### Step 1: System Requirements - **Python**: 3.8 or higher - **pip**: Latest version - **Operating System**: Windows, macOS, or Linux - **RAM**: Minimum 2GB - **Disk Space**: ~500MB for dependencies ### Step 2: Install Python Dependencies ```bash pip install -r requirements.txt ``` This installs: - Flask (web framework) - Playwright (screenshot engine) - Pillow (image processing) - Requests (HTTP client) ### Step 3: Install Playwright Browsers Playwright needs browser binaries: ```bash playwright install chromium ``` This downloads Chromium (~150MB). You can also install other browsers: ```bash playwright install firefox playwright install webkit ``` ### Step 4: Configure API Settings 1. **Copy the example config:** ```bash cp config/config.example.py config/config.py ``` 2. **Edit config/config.py:** ```python API_KEY = "your-actual-api-key" BASE_URL = "https://your-api-endpoint.com/v1" MODEL_NAME = "your-model-name" ``` 3. **Get API credentials:** - For Groq: https://console.groq.com/keys - For OpenAI: https://platform.openai.com/api-keys - For other providers: Check their documentation ### Step 5: Verify Installation Run the startup script with checks: ```bash python start.py ``` This will: - ✅ Check all dependencies - ✅ Verify configuration - ✅ Test Playwright installation - ✅ Create output folders - 🚀 Start the server ### Step 6: Access the Application Open your browser to: ``` http://localhost:5000 ``` ## Configuration Options ### Basic Settings (config/config.py) ```python # API Configuration API_KEY = "sk-..." # Your API key BASE_URL = "https://..." # API endpoint MODEL_NAME = "llama-3.1-70b" # Model to use # Server Settings DEBUG = True # Enable debug mode PORT = 5000 # Server port HOST = "0.0.0.0" # Listen on all interfaces # Output Settings DEFAULT_SCREENSHOT_FOLDER = "output/screenshots" DEFAULT_HTML_FOLDER = "output/html" ``` ### Advanced Settings ```python # Screenshot Quality DEFAULT_VIEWPORT_WIDTH = 1920 # Screenshot width DEFAULT_VIEWPORT_HEIGHT = 1080 # Screenshot height DEFAULT_DEVICE_SCALE = 2.5 # Quality multiplier DEFAULT_FONT_SIZE = 250 # Font size percentage DEFAULT_OVERLAP = 35 # Overlap between shots # Limits MAX_SCREENSHOTS_LIMIT = 50 # Maximum screenshots per request MAX_TOKENS = 100000 # Maximum AI tokens ``` ## Troubleshooting ### Issue: "Module not found" **Solution:** ```bash pip install -r requirements.txt ``` ### Issue: "Playwright executable not found" **Solution:** ```bash playwright install chromium ``` ### Issue: "API key invalid" **Solution:** 1. Check `config/config.py` has correct API key 2. Verify API key is active on provider's dashboard 3. Check BASE_URL is correct ### Issue: "Permission denied" on output folders **Solution:** ```bash # Windows icacls output /grant Users:F /T # Linux/Mac chmod -R 755 output ``` ### Issue: Port 5000 already in use **Solution:** Edit `config/config.py`: ```python PORT = 5001 # Use different port ``` Or stop the process using port 5000: ```bash # Windows netstat -ano | findstr :5000 taskkill /PID /F # Linux/Mac lsof -ti:5000 | xargs kill -9 ``` ## Running in Production ### Using Gunicorn (Linux/Mac) ```bash gunicorn -w 4 -b 0.0.0.0:5000 app:app ``` ### Using Waitress (Windows) ```bash pip install waitress waitress-serve --port=5000 app:app ``` ### Environment Variables Set sensitive data via environment variables: ```bash # Linux/Mac export API_KEY="your-key" export BASE_URL="your-url" # Windows set API_KEY=your-key set BASE_URL=your-url ``` Then in `config/config.py`: ```python import os API_KEY = os.getenv('API_KEY', 'default-key') BASE_URL = os.getenv('BASE_URL', 'default-url') ``` ## Updating ### Update Python packages ```bash pip install --upgrade -r requirements.txt ``` ### Update Playwright ```bash playwright install chromium --force ``` ## Uninstalling ```bash # Remove Python packages pip uninstall -r requirements.txt -y # Remove Playwright browsers playwright uninstall --all # Delete project folder cd .. rm -rf screenshot-studio ``` ## Getting Help 1. **Check terminal output** for detailed error messages 2. **Review logs** in the console 3. **Verify configuration** in `config/config.py` 4. **Test API** separately to isolate issues ## Next Steps After setup: 1. Read [README.md](README.md) for usage instructions 2. Check [static/README.md](static/README.md) for frontend customization 3. Explore the UI at http://localhost:5000 4. Try the Text to Image tool with sample content 5. Experiment with advanced settings ## Support For issues: - Check error messages in terminal - Verify all setup steps completed - Review troubleshooting section - Check API provider status