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 82905193db..431e40fd99 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 @@ -31,18 +31,19 @@ impl Default for OmniGenImageModelsProvider { /// Response body for the image models endpoint. /// TBD — fields will be added later. -#[derive(Serialize, ToSchema)] +#[derive(Serialize, ToSchema, Clone)] pub struct OmniGenImageModelsResponse { pub success: bool, + pub providers: Vec, } -#[derive(Serialize, ToSchema)] +#[derive(Serialize, ToSchema, Clone)] pub struct OmniGenImageProviderModels { pub provider: GenerationProvider, pub models: Vec, } -#[derive(Serialize, ToSchema)] +#[derive(Serialize, ToSchema, Clone)] pub struct OmniGenImageModelDetails { pub model: CommonImageModel, 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 13d14882b8..64baa8a725 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 @@ -31,19 +31,19 @@ impl Default for OmniGenVideoModelsProvider { /// Response body for the video models endpoint. /// TBD — fields will be added later. -#[derive(Serialize, ToSchema)] +#[derive(Serialize, ToSchema, Clone)] pub struct OmniGenVideoModelsResponse { pub success: bool, - pub providers: OmniGenVideoProviderModels, + pub providers: Vec, } -#[derive(Serialize, ToSchema)] +#[derive(Serialize, ToSchema, Clone)] pub struct OmniGenVideoProviderModels { pub provider: GenerationProvider, pub models: Vec, } -#[derive(Serialize, ToSchema)] +#[derive(Serialize, ToSchema, Clone)] pub struct OmniGenVideoModelDetails { pub model: CommonVideoModel, diff --git a/crates/service/web/storyteller_web/src/configs/omni_gen/image_models.rs b/crates/service/web/storyteller_web/src/configs/omni_gen/image_models.rs index 78b3913489..d6f0c88c5f 100644 --- a/crates/service/web/storyteller_web/src/configs/omni_gen/image_models.rs +++ b/crates/service/web/storyteller_web/src/configs/omni_gen/image_models.rs @@ -1,11 +1,11 @@ use artcraft_api_defs::omni_gen::models::omni_gen_image_models::{OmniGenImageModelDetails, OmniGenImageProviderModels}; use enums::common::generation::common_aspect_ratio::CommonAspectRatio; use enums::common::generation::common_image_model::CommonImageModel; +use enums::common::generation::common_resolution::CommonResolution; use enums::common::generation_provider::GenerationProvider; use once_cell::sync::Lazy; -use enums::common::generation::common_resolution::CommonResolution; -pub const IMAGE_MODELS: Lazy> = Lazy::new(|| { +pub const OMNI_GEN_IMAGE_MODELS: Lazy> = Lazy::new(|| { let mut models = Vec::new(); models.push(OmniGenImageProviderModels { diff --git a/crates/service/web/storyteller_web/src/configs/omni_gen/video_models.rs b/crates/service/web/storyteller_web/src/configs/omni_gen/video_models.rs index 8a89e0cb1a..cc9921046b 100644 --- a/crates/service/web/storyteller_web/src/configs/omni_gen/video_models.rs +++ b/crates/service/web/storyteller_web/src/configs/omni_gen/video_models.rs @@ -5,7 +5,7 @@ use enums::common::generation::common_video_model::CommonVideoModel; use enums::common::generation_provider::GenerationProvider; use once_cell::sync::Lazy; -pub const VIDEO_MODELS: Lazy> = Lazy::new(|| { +pub const OMNI_GEN_VIDEO_MODELS: Lazy> = Lazy::new(|| { let mut models = Vec::new(); models.push(OmniGenVideoProviderModels { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/models/image/omni_gen_image_models_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/models/image/omni_gen_image_models_handler.rs index 8bdcbf8ef0..5cfb38d7da 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/models/image/omni_gen_image_models_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/models/image/omni_gen_image_models_handler.rs @@ -1,16 +1,15 @@ use std::sync::Arc; +use crate::configs::omni_gen::image_models::OMNI_GEN_IMAGE_MODELS; +use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::state::server_state::ServerState; use actix_web::web::{Json, Query}; use actix_web::{web, HttpRequest}; - use artcraft_api_defs::omni_gen::models::omni_gen_image_models::{ OmniGenImageModelsQuery, OmniGenImageModelsResponse, }; -use crate::http_server::common_responses::common_web_error::CommonWebError; -use crate::state::server_state::ServerState; - /// List available image models. #[utoipa::path( get, @@ -27,5 +26,9 @@ pub async fn omni_gen_image_models_handler( _query: Query, _server_state: web::Data>, ) -> Result, CommonWebError> { - todo!() + let providers = (*OMNI_GEN_IMAGE_MODELS).clone(); + Ok(Json(OmniGenImageModelsResponse { + success: true, + providers, + })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/models/video/omni_gen_video_models_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/models/video/omni_gen_video_models_handler.rs index 397b96cd49..5ba9c1f600 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/models/video/omni_gen_video_models_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/models/video/omni_gen_video_models_handler.rs @@ -1,16 +1,15 @@ use std::sync::Arc; +use crate::configs::omni_gen::video_models::OMNI_GEN_VIDEO_MODELS; +use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::state::server_state::ServerState; use actix_web::web::{Json, Query}; use actix_web::{web, HttpRequest}; - use artcraft_api_defs::omni_gen::models::omni_gen_video_models::{ OmniGenVideoModelsQuery, OmniGenVideoModelsResponse, }; -use crate::http_server::common_responses::common_web_error::CommonWebError; -use crate::state::server_state::ServerState; - /// List available video models. #[utoipa::path( get, @@ -27,5 +26,9 @@ pub async fn omni_gen_video_models_handler( _query: Query, _server_state: web::Data>, ) -> Result, CommonWebError> { - todo!() + let providers = (*OMNI_GEN_VIDEO_MODELS).clone(); + Ok(Json(OmniGenVideoModelsResponse { + success: true, + providers, + })) }