From 5321eb145d2232dedec887c64c484016576fbbfb Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 31 Jan 2025 17:53:46 -0500 Subject: [PATCH] fix api bug --- .../process_single_studio_gen2_job.rs | 21 ++++++------------- .../helpers/get_scoped_media_classes.rs | 20 ++++++++++++++---- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/crates/service/job/inference_job/src/job/job_types/studio_gen2/process_single_studio_gen2_job.rs b/crates/service/job/inference_job/src/job/job_types/studio_gen2/process_single_studio_gen2_job.rs index cca00951e2..92a2784c45 100644 --- a/crates/service/job/inference_job/src/job/job_types/studio_gen2/process_single_studio_gen2_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/studio_gen2/process_single_studio_gen2_job.rs @@ -1,7 +1,9 @@ use crate::job::job_loop::job_success_result::{JobSuccessResult, ResultEntity}; use crate::job::job_loop::process_single_job_error::ProcessSingleJobError; use crate::job::job_types::studio_gen2::download_file_for_studio::{download_file_for_studio, DownloadFileForStudioArgs}; +use crate::job::job_types::studio_gen2::stable_animator_command::InferenceArgs; use crate::job::job_types::studio_gen2::studio_gen2_dirs::StudioGen2Dirs; +use crate::job::job_types::studio_gen2::validate_and_save_results::{validate_and_save_results, SaveResultsArgs}; use crate::job::job_types::workflow::face_fusion::process_face_fusion_job::process_face_fusion_job; use crate::job::job_types::workflow::live_portrait::process_live_portrait_job::process_live_portrait_job; use crate::job::job_types::workflow::video_style_transfer::process_video_style_transfer_job::process_video_style_transfer_job; @@ -24,11 +26,15 @@ use cloud_storage::remote_file_manager::remote_cloud_file_manager::RemoteCloudFi use enums::by_table::generic_inference_jobs::inference_job_type::InferenceJobType; use enums::by_table::generic_inference_jobs::inference_result_type::InferenceResultType; use filesys::check_file_exists::check_file_exists; +use filesys::create_dir_all_if_missing::create_dir_all_if_missing; use filesys::file_deletion::safe_delete_possible_files_and_directories::safe_delete_possible_files_and_directories; use filesys::file_deletion::safe_recursively_delete_files::safe_recursively_delete_files; use filesys::path_to_string::path_to_string; +use images::image::io::Reader; +use images::resize_preserving_aspect::resize_preserving_aspect; use log::{error, info, warn}; use mysql_queries::payloads::generic_inference_args::generic_inference_args::PolymorphicInferenceArgs::{Cu, S2}; +use mysql_queries::payloads::generic_inference_args::inner_payloads::studio_gen2_payload::StudioGen2Payload; use mysql_queries::queries::generic_inference::job::list_available_generic_inference_jobs::AvailableInferenceJob; use mysql_queries::queries::model_weights::get::get_weight::get_weight_by_token_with_transactor; use mysql_queries::utils::transactor::Transactor; @@ -40,28 +46,13 @@ use std::time::{Duration, Instant}; use tokens::tokens::media_files::MediaFileToken; use tokio::sync::oneshot; use tokio::sync::oneshot::channel; -use filesys::create_dir_all_if_missing::create_dir_all_if_missing; -use images::image::io::Reader; -use images::resize_preserving_aspect::resize_preserving_aspect; -use mysql_queries::payloads::generic_inference_args::inner_payloads::studio_gen2_payload::StudioGen2Payload; use videos::ffprobe_get_dimensions::ffprobe_get_dimensions; -use crate::job::job_types::studio_gen2::stable_animator_command::InferenceArgs; -use crate::job::job_types::studio_gen2::validate_and_save_results::{validate_and_save_results, SaveResultsArgs}; -// TODO(bt,2025-01-16): This is a stub for Studio Gen2 -// TODO(bt,2025-01-16): This is a stub for Studio Gen2 -// TODO(bt,2025-01-16): This is a stub for Studio Gen2 -// TODO(bt,2025-01-16): This is a stub for Studio Gen2 pub async fn process_single_studio_gen2_job( deps: &JobDependencies, job: &AvailableInferenceJob ) -> Result { - // TODO(bt,2025-01-16): This is a stub for Studio Gen2 - // TODO(bt,2025-01-16): This is a stub for Studio Gen2 - // TODO(bt,2025-01-16): This is a stub for Studio Gen2 - // TODO(bt,2025-01-16): This is a stub for Studio Gen2 - let mut job_progress_reporter = deps .clients .job_progress_reporter diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/helpers/get_scoped_media_classes.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/helpers/get_scoped_media_classes.rs index 66f43b6c4f..1cbc8e448e 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/helpers/get_scoped_media_classes.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/helpers/get_scoped_media_classes.rs @@ -21,6 +21,12 @@ pub fn get_scoped_media_classes( return None; } + if classes.len() == 1 && classes.contains(&MediaFileClass::Unknown) { + // NB(bt,2025-01-31): The frontend started passing simply "unknown" to the API in development + // for some reason. Not sure why. There's no product reason for this to be a filter. + return None; + } + Some(classes) } @@ -34,23 +40,29 @@ mod test { #[test] fn none() { - assert_eq!(get_scoped_media_classes(None), None) + assert_eq!(get_scoped_media_classes(None), None); } #[test] fn empty() { - assert_eq!(get_scoped_media_classes(Some("")), None) + assert_eq!(get_scoped_media_classes(Some("")), None); + } + + #[test] + fn not_just_unknown() { + assert_eq!(get_scoped_media_classes(Some("unknown")), None); + assert_eq!(get_scoped_media_classes(Some("unknown,,")), None); } #[test] fn garbage() { - assert_eq!(get_scoped_media_classes(Some("foo,bar,baz")), None) + assert_eq!(get_scoped_media_classes(Some("foo,bar,baz")), None); } #[test] fn valid_scope() { assert_eq!( get_scoped_media_classes(Some("image,video")), - Some(HashSet::from([MediaFileClass::Image, MediaFileClass::Video]))) + Some(HashSet::from([MediaFileClass::Image, MediaFileClass::Video]))); } }