diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/generate/video/helpers/build_router_client.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/generate/video/helpers/build_router_client.rs index ebeaf476eb..7a8947f20d 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/generate/video/helpers/build_router_client.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/generate/video/helpers/build_router_client.rs @@ -13,13 +13,11 @@ use crate::state::server_state::ServerState; pub fn build_router_client( provider: Provider, server_state: &ServerState, + use_alternate_kinovi: bool, ) -> Result { match provider { Provider::Seedance2Pro => { - let session = Seedance2ProSession::from_cookies_string( - server_state.seedance2pro.cookies.clone() - ); - Ok(RouterClient::Seedance2Pro(RouterSeedance2ProClient::new(session))) + kinovi_provider(server_state, use_alternate_kinovi) } Provider::Fal => { let fal_client = RouterFalClient::new( @@ -40,3 +38,19 @@ pub fn build_router_client( } } } + +fn kinovi_provider(server_state: &ServerState, use_alternate_kinovi: bool) -> Result { + let session = if use_alternate_kinovi { + // Standard Kinovi + Seedance2ProSession::from_cookies_string( + server_state.seedance2pro.cookies_whitelist.clone() + ) + } else { + // Standard Kinovi + Seedance2ProSession::from_cookies_string( + server_state.seedance2pro.cookies.clone() + ) + }; + + Ok(RouterClient::Seedance2Pro(RouterSeedance2ProClient::new(session))) +} diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/generate/video/pipeline_v1/execute/execute_fal.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/generate/video/pipeline_v1/execute/execute_fal.rs index f4ef9eec16..2836cd8e99 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/generate/video/pipeline_v1/execute/execute_fal.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/generate/video/pipeline_v1/execute/execute_fal.rs @@ -15,7 +15,9 @@ pub(crate) async fn execute_generation_fal( plan: &VideoGenerationPlan, server_state: &ServerState, ) -> Result { - let router_client = build_router_client(Provider::Fal, server_state)?; + const USE_ALTERNATE_KINOVI: bool = false; + + let router_client = build_router_client(Provider::Fal, server_state, USE_ALTERNATE_KINOVI)?; let response = plan.generate_video(&router_client) .await diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/generate/video/pipeline_v2/run_pipeline_v2.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/generate/video/pipeline_v2/run_pipeline_v2.rs index a38ab644bd..c7fb3f4a33 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/generate/video/pipeline_v2/run_pipeline_v2.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/generate/video/pipeline_v2/run_pipeline_v2.rs @@ -39,6 +39,22 @@ pub async fn run_pipeline_v2(args: RunPipelineV2Args<'_>) -> Result { + router_builder.model = CommonVideoModel::Seedance2p0; + use_alternate_kinovi = true; + }, + CommonVideoModel::PreviewModelFast => { + router_builder.model = CommonVideoModel::Seedance2p0Fast; + use_alternate_kinovi = true; + }, + _ => {}, // Fall-through + } + let provider = match router_builder.model { CommonVideoModel::HappyHorse1p0 => Provider::Seedance2Pro, CommonVideoModel::Seedance2p0 => Provider::Seedance2Pro, @@ -97,6 +113,7 @@ pub async fn run_pipeline_v2(args: RunPipelineV2Args<'_>) -> Result>, kinovi_character_ids: Option<&HashMap>, + use_alternate_kinovi: bool, ) -> Result { let provider = draft_or_request.get_provider(); - let client = build_router_client(provider, server_state)?; + let client = build_router_client(provider, server_state, use_alternate_kinovi)?; let video_request = match draft_or_request { VideoGenerationDraftOrRequest::Request(request) => request,