| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package gemini
- // VeoImageInput represents an image input for Veo image-to-video.
- // Used by both Gemini and Vertex adaptors.
- type VeoImageInput struct {
- BytesBase64Encoded string `json:"bytesBase64Encoded"`
- MimeType string `json:"mimeType"`
- }
- // VeoInstance represents a single instance in the Veo predictLongRunning request.
- type VeoInstance struct {
- Prompt string `json:"prompt"`
- Image *VeoImageInput `json:"image,omitempty"`
- // TODO: support referenceImages (style/asset references, up to 3 images)
- // TODO: support lastFrame (first+last frame interpolation, Veo 3.1)
- }
- // VeoParameters represents the parameters block for Veo predictLongRunning.
- type VeoParameters struct {
- SampleCount int `json:"sampleCount"`
- DurationSeconds int `json:"durationSeconds,omitempty"`
- AspectRatio string `json:"aspectRatio,omitempty"`
- Resolution string `json:"resolution,omitempty"`
- NegativePrompt string `json:"negativePrompt,omitempty"`
- PersonGeneration string `json:"personGeneration,omitempty"`
- StorageUri string `json:"storageUri,omitempty"`
- CompressionQuality string `json:"compressionQuality,omitempty"`
- ResizeMode string `json:"resizeMode,omitempty"`
- Seed *int `json:"seed,omitempty"`
- GenerateAudio *bool `json:"generateAudio,omitempty"`
- }
- // VeoRequestPayload is the top-level request body for the Veo
- // predictLongRunning endpoint (used by both Gemini and Vertex).
- type VeoRequestPayload struct {
- Instances []VeoInstance `json:"instances"`
- Parameters *VeoParameters `json:"parameters,omitempty"`
- }
- type submitResponse struct {
- Name string `json:"name"`
- }
- type operationVideo struct {
- MimeType string `json:"mimeType"`
- BytesBase64Encoded string `json:"bytesBase64Encoded"`
- Encoding string `json:"encoding"`
- }
- type operationResponse struct {
- Name string `json:"name"`
- Done bool `json:"done"`
- Response struct {
- Type string `json:"@type"`
- RaiMediaFilteredCount int `json:"raiMediaFilteredCount"`
- Videos []operationVideo `json:"videos"`
- BytesBase64Encoded string `json:"bytesBase64Encoded"`
- Encoding string `json:"encoding"`
- Video string `json:"video"`
- GenerateVideoResponse struct {
- GeneratedVideos []struct {
- Video struct {
- URI string `json:"uri"`
- } `json:"video"`
- } `json:"generatedVideos"`
- } `json:"generateVideoResponse"`
- } `json:"response"`
- Error struct {
- Message string `json:"message"`
- } `json:"error"`
- }
|