itishalogicgo's picture
Update category matching to 4 types: Ai BF, Ai GF, Ai Hug Video, Ai Kiss Video
71b3815
metadata
title: PixVerse Video Generator API
emoji: 🎬
colorFrom: purple
colorTo: blue
sdk: docker
pinned: false
license: mit

PixVerse Video Generation API

FastAPI application for generating videos from images using PixVerse AI, with storage on Digital Ocean Spaces.

Features

  • Health Check Endpoint: /health - Verify service status
  • Video Generation Endpoint: /generate-video - Generate video from image
  • Firebase authentication
  • Hugging Face token authorization
  • Digital Ocean Spaces storage

Storage Structure

milestone/
└── valentine/
    β”œβ”€β”€ source/     # User uploaded images
    └── results/    # Generated videos

Environment Variables

Create a .env file with:

# PixVerse API Configuration
PIXVERSE_API_KEY=your-pixverse-api-key

# Digital Ocean Spaces Configuration
DO_SPACES_KEY=your-digital-ocean-spaces-key
DO_SPACES_SECRET=your-digital-ocean-spaces-secret
DO_SPACES_BUCKET=your-bucket-name
DO_SPACES_REGION=nyc3
DO_SPACES_ENDPOINT=https://nyc3.digitaloceanspaces.com

# Firebase Configuration
FIREBASE_PROJECT_ID=your-firebase-project-id

# Hugging Face Token (for authorization)
HF_TOKEN=your-hugging-face-token

Installation

pip install -r requirements.txt

Running Locally

python main.py

Or with uvicorn:

uvicorn main:app --host 0.0.0.0 --port 7860 --reload

API Endpoints

1. Health Check

GET /health

Response:

{
    "success": true,
    "message": "Service is running",
    "data": {
        "status": "healthy",
        "service": "PixVerse Video Generation API",
        "version": "1.0.0"
    }
}

2. Generate Video

POST /generate-video

Headers:

  • Authorization: Bearer <hf_token>

Form Data:

  • image: Image file (JPG, PNG, WebP)
  • user_id: User ID string (optional)
  • prompt_text: Prompt text for video generation (must contain keywords to match category)
  • firebase_id_token: Firebase ID token
  • appname: App name for database routing (optional)

Category Matching (4 video types): The prompt_text is automatically matched to one of 4 categories:

  • Contains "kiss" β†’ Ai Kiss Video
  • Contains "hug" β†’ Ai Hug Video
  • Contains "bf" or "boyfriend" β†’ Ai BF
  • Contains "gf" or "girlfriend" β†’ Ai GF

Success Response:

{
    "success": true,
    "message": "Video created successfully",
    "data": {
        "result_url": "https://your-bucket.nyc3.digitaloceanspaces.com/milestone/valentine/results/...",
        "source_image": "https://your-bucket.nyc3.digitaloceanspaces.com/milestone/valentine/source/...",
        "video_id": 12345
    }
}

Error Response:

{
    "success": false,
    "message": "Error description",
    "data": null
}

Hugging Face Deployment

The API is configured to run on port 7860 for Hugging Face Spaces deployment.

Hugging Face Secrets

Set these secrets in your Hugging Face Space:

  • PIXVERSE_API_KEY
  • DO_SPACES_KEY
  • DO_SPACES_SECRET
  • DO_SPACES_BUCKET
  • DO_SPACES_REGION
  • DO_SPACES_ENDPOINT
  • FIREBASE_PROJECT_ID
  • HF_TOKEN

cURL Example

curl -X POST "http://localhost:7860/generate-video" \
  -H "Authorization: Bearer your-hf-token" \
  -F "image=@/path/to/image.jpg" \
  -F "user_id=user123" \
  -F "prompt_text=A romantic kiss scene with beautiful effects" \
  -F "firebase_id_token=firebase-id-token" \
  -F "appname=collage-maker"