diff --git a/crates/api_clients/artcraft/artcraft_api_defs/src/generate/cost_estimate/estimate_video_cost.rs b/crates/api_clients/artcraft/artcraft_api_defs/src/generate/cost_estimate/estimate_video_cost.rs index b2cae3c138..32cf88424e 100644 --- a/crates/api_clients/artcraft/artcraft_api_defs/src/generate/cost_estimate/estimate_video_cost.rs +++ b/crates/api_clients/artcraft/artcraft_api_defs/src/generate/cost_estimate/estimate_video_cost.rs @@ -12,7 +12,7 @@ pub const ESTIMATE_VIDEO_COST_PATH: &str = "/v1/generate/cost_estimate/video"; /// /// Every model cares about its own set of parameters and not all /// parameters may be relevant for every model. -#[derive(Serialize, Deserialize, ToSchema)] +#[derive(Serialize, Deserialize, ToSchema, Debug)] pub struct EstimateVideoCostRequest { /// The video model to estimate costs for. pub model: CommonVideoModel, @@ -43,7 +43,7 @@ pub struct EstimateVideoCostRequest { } /// Describes the type of video generation being requested. -#[derive(Serialize, Deserialize, ToSchema)] +#[derive(Serialize, Deserialize, ToSchema, Debug)] #[serde(tag = "type", rename_all = "snake_case")] pub enum GenerationMode { TextToVideo, diff --git a/crates/api_clients/artcraft/artcraft_api_defs/src/generate/video/multi_function/seedance_1p5_pro_multi_function_video_gen.rs b/crates/api_clients/artcraft/artcraft_api_defs/src/generate/video/multi_function/seedance_1p5_pro_multi_function_video_gen.rs index 9fc9822041..75272c89a6 100644 --- a/crates/api_clients/artcraft/artcraft_api_defs/src/generate/video/multi_function/seedance_1p5_pro_multi_function_video_gen.rs +++ b/crates/api_clients/artcraft/artcraft_api_defs/src/generate/video/multi_function/seedance_1p5_pro_multi_function_video_gen.rs @@ -6,7 +6,7 @@ use utoipa::ToSchema; pub const SEEDANCE_1P5_PRO_MULTI_FUNCTION_VIDEO_GEN_PATH: &str = "/v1/generate/video/multi_function/seedance_1p5_pro"; /// Both text-to-video and image-to-video in one request. -#[derive(Serialize, Deserialize, ToSchema)] +#[derive(Serialize, Deserialize, ToSchema, Debug)] pub struct Seedance1p5ProMultiFunctionVideoGenRequest { /// Idempotency token to prevent duplicate requests. pub uuid_idempotency_token: String, diff --git a/crates/desktop/artcraft/src/core/commands/cost_estimate/estimate_video_cost_command.rs b/crates/desktop/artcraft/src/core/commands/cost_estimate/estimate_video_cost_command.rs index 5155a406a5..95eac732c6 100644 --- a/crates/desktop/artcraft/src/core/commands/cost_estimate/estimate_video_cost_command.rs +++ b/crates/desktop/artcraft/src/core/commands/cost_estimate/estimate_video_cost_command.rs @@ -7,8 +7,8 @@ use artcraft_api_defs::generate::cost_estimate::estimate_video_cost::{ EstimateVideoCostError, EstimateVideoCostErrorType, EstimateVideoCostRequest, EstimateVideoCostResponse, }; -use log::info; use artcraft_client::endpoints::generate::cost_estimate::video::estimate_video_cost::estimate_video_cost; +use log::debug; use tauri::State; impl SerializeMarker for EstimateVideoCostResponse {} @@ -18,7 +18,6 @@ pub async fn estimate_video_cost_command( request: EstimateVideoCostRequest, app_env_configs: State<'_, AppEnvConfigs>, ) -> ResponseOrError { - info!("estimate_video_cost_command called"); let result = estimate_video_cost( &app_env_configs.storyteller_host, diff --git a/crates/desktop/artcraft/src/core/commands/enqueue/image_to_video/artcraft/handle_artcraft_seedance_1p5_pro.rs b/crates/desktop/artcraft/src/core/commands/enqueue/image_to_video/artcraft/handle_artcraft_seedance_1p5_pro.rs deleted file mode 100644 index 633a0aaee5..0000000000 --- a/crates/desktop/artcraft/src/core/commands/enqueue/image_to_video/artcraft/handle_artcraft_seedance_1p5_pro.rs +++ /dev/null @@ -1,73 +0,0 @@ -use crate::core::commands::enqueue::generate_error::GenerateError; -use crate::core::commands::enqueue::image_to_video::enqueue_image_to_video_command::EnqueueImageToVideoRequest; -use crate::core::commands::enqueue::task_enqueue_success::TaskEnqueueSuccess; -use crate::core::events::generation_events::common::GenerationModel; -use crate::core::state::app_env_configs::app_env_configs::AppEnvConfigs; -use artcraft_router::api::common_video_model::CommonVideoModel; -use artcraft_router::api::image_ref::ImageRef; -use artcraft_router::api::provider::Provider; -use artcraft_router::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy; -use artcraft_router::client::router_artcraft_client::RouterArtcraftClient; -use artcraft_router::client::router_client::RouterClient; -use artcraft_router::generate::generate_video::generate_video_request::GenerateVideoRequest; -use enums::common::generation_provider::GenerationProvider; -use enums::tauri::tasks::task_type::TaskType; -use log::{error, info}; -use artcraft_client::credentials::storyteller_credential_set::StorytellerCredentialSet; - -pub(super) async fn handle_artcraft_seedance_1p5_pro( - request: &EnqueueImageToVideoRequest, - app_env_configs: &AppEnvConfigs, - creds: &StorytellerCredentialSet, -) -> Result { - let client = RouterClient::Artcraft(RouterArtcraftClient::new( - app_env_configs.storyteller_host.clone(), - creds.clone(), - )); - - let start_frame = request.image_media_token.as_ref().map(ImageRef::MediaFileToken); - let end_frame = request.end_frame_image_media_token.as_ref().map(ImageRef::MediaFileToken); - - let router_request = GenerateVideoRequest { - model: CommonVideoModel::Seedance1p5Pro, - provider: Provider::Artcraft, - prompt: request.prompt.as_deref(), - negative_prompt: None, - start_frame, - end_frame, - reference_images: None, - resolution: None, - aspect_ratio: request.aspect_ratio, - duration_seconds: request.duration_seconds, - video_batch_count: request.video_batch_count, - generate_audio: None, - request_mismatch_mitigation_strategy: RequestMismatchMitigationStrategy::PayMoreUpgrade, - idempotency_token: None, - }; - - let plan = router_request.build()?; - - info!("Video Generation Plan: {:?}", plan); - - let response = match plan.generate_video(&client).await { - Ok(resp) => { - info!("Successfully enqueued."); - resp - } - Err(err) => { - error!("Failed to enqueue: {:?}", err); - return Err(GenerateError::from(err)); - } - }; - - let job_id = response.get_artcraft_payload() - .map(|p| p.inference_job_token.to_string()) - .ok_or(GenerateError::ResponseHadNoJobTokens)?; - - Ok(TaskEnqueueSuccess { - task_type: TaskType::VideoGeneration, - model: Some(GenerationModel::Seedance1p5Pro), - provider: GenerationProvider::Artcraft, - provider_job_id: Some(job_id), - }) -} diff --git a/crates/desktop/artcraft/src/core/commands/enqueue/image_to_video/artcraft/handle_artcraft_video.rs b/crates/desktop/artcraft/src/core/commands/enqueue/image_to_video/artcraft/handle_artcraft_video.rs index 9200e9f961..8e9496b89a 100644 --- a/crates/desktop/artcraft/src/core/commands/enqueue/image_to_video/artcraft/handle_artcraft_video.rs +++ b/crates/desktop/artcraft/src/core/commands/enqueue/image_to_video/artcraft/handle_artcraft_video.rs @@ -9,7 +9,6 @@ use crate::core::commands::enqueue::image_to_video::artcraft::handle_artcraft_vi use crate::core::commands::enqueue::image_to_video::artcraft::handle_artcraft_seedance_1_lite::handle_artcraft_seedance_1_lite; use crate::core::events::generation_events::common::GenerationModel; use artcraft_router::api::common_video_model::CommonVideoModel; -use crate::core::commands::enqueue::image_to_video::artcraft::handle_artcraft_seedance_1p5_pro::handle_artcraft_seedance_1p5_pro; use crate::core::commands::enqueue::image_to_video::artcraft::handle_artcraft_seedance_2p0::handle_artcraft_seedance_2p0; use crate::core::commands::enqueue::image_to_video::artcraft::handle_artcraft_sora2::handle_artcraft_sora2; use crate::core::commands::enqueue::image_to_video::artcraft::handle_artcraft_sora2_pro::handle_artcraft_sora2_pro; @@ -46,7 +45,7 @@ pub async fn handle_video_artcraft( Some(VideoModel::Kling3p0Standard) => handle_artcraft_video_via_router(request, app_env_configs, &creds, CommonVideoModel::Kling3p0Standard, GenerationModel::Kling3p0Standard).await, Some(VideoModel::Kling3p0Pro) => handle_artcraft_video_via_router(request, app_env_configs, &creds, CommonVideoModel::Kling3p0Pro, GenerationModel::Kling3p0Pro).await, Some(VideoModel::Seedance10Lite) => handle_artcraft_seedance_1_lite(request, app_env_configs, &creds).await, - Some(VideoModel::Seedance1p5Pro) => handle_artcraft_seedance_1p5_pro(request, app_env_configs, &creds).await, + Some(VideoModel::Seedance1p5Pro) => handle_artcraft_video_via_router(request, app_env_configs, &creds, CommonVideoModel::Seedance1p5Pro, GenerationModel::Seedance1p5Pro).await, Some(VideoModel::Seedance2p0) => handle_artcraft_seedance_2p0(request, app_env_configs, &creds).await, Some(VideoModel::Sora2) => handle_artcraft_sora2(request, app_env_configs, &creds).await, Some(VideoModel::Sora2Pro) => handle_artcraft_sora2_pro(request, app_env_configs, &creds).await, diff --git a/crates/desktop/artcraft/src/core/commands/enqueue/image_to_video/artcraft/handle_artcraft_video_via_router.rs b/crates/desktop/artcraft/src/core/commands/enqueue/image_to_video/artcraft/handle_artcraft_video_via_router.rs index 988598e172..8ebf109c74 100644 --- a/crates/desktop/artcraft/src/core/commands/enqueue/image_to_video/artcraft/handle_artcraft_video_via_router.rs +++ b/crates/desktop/artcraft/src/core/commands/enqueue/image_to_video/artcraft/handle_artcraft_video_via_router.rs @@ -42,7 +42,7 @@ pub(super) async fn handle_artcraft_video_via_router( aspect_ratio: request.aspect_ratio, duration_seconds: request.duration_seconds, video_batch_count: request.video_batch_count, - generate_audio: None, + generate_audio: request.generate_audio, request_mismatch_mitigation_strategy: RequestMismatchMitigationStrategy::PayMoreUpgrade, idempotency_token: None, }; diff --git a/crates/desktop/artcraft/src/core/commands/enqueue/image_to_video/artcraft/mod.rs b/crates/desktop/artcraft/src/core/commands/enqueue/image_to_video/artcraft/mod.rs index b35410abf7..8e87cf4f2e 100644 --- a/crates/desktop/artcraft/src/core/commands/enqueue/image_to_video/artcraft/mod.rs +++ b/crates/desktop/artcraft/src/core/commands/enqueue/image_to_video/artcraft/mod.rs @@ -6,7 +6,6 @@ mod handle_artcraft_kling_2p5_turbo_pro; mod handle_artcraft_kling_2p6_pro; mod handle_artcraft_video_via_router; mod handle_artcraft_seedance_1_lite; -mod handle_artcraft_seedance_1p5_pro; mod handle_artcraft_seedance_2p0; mod handle_artcraft_sora2; mod handle_artcraft_sora2_pro; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/seedance_1p5_pro_multi_function_video_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/seedance_1p5_pro_multi_function_video_gen_handler.rs index 16fa749084..2b34dad811 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/seedance_1p5_pro_multi_function_video_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/seedance_1p5_pro_multi_function_video_gen_handler.rs @@ -120,6 +120,8 @@ pub async fn seedance_1p5_pro_multi_function_video_gen_handler( server_state: web::Data> ) -> Result, CommonWebError> { + info!("Request: {:?}", request); + payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; let mut mysql_connection = server_state.mysql_pool