Commit 80ef53
2024-08-22 15:54:43 admin: -/-/dev/null .. video api.md | |
@@ 0,0 1,223 @@ | |
+ | # AI-Now Image and Video Generation API Documentation |
+ | |
+ | ## Table of Contents |
+ | |
+ | 1. [Introduction](#introduction) |
+ | 2. [Authentication](#authentication) |
+ | 3. [API Endpoints](#api-endpoints) |
+ | - [Ping](#ping) |
+ | - [Generate](#generate) |
+ | 4. [Models](#models) |
+ | 5. [Styles](#styles) |
+ | 6. [Error Handling](#error-handling) |
+ | 7. [Rate Limiting and Tokens](#rate-limiting-and-tokens) |
+ | 8. [Examples](#examples) |
+ | |
+ | ## Introduction |
+ | |
+ | This API provides access to various AI models for generating music, images, and videos based on text prompts. It supports multiple models with different capabilities and token costs. |
+ | |
+ | ## Authentication |
+ | |
+ | Authentication is required for all API requests. Use Bearer token authentication by including an API key in the Authorization header: |
+ | |
+ | ``` |
+ | Authorization: Bearer YOUR_API_KEY |
+ | ``` |
+ | |
+ | To obtain an API key, contact admin@ai-now.space. |
+ | |
+ | ## API Endpoints |
+ | |
+ | ### Ping |
+ | |
+ | Endpoint: `GET /api/ping` |
+ | |
+ | Use this endpoint to check if the API is operational. |
+ | |
+ | **Response:** |
+ | ``` |
+ | pong |
+ | ``` |
+ | |
+ | ### Generate |
+ | |
+ | Endpoint: `POST /api/generate` |
+ | |
+ | This endpoint generates music, images, or videos based on the specified model and prompt. |
+ | |
+ | **Request Body:** |
+ | |
+ | ```json |
+ | { |
+ | "model": "string", |
+ | "prompt": "string", |
+ | "style": "string" (optional) |
+ | } |
+ | ``` |
+ | |
+ | - `model`: The AI model to use (e.g., "suno", "luma", "pika", "run") |
+ | - `prompt`: The text prompt for generation |
+ | - `style`: Optional style parameter for some models |
+ | |
+ | **Response:** |
+ | |
+ | The response is a server-sent event stream. Events include: |
+ | |
+ | - Processing updates |
+ | - Error messages |
+ | - Final result with generated content URL |
+ | |
+ | ## Models |
+ | |
+ | 1. **Suno** (Music Generation) |
+ | - Token Cost: 10 |
+ | - Generation Time: 1-3 minutes |
+ | |
+ | 2. **Luma** (Video Generation) |
+ | - Token Cost: 30 |
+ | - Generation Time: Variable, may fail during peak hours |
+ | |
+ | 3. **Pika** (Video Generation) |
+ | - Token Cost: 10 |
+ | - Generation Time: 1-3 minutes |
+ | |
+ | 4. **Run** (Video Generation) |
+ | - Token Cost: 30 |
+ | - Generation Time: 1-3 minutes |
+ | |
+ | ## Styles |
+ | |
+ | ### Pika API Styles |
+ | |
+ | - Anime (value: '1') |
+ | - Moody (value: '2') |
+ | - 3D (value: '3') |
+ | - Watercolor (value: '4') |
+ | - Natural (value: '5') |
+ | - Claymation (value: '6') |
+ | - Black & White (value: '7') |
+ | |
+ | ### Run API Styles |
+ | |
+ | - Abandoned (value: 'abandoned') |
+ | - Abstract Sculpture (value: 'abstract_sculpture') |
+ | - Anime (value: 'anime') |
+ | - Cartoon (value: 'cartoon') |
+ | - Cine Lens (value: 'cine_lens') |
+ | - Claymation (value: 'claymation') |
+ | - Concept Art (value: 'concept_art') |
+ | - Digital Art (value: 'digital_art') |
+ | - Forestpunk (value: 'forestpunk') |
+ | - Frost (value: 'frost') |
+ | - Graphic Novel (value: 'graphic_novel') |
+ | - Graphite (value: 'graphite') |
+ | - Isometric 3D (value: 'isometric_3d') |
+ | - Low Poly 3D (value: 'low_poly_3d') |
+ | - Marker Drawing (value: 'marker_drawing') |
+ | - Moody Film (value: 'moody_film') |
+ | - Pixel Art (value: 'pixel_art') |
+ | - Retro (value: 'retro') |
+ | - Sci-fi Art (value: 'sci_fi_art') |
+ | - Stickers (value: 'stickers') |
+ | - Storyboard (value: 'storyboard') |
+ | - Thriller (value: 'thriller') |
+ | - 3D Cartoon (value: '3d_cartoon') |
+ | - 3D Render (value: '3d_render') |
+ | - 80s Vaporwave (value: '80s_vaporwave') |
+ | |
+ | ## Error Handling |
+ | |
+ | The API returns appropriate HTTP status codes and error messages: |
+ | |
+ | - 401: Unauthorized (missing or invalid API key) |
+ | - 418: Insufficient tokens |
+ | - 500: Internal Server Error |
+ | |
+ | Error responses are in JSON format: |
+ | |
+ | ```json |
+ | { |
+ | "status": "Error", |
+ | "message": "Error description" |
+ | } |
+ | ``` |
+ | |
+ | ## Rate Limiting and Tokens |
+ | |
+ | Each API key has a token balance. Tokens are deducted for each generation request based on the model used. Ensure your account has sufficient tokens before making requests. |
+ | |
+ | ## Examples |
+ | |
+ | ### Generate a song using Suno |
+ | |
+ | **Request:** |
+ | |
+ | ```bash |
+ | curl -X POST https://api.ai-now.space/api/generate \ |
+ | -H "Authorization: Bearer YOUR_API_KEY" \ |
+ | -H "Content-Type: application/json" \ |
+ | -d '{ |
+ | "model": "suno", |
+ | "prompt": "A upbeat pop song about summer" |
+ | }' |
+ | ``` |
+ | |
+ | **Response:** |
+ | |
+ | The response is a server-sent event stream. Here's an example of the events you might receive: |
+ | |
+ | ``` |
+ | data: {"status": "Processing started"} |
+ | |
+ | data: {"status": "Processing"} |
+ | |
+ | data: {"status": "Cookie generated"} |
+ | |
+ | data: {"status": "Processing"} |
+ | |
+ | data: {"status": "Completed", "url": "https://dl.ai-now.space/summer_pop_song_12345.mp3"} |
+ | ``` |
+ | |
+ | ### Generate a video using Pika with a specific style |
+ | |
+ | **Request:** |
+ | |
+ | ```bash |
+ | curl -X POST https://api.ai-now.space/api/generate \ |
+ | -H "Authorization: Bearer YOUR_API_KEY" \ |
+ | -H "Content-Type: application/json" \ |
+ | -d '{ |
+ | "model": "pika", |
+ | "prompt": "A serene lake surrounded by mountains", |
+ | "style": "4" |
+ | }' |
+ | ``` |
+ | |
+ | **Response:** |
+ | |
+ | ``` |
+ | data: {"status": "Processing started"} |
+ | |
+ | data: {"status": "Processing"} |
+ | |
+ | data: {"status": "Cookie generated"} |
+ | |
+ | data: {"status": "Processing"} |
+ | |
+ | data: {"status": "Processing"} |
+ | |
+ | data: {"status": "Completed", "url": "https://dl.ai-now.space/serene_lake_mountains_67890.mp4"} |
+ | ``` |
+ | |
+ | In these examples, the final event contains a `url` field with the download link for the generated content. The URL structure is: |
+ | |
+ | ``` |
+ | https://dl.ai-now.space/<generated_file_name>.<extension> |
+ | ``` |
+ | |
+ | Where: |
+ | - `<generated_file_name>` is a unique identifier for the generated content |
+ | - `<extension>` is the appropriate file extension for the content type (e.g., ".mp3" for audio, ".mp4" for video) |
+ | |
+ | Note that the actual file names and identifiers will vary with each generation. |