fix(canvas): 视频首尾帧 - 保留结构化帧并按协议顺序传参
This commit is contained in:
1 parent
2ceaa56cd8
commit
49133a7c2a
6 files changed
+82
-17
No files matched your search
@@ -276,8 +276,9 @@ export function buildVideoGenerationMetadata(
|
||||
},
|
||||
): CanvasNodeMetadata {
|
||||
const metadata = node?.metadata;
|
||||
const startFrame = metadata?.videoStartFrameNodeId && context?.referenceImages.some((image) => image.id === metadata.videoStartFrameNodeId) ? metadata.videoStartFrameNodeId : undefined;
|
||||
const endFrame = metadata?.videoEndFrameNodeId && context?.referenceImages.some((image) => image.id === metadata.videoEndFrameNodeId) ? metadata.videoEndFrameNodeId : undefined;
|
||||
const referenceImageIds = new Set((context?.referenceImages || []).map((image) => image.id));
|
||||
const startFrame = requireConnectedVideoFrame(metadata?.videoStartFrameNodeId, "首帧", referenceImageIds);
|
||||
const endFrame = requireConnectedVideoFrame(metadata?.videoEndFrameNodeId, "尾帧", referenceImageIds);
|
||||
return {
|
||||
videoEditOperation: resolveVideoEditOperation(node, context),
|
||||
videoCameraMoveId: metadata?.videoCameraMoveId,
|
||||
@@ -287,6 +288,12 @@ export function buildVideoGenerationMetadata(
|
||||
};
|
||||
}
|
||||
|
||||
function requireConnectedVideoFrame(frameNodeId: string | undefined, label: string, referenceImageIds: Set<string>) {
|
||||
if (!frameNodeId) return undefined;
|
||||
if (referenceImageIds.has(frameNodeId)) return frameNodeId;
|
||||
throw new Error(`已配置的${label}参考图未连接或不可用,请重新选择后再生成`);
|
||||
}
|
||||
|
||||
export async function resolveMetadataReferences(metadata: CanvasNodeMetadata) {
|
||||
if (metadata.generationType !== "edit") return [];
|
||||
if (!metadata.references?.length) return null;
|
||||
|
||||
Reference in new issue
Block a user