This commit is contained in:
Brandon Thomas committed 2026-05-03 02:44:13 -04:00
1 parent 01dcf3b985
commit 1673fef867
2 files changed
+18 -29

No files matched your search

@@ -1,11 +1,10 @@
use crate::core::commands::enqueue::common::notify_frontend_of_errors::notify_frontend_of_errors;
use crate::core::commands::enqueue::generate_error::{GenerateError, MissingCredentialsReason};
use crate::core::commands::enqueue::generate_error::GenerateError;
use crate::core::commands::enqueue::task_enqueue_success::TaskEnqueueSuccess;
use crate::core::commands::generate::generate_image::providers::artcraft::handle_artcraft;
use crate::core::commands::generate::generate_image::tauri_generate_image_request::{
TauriGenerateImageErrorType, TauriGenerateImageRequest, TauriGenerateImageResponse,
};
use crate::core::commands::generate::generate_image::utils::parse_semantic_media_files::parse_semantic_media_files;
use crate::core::commands::response::failure_response_wrapper::{CommandErrorResponseWrapper, CommandErrorStatus};
use crate::core::commands::response::shorthand::Response;
use crate::core::events::basic_sendable_event_trait::BasicSendableEvent;
@@ -46,30 +45,8 @@ pub async fn generate_image_command(
});
}
// Resolve semantic media files (upload raw bytes if provided).
let creds = match storyteller_creds_manager.get_credentials() {
Ok(Some(creds)) => creds,
Ok(None) => {
let err = GenerateError::MissingCredentials(MissingCredentialsReason::NeedsStorytellerCredentials);
return handle_error_behavior(&app, err).await;
}
Err(err) => {
return handle_error_behavior(&app, GenerateError::from(err)).await;
}
};
let semantic_media_files = match parse_semantic_media_files(
&request,
&creds,
&app_env_configs.storyteller_host,
).await {
Ok(files) => files,
Err(err) => return handle_error_behavior(&app, err).await,
};
let result = handle_artcraft(
&request,
&semantic_media_files,
&app_env_configs,
&storyteller_creds_manager,
).await;
@@ -1,22 +1,34 @@
use log::info;
use crate::core::commands::enqueue::generate_error::GenerateError;
use crate::core::commands::enqueue::generate_error::{GenerateError, MissingCredentialsReason};
use crate::core::commands::enqueue::task_enqueue_success::TaskEnqueueSuccess;
use crate::core::commands::generate::generate_image::providers::artcraft::handle_artcraft_via_legacy::handle_artcraft_via_legacy;
use crate::core::commands::generate::generate_image::providers::artcraft::handle_artcraft_via_omni_endpoint::handle_artcraft_via_omni_endpoint;
use crate::core::commands::generate::generate_image::tauri_generate_image_request::TauriGenerateImageRequest;
use crate::core::commands::generate::generate_image::tauri_image_model::TauriImageModel;
use crate::core::commands::generate::generate_image::utils::parse_semantic_media_files::SemanticMediaFiles;
use crate::core::commands::generate::generate_image::utils::parse_semantic_media_files::parse_semantic_media_files;
use crate::core::state::app_env_configs::app_env_configs::AppEnvConfigs;
use crate::services::storyteller::state::storyteller_credential_manager::StorytellerCredentialManager;
/// Dispatch an image generation request to Artcraft.
pub async fn handle_artcraft(
request: &TauriGenerateImageRequest,
semantic_media_files: &SemanticMediaFiles,
app_env_configs: &AppEnvConfigs,
storyteller_creds_manager: &StorytellerCredentialManager,
) -> Result<TaskEnqueueSuccess, GenerateError> {
// Resolve credentials.
let creds = match storyteller_creds_manager.get_credentials()? {
Some(creds) => creds,
None => return Err(GenerateError::MissingCredentials(MissingCredentialsReason::NeedsStorytellerCredentials)),
};
// Resolve semantic media files (upload raw bytes if provided).
let semantic_media_files = parse_semantic_media_files(
request,
&creds,
&app_env_configs.storyteller_host,
).await?;
let use_legacy = request.model
.is_some_and(|m| is_legacy_only_model(m));
@@ -24,14 +36,14 @@ pub async fn handle_artcraft(
info!("Model {:?} is legacy-only, routing to artcraft_router path.", request.model);
handle_artcraft_via_legacy(
request,
semantic_media_files,
&semantic_media_files,
app_env_configs,
storyteller_creds_manager,
).await
} else {
handle_artcraft_via_omni_endpoint(
request,
semantic_media_files,
&semantic_media_files,
app_env_configs,
storyteller_creds_manager,
).await