From 794993975ff05cbfc5a7c64c4b7340a67efc1f19 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 6 Jun 2025 21:34:09 -0400 Subject: [PATCH] end-to-end hunyuan3d 2.0 --- ...04b9f1d695080a581936ac6ce00b6f437b2764e741be.json} | 6 +++--- .../fal/commands/fal_hunyuan_image_to_3d_command.rs | 1 - .../generate/object/generate_hunyuan2_image_to_3d.rs | 2 +- .../generic_insert/insert_media_file_generic.rs | 8 ++++++++ .../insert_media_file_generic_from_job.rs | 1 + .../insert_builder/media_file_insert_builder.rs | 11 +++++++++++ .../insert_media_file_from_studio_scene_render.rs | 1 + .../update_gpt_image_job_status_handler.rs | 1 - .../endpoints/webhooks/handle_model_mesh_payload.rs | 2 ++ frontend/clean_modules.sh | 1 + frontend/package-lock.json | 2 +- 11 files changed, 29 insertions(+), 7 deletions(-) rename .sqlx/{query-c58f414b5e4d0f0420d1894e2f40311e5613919f49f3ac91f81f5fc2bef1bea8.json => query-b4470e607c005421dd8504b9f1d695080a581936ac6ce00b6f437b2764e741be.json} (50%) diff --git a/.sqlx/query-c58f414b5e4d0f0420d1894e2f40311e5613919f49f3ac91f81f5fc2bef1bea8.json b/.sqlx/query-b4470e607c005421dd8504b9f1d695080a581936ac6ce00b6f437b2764e741be.json similarity index 50% rename from .sqlx/query-c58f414b5e4d0f0420d1894e2f40311e5613919f49f3ac91f81f5fc2bef1bea8.json rename to .sqlx/query-b4470e607c005421dd8504b9f1d695080a581936ac6ce00b6f437b2764e741be.json index 7d61829eb8..72e13fd7a8 100644 --- a/.sqlx/query-c58f414b5e4d0f0420d1894e2f40311e5613919f49f3ac91f81f5fc2bef1bea8.json +++ b/.sqlx/query-b4470e607c005421dd8504b9f1d695080a581936ac6ce00b6f437b2764e741be.json @@ -1,12 +1,12 @@ { "db_name": "MySQL", - "query": "\n INSERT INTO media_files\n SET\n token = ?,\n\n media_class = ?,\n media_type = ?,\n\n is_user_upload = ?,\n is_intermediate_system_file = ?,\n\n origin_category = ?, \n origin_product_category = ?, \n maybe_origin_model_type = ?, \n maybe_origin_model_token = ?, \n maybe_origin_filename = ?,\n\n is_batch_generated = ?,\n maybe_batch_token = ?,\n\n maybe_mime_type = ?,\n file_size_bytes = ?,\n maybe_duration_millis = ?,\n maybe_audio_encoding = ?, \n maybe_video_encoding = ?, \n maybe_frame_width = ?, \n maybe_frame_height = ?,\n maybe_prompt_token = ?,\n checksum_sha2 = ?,\n\n maybe_title = ?,\n maybe_text_transcript = ?,\n\n maybe_scene_source_media_file_token = ?,\n\n public_bucket_directory_hash = ?, \n maybe_public_bucket_prefix = ?, \n maybe_public_bucket_extension = ?, \n\n maybe_creator_user_token = ?, \n maybe_creator_anonymous_visitor_token = ?, \n\n creator_ip_address = ?, \n creator_set_visibility = ?, \n\n maybe_creator_file_synthetic_id = ?, \n maybe_creator_category_synthetic_id = ?,\n\n extra_file_modification_info = ?,\n\n maybe_mod_user_token = ?, \n is_generated_on_prem = ?, \n generated_by_worker = ?, \n generated_by_cluster = ?\n ", + "query": "\n INSERT INTO media_files\n SET\n token = ?,\n\n media_class = ?,\n media_type = ?,\n\n is_user_upload = ?,\n is_intermediate_system_file = ?,\n\n origin_category = ?, \n origin_product_category = ?, \n maybe_origin_model_type = ?, \n maybe_origin_model_token = ?, \n maybe_origin_filename = ?,\n\n is_batch_generated = ?,\n maybe_batch_token = ?,\n\n maybe_mime_type = ?,\n file_size_bytes = ?,\n maybe_duration_millis = ?,\n maybe_audio_encoding = ?, \n maybe_video_encoding = ?, \n maybe_frame_width = ?, \n maybe_frame_height = ?,\n maybe_prompt_token = ?,\n checksum_sha2 = ?,\n \n maybe_engine_category = ?,\n\n maybe_title = ?,\n maybe_text_transcript = ?,\n\n maybe_scene_source_media_file_token = ?,\n\n public_bucket_directory_hash = ?, \n maybe_public_bucket_prefix = ?, \n maybe_public_bucket_extension = ?, \n\n maybe_creator_user_token = ?, \n maybe_creator_anonymous_visitor_token = ?, \n\n creator_ip_address = ?, \n creator_set_visibility = ?, \n\n maybe_creator_file_synthetic_id = ?, \n maybe_creator_category_synthetic_id = ?,\n\n extra_file_modification_info = ?,\n\n maybe_mod_user_token = ?, \n is_generated_on_prem = ?, \n generated_by_worker = ?, \n generated_by_cluster = ?\n ", "describe": { "columns": [], "parameters": { - "Right": 38 + "Right": 39 }, "nullable": [] }, - "hash": "c58f414b5e4d0f0420d1894e2f40311e5613919f49f3ac91f81f5fc2bef1bea8" + "hash": "b4470e607c005421dd8504b9f1d695080a581936ac6ce00b6f437b2764e741be" } diff --git a/crates/desktop/artcraft/src/services/fal/commands/fal_hunyuan_image_to_3d_command.rs b/crates/desktop/artcraft/src/services/fal/commands/fal_hunyuan_image_to_3d_command.rs index 3fd602df5c..12cfb18759 100644 --- a/crates/desktop/artcraft/src/services/fal/commands/fal_hunyuan_image_to_3d_command.rs +++ b/crates/desktop/artcraft/src/services/fal/commands/fal_hunyuan_image_to_3d_command.rs @@ -196,7 +196,6 @@ pub async fn image_to_3d( ) -> Result<(), InnerError> { let api_key = fal_creds_manager.get_key_required()?; - let creds = storyteller_creds_manager.get_credentials_required()?; let mut temp_download; diff --git a/crates/lib/api_clients/storyteller_client/src/generate/object/generate_hunyuan2_image_to_3d.rs b/crates/lib/api_clients/storyteller_client/src/generate/object/generate_hunyuan2_image_to_3d.rs index 47b25451a0..789efa1ebb 100644 --- a/crates/lib/api_clients/storyteller_client/src/generate/object/generate_hunyuan2_image_to_3d.rs +++ b/crates/lib/api_clients/storyteller_client/src/generate/object/generate_hunyuan2_image_to_3d.rs @@ -65,5 +65,5 @@ pub async fn generate_hunyuan2_image_to_3d( fn get_route(api_host: &ApiHost) -> String { let api_hostname = api_host.to_api_hostname(); - format!("https://{}/{}", api_hostname, GENERATE_HUNYUAN_2_IMAGE_TO_3D_URL_PATH) + format!("https://{}{}", api_hostname, GENERATE_HUNYUAN_2_IMAGE_TO_3D_URL_PATH) } diff --git a/crates/schema/database/mysql_queries/src/queries/media_files/create/generic_insert/insert_media_file_generic.rs b/crates/schema/database/mysql_queries/src/queries/media_files/create/generic_insert/insert_media_file_generic.rs index deedbad43f..d132b59188 100644 --- a/crates/schema/database/mysql_queries/src/queries/media_files/create/generic_insert/insert_media_file_generic.rs +++ b/crates/schema/database/mysql_queries/src/queries/media_files/create/generic_insert/insert_media_file_generic.rs @@ -4,6 +4,7 @@ use sqlx::MySqlPool; use enums::by_table::generic_synthetic_ids::id_category::IdCategory; use enums::by_table::media_files::media_file_class::MediaFileClass; +use enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory; use enums::by_table::media_files::media_file_origin_category::MediaFileOriginCategory; use enums::by_table::media_files::media_file_origin_model_type::MediaFileOriginModelType; use enums::by_table::media_files::media_file_origin_product_category::MediaFileOriginProductCategory; @@ -51,6 +52,9 @@ pub struct InsertArgs<'a> { pub maybe_frame_width: Option, pub maybe_frame_height: Option, pub checksum_sha2: &'a str, + + // Media info for certain product areas + pub maybe_engine_category: Option, // TODO: Deprecate // User text information pub maybe_title: Option<&'a str>, @@ -152,6 +156,8 @@ pub async fn insert_media_file_generic( maybe_frame_height = ?, maybe_prompt_token = ?, checksum_sha2 = ?, + + maybe_engine_category = ?, maybe_title = ?, maybe_text_transcript = ?, @@ -205,6 +211,8 @@ pub async fn insert_media_file_generic( args.maybe_prompt_token.map(|t| t.as_str()), args.checksum_sha2, + args.maybe_engine_category.map(|e| e.to_str()), + args.maybe_title, args.maybe_text_transcript, diff --git a/crates/schema/database/mysql_queries/src/queries/media_files/create/generic_insert/insert_media_file_generic_from_job.rs b/crates/schema/database/mysql_queries/src/queries/media_files/create/generic_insert/insert_media_file_generic_from_job.rs index cae2cdf10b..46d9ccd561 100644 --- a/crates/schema/database/mysql_queries/src/queries/media_files/create/generic_insert/insert_media_file_generic_from_job.rs +++ b/crates/schema/database/mysql_queries/src/queries/media_files/create/generic_insert/insert_media_file_generic_from_job.rs @@ -107,6 +107,7 @@ pub async fn insert_media_file_generic_from_job( maybe_extra_media_info: args.maybe_extra_media_info, maybe_frame_height: args.maybe_frame_height, maybe_frame_width: args.maybe_frame_width, + maybe_engine_category: None, maybe_mime_type: args.maybe_mime_type, maybe_mod_user_token: args.maybe_mod_user_token, maybe_origin_filename: args.maybe_origin_filename, diff --git a/crates/schema/database/mysql_queries/src/queries/media_files/create/insert_builder/media_file_insert_builder.rs b/crates/schema/database/mysql_queries/src/queries/media_files/create/insert_builder/media_file_insert_builder.rs index 40825997d8..a156b95d67 100644 --- a/crates/schema/database/mysql_queries/src/queries/media_files/create/insert_builder/media_file_insert_builder.rs +++ b/crates/schema/database/mysql_queries/src/queries/media_files/create/insert_builder/media_file_insert_builder.rs @@ -9,6 +9,7 @@ use enums::by_table::media_files::media_file_type::MediaFileType; use enums::common::visibility::Visibility; use errors::AnyhowResult; use sqlx::MySqlPool; +use enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory; use tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken; use tokens::tokens::media_files::MediaFileToken; use tokens::tokens::users::UserToken; @@ -51,6 +52,9 @@ pub struct MediaFileInsertBuilder { maybe_frame_height: Option, checksum_sha2: Option, // NB: Non-nullable field + // Media info for certain product areas + pub maybe_engine_category: Option, // TODO: Deprecate + // // User text information // maybe_title: Option<&'a str>, // maybe_text_transcript: Option<&'a str>, @@ -94,6 +98,7 @@ impl MediaFileInsertBuilder { maybe_frame_width: None, maybe_frame_height: None, checksum_sha2: None, + maybe_engine_category: None, public_bucket_directory_hash: None, } } @@ -207,6 +212,11 @@ impl MediaFileInsertBuilder { self } + pub fn maybe_engine_category(mut self, maybe_engine_category: Option) -> Self { + self.maybe_engine_category = maybe_engine_category; + self + } + // TODO: maybe_title // TODO: maybe_text_transcript // TODO: maybe_scene_source_media_file_token @@ -258,6 +268,7 @@ impl MediaFileInsertBuilder { maybe_video_encoding: None, // TODO maybe_frame_width: self.maybe_frame_width, maybe_frame_height: self.maybe_frame_height, + maybe_engine_category: self.maybe_engine_category, checksum_sha2: &checksum_sha2, maybe_title: None, // TODO maybe_text_transcript: None, // TODO diff --git a/crates/schema/database/mysql_queries/src/queries/media_files/create/insert_media_file_from_studio_scene_render.rs b/crates/schema/database/mysql_queries/src/queries/media_files/create/insert_media_file_from_studio_scene_render.rs index e7a0f764ac..846b187a34 100644 --- a/crates/schema/database/mysql_queries/src/queries/media_files/create/insert_media_file_from_studio_scene_render.rs +++ b/crates/schema/database/mysql_queries/src/queries/media_files/create/insert_media_file_from_studio_scene_render.rs @@ -111,6 +111,7 @@ pub async fn insert_media_file_from_studio_scene_render( maybe_batch_token: None, maybe_prompt_token: None, maybe_mod_user_token: None, + maybe_engine_category: None, }).await?; Ok(new_media_token) diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/image_studio/update_gpt_image_job_status_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/image_studio/update_gpt_image_job_status_handler.rs index 1d9425d64d..4e9ffed07f 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/image_studio/update_gpt_image_job_status_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/image_studio/update_gpt_image_job_status_handler.rs @@ -32,7 +32,6 @@ use mysql_queries::queries::generic_inference::web::get_inference_job_status::{g use mysql_queries::queries::generic_inference::web::job_status::GenericInferenceJobStatus; use mysql_queries::queries::generic_inference::web::mark_generic_inference_job_cancelled_by_user::mark_generic_inference_job_cancelled_by_user; use mysql_queries::queries::generic_inference::web::mark_generic_inference_job_successfully_done_by_token::mark_generic_inference_job_successfully_done_by_token; -use mysql_queries::queries::media_files::create::generic_insert::insert_media_file_generic::{insert_media_file_generic, InsertArgs}; use mysql_queries::queries::media_files::create::insert_builder::media_file_insert_builder::MediaFileInsertBuilder; use mysql_queries::queries::media_files::create::specialized_insert::insert_media_file_from_file_upload::{insert_media_file_from_file_upload, InsertMediaFileFromUploadArgs, UploadType}; use mysql_queries::queries::tts::tts_inference_jobs::mark_tts_inference_job_permanently_dead::mark_tts_inference_job_permanently_dead; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/webhooks/handle_model_mesh_payload.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/webhooks/handle_model_mesh_payload.rs index 77951e5208..6cbf650f82 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/webhooks/handle_model_mesh_payload.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/webhooks/handle_model_mesh_payload.rs @@ -18,6 +18,7 @@ use mysql_queries::queries::generic_inference::fal::get_inference_job_by_fal_id: use mysql_queries::queries::media_files::create::insert_builder::media_file_insert_builder::MediaFileInsertBuilder; use serde_json::{Map, Value}; use std::sync::Arc; +use enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory; use tokens::tokens::media_files::MediaFileToken; const PREFIX : Option<&str> = Some("artcraft_"); @@ -90,6 +91,7 @@ pub async fn handle_model_mesh_payload( .media_file_class(MediaFileClass::Dimensional) .media_file_type(media_file_type) .media_file_origin_category(MediaFileOriginCategory::Inference) + .maybe_engine_category(Some(MediaFileEngineCategory::Object)) //.media_file_origin_product_category(MediaFileOriginProductCategory::Unknown) .mime_type(mime_type) .file_size_bytes(file_size_bytes as u64) diff --git a/frontend/clean_modules.sh b/frontend/clean_modules.sh index 6e69b5959f..5caa857ccd 100755 --- a/frontend/clean_modules.sh +++ b/frontend/clean_modules.sh @@ -14,6 +14,7 @@ rm -rf ./apps/editor2d/node_modules/ rm -rf ./apps/editor3d/node_modules/ echo "Removing Build directories..." +rm -rf ./apps/artcraft-website/dist/ rm -rf ./apps/editor2d/dist/ rm -rf ./apps/editor3d/dist/ rm -rf ./libs/api/dist/ diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 5639295c74..59d94dc0a2 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -28691,4 +28691,4 @@ } } } -} \ No newline at end of file +}