"use client"; import { useState } from "react"; import { toast } from "sonner"; import { readDirectorScene, type DirectorScene } from "@/lib/video-canvas/director-scene"; import { insertReconstructedScene } from "@/lib/video-canvas/director-reconstruction"; export type ReconstructionTask = { status: string; error?: string | null; result?: Record | null; }; export function DirectorReconstructionPanel({ scene, onChange, onSubmit, task, disabled, }: { scene: DirectorScene; onChange: (s: DirectorScene) => void; onSubmit: (input: { imageUrl: string; prompt: string }) => Promise; task?: ReconstructionTask; disabled: boolean; }) { const [file, setFile] = useState(null), [prompt, setPrompt] = useState(""), [busy, setBusy] = useState(false); const waiting = task && ["pending", "running"].includes(task.status); const result = task?.status === "succeeded" ? task.result : undefined; return (
AI 识图重建布景

从参考图识别人物、物体与机位,生成可编辑的简化几何布景;不包含精细网格和纹理。

setFile(e.target.files?.[0] || null)} />