cleanup; upload fbx

This commit is contained in:
Brandon Thomas committed 2024-01-28 06:30:22 -05:00
1 parent d8fbc09867
commit c6dc35eccb
5 files changed
+28 -44

No files matched your search

@@ -8,6 +8,7 @@ use enums::common::visibility::Visibility;
use errors::AnyhowResult;
use sqlx;
use sqlx::MySqlPool;
use buckets::public::media_files::bucket_file_path::MediaFileBucketPath;
use tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken;
use tokens::tokens::media_files::MediaFileToken;
use tokens::tokens::model_weights::ModelWeightToken;
@@ -49,13 +50,6 @@ pub struct InsertArgs<'a> {
pub maybe_public_bucket_extension: Option<&'a str>,
pub extra_file_modification_info: Option<&'a str>, // Assuming TEXT type can be represented by &str
// Creator information
pub maybe_creator_user_token: Option<&'a UserToken>,
pub maybe_creator_anonymous_visitor_token: Option<&'a AnonymousVisitorTrackingToken>,
pub creator_ip_address: &'a str,
pub creator_set_visibility: Visibility,
pub maybe_creator_file_synthetic_id_category: IdCategory,
pub maybe_creator_category_synthetic_id_category: IdCategory,
@@ -165,11 +159,11 @@ pub async fn insert_media_file_generic(
args.maybe_public_bucket_extension,
args.extra_file_modification_info,
args.maybe_creator_user_token.map(|e| e.to_string()),
args.maybe_creator_anonymous_visitor_token.map(|e| e.to_string()),
args.job.maybe_creator_user_token.as_deref(),
args.job.maybe_creator_anonymous_visitor_token.as_deref(),
args.creator_ip_address,
args.creator_set_visibility.to_str(),
args.job.creator_ip_address,
args.job.creator_set_visibility.to_str(),
maybe_creator_file_synthetic_id,
maybe_creator_category_synthetic_id,
@@ -181,9 +175,7 @@ pub async fn insert_media_file_generic(
).execute(&mut *transaction).await;
let record_id = match query_result {
Ok(res) => {
res.last_insert_id()
},
Ok(res) => res.last_insert_id(),
Err(err) => {
// TODO: handle better
//transaction.rollback().await?;
@@ -228,12 +228,8 @@ pub async fn process_job(args: FbxToGltfJobArgs<'_>) -> Result<JobSuccessResult,
maybe_public_bucket_prefix: None,
maybe_public_bucket_extension: Some(BUCKET_FILE_EXTENSION),
extra_file_modification_info: None,
maybe_creator_user_token: None,
maybe_creator_anonymous_visitor_token: None,
creator_ip_address: &job.creator_ip_address,
creator_set_visibility: job.creator_set_visibility,
maybe_creator_file_synthetic_id_category: IdCategory::MediaFile,
maybe_creator_category_synthetic_id_category: IdCategory::MediaFile,
maybe_creator_category_synthetic_id_category: IdCategory::MocapResult,
maybe_mod_user_token: None,
is_batch_generated: false,
is_generated_on_prem: false,
@@ -325,23 +325,15 @@ pub async fn process_job_lora(
let sd_deps = match
&args.job_dependencies.job.job_specific_dependencies.maybe_stable_diffusion_dependencies
{
None => {
return Err(ProcessSingleJobError::Other(anyhow!("Missing Job Specific Dependencies")));
}
Some(val) => { val }
Some(val) => val,
None => return Err(ProcessSingleJobError::Other(anyhow!("Missing Job Specific Dependencies"))),
};
let creator_ip_address = &job.creator_ip_address;
let creator_user_token: UserToken;
match &job.maybe_creator_user_token {
Some(token) => {
creator_user_token = UserToken::new_from_str(token);
}
None => {
return Err(ProcessSingleJobError::InvalidJob(anyhow!("Missing Creator User Token")));
}
}
let creator_user_token = match job.maybe_creator_user_token.as_deref() {
Some(token) => UserToken::new_from_str(token),
None => return Err(ProcessSingleJobError::InvalidJob(anyhow!("Missing Creator User Token"))),
};
let work_temp_dir = format!("temp_stable_diffusion_inference_{}", job.id.0);
@@ -760,15 +752,13 @@ pub async fn process_job_inference(
});
// hack to check the directory before clean up.
// let thirtyMinutes = 1800;
// thread::sleep(Duration::from_secs(thirtyMinutes));
// upload media and create a record.
let inference_duration = Instant::now().duration_since(inference_start_time);
let creator_ip_address = &job.creator_ip_address;
// run a for loop for output images output_0 in the folder then use upload media.
// pngs
@@ -834,17 +824,13 @@ pub async fn process_job_inference(
maybe_duration_millis: Some(inference_duration.as_millis() as u64),
maybe_audio_encoding: None,
maybe_video_encoding: None,
maybe_frame_width: Some(sd_args.maybe_width.unwrap_or(512) as u32),
maybe_frame_height: Some(sd_args.maybe_height.unwrap_or(512) as u32),
maybe_frame_width: Some(sd_args.maybe_width.unwrap_or(512)),
maybe_frame_height: Some(sd_args.maybe_height.unwrap_or(512)),
checksum_sha2: metadata.sha256_checksum.as_str(),
public_bucket_directory_hash: bucket_details.object_hash.as_str(),
maybe_public_bucket_prefix: Some(bucket_details.prefix.as_str()),
maybe_public_bucket_extension: Some(bucket_details.suffix.as_str()),
extra_file_modification_info: Some(&inputs),
maybe_creator_user_token: Some(&creator_user_token),
maybe_creator_anonymous_visitor_token: anon_user_token.as_ref(),
creator_ip_address,
creator_set_visibility: args.job.creator_set_visibility,
maybe_creator_file_synthetic_id_category: IdCategory::MediaFile,
maybe_creator_category_synthetic_id_category: IdCategory::ModelWeights,
maybe_mod_user_token: None,
@@ -321,7 +321,7 @@ fn record_to_payload(
InferenceCategory::ImageGeneration => {
"".to_string()
}
InferenceCategory::ConvertFbxToGltf => {
InferenceCategory::FormatConversion => {
"".to_string()
}
};
@@ -256,13 +256,23 @@ pub async fn process_upload_media_file(
}
}
let mut maybe_mocap_extension = None;
if media_file_type.is_none() && maybe_mimetype.is_none() {
// https://research.cs.wisc.edu/graphics/Courses/cs-838-1999/Jeff/BVH.html
const BVH_HEADER : &[u8] = "HIERARCHY".as_bytes();
// https://code.blender.org/2013/08/fbx-binary-file-format-specification/
const FBX_HEADER : &[u8] = "Kaydara FBX Binary".as_bytes();
if bytes.starts_with(BVH_HEADER) {
media_file_type = Some(MediaFileType::Mocap);
maybe_mimetype = Some("application/octet-stream");
maybe_mocap_extension = Some(".bvh".to_string());
} else if bytes.starts_with(FBX_HEADER) {
media_file_type = Some(MediaFileType::Mocap);
maybe_mimetype = Some("application/octet-stream");
maybe_mocap_extension = Some(".fbx".to_string());
}
}
@@ -293,7 +303,7 @@ pub async fn process_upload_media_file(
.map(|extension| format!(".{extension}"));
if extension.is_none() && media_file_type == MediaFileType::Mocap {
extension = Some(".bvh".to_string());
extension = maybe_mocap_extension;
}
const PREFIX : Option<&str> = Some("upload_");