diff --git a/.sqlx/query-9b4c6f0d0db1c92e4d3eed8d572fa92c885bad4adcc053ae490b3a76c6c116d4.json b/.sqlx/query-9b4c6f0d0db1c92e4d3eed8d572fa92c885bad4adcc053ae490b3a76c6c116d4.json deleted file mode 100644 index 3a7c2bc5b8..0000000000 --- a/.sqlx/query-9b4c6f0d0db1c92e4d3eed8d572fa92c885bad4adcc053ae490b3a76c6c116d4.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "MySQL", - "query": "\nINSERT INTO generic_inference_jobs\nSET\n token = ?,\n uuid_idempotency_token = ?,\n\n job_type = ?,\n\n inference_category = ?,\n maybe_model_type = ?,\n maybe_model_token = ?,\n\n maybe_input_source_token = ?,\n maybe_input_source_token_type = ?,\n\n maybe_download_url = ?,\n maybe_cover_image_media_file_token = ?,\n\n maybe_raw_inference_text = ?,\n\n maybe_inference_args = ?,\n\n maybe_creator_user_token = ?,\n maybe_creator_anonymous_visitor_token = ?,\n creator_ip_address = ?,\n\n creator_set_visibility = ?,\n\n priority_level = ?,\n is_keepalive_required = ?,\n max_duration_seconds = ?,\n\n is_debug_request = ?,\n maybe_routing_tag = ?,\n\n status = \"pending\"\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 21 - }, - "nullable": [] - }, - "hash": "9b4c6f0d0db1c92e4d3eed8d572fa92c885bad4adcc053ae490b3a76c6c116d4" -} diff --git a/.sqlx/query-b48e80845d80a6c07099918807d0495b8d70dca339cb1332e05bb3943fbb24c4.json b/.sqlx/query-b48e80845d80a6c07099918807d0495b8d70dca339cb1332e05bb3943fbb24c4.json new file mode 100644 index 0000000000..1e08c57bee --- /dev/null +++ b/.sqlx/query-b48e80845d80a6c07099918807d0495b8d70dca339cb1332e05bb3943fbb24c4.json @@ -0,0 +1,12 @@ +{ + "db_name": "MySQL", + "query": "\nINSERT INTO generic_inference_jobs\nSET\n token = ?,\n uuid_idempotency_token = ?,\n\n job_type = ?,\n\n product_category = ?,\n\n inference_category = ?,\n maybe_model_type = ?,\n maybe_model_token = ?,\n\n maybe_input_source_token = ?,\n maybe_input_source_token_type = ?,\n\n maybe_download_url = ?,\n maybe_cover_image_media_file_token = ?,\n\n maybe_raw_inference_text = ?,\n\n maybe_inference_args = ?,\n\n maybe_creator_user_token = ?,\n maybe_creator_anonymous_visitor_token = ?,\n creator_ip_address = ?,\n\n creator_set_visibility = ?,\n\n priority_level = ?,\n is_keepalive_required = ?,\n max_duration_seconds = ?,\n\n is_debug_request = ?,\n maybe_routing_tag = ?,\n\n status = \"pending\"\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 22 + }, + "nullable": [] + }, + "hash": "b48e80845d80a6c07099918807d0495b8d70dca339cb1332e05bb3943fbb24c4" +} diff --git a/crates/_types/enums/src/by_table/generic_inference_jobs/inference_job_product_category.rs b/crates/_types/enums/src/by_table/generic_inference_jobs/inference_job_product_category.rs index f48c87f488..1b4296505f 100644 --- a/crates/_types/enums/src/by_table/generic_inference_jobs/inference_job_product_category.rs +++ b/crates/_types/enums/src/by_table/generic_inference_jobs/inference_job_product_category.rs @@ -16,6 +16,12 @@ use strum::EnumIter; #[derive(Clone, Copy, Eq, PartialEq, Hash, Ord, PartialOrd, Deserialize, Serialize)] #[serde(rename_all = "snake_case")] pub enum InferenceJobProductCategory { + /// Lipsync: Face Fusion + LipsyncFaceFusion, + + /// Lipsync: SadTalker + LipsyncSadTalker, + /// Live Portrait (normal interface) LivePortrait, @@ -52,6 +58,8 @@ impl_mysql_enum_coders!(InferenceJobProductCategory); impl InferenceJobProductCategory { pub fn to_str(&self) -> &'static str { match self { + Self::LipsyncFaceFusion => "lipsync_face_fusion", + Self::LipsyncSadTalker => "lipsync_sad_talker", Self::LivePortrait => "live_portrait", Self::LivePortraitWebcam => "live_portrait_webcam", Self::Studio => "studio", @@ -66,6 +74,8 @@ impl InferenceJobProductCategory { pub fn from_str(value: &str) -> Result { match value { + "lipsync_face_fusion" => Ok(Self::LipsyncFaceFusion), + "lipsync_sad_talker" => Ok(Self::LipsyncSadTalker), "live_portrait" => Ok(Self::LivePortrait), "live_portrait_webcam" => Ok(Self::LivePortraitWebcam), "studio" => Ok(Self::Studio), @@ -83,6 +93,8 @@ impl InferenceJobProductCategory { // NB: BTreeSet is sorted // NB: BTreeSet::from() isn't const, but not worth using LazyStatic, etc. BTreeSet::from([ + Self::LipsyncFaceFusion, + Self::LipsyncSadTalker, Self::LivePortrait, Self::LivePortraitWebcam, Self::Studio, @@ -106,6 +118,8 @@ mod tests { #[test] fn test_serialization() { + assert_serialization(InferenceJobProductCategory::LipsyncFaceFusion, "lipsync_face_fusion"); + assert_serialization(InferenceJobProductCategory::LipsyncSadTalker, "lipsync_sad_talker"); assert_serialization(InferenceJobProductCategory::LivePortrait, "live_portrait"); assert_serialization(InferenceJobProductCategory::LivePortraitWebcam, "live_portrait_webcam"); assert_serialization(InferenceJobProductCategory::Studio, "studio"); @@ -119,6 +133,8 @@ mod tests { #[test] fn to_str() { + assert_eq!(InferenceJobProductCategory::LipsyncFaceFusion.to_str(), "lipsync_face_fusion"); + assert_eq!(InferenceJobProductCategory::LipsyncSadTalker.to_str(), "lipsync_sad_talker"); assert_eq!(InferenceJobProductCategory::LivePortrait.to_str(), "live_portrait"); assert_eq!(InferenceJobProductCategory::LivePortraitWebcam.to_str(), "live_portrait_webcam"); assert_eq!(InferenceJobProductCategory::Studio.to_str(), "studio"); @@ -132,6 +148,8 @@ mod tests { #[test] fn from_str() { + assert_eq!(InferenceJobProductCategory::from_str("lipsync_face_fusion").unwrap(), InferenceJobProductCategory::LipsyncFaceFusion); + assert_eq!(InferenceJobProductCategory::from_str("lipsync_sad_talker").unwrap(), InferenceJobProductCategory::LipsyncSadTalker); assert_eq!(InferenceJobProductCategory::from_str("live_portrait").unwrap(), InferenceJobProductCategory::LivePortrait); assert_eq!(InferenceJobProductCategory::from_str("live_portrait_webcam").unwrap(), InferenceJobProductCategory::LivePortraitWebcam); assert_eq!(InferenceJobProductCategory::from_str("studio").unwrap(), InferenceJobProductCategory::Studio); @@ -147,7 +165,9 @@ mod tests { fn all_variants() { // Static check let mut variants = InferenceJobProductCategory::all_variants(); - assert_eq!(variants.len(), 9); + assert_eq!(variants.len(), 11); + assert_eq!(variants.pop_first(), Some(InferenceJobProductCategory::LipsyncFaceFusion)); + assert_eq!(variants.pop_first(), Some(InferenceJobProductCategory::LipsyncSadTalker)); assert_eq!(variants.pop_first(), Some(InferenceJobProductCategory::LivePortrait)); assert_eq!(variants.pop_first(), Some(InferenceJobProductCategory::LivePortraitWebcam)); assert_eq!(variants.pop_first(), Some(InferenceJobProductCategory::Studio)); diff --git a/crates/lib/mysql_queries/src/queries/generic_inference/web/insert_generic_inference_job.rs b/crates/lib/mysql_queries/src/queries/generic_inference/web/insert_generic_inference_job.rs index 94e24f4d8e..7a9b6c593d 100644 --- a/crates/lib/mysql_queries/src/queries/generic_inference/web/insert_generic_inference_job.rs +++ b/crates/lib/mysql_queries/src/queries/generic_inference/web/insert_generic_inference_job.rs @@ -4,6 +4,7 @@ use sqlx::MySqlPool; use enums::by_table::generic_inference_jobs::inference_category::InferenceCategory; use enums::by_table::generic_inference_jobs::inference_input_source_token_type::InferenceInputSourceTokenType; +use enums::by_table::generic_inference_jobs::inference_job_product_category::InferenceJobProductCategory; use enums::by_table::generic_inference_jobs::inference_job_type::InferenceJobType; use enums::by_table::generic_inference_jobs::inference_model_type::InferenceModelType; use enums::common::visibility::Visibility; @@ -23,6 +24,8 @@ pub struct InsertGenericInferenceArgs<'a> { // a concrete job type. pub job_type: InferenceJobType, + pub maybe_product_category: Option, + pub inference_category: InferenceCategory, pub maybe_model_type: Option, pub maybe_model_token: Option<&'a str>, @@ -89,6 +92,8 @@ SET job_type = ?, + product_category = ?, + inference_category = ?, maybe_model_type = ?, maybe_model_token = ?, @@ -123,6 +128,8 @@ SET args.job_type.to_str(), + args.maybe_product_category.map(|c| c.to_str()), + args.inference_category.to_str(), args.maybe_model_type.map(|t| t.to_str()), diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/animation/enqueue_face_animation.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/animation/enqueue_face_animation.rs index d48acac3c3..086be46847 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/animation/enqueue_face_animation.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/animation/enqueue_face_animation.rs @@ -11,6 +11,7 @@ use actix_web::http::StatusCode; use log::{info, warn}; use enums::by_table::generic_inference_jobs::inference_category::InferenceCategory; +use enums::by_table::generic_inference_jobs::inference_job_product_category::InferenceJobProductCategory; use enums::by_table::generic_inference_jobs::inference_job_type::InferenceJobType; use enums::by_table::generic_inference_jobs::inference_model_type::InferenceModelType; use enums::common::visibility::Visibility; @@ -298,6 +299,7 @@ pub async fn enqueue_face_animation_handler( let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { uuid_idempotency_token: &request.uuid_idempotency_token, job_type: InferenceJobType::SadTalker, + maybe_product_category: Some(InferenceJobProductCategory::LipsyncSadTalker), inference_category: InferenceCategory::LipsyncAnimation, maybe_model_type: Some(InferenceModelType::SadTalker), // NB: Model is static during inference maybe_model_token: None, // NB: Model is static during inference diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/animation/enqueue_rerender_animation.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/animation/enqueue_rerender_animation.rs index 8dccb34a6f..d8783c5703 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/animation/enqueue_rerender_animation.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/animation/enqueue_rerender_animation.rs @@ -201,6 +201,7 @@ pub async fn enqueue_rerender_animation_handler( let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { uuid_idempotency_token: &request.uuid_idempotency_token, job_type: InferenceJobType::RerenderAVideo, + maybe_product_category: None, // ReRender was never launched inference_category: InferenceCategory::VideoFilter, maybe_model_type: Some(InferenceModelType::RerenderAVideo), // NB: Model is static during inference maybe_model_token: None, // NB: Model is static during inference diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/conversion/enqueue_fbx_to_gltf_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/conversion/enqueue_fbx_to_gltf_handler.rs index 531b37c587..7ad3d52bdf 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/conversion/enqueue_fbx_to_gltf_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/conversion/enqueue_fbx_to_gltf_handler.rs @@ -192,6 +192,7 @@ pub async fn enqueue_fbx_to_gltf_handler( let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { uuid_idempotency_token: &request.uuid_idempotency_token, job_type: InferenceJobType::ConvertFbxToGltf, + maybe_product_category: None, // This is not a product inference_category: InferenceCategory::FormatConversion, maybe_model_type: Some(InferenceModelType::ConvertFbxToGltf), maybe_model_token: None, diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/conversion/enqueue_render_engine_scene_to_video_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/conversion/enqueue_render_engine_scene_to_video_handler.rs index bf0c493399..e0683118aa 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/conversion/enqueue_render_engine_scene_to_video_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/conversion/enqueue_render_engine_scene_to_video_handler.rs @@ -250,6 +250,7 @@ pub async fn enqueue_render_engine_scene_to_video_handler( let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { uuid_idempotency_token: &request.uuid_idempotency_token, job_type: InferenceJobType::BevyToWorkflow, + maybe_product_category: None, // This is not a product anymore inference_category: InferenceCategory::ConvertBvhToWorkflow, maybe_model_type: Some(InferenceModelType::BvhToWorkflow), maybe_model_token: None, diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/image_gen/enqueue_image_generation.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/image_gen/enqueue_image_generation.rs index 56eab72377..34e238e82e 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/image_gen/enqueue_image_generation.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/image_gen/enqueue_image_generation.rs @@ -412,6 +412,7 @@ pub async fn enqueue_image_generation_request( let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { uuid_idempotency_token: &request.uuid_idempotency_token, job_type: InferenceJobType::StableDiffusion, + maybe_product_category: None, // This is not a product anymore inference_category: InferenceCategory::ImageGeneration, maybe_model_type: Some(InferenceModelType::StableDiffusion), // NB: Model is static during inference maybe_model_token: None, // NB: Model is static during inference diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/mocap/enqueue_mocapnet.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/mocap/enqueue_mocapnet.rs index 9293b2633c..a27b283a58 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/mocap/enqueue_mocapnet.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/mocap/enqueue_mocapnet.rs @@ -205,6 +205,7 @@ pub async fn enqueue_mocapnet_handler( let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { uuid_idempotency_token: &request.uuid_idempotency_token, job_type: InferenceJobType::MocapNet, + maybe_product_category: None, // This is not a product anymore inference_category: InferenceCategory::Mocap, maybe_model_type: Some(InferenceModelType::MocapNet), // NB: Model is static during inference maybe_model_token: None, // NB: Model is static during inference diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/model_download/enqueue_gptsovits_model_download_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/model_download/enqueue_gptsovits_model_download_handler.rs index 96a10b13c7..caee27452b 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/model_download/enqueue_gptsovits_model_download_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/model_download/enqueue_gptsovits_model_download_handler.rs @@ -170,6 +170,7 @@ pub async fn enqueue_gptsovits_model_download_handler( let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { uuid_idempotency_token: &request.uuid_idempotency_token, job_type: InferenceJobType::GptSovits, + maybe_product_category: None, // Do not count downloads as product usage (or perhaps they should be their own) inference_category: InferenceCategory::DeprecatedField, maybe_model_type: None, maybe_model_token: None, diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/enqueue_infer_tts_handler/enqueue_infer_tts_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/enqueue_infer_tts_handler/enqueue_infer_tts_handler.rs index e4be12e0f6..2c92cb28aa 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/enqueue_infer_tts_handler/enqueue_infer_tts_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/enqueue_infer_tts_handler/enqueue_infer_tts_handler.rs @@ -17,6 +17,7 @@ use rand::seq::SliceRandom; use utoipa::ToSchema; use enums::by_table::generic_inference_jobs::inference_category::InferenceCategory; +use enums::by_table::generic_inference_jobs::inference_job_product_category::InferenceJobProductCategory; use enums::by_table::generic_inference_jobs::inference_job_type::InferenceJobType; use enums::by_table::generic_inference_jobs::inference_model_type::InferenceModelType; use enums::common::visibility::Visibility; @@ -420,9 +421,16 @@ pub async fn enqueue_infer_tts_handler( _ => None, // NB: Shouldn't occur }; + let maybe_product_category = match tts_model.job_type() { + InferenceJobType::Tacotron2 => Some(InferenceJobProductCategory::TtsTacotron2), + InferenceJobType::GptSovits => Some(InferenceJobProductCategory::TtsGptSoVits), + _ => None, + }; + let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { uuid_idempotency_token: &request.uuid_idempotency_token, job_type: tts_model.job_type(), + maybe_product_category, inference_category: InferenceCategory::TextToSpeech, maybe_model_type, maybe_model_token: Some(request.tts_model_token.as_str()), diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_conversion/inference/enqueue_voice_conversion_inference.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_conversion/inference/enqueue_voice_conversion_inference.rs index 060b3348ff..10bd39c1f0 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_conversion/inference/enqueue_voice_conversion_inference.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_conversion/inference/enqueue_voice_conversion_inference.rs @@ -18,6 +18,7 @@ use utoipa::ToSchema; use enums::by_table::generic_inference_jobs::inference_category::InferenceCategory; use enums::by_table::generic_inference_jobs::inference_input_source_token_type::InferenceInputSourceTokenType; +use enums::by_table::generic_inference_jobs::inference_job_product_category::InferenceJobProductCategory; use enums::by_table::generic_inference_jobs::inference_job_type::InferenceJobType; use enums::by_table::generic_inference_jobs::inference_model_type::InferenceModelType; use enums::common::visibility::Visibility; @@ -357,9 +358,16 @@ pub async fn enqueue_voice_conversion_inference_handler( } }; + let maybe_product_category = match model_inference_info.job_model_type { + InferenceModelType::RvcV2 => Some(InferenceJobProductCategory::VcRvc2), + InferenceModelType::SoVitsSvc => Some(InferenceJobProductCategory::VcSvc), + _ => None, + }; + let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { uuid_idempotency_token: &request.uuid_idempotency_token, job_type, + maybe_product_category, inference_category: InferenceCategory::VoiceConversion, maybe_model_type: Some(model_inference_info.job_model_type), maybe_model_token: Some(&model_token), diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/inference/enqueue_tts_request.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/inference/enqueue_tts_request.rs index 8792aa1bf8..c0b23b5547 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/inference/enqueue_tts_request.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/inference/enqueue_tts_request.rs @@ -14,6 +14,7 @@ use serde::Serialize; use utoipa::ToSchema; use enums::by_table::generic_inference_jobs::inference_category::InferenceCategory; +use enums::by_table::generic_inference_jobs::inference_job_product_category::InferenceJobProductCategory; use enums::by_table::generic_inference_jobs::inference_job_type::InferenceJobType; use enums::by_table::generic_inference_jobs::inference_model_type::InferenceModelType; use enums::common::visibility::Visibility; @@ -192,6 +193,7 @@ pub async fn enqueue_tts_request( let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { uuid_idempotency_token: &request.uuid_idempotency_token, job_type: InferenceJobType::StyleTTS2, + maybe_product_category: Some(InferenceJobProductCategory::TtsStyleTts2), inference_category: InferenceCategory::TextToSpeech, maybe_model_type: Some(InferenceModelType::StyleTTS2), // NB: Model is static during inference maybe_model_token: None, // NB: Model is static during inference diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/create_voice.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/create_voice.rs index 1f345d3114..4f890c3ec1 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/create_voice.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/create_voice.rs @@ -13,6 +13,7 @@ use serde::Deserialize; use serde::Serialize; use enums::by_table::generic_inference_jobs::inference_category::InferenceCategory; +use enums::by_table::generic_inference_jobs::inference_job_product_category::InferenceJobProductCategory; use enums::by_table::generic_inference_jobs::inference_job_type::InferenceJobType; use enums::by_table::generic_inference_jobs::inference_model_type::InferenceModelType; use http_server_common::request::get_request_header_optional::get_request_header_optional; @@ -178,6 +179,7 @@ pub async fn create_voice_handler( let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { uuid_idempotency_token: &request.uuid_idempotency_token, job_type: InferenceJobType::StyleTTS2, + maybe_product_category: Some(InferenceJobProductCategory::TtsStyleTts2), // Perhaps we should count this another way? inference_category: InferenceCategory::TextToSpeech, maybe_model_type: Some(InferenceModelType::StyleTTS2), // NB: Model is static during inference maybe_model_token: None, // NB: Model is static during inference diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue/enqueue_live_portrait_workflow_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue/enqueue_live_portrait_workflow_handler.rs index f4d4ed3495..5de1777d3a 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue/enqueue_live_portrait_workflow_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue/enqueue_live_portrait_workflow_handler.rs @@ -13,6 +13,7 @@ use log::{error, info, warn}; use utoipa::ToSchema; use enums::by_table::generic_inference_jobs::inference_category::InferenceCategory; +use enums::by_table::generic_inference_jobs::inference_job_product_category::InferenceJobProductCategory; use enums::by_table::generic_inference_jobs::inference_job_type::InferenceJobType; use enums::by_table::generic_inference_jobs::inference_model_type::InferenceModelType; use enums::common::visibility::Visibility; @@ -257,6 +258,7 @@ pub async fn enqueue_live_portrait_workflow_handler( let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { uuid_idempotency_token: &request.uuid_idempotency_token, job_type: InferenceJobType::LivePortrait, + maybe_product_category: Some(InferenceJobProductCategory::LivePortrait), inference_category: InferenceCategory::LivePortrait, maybe_model_type: None, maybe_model_token: None, diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue/enqueue_studio_workflow_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue/enqueue_studio_workflow_handler.rs index 76c5d352f8..51406eab0e 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue/enqueue_studio_workflow_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue/enqueue_studio_workflow_handler.rs @@ -13,6 +13,7 @@ use log::{error, info, warn}; use utoipa::ToSchema; use enums::by_table::generic_inference_jobs::inference_category::InferenceCategory; +use enums::by_table::generic_inference_jobs::inference_job_product_category::InferenceJobProductCategory; use enums::by_table::generic_inference_jobs::inference_job_type::InferenceJobType; use enums::by_table::generic_inference_jobs::inference_model_type::InferenceModelType; use enums::common::visibility::Visibility; @@ -320,6 +321,7 @@ pub async fn enqueue_studio_workflow_handler( let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { uuid_idempotency_token: &request.uuid_idempotency_token, job_type: InferenceJobType::ComfyUi, + maybe_product_category: Some(InferenceJobProductCategory::Studio), inference_category: InferenceCategory::Workflow, maybe_model_type: Some(InferenceModelType::ComfyUi), // NB: Model is static during inference maybe_model_token: None, // NB: Model is static during inference diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue/enqueue_video_style_transfer_workflow_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue/enqueue_video_style_transfer_workflow_handler.rs index cb4a269edd..90e8503a1c 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue/enqueue_video_style_transfer_workflow_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue/enqueue_video_style_transfer_workflow_handler.rs @@ -13,6 +13,7 @@ use log::{error, info, warn}; use utoipa::ToSchema; use enums::by_table::generic_inference_jobs::inference_category::InferenceCategory; +use enums::by_table::generic_inference_jobs::inference_job_product_category::InferenceJobProductCategory; use enums::by_table::generic_inference_jobs::inference_job_type::InferenceJobType; use enums::by_table::generic_inference_jobs::inference_model_type::InferenceModelType; use enums::common::visibility::Visibility; @@ -320,6 +321,7 @@ pub async fn enqueue_video_style_transfer_workflow_handler( let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { uuid_idempotency_token: &request.uuid_idempotency_token, job_type: InferenceJobType::ComfyUi, + maybe_product_category: Some(InferenceJobProductCategory::Vst), inference_category: InferenceCategory::Workflow, maybe_model_type: Some(InferenceModelType::ComfyUi), // NB: Model is static during inference maybe_model_token: None, // NB: Model is static during inference diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue_comfy_ui_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue_comfy_ui_handler.rs index faf5afdf78..8087774bd5 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue_comfy_ui_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue_comfy_ui_handler.rs @@ -296,6 +296,7 @@ pub async fn enqueue_comfy_ui_handler( let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { uuid_idempotency_token: &request.uuid_idempotency_token, job_type: InferenceJobType::ComfyUi, + maybe_product_category: None, inference_category: InferenceCategory::Workflow, maybe_model_type: Some(InferenceModelType::ComfyUi), // NB: Model is static during inference maybe_model_token: None, // NB: Model is static during inference diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue_video_style_transfer_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue_video_style_transfer_handler.rs index faab78f9ca..c839e611aa 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue_video_style_transfer_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue_video_style_transfer_handler.rs @@ -449,6 +449,7 @@ pub async fn enqueue_video_style_transfer_handler( let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { uuid_idempotency_token: &request.uuid_idempotency_token, job_type: InferenceJobType::ComfyUi, + maybe_product_category: None, // TODO: This endpoint is deprecated. Is anyone calling it? inference_category: InferenceCategory::Workflow, maybe_model_type: Some(InferenceModelType::ComfyUi), // NB: Model is static during inference maybe_model_token: None, // NB: Model is static during inference diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue_workflow_upload_request.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue_workflow_upload_request.rs index 3a526f0198..fd6fde22e4 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue_workflow_upload_request.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/workflows/enqueue_workflow_upload_request.rs @@ -269,6 +269,7 @@ pub async fn enqueue_workflow_upload_request( let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { uuid_idempotency_token: &request.uuid_idempotency_token, job_type: InferenceJobType::ComfyUi, + maybe_product_category: None, // This endpoint is deprecated inference_category: InferenceCategory::Workflow, maybe_model_type: Some(InferenceModelType::ComfyUi), // NB: Model is static during inference maybe_model_token: None, // NB: Model is static during inference