diff --git a/crates/desktop/artcraft/src/core/commands/enqueue/video/enqueue_image_to_video_command.rs b/crates/desktop/artcraft/src/core/commands/enqueue/video/enqueue_image_to_video_command.rs index 0198b499a0..109ddc3f33 100644 --- a/crates/desktop/artcraft/src/core/commands/enqueue/video/enqueue_image_to_video_command.rs +++ b/crates/desktop/artcraft/src/core/commands/enqueue/video/enqueue_image_to_video_command.rs @@ -29,6 +29,9 @@ pub struct EnqueueImageToVideoRequest { /// The model to use. pub model: Option, + + /// Optional text prompt. + pub prompt: Option, } #[derive(Serialize)] diff --git a/crates/desktop/artcraft/src/core/commands/enqueue/video/generic/handle_video_artcraft.rs b/crates/desktop/artcraft/src/core/commands/enqueue/video/generic/handle_video_artcraft.rs index 7a9a46a65f..59251e621a 100644 --- a/crates/desktop/artcraft/src/core/commands/enqueue/video/generic/handle_video_artcraft.rs +++ b/crates/desktop/artcraft/src/core/commands/enqueue/video/generic/handle_video_artcraft.rs @@ -77,7 +77,7 @@ pub async fn handle_video_artcraft( uuid_idempotency_token, media_file_token: request.image_media_token, aspect_ratio: Some(GenerateKling16ProAspectRatio::WideSixteenNine), - prompt: None, + prompt: request.prompt, duration: None, }; let result = generate_kling_16_pro_image_to_video( @@ -103,7 +103,7 @@ pub async fn handle_video_artcraft( uuid_idempotency_token, media_file_token: request.image_media_token, aspect_ratio: Some(GenerateKling21MasterAspectRatio::WideSixteenNine), - prompt: None, + prompt: request.prompt, duration: None, }; let result = generate_kling_21_master_image_to_video( @@ -129,7 +129,7 @@ pub async fn handle_video_artcraft( uuid_idempotency_token, media_file_token: request.image_media_token, aspect_ratio: Some(GenerateKling21ProAspectRatio::WideSixteenNine), - prompt: None, + prompt: request.prompt, duration: None, }; let result = generate_kling_21_pro_image_to_video( @@ -154,7 +154,7 @@ pub async fn handle_video_artcraft( let request = GenerateSeedance10LiteImageToVideoRequest { uuid_idempotency_token, media_file_token: request.image_media_token, - prompt: None, + prompt: request.prompt, resolution: None, duration: None, }; @@ -181,7 +181,7 @@ pub async fn handle_video_artcraft( uuid_idempotency_token, media_file_token: request.image_media_token, aspect_ratio: Some(GenerateVeo2AspectRatio::WideSixteenNine), - prompt: None, + prompt: request.prompt, duration: None, }; let result = generate_veo_2_image_to_video( diff --git a/crates/desktop/artcraft/src/core/commands/enqueue/video/generic/handle_video_fal.rs b/crates/desktop/artcraft/src/core/commands/enqueue/video/generic/handle_video_fal.rs index f498c6deb5..22f945d671 100644 --- a/crates/desktop/artcraft/src/core/commands/enqueue/video/generic/handle_video_fal.rs +++ b/crates/desktop/artcraft/src/core/commands/enqueue/video/generic/handle_video_fal.rs @@ -77,7 +77,7 @@ pub async fn handle_video_fal( api_key: &api_key, duration: Kling16ProDuration::Default, aspect_ratio: Kling16ProAspectRatio::WideSixteenNine, - prompt: "", + prompt: request.prompt.as_deref().unwrap_or(""), }).await } _ => { diff --git a/frontend/libs/components/promptbox/src/lib/PromptBoxVideo.tsx b/frontend/libs/components/promptbox/src/lib/PromptBoxVideo.tsx index 33088159c1..49f02eaef9 100644 --- a/frontend/libs/components/promptbox/src/lib/PromptBoxVideo.tsx +++ b/frontend/libs/components/promptbox/src/lib/PromptBoxVideo.tsx @@ -198,7 +198,7 @@ export const PromptBoxVideo = ({ const generateResponse = await EnqueueImageToVideo({ model: modelInfo, image_media_token: referenceImages[0].mediaToken, - //prompt: prompt, + prompt: prompt, }); console.log("generateResponse", generateResponse); diff --git a/frontend/libs/tauri-api/src/lib/enqueue/EnqueueImageToVideo.ts b/frontend/libs/tauri-api/src/lib/enqueue/EnqueueImageToVideo.ts index da8e1098e1..b16151f840 100644 --- a/frontend/libs/tauri-api/src/lib/enqueue/EnqueueImageToVideo.ts +++ b/frontend/libs/tauri-api/src/lib/enqueue/EnqueueImageToVideo.ts @@ -16,6 +16,13 @@ export enum EnqueueImageToVideoErrorType { export interface EnqueueImageToVideoRequest { image_media_token?: string; model?: ModelInfo; + prompt?: string; +} + +interface RawEnqueueImageToVideoRequest { + image_media_token?: string; + model?: string; + prompt?: string; } export interface EnqueueImageToVideoError extends CommandResult { @@ -38,11 +45,17 @@ export type EnqueueImageToVideoResult = EnqueueImageToVideoSuccess | EnqueueImag export const EnqueueImageToVideo = async (request: EnqueueImageToVideoRequest) : Promise => { const modelName = request.model?.tauri_id; + let mutableRequest : RawEnqueueImageToVideoRequest = { + image_media_token: request.image_media_token, + model: modelName, + }; + + if (!!request.prompt) { + mutableRequest.prompt = request.prompt; + } + const result = await invoke("enqueue_image_to_video_command", { - request: { - image_media_token: request.image_media_token, - model: modelName, - } + request: mutableRequest, }); return (result as EnqueueImageToVideoResult);