Add optional animated GIF output to image generation (#59073)

## What changed

- Gate GIF output behind `features.image_generation_animation`, disabled by default.
- Accept `gif` options for generation and editing, with optional `frame_count` and `frame_duration_ms` controls. Use `gif: {}` for API defaults.
- Preserve animated output with `.gif` filenames and `image/gif` data URLs while providing a still preview to the model.
- Add guidance for simple animations and spritesheet-based GIF edits.

## Testing

Add integration coverage for GIF generation and editing, explicit frame controls and API defaults, saved animation bytes, and still-preview replay across follow-up turns.

GitOrigin-RevId: 08afa0316ae3675921652157836191a649f563cf
This commit is contained in:
Gan Tu
2026-11-03 06:24:24 +00:00
committed by copyberry
parent 29eed28082
commit f9e7b19df8
14 changed files with 548 additions and 43 deletions
+2
View File
@@ -87,10 +87,12 @@ pub use crate::files::HostedFileUploadContext;
pub use crate::files::OPENAI_FILE_UPLOAD_LIMIT_BYTES;
pub use crate::files::upload_openai_file;
pub use crate::guardian_assessment::GuardianAssessment;
pub use crate::images::GifOptions;
pub use crate::images::ImageBackground;
pub use crate::images::ImageData;
pub use crate::images::ImageEditRequest;
pub use crate::images::ImageGenerationRequest;
pub use crate::images::ImageOutput;
pub use crate::images::ImageQuality;
pub use crate::images::ImageResponse;
pub use crate::provider::Provider;