Compare commits

...
Author SHA1 Message Date
Brandon Thomas d709542a1c video model durations 2026-03-24 03:51:51 -04:00
Brandon Thomas 049c36bfa6 record duration in video models 2026-03-24 03:46:07 -04:00
Brandon Thomas 609eb8bc25 codegen db 2026-03-24 03:25:57 -04:00
Brandon Thomas d9be63af34 save and serve prompt duration 2026-03-24 03:25:24 -04:00
58 changed files with 177 additions and 12 deletions
@@ -1,6 +1,6 @@
{
"db_name": "MySQL",
"query": "\nSELECT\n p.token as `token: tokens::tokens::prompts::PromptToken`,\n\n p.prompt_type as `prompt_type: enums::by_table::prompts::prompt_type::PromptType`,\n\n p.maybe_model_type as `maybe_model_type: enums::common::generation::common_model_type::CommonModelType`,\n p.maybe_generation_provider as `maybe_generation_provider: enums::common::generation_provider::GenerationProvider`,\n\n p.maybe_creator_user_token as `maybe_creator_user_token: tokens::tokens::users::UserToken`,\n\n p.maybe_positive_prompt,\n p.maybe_negative_prompt,\n\n p.maybe_generation_mode as `maybe_generation_mode: enums::common::generation::common_generation_mode::CommonGenerationMode`,\n p.maybe_aspect_ratio as `maybe_aspect_ratio: enums::common::generation::common_aspect_ratio::CommonAspectRatio`,\n p.maybe_resolution as `maybe_resolution: enums::common::generation::common_resolution::CommonResolution`,\n p.maybe_batch_count as `maybe_batch_count: u8`,\n p.maybe_generate_audio as `maybe_generate_audio: bool`,\n\n p.maybe_other_args,\n\n p.creator_ip_address,\n p.created_at\n\nFROM prompts as p\nWHERE\n p.token = ?\n ",
"query": "\nSELECT\n p.token as `token: tokens::tokens::prompts::PromptToken`,\n\n p.prompt_type as `prompt_type: enums::by_table::prompts::prompt_type::PromptType`,\n\n p.maybe_model_type as `maybe_model_type: enums::common::generation::common_model_type::CommonModelType`,\n p.maybe_generation_provider as `maybe_generation_provider: enums::common::generation_provider::GenerationProvider`,\n\n p.maybe_creator_user_token as `maybe_creator_user_token: tokens::tokens::users::UserToken`,\n\n p.maybe_positive_prompt,\n p.maybe_negative_prompt,\n\n p.maybe_generation_mode as `maybe_generation_mode: enums::common::generation::common_generation_mode::CommonGenerationMode`,\n p.maybe_aspect_ratio as `maybe_aspect_ratio: enums::common::generation::common_aspect_ratio::CommonAspectRatio`,\n p.maybe_resolution as `maybe_resolution: enums::common::generation::common_resolution::CommonResolution`,\n p.maybe_batch_count as `maybe_batch_count: u8`,\n p.maybe_generate_audio as `maybe_generate_audio: bool`,\n p.maybe_duration_seconds as `maybe_duration_seconds: u32`,\n\n p.maybe_other_args,\n\n p.creator_ip_address,\n p.created_at\n\nFROM prompts as p\nWHERE\n p.token = ?\n ",
"describe": {
"columns": [
{
@@ -125,6 +125,16 @@
},
{
"ordinal": 12,
"name": "maybe_duration_seconds: u32",
"type_info": {
"type": "Long",
"flags": "UNSIGNED",
"char_set": 63,
"max_size": 10
}
},
{
"ordinal": 13,
"name": "maybe_other_args",
"type_info": {
"type": "Blob",
@@ -134,7 +144,7 @@
}
},
{
"ordinal": 13,
"ordinal": 14,
"name": "creator_ip_address",
"type_info": {
"type": "VarString",
@@ -144,7 +154,7 @@
}
},
{
"ordinal": 14,
"ordinal": 15,
"name": "created_at",
"type_info": {
"type": "Timestamp",
@@ -171,9 +181,10 @@
true,
true,
true,
true,
false,
false
]
},
"hash": "e674d80b86990bf3266eb81dd9445adf7a85646596c76ac975921c42a23005ea"
"hash": "4a50b7bf06061f05e769a41e547cb927bd2b3a6f67c8ceb37883b744237ba34c"
}
@@ -1,12 +1,12 @@
{
"db_name": "MySQL",
"query": "\nINSERT INTO prompts\nSET\n token = ?,\n prompt_type = ?,\n\n maybe_creator_user_token = ?,\n \n maybe_model_type = ?,\n maybe_generation_provider = ?,\n\n maybe_positive_prompt = ?,\n maybe_negative_prompt = ?,\n\n maybe_generation_mode = ?,\n maybe_aspect_ratio = ?,\n maybe_resolution = ?,\n maybe_batch_count = ?,\n maybe_generate_audio = ?,\n \n maybe_other_args = ?,\n\n creator_ip_address = ?\n ",
"query": "\nINSERT INTO prompts\nSET\n token = ?,\n prompt_type = ?,\n\n maybe_creator_user_token = ?,\n \n maybe_model_type = ?,\n maybe_generation_provider = ?,\n\n maybe_positive_prompt = ?,\n maybe_negative_prompt = ?,\n\n maybe_generation_mode = ?,\n maybe_aspect_ratio = ?,\n maybe_resolution = ?,\n maybe_batch_count = ?,\n maybe_generate_audio = ?,\n maybe_duration_seconds = ?,\n\n maybe_other_args = ?,\n\n creator_ip_address = ?\n ",
"describe": {
"columns": [],
"parameters": {
"Right": 14
"Right": 15
},
"nullable": []
},
"hash": "aa2f2e0b259e5512b16aa7c4db1d6e76b5313ed90ffeeed5d70ccaf2953b513f"
"hash": "ccf92ebe0328d3019ac6b01be4b442df706a183362fa7e5c331f5a4bf1a74a00"
}
@@ -40,6 +40,9 @@ pub struct CreatePromptRequest {
/// OPTIONAL. Whether to generate audio.
pub maybe_generate_audio: Option<bool>,
/// OPTIONAL. The duration in seconds.
pub maybe_duration_seconds: Option<u32>,
}
#[derive(Serialize, Deserialize, ToSchema)]
@@ -72,6 +72,9 @@ pub struct PromptInfo {
/// OPTIONAL. Whether to generate audio.
pub maybe_generate_audio: Option<bool>,
/// OPTIONAL. The duration in seconds.
pub maybe_duration_seconds: Option<u32>,
/// Context images (optional)
pub maybe_context_images: Option<Vec<GetPromptImageContextItem>>,
@@ -189,7 +189,7 @@ async fn upload_images_to_storyteller(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
};
maybe_duration_seconds: None, };
let prompt_response = create_prompt(
&app_env_configs.storyteller_host,
@@ -227,7 +227,7 @@ async fn upload_grok_video(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
};
maybe_duration_seconds: None, };
let prompt_response = create_prompt(
&app_env_configs.storyteller_host,
@@ -256,7 +256,7 @@ async fn upload_midjourney_batch(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
};
maybe_duration_seconds: None, };
let prompt_response = create_prompt(
&app_env_configs.storyteller_host,
@@ -94,7 +94,7 @@ pub async fn handle_classic_successful_generations(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
};
maybe_duration_seconds: None, };
let prompt_response = create_prompt(
&app_env_configs.storyteller_host,
@@ -40,6 +40,7 @@ pub struct Prompt {
pub maybe_resolution: Option<CommonResolution>,
pub maybe_batch_count: Option<u8>,
pub maybe_generate_audio: Option<bool>,
pub maybe_duration_seconds: Option<u32>,
/// For moderators only
pub creator_ip_address: Option<String>,
@@ -68,6 +69,7 @@ pub struct PromptRaw {
pub maybe_resolution: Option<CommonResolution>,
pub maybe_batch_count: Option<u8>,
pub maybe_generate_audio: Option<bool>,
pub maybe_duration_seconds: Option<u32>,
/// For moderators only
pub creator_ip_address: Option<String>,
@@ -114,6 +116,7 @@ pub async fn get_prompt_from_connection(
maybe_resolution: record.maybe_resolution,
maybe_batch_count: record.maybe_batch_count,
maybe_generate_audio: record.maybe_generate_audio,
maybe_duration_seconds: record.maybe_duration_seconds,
maybe_other_args: record.maybe_other_args
.as_deref()
.map(|args| PromptInnerPayload::from_json(args))
@@ -148,6 +151,7 @@ SELECT
p.maybe_resolution as `maybe_resolution: enums::common::generation::common_resolution::CommonResolution`,
p.maybe_batch_count as `maybe_batch_count: u8`,
p.maybe_generate_audio as `maybe_generate_audio: bool`,
p.maybe_duration_seconds as `maybe_duration_seconds: u32`,
p.maybe_other_args,
@@ -38,6 +38,7 @@ pub struct InsertPromptArgs<'e, 'c, E>
pub maybe_resolution: Option<CommonResolution>,
pub maybe_batch_count: Option<u8>,
pub maybe_generate_audio: Option<bool>,
pub maybe_duration_seconds: Option<u32>,
pub maybe_other_args: Option<&'e PromptInnerPayload>,
@@ -90,7 +91,8 @@ SET
maybe_resolution = ?,
maybe_batch_count = ?,
maybe_generate_audio = ?,
maybe_duration_seconds = ?,
maybe_other_args = ?,
creator_ip_address = ?
@@ -107,6 +109,7 @@ SET
args.maybe_resolution.map(|r| r.to_str()),
args.maybe_batch_count,
args.maybe_generate_audio,
args.maybe_duration_seconds,
maybe_other_args,
args.creator_ip_address,
);
@@ -337,6 +337,7 @@ pub async fn process_job_inference(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &job.creator_ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -300,6 +300,7 @@ pub async fn validate_and_save_results(args: SaveResultsArgs<'_>) -> Result<Medi
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &args.job.creator_ip_address,
mysql_executor: &args.deps.db.mysql_pool,
phantom: Default::default(),
@@ -192,6 +192,7 @@ pub async fn flux_2_lora_edit_image_angle_handler(
Flux2LoraEditImageAngleNumImages::Four => 4,
}),
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -193,6 +193,7 @@ pub async fn qwen_edit_2511_edit_image_angle_handler(
QwenEdit2511EditImageAngleNumImages::Four => 4,
}),
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -232,6 +232,7 @@ pub async fn flux_pro_kontext_max_edit_image_handler(
maybe_resolution: None,
maybe_batch_count,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -249,6 +249,7 @@ pub async fn gemini_25_flash_edit_image_handler(
maybe_resolution: None,
maybe_batch_count,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -279,6 +279,7 @@ pub async fn gpt_image_1_edit_image_handler(
maybe_resolution: None,
maybe_batch_count,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -223,6 +223,7 @@ pub async fn qwen_edit_image_handler(
maybe_resolution: None,
maybe_batch_count,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -185,6 +185,7 @@ pub async fn seededit_3_edit_image_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -228,6 +228,7 @@ pub async fn flux_dev_juggernaut_inpaint_image_handler(
FluxDevJuggernautInpaintImageNumImages::Four => 4,
}),
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -228,6 +228,7 @@ pub async fn flux_pro_1_inpaint_image_handler(
FluxPro1InpaintImageNumImages::Four => 4,
}),
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -265,6 +265,7 @@ pub async fn bytedance_seedream_5_lite_multi_function_image_gen_handler(
maybe_resolution,
maybe_batch_count,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -285,6 +285,7 @@ pub async fn bytedance_seedream_v4_multi_function_image_gen_handler(
maybe_resolution: None,
maybe_batch_count,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -282,6 +282,7 @@ pub async fn bytedance_seedream_v4p5_multi_function_image_gen_handler(
maybe_resolution: None,
maybe_batch_count,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -367,6 +367,7 @@ pub async fn gpt_image_1p5_multi_function_image_gen_handler(
maybe_resolution: None,
maybe_batch_count,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -295,6 +295,7 @@ pub async fn nano_banana_2_multi_function_image_gen_handler(
maybe_resolution,
maybe_batch_count,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -318,6 +318,7 @@ pub async fn nano_banana_multi_function_image_gen_handler(
maybe_resolution: None,
maybe_batch_count,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -341,6 +341,7 @@ pub async fn nano_banana_pro_multi_function_image_gen_handler(
maybe_resolution,
maybe_batch_count,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -223,6 +223,7 @@ pub async fn generate_flux_1_dev_text_to_image_handler(
maybe_resolution: None,
maybe_batch_count,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -308,6 +309,7 @@ async fn insert_mock_failure_job(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -203,6 +203,7 @@ pub async fn generate_flux_1_schnell_text_to_image_handler(
maybe_resolution: None,
maybe_batch_count,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -186,6 +186,7 @@ pub async fn generate_flux_pro_11_text_to_image_handler(
maybe_resolution: None,
maybe_batch_count,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -194,6 +194,7 @@ pub async fn generate_flux_pro_11_ultra_text_to_image_handler(
maybe_resolution: None,
maybe_batch_count,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -230,6 +230,7 @@ pub async fn generate_gpt_image_1_text_to_image_handler(
maybe_resolution: None,
maybe_batch_count,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -173,6 +173,7 @@ pub async fn generate_hunyuan_2_0_image_to_3d_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -172,6 +172,7 @@ pub async fn generate_hunyuan_2_1_image_to_3d_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -312,6 +312,7 @@ pub async fn generate_hunyuan3d_v3_multi_function_object_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -185,6 +185,7 @@ pub async fn generate_worldlabs_marble_0p1_mini_splat_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -185,6 +185,7 @@ pub async fn generate_worldlabs_marble_0p1_plus_splat_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
maybe_duration_seconds: None,
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -232,6 +232,10 @@ pub async fn generate_kling_1_6_pro_video_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
maybe_duration_seconds: request.duration.as_ref().map(|d| match d {
GenerateKling16ProDuration::FiveSeconds => 5,
GenerateKling16ProDuration::TenSeconds => 10,
}),
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -219,6 +219,10 @@ pub async fn generate_kling_2_1_master_video_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
maybe_duration_seconds: request.duration.as_ref().map(|d| match d {
GenerateKling21MasterDuration::FiveSeconds => 5,
GenerateKling21MasterDuration::TenSeconds => 10,
}),
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -234,6 +234,10 @@ pub async fn generate_kling_2_1_pro_video_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
maybe_duration_seconds: request.duration.as_ref().map(|d| match d {
GenerateKling21ProDuration::FiveSeconds => 5,
GenerateKling21ProDuration::TenSeconds => 10,
}),
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -253,6 +253,10 @@ pub async fn generate_seedance_1_0_lite_image_to_video_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
maybe_duration_seconds: request.duration.as_ref().map(|d| match d {
GenerateSeedance10LiteDuration::FiveSeconds => 5,
GenerateSeedance10LiteDuration::TenSeconds => 10,
}),
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -221,6 +221,18 @@ pub async fn generate_seedance_1_0_pro_image_to_video_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
maybe_duration_seconds: request.duration.as_ref().map(|d| match d {
GenerateSeedance10ProDuration::ThreeSeconds => 3,
GenerateSeedance10ProDuration::FourSeconds => 4,
GenerateSeedance10ProDuration::FiveSeconds => 5,
GenerateSeedance10ProDuration::SixSeconds => 6,
GenerateSeedance10ProDuration::SevenSeconds => 7,
GenerateSeedance10ProDuration::EightSeconds => 8,
GenerateSeedance10ProDuration::NineSeconds => 9,
GenerateSeedance10ProDuration::TenSeconds => 10,
GenerateSeedance10ProDuration::ElevenSeconds => 11,
GenerateSeedance10ProDuration::TwelveSeconds => 12,
}),
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -231,6 +231,12 @@ pub async fn generate_veo_2_image_to_video_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
maybe_duration_seconds: request.duration.as_ref().map(|d| match d {
GenerateVeo2Duration::FiveSeconds => 5,
GenerateVeo2Duration::SixSeconds => 6,
GenerateVeo2Duration::SevenSeconds => 7,
GenerateVeo2Duration::EightSeconds => 8,
}),
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -218,6 +218,9 @@ pub async fn generate_veo_3_fast_image_to_video_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: Some(generate_audio),
maybe_duration_seconds: request.duration.as_ref().map(|d| match d {
GenerateVeo3FastDuration::EightSeconds => 8,
}),
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -231,6 +231,9 @@ pub async fn generate_veo_3_image_to_video_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: Some(generate_audio),
maybe_duration_seconds: request.duration.as_ref().map(|d| match d {
GenerateVeo3Duration::EightSeconds => 8,
}),
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -277,6 +277,10 @@ pub async fn kling_2p5_turbo_pro_multi_function_video_gen_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
maybe_duration_seconds: request.duration.as_ref().map(|d| match d {
Kling2p5TurboProMultiFunctionVideoGenDuration::FiveSeconds => 5,
Kling2p5TurboProMultiFunctionVideoGenDuration::TenSeconds => 10,
}),
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -274,6 +274,10 @@ pub async fn kling_2p6_pro_multi_function_video_gen_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: request.generate_audio,
maybe_duration_seconds: request.duration.as_ref().map(|d| match d {
Kling2p6ProMultiFunctionVideoGenDuration::FiveSeconds => 5,
Kling2p6ProMultiFunctionVideoGenDuration::TenSeconds => 10,
}),
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -268,6 +268,21 @@ pub async fn kling_3p0_pro_multi_function_video_gen_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: Some(generate_audio),
maybe_duration_seconds: request.duration.as_ref().map(|d| match d {
Kling3p0ProMultiFunctionVideoGenDuration::ThreeSeconds => 3,
Kling3p0ProMultiFunctionVideoGenDuration::FourSeconds => 4,
Kling3p0ProMultiFunctionVideoGenDuration::FiveSeconds => 5,
Kling3p0ProMultiFunctionVideoGenDuration::SixSeconds => 6,
Kling3p0ProMultiFunctionVideoGenDuration::SevenSeconds => 7,
Kling3p0ProMultiFunctionVideoGenDuration::EightSeconds => 8,
Kling3p0ProMultiFunctionVideoGenDuration::NineSeconds => 9,
Kling3p0ProMultiFunctionVideoGenDuration::TenSeconds => 10,
Kling3p0ProMultiFunctionVideoGenDuration::ElevenSeconds => 11,
Kling3p0ProMultiFunctionVideoGenDuration::TwelveSeconds => 12,
Kling3p0ProMultiFunctionVideoGenDuration::ThirteenSeconds => 13,
Kling3p0ProMultiFunctionVideoGenDuration::FourteenSeconds => 14,
Kling3p0ProMultiFunctionVideoGenDuration::FifteenSeconds => 15,
}),
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -268,6 +268,21 @@ pub async fn kling_3p0_standard_multi_function_video_gen_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: Some(generate_audio),
maybe_duration_seconds: request.duration.as_ref().map(|d| match d {
Kling3p0StandardMultiFunctionVideoGenDuration::ThreeSeconds => 3,
Kling3p0StandardMultiFunctionVideoGenDuration::FourSeconds => 4,
Kling3p0StandardMultiFunctionVideoGenDuration::FiveSeconds => 5,
Kling3p0StandardMultiFunctionVideoGenDuration::SixSeconds => 6,
Kling3p0StandardMultiFunctionVideoGenDuration::SevenSeconds => 7,
Kling3p0StandardMultiFunctionVideoGenDuration::EightSeconds => 8,
Kling3p0StandardMultiFunctionVideoGenDuration::NineSeconds => 9,
Kling3p0StandardMultiFunctionVideoGenDuration::TenSeconds => 10,
Kling3p0StandardMultiFunctionVideoGenDuration::ElevenSeconds => 11,
Kling3p0StandardMultiFunctionVideoGenDuration::TwelveSeconds => 12,
Kling3p0StandardMultiFunctionVideoGenDuration::ThirteenSeconds => 13,
Kling3p0StandardMultiFunctionVideoGenDuration::FourteenSeconds => 14,
Kling3p0StandardMultiFunctionVideoGenDuration::FifteenSeconds => 15,
}),
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -259,6 +259,17 @@ pub async fn seedance_1p5_pro_multi_function_video_gen_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: Some(generate_audio),
maybe_duration_seconds: request.duration.as_ref().map(|d| match d {
Seedance1p5ProMultiFunctionVideoGenDuration::FourSeconds => 4,
Seedance1p5ProMultiFunctionVideoGenDuration::FiveSeconds => 5,
Seedance1p5ProMultiFunctionVideoGenDuration::SixSeconds => 6,
Seedance1p5ProMultiFunctionVideoGenDuration::SevenSeconds => 7,
Seedance1p5ProMultiFunctionVideoGenDuration::EightSeconds => 8,
Seedance1p5ProMultiFunctionVideoGenDuration::NineSeconds => 9,
Seedance1p5ProMultiFunctionVideoGenDuration::TenSeconds => 10,
Seedance1p5ProMultiFunctionVideoGenDuration::ElevenSeconds => 11,
Seedance1p5ProMultiFunctionVideoGenDuration::TwelveSeconds => 12,
}),
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -305,6 +305,7 @@ pub async fn seedance_2p0_multi_function_video_gen_handler(
Seedance2p0BatchCount::Four => 4,
}),
maybe_generate_audio: None,
maybe_duration_seconds: request.duration_seconds.map(|d| d as u32),
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -294,6 +294,11 @@ pub async fn sora_2_multi_function_video_gen_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
maybe_duration_seconds: request.duration.as_ref().map(|d| match d {
Sora2MultiFunctionVideoGenDuration::FourSeconds => 4,
Sora2MultiFunctionVideoGenDuration::EightSeconds => 8,
Sora2MultiFunctionVideoGenDuration::TwelveSeconds => 12,
}),
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -296,6 +296,11 @@ pub async fn sora_2_pro_multi_function_video_gen_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: None,
maybe_duration_seconds: request.duration.as_ref().map(|d| match d {
Sora2ProMultiFunctionVideoGenDuration::FourSeconds => 4,
Sora2ProMultiFunctionVideoGenDuration::EightSeconds => 8,
Sora2ProMultiFunctionVideoGenDuration::TwelveSeconds => 12,
}),
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -360,6 +360,11 @@ pub async fn veo_3p1_fast_multi_function_video_gen_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: Some(generate_audio),
maybe_duration_seconds: request.duration.as_ref().map(|d| match d {
Veo3p1FastMultiFunctionVideoGenDuration::FourSeconds => 4,
Veo3p1FastMultiFunctionVideoGenDuration::SixSeconds => 6,
Veo3p1FastMultiFunctionVideoGenDuration::EightSeconds => 8,
}),
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -360,6 +360,11 @@ pub async fn veo_3p1_multi_function_video_gen_handler(
maybe_resolution: None,
maybe_batch_count: None,
maybe_generate_audio: Some(generate_audio),
maybe_duration_seconds: request.duration.as_ref().map(|d| match d {
Veo3p1MultiFunctionVideoGenDuration::FourSeconds => 4,
Veo3p1MultiFunctionVideoGenDuration::SixSeconds => 6,
Veo3p1MultiFunctionVideoGenDuration::EightSeconds => 8,
}),
creator_ip_address: &ip_address,
mysql_executor: &mut *transaction,
phantom: Default::default(),
@@ -85,6 +85,7 @@ pub async fn create_prompt_handler(
maybe_resolution: request.maybe_resolution,
maybe_batch_count: request.maybe_batch_count,
maybe_generate_audio: request.maybe_generate_audio,
maybe_duration_seconds: request.maybe_duration_seconds,
creator_ip_address: &ip_address,
mysql_executor: &mut *mysql_connection,
phantom: Default::default(),
@@ -223,6 +223,7 @@ pub async fn get_prompt_handler(
maybe_resolution: result.maybe_resolution,
maybe_batch_count: result.maybe_batch_count,
maybe_generate_audio: result.maybe_generate_audio,
maybe_duration_seconds: result.maybe_duration_seconds,
maybe_context_images,
maybe_travel_prompt,
maybe_style_name,