fix requests

This commit is contained in:
Brandon Thomas committed 2026-05-07 23:05:51 -04:00
1 parent 9c8db2f828
commit 4485a8aabc
4 files changed
+44 -19

No files matched your search

@@ -1,3 +1,3 @@
mod maybe_notify_frontend_of_billing_errors;
mod maybe_notify_frontend_of_grok_errors;
pub mod maybe_notify_frontend_of_billing_errors;
pub mod maybe_notify_frontend_of_grok_errors;
pub mod notify_frontend_of_errors;
@@ -1,15 +1,12 @@
use crate::core::commands::enqueue::generate_error::GenerateError;
use crate::core::commands::enqueue::task_enqueue_success::TaskEnqueueSuccess;
use crate::core::commands::generate::generate_video::artcraft::get_storyteller_creds_or_error::get_storyteller_creds_or_error;
use crate::core::commands::generate::generate_video::artcraft::handle_artcraft_kling_1p6_pro::handle_artcraft_kling_1p6_pro;
use crate::core::commands::generate::generate_video::artcraft::handle_artcraft_kling_2p1_master::handle_artcraft_kling_2p1_master;
use crate::core::commands::generate::generate_video::artcraft::handle_artcraft_kling_2p1_pro::handle_artcraft_kling_2p1_pro;
use crate::core::commands::generate::generate_video::artcraft::handle_artcraft_kling_2p5_turbo_pro::handle_artcraft_kling_2p5_turbo_pro;
use crate::core::commands::generate::generate_video::artcraft::handle_artcraft_kling_2p6_pro::handle_artcraft_kling_2p6_pro;
use crate::core::commands::generate::generate_video::artcraft::handle_artcraft_video_via_router::handle_artcraft_video_via_router;
use crate::core::commands::generate::generate_video::artcraft::handle_artcraft_seedance_1_lite::handle_artcraft_seedance_1_lite;
use crate::core::events::generation_events::common::GenerationModel;
use artcraft_router::api::common_video_model::CommonVideoModel;
use crate::core::commands::generate::generate_video::artcraft::handle_artcraft_seedance_2p0::handle_artcraft_seedance_2p0;
use crate::core::commands::generate::generate_video::artcraft::handle_artcraft_sora2::handle_artcraft_sora2;
use crate::core::commands::generate::generate_video::artcraft::handle_artcraft_sora2_pro::handle_artcraft_sora2_pro;
use crate::core::commands::generate::generate_video::artcraft::handle_artcraft_veo2::handle_artcraft_veo2;
@@ -17,11 +14,13 @@ use crate::core::commands::generate::generate_video::artcraft::handle_artcraft_v
use crate::core::commands::generate::generate_video::artcraft::handle_artcraft_veo3_fast::handle_artcraft_veo3_fast;
use crate::core::commands::generate::generate_video::artcraft::handle_artcraft_veo3p1::handle_artcraft_veo3p1;
use crate::core::commands::generate::generate_video::artcraft::handle_artcraft_veo3p1_fast::handle_artcraft_veo3p1_fast;
use crate::core::commands::generate::generate_video::artcraft::handle_artcraft_video_via_router::handle_artcraft_video_via_router;
use crate::core::commands::generate::generate_video::request::{TauriGenerateVideoRequest, TauriVideoModel};
use crate::core::commands::enqueue::task_enqueue_success::TaskEnqueueSuccess;
use crate::core::events::generation_events::common::GenerationModel;
use crate::core::state::app_env_configs::app_env_configs::AppEnvConfigs;
use crate::services::storyteller::state::storyteller_credential_manager::StorytellerCredentialManager;
use anyhow::anyhow;
use artcraft_router::api::common_video_model::CommonVideoModel;
use tauri::AppHandle;
pub async fn handle_video_artcraft(
@@ -38,12 +37,12 @@ pub async fn handle_video_artcraft(
Err(GenerateError::no_model_specified())
},
// Handled via router
Some(TauriVideoModel::Kling3p0Pro) => handle_artcraft_video_via_router(request, app_env_configs, &creds, CommonTauriVideoModel::Kling3p0Pro, GenerationModel::Kling3p0Pro).await,
Some(TauriVideoModel::Kling3p0Standard) => handle_artcraft_video_via_router(request, app_env_configs, &creds, CommonTauriVideoModel::Kling3p0Standard, GenerationModel::Kling3p0Standard).await,
Some(TauriVideoModel::Seedance1p5Pro) => handle_artcraft_video_via_router(request, app_env_configs, &creds, CommonTauriVideoModel::Seedance1p5Pro, GenerationModel::Seedance1p5Pro).await,
Some(TauriVideoModel::Seedance2p0) => handle_artcraft_video_via_router(request, app_env_configs, &creds, CommonTauriVideoModel::Seedance2p0, GenerationModel::Seedance2p0).await,
Some(TauriVideoModel::Seedance2p0Fast) => handle_artcraft_video_via_router(request, app_env_configs, &creds, CommonTauriVideoModel::Seedance2p0Fast, GenerationModel::Seedance2p0Fast).await,
Some(TauriVideoModel::HappyHorse1p0) => handle_artcraft_video_via_router(request, app_env_configs, &creds, CommonTauriVideoModel::HappyHorse1p0, GenerationModel::HappyHorse1p0).await,
Some(TauriVideoModel::Kling3p0Pro) => handle_artcraft_video_via_router(request, app_env_configs, &creds, CommonVideoModel::Kling3p0Pro, GenerationModel::Kling3p0Pro).await,
Some(TauriVideoModel::Kling3p0Standard) => handle_artcraft_video_via_router(request, app_env_configs, &creds, CommonVideoModel::Kling3p0Standard, GenerationModel::Kling3p0Standard).await,
Some(TauriVideoModel::Seedance1p5Pro) => handle_artcraft_video_via_router(request, app_env_configs, &creds, CommonVideoModel::Seedance1p5Pro, GenerationModel::Seedance1p5Pro).await,
Some(TauriVideoModel::Seedance2p0) => handle_artcraft_video_via_router(request, app_env_configs, &creds, CommonVideoModel::Seedance2p0, GenerationModel::Seedance2p0).await,
Some(TauriVideoModel::Seedance2p0Fast) => handle_artcraft_video_via_router(request, app_env_configs, &creds, CommonVideoModel::Seedance2p0Fast, GenerationModel::Seedance2p0Fast).await,
Some(TauriVideoModel::HappyHorse1p0) => handle_artcraft_video_via_router(request, app_env_configs, &creds, CommonVideoModel::HappyHorse1p0, GenerationModel::HappyHorse1p0).await,
// Legacy endpoints
Some(TauriVideoModel::Kling16Pro) => handle_artcraft_kling_1p6_pro(request, app_env_configs, &creds).await,
Some(TauriVideoModel::Kling21Pro) => handle_artcraft_kling_2p1_pro(request, app_env_configs, &creds).await,
@@ -29,7 +29,7 @@ use tauri::{AppHandle, State};
#[tauri::command]
pub async fn generate_video_command(
request: TauriGenerateVideoRequest,
mut request: TauriGenerateVideoRequest,
app: AppHandle,
app_env_configs: State<'_, AppEnvConfigs>,
app_data_root: State<'_, AppDataRoot>,
@@ -44,6 +44,18 @@ pub async fn generate_video_command(
info!("generate_video_command called, request: {:?}", request);
if request.image_media_token.is_none()
&& request.start_frame_image_media_token.is_some() {
// NB: This is to fix the legacy handlers
request.image_media_token = request.start_frame_image_media_token.clone();
}
if request.image_media_token.is_some()
&& request.start_frame_image_media_token.is_none() {
// NB: This is to fix the modern handlers
request.start_frame_image_media_token = request.image_media_token.clone();
}
let result = handle_request(
request,
&app,
@@ -74,37 +74,51 @@ pub enum TauriVideoModel {
Veo3p1Fast,
}
#[derive(Deserialize, Debug)]
#[derive(Deserialize, Debug, Clone)]
pub struct TauriGenerateVideoRequest {
pub provider: Option<GenerationProvider>,
pub model: Option<TauriVideoModel>,
pub prompt: Option<String>,
pub negative_prompt: Option<String>,
#[deprecated(note = "Use start_frame_image_media_token instead")]
pub image_media_token: Option<MediaFileToken>,
pub start_frame_image_media_token: Option<MediaFileToken>,
pub end_frame_image_media_token: Option<MediaFileToken>,
pub reference_image_media_tokens: Option<Vec<MediaFileToken>>,
pub reference_video_media_tokens: Option<Vec<MediaFileToken>>,
pub reference_audio_media_tokens: Option<Vec<MediaFileToken>>,
pub reference_character_tokens: Option<Vec<CharacterToken>>,
pub prompt: Option<String>,
pub generate_audio: Option<bool>,
pub aspect_ratio: Option<CommonAspectRatio>,
pub resolution: Option<CommonResolution>,
pub duration_seconds: Option<u16>,
pub generate_audio: Option<bool>,
pub video_batch_count: Option<u16>,
#[deprecated(note = "Use start_frame_image_media_token instead")]
pub sora_orientation: Option<SoraOrientation>,
#[deprecated(note = "Use start_frame_image_media_token instead")]
pub grok_aspect_ratio: Option<GrokAspectRatio>,
pub frontend_caller: Option<TauriCommandCaller>,
pub frontend_subscriber_id: Option<String>,
pub frontend_subscriber_payload: Option<String>,
}
#[derive(Deserialize, Debug)]
#[derive(Deserialize, Debug, Clone, Copy)]
#[serde(rename_all = "snake_case")]
pub enum SoraOrientation {
Portrait,
Landscape,
}
#[derive(Deserialize, Debug)]
#[derive(Deserialize, Debug, Clone, Copy)]
#[serde(rename_all = "snake_case")]
pub enum GrokAspectRatio {
Portrait,