diff --git a/frontend/libs/components/promptbox/src/lib/PromptBoxVideo.tsx b/frontend/libs/components/promptbox/src/lib/PromptBoxVideo.tsx index 0fd05d4814..f92c047732 100644 --- a/frontend/libs/components/promptbox/src/lib/PromptBoxVideo.tsx +++ b/frontend/libs/components/promptbox/src/lib/PromptBoxVideo.tsx @@ -690,12 +690,14 @@ export const PromptBoxVideo = ({ ); } - // Extract character token from @-mention in prompt - const mentionedChar = storedCharacters.find((c) => + // Extract character tokens from @-mentions in prompt + const mentionedCharacters = storedCharacters.filter((c) => prompt.includes(`@${c.name}`), ); - if (mentionedChar) { - request.character_token = mentionedChar.character_token; + if (mentionedCharacters.length > 0) { + request.character_references = mentionedCharacters.map( + (c) => c.character_token, + ); } // Pass duration if model supports it diff --git a/frontend/libs/tauri-api/src/lib/enqueue/EnqueueImageToVideo.ts b/frontend/libs/tauri-api/src/lib/enqueue/EnqueueImageToVideo.ts index 32e3758e67..a7b34ed5f4 100644 --- a/frontend/libs/tauri-api/src/lib/enqueue/EnqueueImageToVideo.ts +++ b/frontend/libs/tauri-api/src/lib/enqueue/EnqueueImageToVideo.ts @@ -61,8 +61,8 @@ export interface EnqueueImageToVideoRequest { // Optional. Reference audio media tokens (for audio reference). reference_audio_media_tokens?: string[]; - // Optional. Character token for character consistency. - character_token?: string; + // Optional. Character tokens for character consistency (from @-mentions). + character_references?: string[]; } interface RawEnqueueImageToVideoRequest { @@ -81,7 +81,7 @@ interface RawEnqueueImageToVideoRequest { reference_image_media_tokens?: string[]; reference_video_media_tokens?: string[]; reference_audio_media_tokens?: string[]; - character_token?: string; + character_references?: string[]; } export interface EnqueueImageToVideoError extends CommandResult { @@ -172,8 +172,11 @@ export const EnqueueImageToVideo = async ( request.reference_audio_media_tokens; } - if (request.character_token) { - mutableRequest.character_token = request.character_token; + if ( + request.character_references && + request.character_references.length > 0 + ) { + mutableRequest.character_references = request.character_references; } const result = await invoke("enqueue_image_to_video_command", {