auto-save 2026-05-14 00:25 (+6, ~5)
This commit is contained in:
@@ -103,7 +103,7 @@ export function InputNode({ data, selected }: NodeProps<{ data: NodeData }> | an
|
||||
const inputLocked = isDownloading || d.submitting
|
||||
|
||||
return (
|
||||
<div className="relative" style={{ width: "100%" }}>
|
||||
<div className="relative" style={{ width: "100%", height: "100%" }}>
|
||||
{/* 多视频缩略图浮条 — 「+」在最左,job 按时间倒序(最新靠左高亮),统一高度 64,宽度按视频原比例,一行横滚。
|
||||
浮条宽度 = 节点宽度(节点拖宽后浮条同步变宽,可见更多缩略图,少滚动)。 */}
|
||||
{!videoExpanded && d.jobs.length > 0 && (
|
||||
@@ -222,7 +222,6 @@ export function InputNode({ data, selected }: NodeProps<{ data: NodeData }> | an
|
||||
icon={<Link2 className="h-4 w-4" />}
|
||||
title="输入 · Input"
|
||||
subtitle={isDownloading ? "STEP 1 · 下载中" : hasVideo ? "STEP 1 · 视频就绪" : "STEP 1"}
|
||||
width={320}
|
||||
selected={selected}
|
||||
hasTarget={false}
|
||||
>
|
||||
@@ -367,7 +366,7 @@ export function KeyframeNode({ data, selected }: any) {
|
||||
const aspectStr = d.job && d.job.height > 0 ? `${d.job.width}/${d.job.height}` : "9/16"
|
||||
|
||||
return (
|
||||
<div className="relative" style={{ width: "100%" }}>
|
||||
<div className="relative" style={{ width: "100%", height: "100%" }}>
|
||||
{/* 缩略图浮条(节点上方,最多 5 个一行,多行向上扩展) */}
|
||||
{frames.length > 0 && jobId && (
|
||||
<div
|
||||
@@ -488,7 +487,6 @@ export function KeyframeNode({ data, selected }: any) {
|
||||
icon={<ImageIcon className="h-4 w-4" />}
|
||||
title="镜头拆解 · 元素提取"
|
||||
subtitle={`STEP 2 · ${frames.length ? `${d.selectedFrames.size}/${frames.length} 入编排` : "等待抽取"}`}
|
||||
width={KEYFRAME_WIDTH}
|
||||
selected={selected}
|
||||
>
|
||||
{frames.length > 0 ? (() => {
|
||||
@@ -836,7 +834,7 @@ export function StoryboardNode({ data, selected }: any) {
|
||||
const aspect = job && job.height > 0 ? `${job.width}/${job.height}` : "9/16"
|
||||
|
||||
return (
|
||||
<div className="relative" style={{ width: "100%" }}>
|
||||
<div className="relative" style={{ width: "100%", height: "100%" }}>
|
||||
{/* 节点上方:所有元素 crop 图(编排输入素材)· 跟 keyframe 节点样式一致 */}
|
||||
{elementCrops.length > 0 && job && (
|
||||
<div
|
||||
@@ -919,7 +917,6 @@ export function StoryboardNode({ data, selected }: any) {
|
||||
icon={<LayoutGrid className="h-4 w-4" />}
|
||||
title="元素改造 · Storyboard"
|
||||
subtitle={`STEP 6 · 参考元素 → SKG 画面${storyboardCount > 0 ? ` · ${storyboardCount} 分镜` : ""}`}
|
||||
width={IMAGEGEN_WIDTH}
|
||||
selected={selected}
|
||||
>
|
||||
<div className="text-[11.5px] leading-relaxed text-[var(--text-soft)]">
|
||||
@@ -972,7 +969,7 @@ export function VideoGenNode({ data, selected }: any) {
|
||||
return e
|
||||
}
|
||||
return (
|
||||
<div className="relative" style={{ width: "100%" }}>
|
||||
<div className="relative" style={{ width: "100%", height: "100%" }}>
|
||||
{videos.length > 0 && (
|
||||
<div
|
||||
className="absolute left-0 right-0 grid grid-cols-3 gap-1.5"
|
||||
|
||||
Reference in New Issue
Block a user