diff --git a/components/canvas/LiblibVideoCanvasReplica.tsx b/components/canvas/LiblibVideoCanvasReplica.tsx index c29e12c29..9de7af10a 100644 --- a/components/canvas/LiblibVideoCanvasReplica.tsx +++ b/components/canvas/LiblibVideoCanvasReplica.tsx @@ -1209,6 +1209,10 @@ function getNodeSourceMediaUrl(node: CloneNode | null | undefined) { return getDraftString(node, "sourceUrl") || getNodeMediaUrl(node); } +function getNodeReferenceMediaUrl(node: CloneNode | null | undefined) { + return getNodeMediaUrl(node) || getDraftString(node, "sourceUrl"); +} + function getOfficialImagePresetFunctionKey(value?: unknown) { const text = String(value || "").trim(); if (!text) return null; @@ -2739,7 +2743,7 @@ export function LiblibVideoCanvasReplica({ canvasId, isLoading = false }: Liblib async (nodeId: string, action: ImageToolbarAction, option?: string) => { const anchor = nodes.find((node) => node.id === nodeId); if (!anchor) return; - const sourceUrl = getNodeSourceMediaUrl(anchor) || CHARACTER_IMAGE_URL; + const sourceUrl = getNodeReferenceMediaUrl(anchor) || CHARACTER_IMAGE_URL; if (action === "download") { if (!sourceUrl) { @@ -3468,11 +3472,11 @@ export function LiblibVideoCanvasReplica({ canvasId, isLoading = false }: Liblib .filter((item): item is CloneNode => Boolean(item)); const imageUrls = incomingNodes .filter((item) => item.inputType === "image") - .map((item) => getNodeSourceMediaUrl(item)) + .map((item) => getNodeReferenceMediaUrl(item)) .filter(Boolean); const videoUrls = incomingNodes .filter((item) => item.inputType === "video") - .map((item) => getNodeSourceMediaUrl(item)) + .map((item) => getNodeReferenceMediaUrl(item)) .filter(Boolean); try { @@ -3625,11 +3629,11 @@ export function LiblibVideoCanvasReplica({ canvasId, isLoading = false }: Liblib .filter((item): item is CloneNode => Boolean(item)); const imageUrls = incomingNodes .filter((item) => item.inputType === "image") - .map((item) => getNodeSourceMediaUrl(item)) + .map((item) => getNodeReferenceMediaUrl(item)) .filter(Boolean); const videoUrls = incomingNodes .filter((item) => item.inputType === "video") - .map((item) => getNodeSourceMediaUrl(item)) + .map((item) => getNodeReferenceMediaUrl(item)) .filter(Boolean); const action = String(node.draftValues?.action || ""); const params = (node.draftValues?.params || {}) as Record; @@ -3660,7 +3664,7 @@ export function LiblibVideoCanvasReplica({ canvasId, isLoading = false }: Liblib ? "hd-upscale" : "image-repaint"; const definition = getConfiguredFunction(videoCanvasFunctionConfig, functionKey); - const sourceUrl = imageUrls[0] || getNodeSourceMediaUrl(node); + const sourceUrl = imageUrls[0] || getNodeReferenceMediaUrl(node); const prompt = functionKey === MULTI_VIEW_NINE_GRID_FUNCTION_KEY ? composeMultiViewNineGridPrompt(definition, String(params.option || node.title)) @@ -4978,7 +4982,7 @@ function PresetWorkflowControls({ modelOptions={modelOptions} nodes={nodes} onSubmit={onComposerSubmit} - referenceThumbnailUrl={getNodeSourceMediaUrl(selectedNode) || getNodeMediaUrl(selectedNode) || CHARACTER_IMAGE_URL} + referenceThumbnailUrl={getNodeReferenceMediaUrl(selectedNode) || CHARACTER_IMAGE_URL} /> );