first commit
This commit is contained in:
254
docs/openapi/schemas/inference/videos.yaml
Normal file
254
docs/openapi/schemas/inference/videos.yaml
Normal file
@@ -0,0 +1,254 @@
|
||||
# Video Generation Schemas
|
||||
|
||||
VideoGenerationRequest:
|
||||
type: object
|
||||
required:
|
||||
- model
|
||||
- prompt
|
||||
properties:
|
||||
model:
|
||||
type: string
|
||||
description: Model identifier in format `provider/model`
|
||||
prompt:
|
||||
type: string
|
||||
description: Text prompt describing the video to generate
|
||||
input_reference:
|
||||
type: string
|
||||
description: Optional reference image for image-to-video. OpenAI and Gemini require a base64 data URL (e.g., `data:image/png;base64,...`). Runway and Replicate accept both data URLs and plain URLs.
|
||||
seconds:
|
||||
type: string
|
||||
description: Duration of the video in seconds as a string (e.g., "4")
|
||||
size:
|
||||
type: string
|
||||
description: Resolution of the generated video (e.g., `1280x720`, `720x1280`, `1920x1080`)
|
||||
negative_prompt:
|
||||
type: string
|
||||
description: Text describing what to avoid in the generated video
|
||||
seed:
|
||||
type: integer
|
||||
description: Seed for reproducible generation
|
||||
video_uri:
|
||||
type: string
|
||||
description: Source video URI for video-to-video generation (provider-specific, e.g. GCS URI)
|
||||
audio:
|
||||
type: boolean
|
||||
description: Enable audio generation in the video (supported by select providers/models)
|
||||
fallbacks:
|
||||
type: array
|
||||
items:
|
||||
$ref: './common.yaml#/Fallback'
|
||||
description: Fallback models to try if primary model fails
|
||||
|
||||
VideoGenerationResponse:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
description: Provider-native job ID. To use in path parameters (retrieve/delete/download), combine as `{id}:{provider}` (e.g., `task_abc123:runway`)
|
||||
object:
|
||||
type: string
|
||||
enum:
|
||||
- "video"
|
||||
description: Object type, always "video"
|
||||
model:
|
||||
type: string
|
||||
description: Model used for video generation
|
||||
status:
|
||||
$ref: '#/VideoStatus'
|
||||
progress:
|
||||
type: number
|
||||
format: float
|
||||
minimum: 0
|
||||
maximum: 100
|
||||
description: Approximate completion percentage (0-100)
|
||||
prompt:
|
||||
type: string
|
||||
description: Prompt used to generate the video
|
||||
remixed_from_video_id:
|
||||
type: string
|
||||
description: Source video ID if this is a remix
|
||||
seconds:
|
||||
type: string
|
||||
description: Duration of the generated video in seconds as a string (e.g., "4")
|
||||
size:
|
||||
$ref: '#/VideoSize'
|
||||
created_at:
|
||||
type: integer
|
||||
format: int64
|
||||
description: Unix timestamp (seconds) when the job was created
|
||||
completed_at:
|
||||
type: integer
|
||||
format: int64
|
||||
description: Unix timestamp (seconds) when the job completed
|
||||
expires_at:
|
||||
type: integer
|
||||
format: int64
|
||||
description: Unix timestamp (seconds) when downloadable assets expire
|
||||
videos:
|
||||
type: array
|
||||
description: Generated video outputs (only present when status is "completed")
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
type:
|
||||
type: string
|
||||
enum:
|
||||
- "url"
|
||||
- "base64"
|
||||
description: Output format of this video
|
||||
url:
|
||||
type: string
|
||||
format: uri
|
||||
description: URL to the generated video (present when type is "url")
|
||||
base64:
|
||||
type: string
|
||||
description: Base64-encoded video content (present when type is "base64")
|
||||
content_type:
|
||||
type: string
|
||||
description: MIME type of the video (e.g., "video/mp4")
|
||||
error:
|
||||
$ref: '#/VideoError'
|
||||
content_filter:
|
||||
$ref: '#/VideoContentFilter'
|
||||
extra_fields:
|
||||
$ref: './common.yaml#/BifrostResponseExtraFields'
|
||||
|
||||
VideoRemixRequest:
|
||||
type: object
|
||||
required:
|
||||
- prompt
|
||||
properties:
|
||||
prompt:
|
||||
type: string
|
||||
description: Text prompt describing how to remix the video
|
||||
|
||||
VideoListResponse:
|
||||
type: object
|
||||
properties:
|
||||
object:
|
||||
type: string
|
||||
enum:
|
||||
- "list"
|
||||
description: Object type, always "list"
|
||||
data:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/VideoObject'
|
||||
description: Array of video generation jobs
|
||||
first_id:
|
||||
type: string
|
||||
description: ID of the first item in the list
|
||||
last_id:
|
||||
type: string
|
||||
description: ID of the last item in the list
|
||||
has_more:
|
||||
type: boolean
|
||||
description: Whether there are more results available
|
||||
extra_fields:
|
||||
$ref: './common.yaml#/BifrostResponseExtraFields'
|
||||
|
||||
VideoObject:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
description: Provider-native video ID. To use in path parameters (retrieve/delete/download), combine as `{id}:{provider}` (e.g., `task_abc123:runway`)
|
||||
object:
|
||||
type: string
|
||||
enum:
|
||||
- "video"
|
||||
description: Object type, always "video"
|
||||
model:
|
||||
type: string
|
||||
description: Model used for generation
|
||||
status:
|
||||
$ref: '#/VideoStatus'
|
||||
progress:
|
||||
type: number
|
||||
format: float
|
||||
minimum: 0
|
||||
maximum: 100
|
||||
description: Approximate completion percentage (0-100)
|
||||
prompt:
|
||||
type: string
|
||||
description: Prompt used to generate the video
|
||||
remixed_from_video_id:
|
||||
type: string
|
||||
description: Source video ID if this is a remix
|
||||
seconds:
|
||||
type: string
|
||||
description: Duration of the video in seconds as a string (e.g., "4")
|
||||
size:
|
||||
$ref: '#/VideoSize'
|
||||
created_at:
|
||||
type: integer
|
||||
format: int64
|
||||
description: Unix timestamp (seconds) when the job was created
|
||||
completed_at:
|
||||
type: integer
|
||||
format: int64
|
||||
description: Unix timestamp (seconds) when the job completed
|
||||
expires_at:
|
||||
type: integer
|
||||
format: int64
|
||||
description: Unix timestamp (seconds) when downloadable assets expire
|
||||
error:
|
||||
$ref: '#/VideoError'
|
||||
|
||||
VideoDeleteResponse:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
description: ID of the deleted video
|
||||
object:
|
||||
type: string
|
||||
enum:
|
||||
- "video.deleted"
|
||||
description: Object type, always "video.deleted"
|
||||
deleted:
|
||||
type: boolean
|
||||
description: Whether the video was successfully deleted
|
||||
extra_fields:
|
||||
$ref: './common.yaml#/BifrostResponseExtraFields'
|
||||
|
||||
VideoStatus:
|
||||
type: string
|
||||
enum:
|
||||
- "queued"
|
||||
- "in_progress"
|
||||
- "completed"
|
||||
- "failed"
|
||||
description: |
|
||||
Current lifecycle status of the video generation job:
|
||||
- `queued`: Job is waiting to be processed
|
||||
- `in_progress`: Video is currently being generated
|
||||
- `completed`: Video generation completed successfully
|
||||
- `failed`: Video generation failed
|
||||
|
||||
VideoSize:
|
||||
type: string
|
||||
description: Resolution of the generated video (e.g., "1920x1080")
|
||||
|
||||
VideoError:
|
||||
type: object
|
||||
properties:
|
||||
code:
|
||||
type: string
|
||||
description: Error code
|
||||
message:
|
||||
type: string
|
||||
description: Human-readable error message
|
||||
|
||||
VideoContentFilter:
|
||||
type: object
|
||||
description: Information about content that was filtered due to safety policies
|
||||
properties:
|
||||
filtered_count:
|
||||
type: integer
|
||||
description: Number of items filtered
|
||||
reasons:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
description: Human-readable reasons for filtering
|
||||
Reference in New Issue
Block a user