import type { VideoEditRequest } from "./video-edit-contract"; export function buildAliyunVideoEditRequest(input: VideoEditRequest, maskUrl?: string) { const parameters: Record = { prompt_extend: false, watermark: false }; let modelInput: Record; if (input.operation === "intro") { modelInput = { function: "video_extension", prompt: input.prompt || "生成与尾段自然衔接的创意片头", last_clip_url: input.sourceUrl }; } else if (input.operation === "repaint") { modelInput = { prompt: input.prompt || "保持原视频主体身份、动作与场景,提升镜头质感和光影,其他保持不变", media: [{ type: "video", url: input.sourceUrl }] }; parameters.resolution = "720P"; return { model: "wan2.7-videoedit", input: modelInput, parameters }; } else { if (!maskUrl) throw new Error("区域编辑需要掩码图像"); modelInput = { function: "video_edit", prompt: input.prompt || (input.operation === "subtitle" ? "移除画面底部字幕和文字,按周围画面自然修复背景" : "移除框选主体,按周围画面自然修复背景"), video_url: input.sourceUrl, mask_image_url: maskUrl, mask_frame_id: 1, }; parameters.mask_type = input.operation === "erase" ? "tracking" : "fixed"; } return { model: "wanx2.1-vace-plus", input: modelInput, parameters }; }