diff --git a/crates/api_clients/artcraft/artcraft_api_defs/src/omni_gen/models/omni_gen_image_models.rs b/crates/api_clients/artcraft/artcraft_api_defs/src/omni_gen/models/omni_gen_image_models.rs index 2339c9a276..05b95f0779 100644 --- a/crates/api_clients/artcraft/artcraft_api_defs/src/omni_gen/models/omni_gen_image_models.rs +++ b/crates/api_clients/artcraft/artcraft_api_defs/src/omni_gen/models/omni_gen_image_models.rs @@ -2,7 +2,7 @@ use serde_derive::{Deserialize, Serialize}; use utoipa::{IntoParams, ToSchema}; /// Query string parameters for the image models endpoint. -#[derive(Deserialize, IntoParams)] +#[derive(Deserialize, IntoParams, ToSchema)] pub struct OmniGenImageModelsQuery { /// Which provider's models to list. Defaults to "artcraft" if absent. pub provider: Option, diff --git a/crates/api_clients/artcraft/artcraft_api_defs/src/omni_gen/models/omni_gen_video_models.rs b/crates/api_clients/artcraft/artcraft_api_defs/src/omni_gen/models/omni_gen_video_models.rs index 14b579298f..4f97cdc6f2 100644 --- a/crates/api_clients/artcraft/artcraft_api_defs/src/omni_gen/models/omni_gen_video_models.rs +++ b/crates/api_clients/artcraft/artcraft_api_defs/src/omni_gen/models/omni_gen_video_models.rs @@ -1,8 +1,13 @@ use serde_derive::{Deserialize, Serialize}; use utoipa::{IntoParams, ToSchema}; +use enums::common::generation::common_aspect_ratio::CommonAspectRatio; +use enums::common::generation::common_quality::CommonQuality; +use enums::common::generation::common_resolution::CommonResolution; +use enums::common::generation::common_video_model::CommonVideoModel; +use enums::common::generation_provider::GenerationProvider; /// Query string parameters for the video models endpoint. -#[derive(Deserialize, IntoParams)] +#[derive(Deserialize, IntoParams, ToSchema)] pub struct OmniGenVideoModelsQuery { /// Which provider's models to list. Defaults to "artcraft" if absent. pub provider: Option, @@ -29,4 +34,54 @@ impl Default for OmniGenVideoModelsProvider { #[derive(Serialize, ToSchema)] pub struct OmniGenVideoModelsResponse { pub success: bool, + pub providers: OmniGenVideoProviderModels, +} + +#[derive(Serialize, ToSchema)] +pub struct OmniGenVideoProviderModels { + pub provider: GenerationProvider, + pub models: Vec, +} + +#[derive(Serialize, ToSchema)] +pub struct OmniGenVideoModelDetails { + + pub model: CommonVideoModel, + pub full_name: Option, + // TODO: model_creator: ModelCreator, + + pub supports_text_prompt: Option, + pub supports_negative_text_prompt: Option, + + pub supports_starting_keyframe: Option, + pub requires_starting_keyframe: Option, + + pub supports_ending_keyframe: Option, + + pub supports_image_references: Option, + pub max_image_references: Option, + + pub supports_video_references: Option, + pub max_video_references: Option, + pub max_video_reference_total_duration_seconds: Option, + + pub supports_audio_references: Option, + pub max_audio_references: Option, + pub max_audio_reference_total_duration_seconds: Option, + + pub supports_generate_with_sound_toggle: Option, + + pub aspect_ratio_options: Option>, + pub aspect_ratio_default: Option, + + pub resolution_options: Option>, + pub resolution_default: Option, + + pub quality_options: Option>, + pub default_quality: Option, + + pub duration_seconds_min: Option, + pub duration_seconds_max: Option, + pub duration_seconds_options: Option>, + pub duration_seconds_default: Option, } diff --git a/crates/service/web/storyteller_web/src/docs/api_doc.rs b/crates/service/web/storyteller_web/src/docs/api_doc.rs index 3604a39903..9706d0364a 100644 --- a/crates/service/web/storyteller_web/src/docs/api_doc.rs +++ b/crates/service/web/storyteller_web/src/docs/api_doc.rs @@ -685,12 +685,16 @@ use crate::http_server::endpoints::media_files::list::list_batch_generated_redux OmniGenImageCostResponse, OmniGenImageGenerateResponse, OmniGenImageModelsProvider, + OmniGenImageModelsQuery, OmniGenImageModelsResponse, OmniGenVideoCostAndGenerateRequest, OmniGenVideoCostResponse, OmniGenVideoGenerateResponse, + OmniGenVideoModelDetails, OmniGenVideoModelsProvider, + OmniGenVideoModelsQuery, OmniGenVideoModelsResponse, + OmniGenVideoProviderModels, ModeratorListSubscribingUsersBySignupDateRequest, ModeratorListSubscribingUsersBySignupDateResponse, ModeratorListSubscribingUsersBySignupDateEntry,