sushilideaclan01's picture
Rename project from Ad Generator Lite to PsyAdGenesis, updating all relevant references and configurations. Enhance descriptions and metadata to reflect the new branding and focus on ad design. Implement sorting functionality in the gallery for improved ad management.
b8b7791
|
raw
history blame
6.29 kB
metadata
title: PsyAdGenesis
emoji: πŸš€
colorFrom: blue
colorTo: purple
sdk: docker
app_port: 8000
pinned: false

PsyAdGenesis

Design ads that stop the scroll.

Generate high-converting ad creatives for Home Insurance and GLP-1 niches using psychological triggers and AI-powered image generation.

Features

  • Multiple Generation Modes:

    • Standard generation with randomization
    • Batch generation for multiple ads
    • Angle Γ— Concept matrix system (100 angles Γ— 100 concepts)
    • Extensive generation with researcher β†’ creative director β†’ designer β†’ copywriter flow
  • Image Generation: Supports multiple models (z-image-turbo, nano-banana, nano-banana-pro, imagen-4-ultra, recraft-v3, ideogram-v3, photon, seedream-3)

  • Image Correction: AI-powered image correction for spelling mistakes and visual issues

  • Database Storage: MongoDB integration for storing generated ads

  • Authentication: JWT-based authentication system

Setup

Environment Variables

Copy .env.example to .env and fill in your API keys:

cp .env.example .env

Required variables:

  • OPENAI_API_KEY: Your OpenAI API key
  • REPLICATE_API_TOKEN: Your Replicate API token
  • JWT_SECRET_KEY: Secret key for JWT tokens (change in production!)

Optional variables:

  • MONGODB_URL: MongoDB connection string (for database features)
  • R2 Storage credentials (for cloud image storage):
    • R2_ENDPOINT: Cloudflare R2 endpoint URL
    • R2_BUCKET_NAME: R2 bucket name
    • R2_ACCESS_KEY: R2 access key
    • R2_SECRET_KEY: R2 secret key
    • R2_PUBLIC_DOMAIN: Optional custom domain for public URLs

Production & Storage Settings:

  • ENVIRONMENT: Set to "production" for production deployment (default: "development")
  • SAVE_IMAGES_LOCALLY: Whether to save images locally (default: true)
    • In production: Set to false to disable local storage completely
    • In production: Set to true to save temporarily (will be auto-deleted after retention period)
  • LOCAL_IMAGE_RETENTION_HOURS: Hours to keep images locally before cleanup (default: 24)
    • Only applies when ENVIRONMENT=production and SAVE_IMAGES_LOCALLY=true

Running Locally

  1. Install dependencies:
pip install -r requirements.txt
  1. Run the server:
uvicorn main:app --reload
  1. Access the API at http://localhost:8000

API Documentation

Once running, visit:

  • API docs: http://localhost:8000/docs
  • Alternative docs: http://localhost:8000/redoc

Deployment on Hugging Face Spaces

This app is configured for deployment on Hugging Face Spaces using Docker.

Steps to Deploy

  1. Create a new Space on Hugging Face:

  2. Push your code to the Space:

    git clone https://huggingface.co/spaces/your-username/psyadgenesis
    cd psyadgenesis
    # Copy your files here
    git add .
    git commit -m "Initial commit"
    git push
    
  3. Set Environment Variables:

    • Go to your Space settings
    • Navigate to "Variables and secrets"
    • Add all required environment variables from .env.example
    • Important: Set JWT_SECRET_KEY to a secure random string
  4. Wait for Build:

    • Hugging Face will automatically build and deploy your Docker container
    • Check the "Logs" tab for build progress

Space Configuration

The huggingface.yml file configures:

  • Docker-based deployment
  • Port 8000 for the FastAPI app
  • Health check endpoint

Production Configuration

For production deployments on Hugging Face Spaces, set these environment variables:

ENVIRONMENT=production
SAVE_IMAGES_LOCALLY=true  # Set to false to disable local storage completely
LOCAL_IMAGE_RETENTION_HOURS=24  # Images older than this will be auto-deleted

Important Notes:

  • In production with SAVE_IMAGES_LOCALLY=true: Images are saved temporarily and automatically cleaned up after the retention period
  • In production with SAVE_IMAGES_LOCALLY=false: Images are NOT saved locally (only uploaded to R2)
  • Automatic cleanup runs every hour in production
  • Use the /admin/storage/stats endpoint to monitor storage usage

Accessing Your Deployed App

Once deployed, your app will be available at:

https://your-username-psyadgenesis.hf.space

API Endpoints

Authentication

  • POST /auth/login - Login and get JWT token

Generation

  • POST /generate - Generate single ad (requires auth)
  • POST /generate/batch - Generate multiple ads (requires auth)
  • POST /matrix/generate - Generate using Angle Γ— Concept matrix (requires auth)
  • POST /matrix/testing - Generate testing matrix
  • POST /extensive/generate - Extensive generation flow (requires auth)

Matrix System

  • GET /matrix/angles - List all 100 angles
  • GET /matrix/concepts - List all 100 concepts
  • GET /matrix/angle/{key} - Get specific angle details
  • GET /matrix/concept/{key} - Get specific concept details
  • GET /matrix/compatible/{angle_key} - Get compatible concepts

Image Correction

  • POST /api/correct - Correct image for spelling/visual issues (requires auth)

Database

  • GET /db/stats - Get database statistics (requires auth)
  • GET /db/ads - List stored ads (requires auth)
  • GET /db/ad/{ad_id} - Get specific ad
  • DELETE /db/ad/{ad_id} - Delete ad (requires auth)

Admin (Storage Management)

  • GET /admin/storage/stats - Get storage statistics for locally saved images (requires auth)
  • POST /admin/storage/cleanup - Manually trigger image cleanup (requires auth)
    • Query parameter: dry_run=true to preview what would be deleted

Health

  • GET /health - Health check
  • GET / - API information

Supported Niches

  • home_insurance: Fear, urgency, savings, authority, guilt strategies
  • glp1: Shame, transformation, FOMO, authority, simplicity strategies

Matrix System

The app includes a systematic Angle Γ— Concept matrix:

  • 100 Angles: Psychological triggers (10 categories)
  • 100 Concepts: Visual approaches (10 categories)
  • 10,000 possible combinations

Formula: 1 Offer β†’ 5-8 Angles β†’ 3-5 Concepts per angle

License

[Add your license here]