move server "state" / configs to module

This commit is contained in:
Brandon Thomas committed 2024-07-16 22:28:43 -04:00
1 parent 17ce397d09
commit 0fdfc3b8fc
38 files changed
+46 -54

No files matched your search

@@ -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.
@@ -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;
@@ -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,
@@ -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
@@ -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.
@@ -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<JobSuccessResult, ProcessSingleJobError> {
match job.maybe_model_type {
@@ -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)]
@@ -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<JobSuccessResult, ProcessSingleJobError> {
@@ -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
@@ -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";
@@ -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<JobSuccessResult, ProcessSingleJobError> {
let job_success_result = mocap_net::process_job::process_job(
@@ -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<JobSuccessResult, ProcessSingleJobError> {
@@ -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";
@@ -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;
@@ -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;
@@ -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 {
@@ -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.
@@ -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";
@@ -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;
@@ -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.
@@ -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<JobSuccessResult, ProcessSingleJobError> {
let model_token = match job.maybe_model_token.as_deref() {
@@ -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_";
@@ -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_";
@@ -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<JobSuccessResult, ProcessSingleJobError> {
let job_success_result = rerender_a_video::process_job::process_job(
@@ -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;
@@ -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,
@@ -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};
@@ -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,
@@ -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<JobSuccessResult, ProcessSingleJobError>{
let mysql_pool = &deps.db.mysql_pool;
@@ -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;
@@ -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 {
+5 -6
View File
@@ -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)
@@ -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.
@@ -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<RvcV2Dependencies>,
@@ -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;
@@ -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() {
@@ -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() {
@@ -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;