mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-05 01:38:44 +00:00
fix directories, mime, and inference categories
This commit is contained in:
1 parent
c25cc3b126
commit
dbdc5b3c9d
5 files changed
+17
-18
No files matched your search
@@ -55,6 +55,7 @@ impl InferenceCategory {
|
||||
"text_to_speech" => Ok(Self::TextToSpeech),
|
||||
"voice_conversion" => Ok(Self::VoiceConversion),
|
||||
"video_filter" => Ok(Self::VideoFilter),
|
||||
"mocap" => Ok(Self::Mocap),
|
||||
_ => Err(format!("invalid value: {:?}", value)),
|
||||
}
|
||||
}
|
||||
@@ -67,6 +68,7 @@ impl InferenceCategory {
|
||||
Self::TextToSpeech,
|
||||
Self::VoiceConversion,
|
||||
Self::VideoFilter,
|
||||
Self::Mocap,
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
+2
-3
@@ -33,7 +33,7 @@ static IGNORED_ENVIRONMENT_VARS : Lazy<HashSet<String>> = Lazy::new(|| {
|
||||
#[derive(Clone)]
|
||||
pub struct MocapnetInferenceCommand {
|
||||
/// Where the code lives
|
||||
mocapnet_root_code_directory: PathBuf,
|
||||
pub(crate) mocapnet_root_code_directory: PathBuf,
|
||||
|
||||
/// A single executable script or a much larger bash command.
|
||||
executable_or_command: ExecutableOrCommand,
|
||||
@@ -152,8 +152,7 @@ impl MocapnetInferenceCommand {
|
||||
// get video path
|
||||
let video_path = args.video_file.as_ref();
|
||||
command.push_str(&format!(" --from {}", path_to_string(video_path)));
|
||||
|
||||
command.push_str(" --all --save ");
|
||||
command.push_str(" --all --save --headless 2");
|
||||
|
||||
// ===== End Python Args =====
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ use mimetypes::mimetype_for_file::get_mimetype_for_file;
|
||||
use mysql_queries::payloads::generic_inference_args::generic_inference_args::PolymorphicInferenceArgs::Mc;
|
||||
use mysql_queries::queries::generic_inference::job::list_available_generic_inference_jobs::AvailableInferenceJob;
|
||||
use mysql_queries::queries::media_files::create::insert_media_file_from_mocapnet::{insert_media_file_from_mocapnet, InsertArgs};
|
||||
use crate::job::job_types::mocap::mocap_net::mocapnet_inference_command::InferenceArgs;
|
||||
use crate::job::job_types::mocap::mocap_net::mocapnet_inference_command::{InferenceArgs, MocapnetInferenceCommand};
|
||||
|
||||
use crate::job::job_loop::job_success_result::{JobSuccessResult, ResultEntity};
|
||||
use crate::job::job_loop::process_single_job_error::ProcessSingleJobError;
|
||||
@@ -95,11 +95,12 @@ pub async fn process_job(args: MocapNetProcessJobArgs<'_>) -> Result<JobSuccessR
|
||||
job_progress_reporter.log_status("running inference")
|
||||
.map_err(|e| ProcessSingleJobError::Other(e))?;
|
||||
|
||||
let output_video_fs_path = work_temp_dir.path().join("blend.mp4");
|
||||
let output_bvh_path = model_dependencies.inference_command.mocapnet_root_code_directory.clone()
|
||||
.join("out.bvh");
|
||||
|
||||
info!("Running MocapNET inference...");
|
||||
|
||||
info!("Expected output video filename: {:?}", &output_video_fs_path);
|
||||
info!("Expected output bvh filename: {:?}", &output_bvh_path);
|
||||
|
||||
// TODO: Limit output length for non-premium (???)
|
||||
|
||||
@@ -143,7 +144,7 @@ pub async fn process_job(args: MocapNetProcessJobArgs<'_>) -> Result<JobSuccessR
|
||||
}
|
||||
|
||||
safe_delete_temp_file(&video_path.filesystem_path);
|
||||
safe_delete_temp_file(&output_video_fs_path);
|
||||
safe_delete_temp_file(&output_bvh_path);
|
||||
safe_delete_temp_file(&stderr_output_file);
|
||||
safe_delete_temp_directory(&work_temp_dir);
|
||||
|
||||
@@ -152,13 +153,13 @@ pub async fn process_job(args: MocapNetProcessJobArgs<'_>) -> Result<JobSuccessR
|
||||
|
||||
// ==================== CHECK NON-WATERMARKED RESULT ==================== //
|
||||
|
||||
info!("Checking that output file exists: {:?} ...", output_video_fs_path);
|
||||
info!("Checking that output file exists: {:?} ...", output_bvh_path);
|
||||
|
||||
check_file_exists(&output_video_fs_path).map_err(|e| ProcessSingleJobError::Other(e))?;
|
||||
check_file_exists(&output_bvh_path).map_err(|e| ProcessSingleJobError::Other(e))?;
|
||||
|
||||
// ==================== OPTIONAL WATERMARK ==================== //
|
||||
|
||||
let finished_file = output_video_fs_path.clone();
|
||||
let finished_file = output_bvh_path.clone();
|
||||
|
||||
// ==================== CHECK ALL FILES EXIST AND GET METADATA ==================== //
|
||||
|
||||
@@ -172,10 +173,7 @@ pub async fn process_job(args: MocapNetProcessJobArgs<'_>) -> Result<JobSuccessR
|
||||
|
||||
info!("Interrogating result mimetype ...");
|
||||
|
||||
let mimetype = get_mimetype_for_file(&finished_file)
|
||||
.map_err(|err| ProcessSingleJobError::from_io_error(err))?
|
||||
.map(|mime| mime.to_string())
|
||||
.ok_or(ProcessSingleJobError::Other(anyhow!("Mimetype could not be determined")))?;
|
||||
let mimetype = "application/octet-stream";
|
||||
|
||||
info!("Calculating sha256...");
|
||||
|
||||
@@ -209,7 +207,7 @@ pub async fn process_job(args: MocapNetProcessJobArgs<'_>) -> Result<JobSuccessR
|
||||
// ==================== DELETE TEMP FILES ==================== //
|
||||
|
||||
safe_delete_temp_file(&video_path.filesystem_path);
|
||||
safe_delete_temp_file(&output_video_fs_path);
|
||||
safe_delete_temp_file(&output_bvh_path);
|
||||
safe_delete_temp_file(&stderr_output_file);
|
||||
safe_delete_temp_directory(&work_temp_dir);
|
||||
|
||||
|
||||
+2
-2
@@ -188,7 +188,7 @@ pub async fn enqueue_mocapnet_handler(
|
||||
maybe_raw_inference_text: None, // No text
|
||||
maybe_max_duration_seconds: None,
|
||||
maybe_inference_args: Some(GenericInferenceArgs {
|
||||
inference_category: Some(InferenceCategoryAbbreviated::VideoFilter),
|
||||
inference_category: Some(InferenceCategoryAbbreviated::Mocap),
|
||||
args: Some(PolymorphicInferenceArgs::Mc(inference_args)),
|
||||
}),
|
||||
maybe_creator_user_token: maybe_user_token.as_ref(),
|
||||
@@ -196,7 +196,7 @@ pub async fn enqueue_mocapnet_handler(
|
||||
creator_ip_address: &ip_address,
|
||||
creator_set_visibility: set_visibility,
|
||||
priority_level,
|
||||
requires_keepalive: plan.rerender_requires_frontent_keepalive(),
|
||||
requires_keepalive: plan.mocapnet_requires_frontend_keepalive(),
|
||||
is_debug_request,
|
||||
maybe_routing_tag: maybe_routing_tag.as_deref(),
|
||||
mysql_pool: &server_state.mysql_pool,
|
||||
|
||||
@@ -229,7 +229,7 @@ pub fn add_routes<T, B> (app: App<T>, server_environment: ServerEnvironment) ->
|
||||
|
||||
// ==================== Mocap ========================
|
||||
let mut app = RouteBuilder::from_app(app)
|
||||
.add_get("/v1/mocap/mocapnet/create", enqueue_mocapnet_handler)
|
||||
.add_post("/v1/mocap/mocapnet/create", enqueue_mocapnet_handler)
|
||||
.into_app();
|
||||
|
||||
// ==================== "Generic" Inference ====================
|
||||
|
||||
Reference in new issue
Block a user