From 0fdfc3b8fc4c12c10fa9812ab37058b78f901ddf Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 16 Jul 2024 22:28:43 -0400 Subject: [PATCH] move server "state" / configs to module --- .../src/job/job_loop/determine_dependency_status.rs | 2 +- .../job/inference_job/src/job/job_loop/main_loop.rs | 2 +- .../src/job/job_loop/process_single_job.rs | 2 +- .../format_conversion/fbx_to_gltf/process_job.rs | 2 +- .../process_single_format_conversion_job.rs | 2 +- .../image_generation/process_single_ig_job.rs | 2 +- .../job/job_types/image_generation/sd/process_job.rs | 2 +- .../job_types/lipsync/process_single_lipsync_job.rs | 2 +- .../job/job_types/lipsync/sad_talker/process_job.rs | 2 +- .../src/job/job_types/mocap/mocap_net/process_job.rs | 2 +- .../src/job/job_types/mocap/process_single_mc_job.rs | 2 +- .../process_render_engine_scene.rs | 2 +- .../render_engine_scene_to_video/process_job.rs | 2 +- .../src/job/job_types/tts/process_single_tts_job.rs | 2 +- .../src/job/job_types/tts/styletts2/process_job.rs | 2 +- .../download_static_dependencies.rs | 2 +- .../tts/tacotron2_v2_early_fakeyou/process_job.rs | 2 +- .../tts/tacotron2_v2_early_fakeyou/upload_results.rs | 2 +- .../src/job/job_types/tts/vall_e_x/process_job.rs | 2 +- .../src/job/job_types/tts/vits/process_job.rs | 2 +- .../src/job/job_types/vc/process_single_vc_job.rs | 2 +- .../src/job/job_types/vc/rvc_v2/process_job.rs | 2 +- .../src/job/job_types/vc/so_vits_svc/process_job.rs | 2 +- .../job_types/videofilter/process_single_vf_job.rs | 2 +- .../videofilter/rerender_a_video/process_job.rs | 2 +- .../job_types/workflow/live_portrait/command_args.rs | 9 --------- .../live_portrait/process_live_portrait_job.rs | 2 +- .../job_types/workflow/process_single_workflow_job.rs | 2 +- .../upload_workflow/process_upload_workflow_job.rs | 2 +- .../process_video_style_transfer_job.rs | 2 +- .../steps/validate_and_save_results.rs | 2 +- crates/service/job/inference_job/src/main.rs | 11 +++++------ .../inference_job/src/{ => state}/job_dependencies.rs | 6 +++--- .../src/{ => state}/job_specific_dependencies.rs | 4 ++-- crates/service/job/inference_job/src/state/mod.rs | 4 ++++ .../src/{util => state}/scoped_job_type_execution.rs | 2 +- .../{util => state}/scoped_model_type_execution.rs | 2 +- crates/service/job/inference_job/src/util/mod.rs | 2 -- 38 files changed, 46 insertions(+), 54 deletions(-) rename crates/service/job/inference_job/src/{ => state}/job_dependencies.rs (97%) rename crates/service/job/inference_job/src/{ => state}/job_specific_dependencies.rs (98%) create mode 100644 crates/service/job/inference_job/src/state/mod.rs rename crates/service/job/inference_job/src/{util => state}/scoped_job_type_execution.rs (97%) rename crates/service/job/inference_job/src/{util => state}/scoped_model_type_execution.rs (97%) diff --git a/crates/service/job/inference_job/src/job/job_loop/determine_dependency_status.rs b/crates/service/job/inference_job/src/job/job_loop/determine_dependency_status.rs index 8dd5595404..c91151ad12 100644 --- a/crates/service/job/inference_job/src/job/job_loop/determine_dependency_status.rs +++ b/crates/service/job/inference_job/src/job/job_loop/determine_dependency_status.rs @@ -12,7 +12,7 @@ use mysql_queries::queries::generic_inference::job::list_available_generic_infer use mysql_queries::queries::tts::tts_models::get_tts_model_for_inference_improved::TtsModelForInferenceError; use crate::job::job_loop::process_single_job_error::ProcessSingleJobError; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; pub struct DependencyStatus { /// The DB record for the model being used in this job. diff --git a/crates/service/job/inference_job/src/job/job_loop/main_loop.rs b/crates/service/job/inference_job/src/job/job_loop/main_loop.rs index a03daed518..be3f67f740 100644 --- a/crates/service/job/inference_job/src/job/job_loop/main_loop.rs +++ b/crates/service/job/inference_job/src/job/job_loop/main_loop.rs @@ -15,7 +15,7 @@ use crate::job::job_loop::clear_full_filesystem::clear_full_filesystem; use crate::job::job_loop::process_single_job::process_single_job; use crate::job::job_loop::process_single_job_error::ProcessSingleJobError; use crate::job::job_loop::process_single_job_success_case::ProcessSingleJobSuccessCase; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; // Job runner timeouts (guards MySQL) const START_TIMEOUT_MILLIS : u64 = 500; diff --git a/crates/service/job/inference_job/src/job/job_loop/process_single_job.rs b/crates/service/job/inference_job/src/job/job_loop/process_single_job.rs index 42489d11d7..511819b67e 100644 --- a/crates/service/job/inference_job/src/job/job_loop/process_single_job.rs +++ b/crates/service/job/inference_job/src/job/job_loop/process_single_job.rs @@ -25,7 +25,7 @@ use crate::job::job_types::tts::process_single_tts_job::process_single_tts_job; use crate::job::job_types::vc::process_single_vc_job::process_single_vc_job; use crate::job::job_types::videofilter::process_single_vf_job::process_single_vf_job; use crate::job::job_types::workflow::process_single_workflow_job::process_single_workflow_job; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; pub async fn process_single_job( job_dependencies: &JobDependencies, diff --git a/crates/service/job/inference_job/src/job/job_types/format_conversion/fbx_to_gltf/process_job.rs b/crates/service/job/inference_job/src/job/job_types/format_conversion/fbx_to_gltf/process_job.rs index 40f1a51817..c6f8e23862 100644 --- a/crates/service/job/inference_job/src/job/job_types/format_conversion/fbx_to_gltf/process_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/format_conversion/fbx_to_gltf/process_job.rs @@ -27,7 +27,7 @@ use subprocess_common::command_runner::command_runner_args::{FileOrCreate, RunAs 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::format_conversion::fbx_to_gltf::command_args::FbxToGltfCommandArgs; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; use crate::util::downloaders::maybe_download_file_from_bucket::{maybe_download_file_from_bucket, MaybeDownloadArgs}; // Flag to control GLB vs GLTF uploading diff --git a/crates/service/job/inference_job/src/job/job_types/format_conversion/process_single_format_conversion_job.rs b/crates/service/job/inference_job/src/job/job_types/format_conversion/process_single_format_conversion_job.rs index a12eea6fff..9d6b919ad6 100644 --- a/crates/service/job/inference_job/src/job/job_types/format_conversion/process_single_format_conversion_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/format_conversion/process_single_format_conversion_job.rs @@ -10,7 +10,7 @@ use crate::job::job_loop::job_success_result::JobSuccessResult; use crate::job::job_loop::process_single_job_error::ProcessSingleJobError; use crate::job::job_types::format_conversion::fbx_to_gltf; use crate::job::job_types::format_conversion::fbx_to_gltf::process_job::FbxToGltfJobArgs; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; // // NB: There will likely be lots of other format conversions for us to run, and there's probably lots of shared code between them. // // This enum lets us reuse the shared portions in this function before dispatching to the special parts. diff --git a/crates/service/job/inference_job/src/job/job_types/image_generation/process_single_ig_job.rs b/crates/service/job/inference_job/src/job/job_types/image_generation/process_single_ig_job.rs index bb26c58933..730bbcbe9f 100644 --- a/crates/service/job/inference_job/src/job/job_types/image_generation/process_single_ig_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/image_generation/process_single_ig_job.rs @@ -6,7 +6,7 @@ use crate::job::job_loop::job_success_result::JobSuccessResult; use crate::job::job_loop::process_single_job_error::ProcessSingleJobError; use crate::job::job_types::image_generation::sd::process_job::process_job_selection; use crate::job::job_types::image_generation::sd::process_job::StableDiffusionProcessArgs; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; pub async fn process_single_ig_job(job_dependencies: &JobDependencies, job: &AvailableInferenceJob) -> Result { match job.maybe_model_type { diff --git a/crates/service/job/inference_job/src/job/job_types/image_generation/sd/process_job.rs b/crates/service/job/inference_job/src/job/job_types/image_generation/sd/process_job.rs index a5e1a18c48..7ea0353e63 100644 --- a/crates/service/job/inference_job/src/job/job_types/image_generation/sd/process_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/image_generation/sd/process_job.rs @@ -9,7 +9,7 @@ use crate::job::job_loop::process_single_job_error::ProcessSingleJobError; use crate::job::job_types::image_generation::sd::process_job_inference::process_job_inference; use crate::job::job_types::image_generation::sd::process_job_lora_upload::process_job_lora_upload; use crate::job::job_types::image_generation::sd::process_job_sd_upload::process_job_sd_upload; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; use crate::util::extractors::get_polymorphic_args_from_job::get_polymorphic_args_from_job; #[derive(Debug, Serialize, Deserialize, Clone, Eq, PartialEq)] diff --git a/crates/service/job/inference_job/src/job/job_types/lipsync/process_single_lipsync_job.rs b/crates/service/job/inference_job/src/job/job_types/lipsync/process_single_lipsync_job.rs index f01c8f7d5a..5031606fde 100644 --- a/crates/service/job/inference_job/src/job/job_types/lipsync/process_single_lipsync_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/lipsync/process_single_lipsync_job.rs @@ -7,7 +7,7 @@ use crate::job::job_loop::job_success_result::JobSuccessResult; use crate::job::job_loop::process_single_job_error::ProcessSingleJobError; use crate::job::job_types::lipsync::sad_talker; use crate::job::job_types::lipsync::sad_talker::process_job::SadTalkerProcessJobArgs; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; pub async fn process_single_lipsync_job(job_dependencies: &JobDependencies, job: &AvailableInferenceJob) -> Result { diff --git a/crates/service/job/inference_job/src/job/job_types/lipsync/sad_talker/process_job.rs b/crates/service/job/inference_job/src/job/job_types/lipsync/sad_talker/process_job.rs index f6c562d3b3..79d5427c21 100644 --- a/crates/service/job/inference_job/src/job/job_types/lipsync/sad_talker/process_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/lipsync/sad_talker/process_job.rs @@ -26,7 +26,7 @@ use crate::job::job_types::lipsync::sad_talker::download_image_file::{download_i use crate::job::job_types::lipsync::sad_talker::resize_image::resize_image; use crate::job::job_types::lipsync::sad_talker::sad_talker_inference_command::InferenceArgs; use crate::job::job_types::lipsync::sad_talker::validate_job::validate_job; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; use crate::util::common_commands::ffmpeg_logo_watermark_command::WatermarkArgs; /// The maximum that either width or height can be diff --git a/crates/service/job/inference_job/src/job/job_types/mocap/mocap_net/process_job.rs b/crates/service/job/inference_job/src/job/job_types/mocap/mocap_net/process_job.rs index 2c29a628bf..b2666ae2b4 100644 --- a/crates/service/job/inference_job/src/job/job_types/mocap/mocap_net/process_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/mocap/mocap_net/process_job.rs @@ -23,7 +23,7 @@ use crate::job::job_loop::process_single_job_error::ProcessSingleJobError; use crate::job::job_types::mocap::mocap_net::download_video_file::download_video_file; use crate::job::job_types::mocap::mocap_net::mocapnet_inference_command::InferenceArgs; use crate::job::job_types::mocap::mocap_net::validate_job::validate_job; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; const BUCKET_FILE_PREFIX: &str = "fakeyou_"; const BUCKET_FILE_EXTENSION: &str = ".bvh"; diff --git a/crates/service/job/inference_job/src/job/job_types/mocap/process_single_mc_job.rs b/crates/service/job/inference_job/src/job/job_types/mocap/process_single_mc_job.rs index 56cb88e478..f72c6683b7 100644 --- a/crates/service/job/inference_job/src/job/job_types/mocap/process_single_mc_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/mocap/process_single_mc_job.rs @@ -3,7 +3,7 @@ use mysql_queries::queries::generic_inference::job::list_available_generic_infer use crate::job::job_loop::job_success_result::JobSuccessResult; use crate::job::job_loop::process_single_job_error::ProcessSingleJobError; use crate::job::job_types::mocap::mocap_net; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; pub async fn process_single_mc_job(job_dependencies: &JobDependencies, job: &AvailableInferenceJob) -> Result { let job_success_result = mocap_net::process_job::process_job( diff --git a/crates/service/job/inference_job/src/job/job_types/render_engine_scene/process_render_engine_scene.rs b/crates/service/job/inference_job/src/job/job_types/render_engine_scene/process_render_engine_scene.rs index 60f0fb893d..0353cabdac 100644 --- a/crates/service/job/inference_job/src/job/job_types/render_engine_scene/process_render_engine_scene.rs +++ b/crates/service/job/inference_job/src/job/job_types/render_engine_scene/process_render_engine_scene.rs @@ -9,7 +9,7 @@ use crate::job::job_loop::job_success_result::JobSuccessResult; use crate::job::job_loop::process_single_job_error::ProcessSingleJobError; use crate::job::job_types::render_engine_scene::render_engine_scene_to_video; use crate::job::job_types::render_engine_scene::render_engine_scene_to_video::process_job::BvhToWorkflowJobArgs; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; pub async fn process_single_render_engine_scene_job(job_dependencies: &JobDependencies, job: &AvailableInferenceJob) -> Result { diff --git a/crates/service/job/inference_job/src/job/job_types/render_engine_scene/render_engine_scene_to_video/process_job.rs b/crates/service/job/inference_job/src/job/job_types/render_engine_scene/render_engine_scene_to_video/process_job.rs index 6984dcd71d..ebc51d0052 100644 --- a/crates/service/job/inference_job/src/job/job_types/render_engine_scene/render_engine_scene_to_video/process_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/render_engine_scene/render_engine_scene_to_video/process_job.rs @@ -26,7 +26,7 @@ use subprocess_common::command_runner::command_runner_args::{RunAsSubprocessArgs 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::render_engine_scene::render_engine_scene_to_video::command_args::RenderEngineSceneToVideoCommandArgs; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; use crate::util::downloaders::maybe_download_file_from_bucket::{maybe_download_file_from_bucket, MaybeDownloadArgs}; const BUCKET_FILE_EXTENSION : &str = ".mp4"; diff --git a/crates/service/job/inference_job/src/job/job_types/tts/process_single_tts_job.rs b/crates/service/job/inference_job/src/job/job_types/tts/process_single_tts_job.rs index 9b5c3a06c2..e7c7162306 100644 --- a/crates/service/job/inference_job/src/job/job_types/tts/process_single_tts_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/tts/process_single_tts_job.rs @@ -13,7 +13,7 @@ use crate::job::job_types::tts::styletts2::process_job::StyleTTS2ProcessJobArgs; use crate::job::job_types::tts::tacotron2_v2_early_fakeyou::process_job::ProcessJobArgs; use crate::job::job_types::tts::vall_e_x::process_job::VALLEXProcessJobArgs; use crate::job::job_types::tts::vits::process_job::VitsProcessJobArgs; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; use super::vall_e_x; diff --git a/crates/service/job/inference_job/src/job/job_types/tts/styletts2/process_job.rs b/crates/service/job/inference_job/src/job/job_types/tts/styletts2/process_job.rs index e98c004db0..d015ccc2a0 100644 --- a/crates/service/job/inference_job/src/job/job_types/tts/styletts2/process_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/tts/styletts2/process_job.rs @@ -7,7 +7,7 @@ use crate::job::job_loop::process_single_job_error::ProcessSingleJobError; use crate::job::job_types::tts::styletts2::process_job_create_voice::process_create_voice; use crate::job::job_types::tts::styletts2::process_job_inference_voice::process_inference_voice; use crate::job::job_types::tts::styletts2::validate_job::validate_job; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; use super::validate_job::JobType; diff --git a/crates/service/job/inference_job/src/job/job_types/tts/tacotron2_v2_early_fakeyou/download_static_dependencies.rs b/crates/service/job/inference_job/src/job/job_types/tts/tacotron2_v2_early_fakeyou/download_static_dependencies.rs index 323c53353b..f749a395fb 100644 --- a/crates/service/job/inference_job/src/job/job_types/tts/tacotron2_v2_early_fakeyou/download_static_dependencies.rs +++ b/crates/service/job/inference_job/src/job/job_types/tts/tacotron2_v2_early_fakeyou/download_static_dependencies.rs @@ -5,7 +5,7 @@ use mysql_queries::queries::generic_inference::job::list_available_generic_infer use crate::job::job_loop::process_single_job_error::ProcessSingleJobError; use crate::job::job_types::tts::tacotron2_v2_early_fakeyou::tacotron2_dependencies::Tacotron2Dependencies; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; use crate::util::downloaders::maybe_download_file_from_bucket::{maybe_download_file_from_bucket, MaybeDownloadArgs}; pub struct StaticDependencies { diff --git a/crates/service/job/inference_job/src/job/job_types/tts/tacotron2_v2_early_fakeyou/process_job.rs b/crates/service/job/inference_job/src/job/job_types/tts/tacotron2_v2_early_fakeyou/process_job.rs index 7fdc7a8973..d9d438c411 100644 --- a/crates/service/job/inference_job/src/job/job_types/tts/tacotron2_v2_early_fakeyou/process_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/tts/tacotron2_v2_early_fakeyou/process_job.rs @@ -27,7 +27,7 @@ use crate::job::job_types::tts::tacotron2_v2_early_fakeyou::seconds_to_decoder_s use crate::job::job_types::tts::tacotron2_v2_early_fakeyou::tacotron2_inference_command::{InferenceArgs, MelMultiplyFactor}; use crate::job::job_types::tts::tacotron2_v2_early_fakeyou::upload_results::{upload_results, UploadResultArgs}; use crate::job::job_types::tts::tacotron2_v2_early_fakeyou::vocoder_option::VocoderForInferenceOption; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; use crate::util::downloaders::maybe_download_file_from_bucket::{maybe_download_file_from_bucket, MaybeDownloadArgs}; /// Text starting with this will be treated as a test request. diff --git a/crates/service/job/inference_job/src/job/job_types/tts/tacotron2_v2_early_fakeyou/upload_results.rs b/crates/service/job/inference_job/src/job/job_types/tts/tacotron2_v2_early_fakeyou/upload_results.rs index df1dbab6ff..d92497edfc 100644 --- a/crates/service/job/inference_job/src/job/job_types/tts/tacotron2_v2_early_fakeyou/upload_results.rs +++ b/crates/service/job/inference_job/src/job/job_types/tts/tacotron2_v2_early_fakeyou/upload_results.rs @@ -19,7 +19,7 @@ use mysql_queries::queries::tts::tts_results::insert_tts_result::JobType; use crate::job::job_loop::process_single_job_error::ProcessSingleJobError; use crate::job::job_types::tts::tacotron2_v2_early_fakeyou::process_job::FileMetadata; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; const BUCKET_FILE_PREFIX: &str = "fakeyou_"; const BUCKET_FILE_EXTENSION: &str = ".wav"; diff --git a/crates/service/job/inference_job/src/job/job_types/tts/vall_e_x/process_job.rs b/crates/service/job/inference_job/src/job/job_types/tts/vall_e_x/process_job.rs index 0dab146192..ecb74617d8 100644 --- a/crates/service/job/inference_job/src/job/job_types/tts/vall_e_x/process_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/tts/vall_e_x/process_job.rs @@ -7,7 +7,7 @@ use crate::job::job_loop::process_single_job_error::ProcessSingleJobError; use crate::job::job_types::tts::vall_e_x::process_job_create_voice::process_create_voice; use crate::job::job_types::tts::vall_e_x::process_job_inference_voice::process_inference_voice; use crate::job::job_types::tts::vall_e_x::validate_job::validate_job; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; use super::validate_job::JobType; diff --git a/crates/service/job/inference_job/src/job/job_types/tts/vits/process_job.rs b/crates/service/job/inference_job/src/job/job_types/tts/vits/process_job.rs index 158971a535..0942910416 100644 --- a/crates/service/job/inference_job/src/job/job_types/tts/vits/process_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/tts/vits/process_job.rs @@ -21,7 +21,7 @@ use mysql_queries::queries::tts::tts_results::insert_tts_result::{insert_tts_res 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::tts::vits::vits_inference_command::{Device, VitsInferenceArgs}; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; use crate::util::downloaders::maybe_download_file_from_bucket::{maybe_download_file_from_bucket, MaybeDownloadArgs}; /// Text starting with this will be treated as a test request. diff --git a/crates/service/job/inference_job/src/job/job_types/vc/process_single_vc_job.rs b/crates/service/job/inference_job/src/job/job_types/vc/process_single_vc_job.rs index 592fff589a..b1eecd0bd3 100644 --- a/crates/service/job/inference_job/src/job/job_types/vc/process_single_vc_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/vc/process_single_vc_job.rs @@ -15,7 +15,7 @@ use crate::job::job_types::vc::{rvc_v2, so_vits_svc}; use crate::job::job_types::vc::media_for_inference::MediaForInference; use crate::job::job_types::vc::rvc_v2::process_job::RvcV2ProcessJobArgs; use crate::job::job_types::vc::so_vits_svc::process_job::SoVitsSvcProcessJobArgs; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; pub async fn process_single_vc_job(job_dependencies: &JobDependencies, job: &AvailableInferenceJob) -> Result { let model_token = match job.maybe_model_token.as_deref() { diff --git a/crates/service/job/inference_job/src/job/job_types/vc/rvc_v2/process_job.rs b/crates/service/job/inference_job/src/job/job_types/vc/rvc_v2/process_job.rs index aa6e419ab0..0aefa90d52 100644 --- a/crates/service/job/inference_job/src/job/job_types/vc/rvc_v2/process_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/vc/rvc_v2/process_job.rs @@ -29,7 +29,7 @@ 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::vc::media_for_inference::MediaForInference; use crate::job::job_types::vc::rvc_v2::rvc_v2_inference_command::InferenceArgs; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; use crate::util::downloaders::maybe_download_file_from_bucket::{maybe_download_file_from_bucket, MaybeDownloadArgs}; const BUCKET_FILE_PREFIX : &str = "fakeyou_rvc_"; diff --git a/crates/service/job/inference_job/src/job/job_types/vc/so_vits_svc/process_job.rs b/crates/service/job/inference_job/src/job/job_types/vc/so_vits_svc/process_job.rs index c682cbd854..b767354045 100644 --- a/crates/service/job/inference_job/src/job/job_types/vc/so_vits_svc/process_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/vc/so_vits_svc/process_job.rs @@ -28,7 +28,7 @@ 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::vc::media_for_inference::MediaForInference; use crate::job::job_types::vc::so_vits_svc::so_vits_svc_inference_command::{Device, InferenceArgs}; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; use crate::util::downloaders::maybe_download_file_from_bucket::{maybe_download_file_from_bucket, MaybeDownloadArgs}; const BUCKET_FILE_PREFIX : &str = "fakeyou_svc_"; diff --git a/crates/service/job/inference_job/src/job/job_types/videofilter/process_single_vf_job.rs b/crates/service/job/inference_job/src/job/job_types/videofilter/process_single_vf_job.rs index 076a723ef9..9a73826e6c 100644 --- a/crates/service/job/inference_job/src/job/job_types/videofilter/process_single_vf_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/videofilter/process_single_vf_job.rs @@ -4,7 +4,7 @@ use crate::job::job_loop::job_success_result::JobSuccessResult; use crate::job::job_loop::process_single_job_error::ProcessSingleJobError; use crate::job::job_types::videofilter::rerender_a_video; use crate::job::job_types::videofilter::rerender_a_video::process_job::RerenderProcessJobArgs; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; pub async fn process_single_vf_job(job_dependencies: &JobDependencies, job: &AvailableInferenceJob) -> Result { let job_success_result = rerender_a_video::process_job::process_job( diff --git a/crates/service/job/inference_job/src/job/job_types/videofilter/rerender_a_video/process_job.rs b/crates/service/job/inference_job/src/job/job_types/videofilter/rerender_a_video/process_job.rs index 99322bae46..3067915bd2 100644 --- a/crates/service/job/inference_job/src/job/job_types/videofilter/rerender_a_video/process_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/videofilter/rerender_a_video/process_job.rs @@ -24,7 +24,7 @@ use crate::job::job_types::videofilter::rerender_a_video::download_model_file::d use crate::job::job_types::videofilter::rerender_a_video::download_video_file::download_video_file; use crate::job::job_types::videofilter::rerender_a_video::rerender_inference_command::InferenceArgs; use crate::job::job_types::videofilter::rerender_a_video::validate_job::validate_job; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; /// The maximum that either width or height can be const MAX_DIMENSION : u32 = 1500; diff --git a/crates/service/job/inference_job/src/job/job_types/workflow/live_portrait/command_args.rs b/crates/service/job/inference_job/src/job/job_types/workflow/live_portrait/command_args.rs index f8662372c0..810bc6fa37 100644 --- a/crates/service/job/inference_job/src/job/job_types/workflow/live_portrait/command_args.rs +++ b/crates/service/job/inference_job/src/job/job_types/workflow/live_portrait/command_args.rs @@ -4,15 +4,6 @@ use filesys::path_to_string::path_to_string; use primitives::bool_to_str::bool_to_str; use subprocess_common::command_runner::command_args::CommandArgs; -/* -usage: ComfyLivePortraitRunner.py [-h] --portrait-media-filename - PORTRAIT_MEDIA_FILENAME - --driver-media-filename - DRIVER_MEDIA_FILENAME --input-is-image - [--tmpdir TMPDIR] --output-filename - OUTPUT_FILENAME -ComfyLivePortraitRunner.py: error: unrecognized arguments: --tempdir /tmp/work/temp_live_portrait_40942003.6cEjwVEUG2aF true - */ #[derive(Debug)] pub struct LivePortraitCommandArgs<'a> { pub portrait_file: &'a Path, diff --git a/crates/service/job/inference_job/src/job/job_types/workflow/live_portrait/process_live_portrait_job.rs b/crates/service/job/inference_job/src/job/job_types/workflow/live_portrait/process_live_portrait_job.rs index c8d3d8520e..f62329713c 100644 --- a/crates/service/job/inference_job/src/job/job_types/workflow/live_portrait/process_live_portrait_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/workflow/live_portrait/process_live_portrait_job.rs @@ -58,7 +58,7 @@ use crate::job::job_types::workflow::video_style_transfer::steps::validate_and_s use crate::job::job_types::workflow::video_style_transfer::util::comfy_dirs::ComfyDirs; use crate::job::job_types::workflow::video_style_transfer::util::video_pathing::{PrimaryInputVideoAndPaths, SecondaryInputVideoAndPaths, VideoPathing}; use crate::job::job_types::workflow::video_style_transfer::util::write_workflow_prompt::{WorkflowPromptArgs, write_workflow_prompt}; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; use crate::util::common_commands::ffmpeg_audio_replace_args::FfmpegAudioReplaceArgs; use crate::util::common_commands::ffmpeg_logo_watermark_command::WatermarkArgs; use crate::util::downloaders::download_media_file::{download_media_file, DownloadMediaFileArgs}; diff --git a/crates/service/job/inference_job/src/job/job_types/workflow/process_single_workflow_job.rs b/crates/service/job/inference_job/src/job/job_types/workflow/process_single_workflow_job.rs index c54973ceb3..4376b6f0a5 100644 --- a/crates/service/job/inference_job/src/job/job_types/workflow/process_single_workflow_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/workflow/process_single_workflow_job.rs @@ -7,7 +7,7 @@ use crate::job::job_types::workflow::live_portrait::process_live_portrait_job::p use crate::job::job_types::workflow::upload_workflow::process_upload_workflow_job::process_upload_workflow_job; use crate::job::job_types::workflow::video_style_transfer::extract_vst_workflow_payload_from_job::extract_vst_workflow_payload_from_job; use crate::job::job_types::workflow::video_style_transfer::process_video_style_transfer_job::process_video_style_transfer_job; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; pub async fn process_single_workflow_job( job_dependencies: &JobDependencies, diff --git a/crates/service/job/inference_job/src/job/job_types/workflow/upload_workflow/process_upload_workflow_job.rs b/crates/service/job/inference_job/src/job/job_types/workflow/upload_workflow/process_upload_workflow_job.rs index 36327af12c..d56218e95c 100644 --- a/crates/service/job/inference_job/src/job/job_types/workflow/upload_workflow/process_upload_workflow_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/workflow/upload_workflow/process_upload_workflow_job.rs @@ -20,7 +20,7 @@ use tokens::tokens::users::UserToken; 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::workflow::video_style_transfer::extract_vst_workflow_payload_from_job::extract_vst_workflow_payload_from_job; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; pub async fn process_upload_workflow_job(deps: &JobDependencies, job: &AvailableInferenceJob) -> Result{ let mysql_pool = &deps.db.mysql_pool; diff --git a/crates/service/job/inference_job/src/job/job_types/workflow/video_style_transfer/process_video_style_transfer_job.rs b/crates/service/job/inference_job/src/job/job_types/workflow/video_style_transfer/process_video_style_transfer_job.rs index 7530fb3afe..23a62eba78 100644 --- a/crates/service/job/inference_job/src/job/job_types/workflow/video_style_transfer/process_video_style_transfer_job.rs +++ b/crates/service/job/inference_job/src/job/job_types/workflow/video_style_transfer/process_video_style_transfer_job.rs @@ -55,7 +55,7 @@ use crate::job::job_types::workflow::video_style_transfer::steps::validate_and_s use crate::job::job_types::workflow::video_style_transfer::util::comfy_dirs::ComfyDirs; use crate::job::job_types::workflow::video_style_transfer::util::video_pathing::{PrimaryInputVideoAndPaths, SecondaryInputVideoAndPaths, VideoPathing}; use crate::job::job_types::workflow::video_style_transfer::util::write_workflow_prompt::{WorkflowPromptArgs, write_workflow_prompt}; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; use crate::util::common_commands::ffmpeg_audio_replace_args::FfmpegAudioReplaceArgs; use crate::util::common_commands::ffmpeg_logo_watermark_command::WatermarkArgs; diff --git a/crates/service/job/inference_job/src/job/job_types/workflow/video_style_transfer/steps/validate_and_save_results.rs b/crates/service/job/inference_job/src/job/job_types/workflow/video_style_transfer/steps/validate_and_save_results.rs index f4a572b5b5..33a9d454d8 100644 --- a/crates/service/job/inference_job/src/job/job_types/workflow/video_style_transfer/steps/validate_and_save_results.rs +++ b/crates/service/job/inference_job/src/job/job_types/workflow/video_style_transfer/steps/validate_and_save_results.rs @@ -33,7 +33,7 @@ use crate::job::job_loop::process_single_job_error::ProcessSingleJobError; use crate::job::job_types::workflow::comfy_ui_dependencies::ComfyDependencies; use crate::job::job_types::workflow::video_style_transfer::steps::check_and_validate_job::JobArgs; use crate::job::job_types::workflow::video_style_transfer::util::video_pathing::VideoPathing; -use crate::job_dependencies::JobDependencies; +use crate::state::job_dependencies::JobDependencies; fn get_file_extension(mimetype: &str) -> anyhow::Result<&'static str> { let ext = match mimetype { diff --git a/crates/service/job/inference_job/src/main.rs b/crates/service/job/inference_job/src/main.rs index 77460eac9f..5c39c2e6b8 100644 --- a/crates/service/job/inference_job/src/main.rs +++ b/crates/service/job/inference_job/src/main.rs @@ -49,19 +49,18 @@ use mysql_queries::mediators::firehose_publisher::FirehosePublisher; use crate::http_server::run_http_server::CreateServerArgs; use crate::http_server::run_http_server::launch_http_server; use crate::job::job_loop::main_loop::main_loop; -use crate::job_dependencies::{BucketDependencies, ClientDependencies, DatabaseDependencies, FileSystemDetails, JobCaches, JobDependencies, JobInstanceInfo, JobSystemControls, JobSystemDependencies}; -use crate::job_specific_dependencies::JobSpecificDependencies; +use crate::state::job_dependencies::{BucketDependencies, ClientDependencies, DatabaseDependencies, FileSystemDetails, JobCaches, JobDependencies, JobInstanceInfo, JobSystemControls, JobSystemDependencies}; +use crate::state::job_specific_dependencies::JobSpecificDependencies; use crate::util::filesystem::scoped_temp_dir_creator::ScopedTempDirCreator; use crate::util::instrumentation::{init_otel_metrics_pipeline, JobInstrumentLabels}; use crate::util::instrumentation::JobInstruments; use crate::util::model_weights_cache::model_weights_cache_directory::ModelWeightsCacheDirectory; -use crate::util::scoped_job_type_execution::ScopedJobTypeExecution; -use crate::util::scoped_model_type_execution::ScopedModelTypeExecution; +use crate::state::scoped_job_type_execution::ScopedJobTypeExecution; +use crate::state::scoped_model_type_execution::ScopedModelTypeExecution; pub mod http_server; pub mod job; -pub mod job_dependencies; -pub mod job_specific_dependencies; +pub mod state; pub mod util; // Buckets (shared config) diff --git a/crates/service/job/inference_job/src/job_dependencies.rs b/crates/service/job/inference_job/src/state/job_dependencies.rs similarity index 97% rename from crates/service/job/inference_job/src/job_dependencies.rs rename to crates/service/job/inference_job/src/state/job_dependencies.rs index d2250a7720..290f6cf1d8 100644 --- a/crates/service/job/inference_job/src/job_dependencies.rs +++ b/crates/service/job/inference_job/src/state/job_dependencies.rs @@ -23,12 +23,12 @@ use migration::voice_conversion::query_vc_model_for_migration::VcModel; use mysql_queries::common_inputs::container_environment_arg::ContainerEnvironmentArg; use mysql_queries::mediators::firehose_publisher::FirehosePublisher; -use crate::job_specific_dependencies::JobSpecificDependencies; +use crate::state::job_specific_dependencies::JobSpecificDependencies; use crate::util::filesystem::scoped_temp_dir_creator::ScopedTempDirCreator; use crate::util::instrumentation::JobInstruments; use crate::util::model_weights_cache::model_weights_cache_directory::ModelWeightsCacheDirectory; -use crate::util::scoped_job_type_execution::ScopedJobTypeExecution; -use crate::util::scoped_model_type_execution::ScopedModelTypeExecution; +use crate::state::scoped_job_type_execution::ScopedJobTypeExecution; +use crate::state::scoped_model_type_execution::ScopedModelTypeExecution; pub struct JobDependencies { /// Database dependencies. diff --git a/crates/service/job/inference_job/src/job_specific_dependencies.rs b/crates/service/job/inference_job/src/state/job_specific_dependencies.rs similarity index 98% rename from crates/service/job/inference_job/src/job_specific_dependencies.rs rename to crates/service/job/inference_job/src/state/job_specific_dependencies.rs index 0d34456972..10ff62fe4f 100644 --- a/crates/service/job/inference_job/src/job_specific_dependencies.rs +++ b/crates/service/job/inference_job/src/state/job_specific_dependencies.rs @@ -15,8 +15,8 @@ use crate::job::job_types::vc::rvc_v2::rvc_v2_dependencies::RvcV2Dependencies; use crate::job::job_types::vc::so_vits_svc::svc_dependencies::SvcDependencies; use crate::job::job_types::videofilter::rerender_a_video::rerender_dependencies::RerenderDependencies; use crate::job::job_types::workflow::comfy_ui_dependencies::ComfyDependencies; -use crate::util::scoped_job_type_execution::ScopedJobTypeExecution; -use crate::util::scoped_model_type_execution::ScopedModelTypeExecution; +use crate::state::scoped_job_type_execution::ScopedJobTypeExecution; +use crate::state::scoped_model_type_execution::ScopedModelTypeExecution; pub struct JobSpecificDependencies { pub maybe_rvc_v2_dependencies: Option, diff --git a/crates/service/job/inference_job/src/state/mod.rs b/crates/service/job/inference_job/src/state/mod.rs new file mode 100644 index 0000000000..850f44605f --- /dev/null +++ b/crates/service/job/inference_job/src/state/mod.rs @@ -0,0 +1,4 @@ +pub mod job_dependencies; +pub mod job_specific_dependencies; +pub mod scoped_job_type_execution; +pub mod scoped_model_type_execution; diff --git a/crates/service/job/inference_job/src/util/scoped_job_type_execution.rs b/crates/service/job/inference_job/src/state/scoped_job_type_execution.rs similarity index 97% rename from crates/service/job/inference_job/src/util/scoped_job_type_execution.rs rename to crates/service/job/inference_job/src/state/scoped_job_type_execution.rs index be71097984..d2e7e64d04 100644 --- a/crates/service/job/inference_job/src/util/scoped_job_type_execution.rs +++ b/crates/service/job/inference_job/src/state/scoped_job_type_execution.rs @@ -79,7 +79,7 @@ mod tests { use enums::by_table::generic_inference_jobs::inference_job_type::InferenceJobType; - use crate::util::scoped_job_type_execution::{parse_job_types, ScopedJobTypeExecution}; + use crate::state::scoped_job_type_execution::{parse_job_types, ScopedJobTypeExecution}; #[test] fn test_parse() { diff --git a/crates/service/job/inference_job/src/util/scoped_model_type_execution.rs b/crates/service/job/inference_job/src/state/scoped_model_type_execution.rs similarity index 97% rename from crates/service/job/inference_job/src/util/scoped_model_type_execution.rs rename to crates/service/job/inference_job/src/state/scoped_model_type_execution.rs index 4293b457f7..737727338c 100644 --- a/crates/service/job/inference_job/src/util/scoped_model_type_execution.rs +++ b/crates/service/job/inference_job/src/state/scoped_model_type_execution.rs @@ -84,7 +84,7 @@ mod tests { use enums::by_table::generic_inference_jobs::inference_model_type::InferenceModelType; - use crate::util::scoped_model_type_execution::{parse_model_types, ScopedModelTypeExecution}; + use crate::state::scoped_model_type_execution::{parse_model_types, ScopedModelTypeExecution}; #[test] fn test_parse() { diff --git a/crates/service/job/inference_job/src/util/mod.rs b/crates/service/job/inference_job/src/util/mod.rs index 1ceee03182..dfdd8ca674 100644 --- a/crates/service/job/inference_job/src/util/mod.rs +++ b/crates/service/job/inference_job/src/util/mod.rs @@ -4,5 +4,3 @@ pub mod extractors; pub mod filesystem; pub mod instrumentation; pub mod model_weights_cache; -pub mod scoped_job_type_execution; -pub mod scoped_model_type_execution;