From 03734a296171fe35fe033fe2b99063935e512c50 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 20 Feb 2026 09:49:58 +0700 Subject: [PATCH] all job tokens --- .../seedance_2p0_multi_function_video_gen.rs | 5 +++++ .../seedance_2p0_multi_function_video_gen_handler.rs | 11 +++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/crates/api_clients/artcraft/artcraft_api_defs/src/generate/video/multi_function/seedance_2p0_multi_function_video_gen.rs b/crates/api_clients/artcraft/artcraft_api_defs/src/generate/video/multi_function/seedance_2p0_multi_function_video_gen.rs index 6ceb4aa879..07bb3cd880 100644 --- a/crates/api_clients/artcraft/artcraft_api_defs/src/generate/video/multi_function/seedance_2p0_multi_function_video_gen.rs +++ b/crates/api_clients/artcraft/artcraft_api_defs/src/generate/video/multi_function/seedance_2p0_multi_function_video_gen.rs @@ -59,5 +59,10 @@ pub enum Seedance2p0BatchCount { #[derive(Serialize, Deserialize, ToSchema)] pub struct Seedance2p0MultiFunctionVideoGenResponse { pub success: bool, + + /// The first inference job token (always present). pub inference_job_token: InferenceJobToken, + + /// All inference job tokens for the batch (includes `inference_job_token` as the first entry). + pub all_inference_job_tokens: Vec, } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/seedance_2p0_multi_function_video_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/seedance_2p0_multi_function_video_gen_handler.rs index e5562d0bd3..094e7a4295 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/seedance_2p0_multi_function_video_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/seedance_2p0_multi_function_video_gen_handler.rs @@ -332,7 +332,7 @@ pub async fn seedance_2p0_multi_function_video_gen_handler( _ => vec![gen_response.order_id], }; - let mut first_job_token: Option = None; + let mut all_job_tokens: Vec = Vec::with_capacity(order_ids.len()); for (i, order_id) in order_ids.iter().enumerate() { let job_token = if i == 0 { @@ -366,9 +366,7 @@ pub async fn seedance_2p0_multi_function_video_gen_handler( match db_result { Ok(token) => { - if first_job_token.is_none() { - first_job_token = Some(token); - } + all_job_tokens.push(token); } Err(err) => { warn!("Error inserting seedance2pro inference job (order_id={}): {:?}", order_id, err); @@ -379,7 +377,7 @@ pub async fn seedance_2p0_multi_function_video_gen_handler( } } - let job_token = first_job_token.ok_or_else(|| { + let first_job_token = all_job_tokens.first().cloned().ok_or_else(|| { error!("No inference job token was created"); CommonWebError::ServerError })?; @@ -394,6 +392,7 @@ pub async fn seedance_2p0_multi_function_video_gen_handler( Ok(Json(Seedance2p0MultiFunctionVideoGenResponse { success: true, - inference_job_token: job_token, + inference_job_token: first_job_token, + all_inference_job_tokens: all_job_tokens, })) }