Add AI clip quick scenarios
This commit is contained in:
@@ -39,6 +39,7 @@ import {
|
||||
Camera,
|
||||
CheckCircle2,
|
||||
ChevronRight,
|
||||
Clapperboard,
|
||||
CircleDashed,
|
||||
ClipboardList,
|
||||
Compass,
|
||||
@@ -64,7 +65,9 @@ import {
|
||||
Mic2,
|
||||
Minus,
|
||||
MoreHorizontal,
|
||||
Music4,
|
||||
Music2,
|
||||
Newspaper,
|
||||
Moon,
|
||||
Plus,
|
||||
Play,
|
||||
@@ -91,6 +94,7 @@ import {
|
||||
UserRound,
|
||||
Video,
|
||||
Volume2,
|
||||
AudioWaveform,
|
||||
Workflow,
|
||||
X,
|
||||
} from 'lucide-react';
|
||||
@@ -11672,6 +11676,10 @@ function FunClipEditingPageContent({
|
||||
| 'talking-head-clean'
|
||||
| 'broll-brief'
|
||||
| 'montage-mix'
|
||||
| 'news-overview'
|
||||
| 'explainer-remake'
|
||||
| 'rhythm-cut'
|
||||
| 'voice-remake'
|
||||
| 'script-to-video'
|
||||
| 'batch-factory';
|
||||
type ClipOutputOptionId =
|
||||
@@ -12603,6 +12611,150 @@ function FunClipEditingPageContent({
|
||||
publishReadyEnabled: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'news-overview',
|
||||
group: '剪辑',
|
||||
title: '新闻概览',
|
||||
description: '把发布会、访谈或行业长视频整理成口语化概览短片。',
|
||||
icon: <Newspaper size={17} />,
|
||||
presetId: 'highlight',
|
||||
planType: 'capability',
|
||||
sceneId: 'ip-matrix',
|
||||
polishId: 'founder',
|
||||
prompt:
|
||||
'把这段长视频做成一条新闻概览短片:先转写并提取人物、事件、关键术语和结论,再生成 250 字以内的口语化解说脚本、镜头顺序、字幕、封面标题和发布文案。事实和专有名词必须准确,不确定的内容标记为待确认。',
|
||||
businessParams:
|
||||
'场景:科技新闻/产品发布/行业资讯/活动复盘\n目标:一条概览短片 + 可校对事实清单\n要求:口语化、信息准确、不要编造',
|
||||
output: '概览脚本 / 镜头顺序 / 字幕标题 / 发布文案',
|
||||
tags: ['概览', '新闻', '事实校对'],
|
||||
sourceMode: 'primary-with-references',
|
||||
sourceHint: '选择 1 个主视频,可追加产品图、截图或品牌素材作为参考。',
|
||||
acceptedSourceTypes: ['video', 'image', 'audio'],
|
||||
minSources: 1,
|
||||
maxSources: 12,
|
||||
outputOptionIds: ['subtitle', 'title', 'publishCopy', 'context', 'timeline'],
|
||||
options: {
|
||||
clipCount: 1,
|
||||
durationRange: '60-180',
|
||||
intensity: 'standard',
|
||||
platform: 'bilibili',
|
||||
keepContext: true,
|
||||
speakerEnabled: false,
|
||||
subtitleEnabled: true,
|
||||
batchEnabled: false,
|
||||
crossSegmentEnabled: true,
|
||||
titleSummaryEnabled: true,
|
||||
publishReadyEnabled: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'explainer-remake',
|
||||
group: '重制',
|
||||
title: '解说重制',
|
||||
description: '把文案、课程或长视频改造成解说视频分镜。',
|
||||
icon: <Clapperboard size={17} />,
|
||||
presetId: 'custom',
|
||||
planType: 'capability',
|
||||
sceneId: 'none',
|
||||
polishId: 'none',
|
||||
prompt:
|
||||
'根据我的素材和目标生成解说视频方案:改写成自然口播脚本,拆分分镜,匹配主视频片段和参考图片/视频,补充需要 AI 图片或 AI 视频生成的 B-roll 提示词,并给出字幕、配音、封面和发布文案。',
|
||||
businessParams:
|
||||
'场景:产品解说/课程复盘/公众号转视频/知识短片\n素材:可使用主视频、图片、参考视频和脚本\n目标:先生成可编辑分镜和时间线',
|
||||
output: '解说脚本 / 分镜表 / B-roll 提示词 / 时间线',
|
||||
tags: ['解说', '分镜', 'B-roll'],
|
||||
sourceMode: 'script-to-video',
|
||||
sourceHint: '可只写文案,也可多选图片、视频和音频作为画面素材。',
|
||||
acceptedSourceTypes: ['video', 'image', 'audio'],
|
||||
minSources: 0,
|
||||
maxSources: 30,
|
||||
outputOptionIds: ['subtitle', 'title', 'publishCopy', 'timeline'],
|
||||
options: {
|
||||
clipCount: 1,
|
||||
durationRange: '60-180',
|
||||
intensity: 'standard',
|
||||
platform: 'xiaohongshu',
|
||||
keepContext: true,
|
||||
speakerEnabled: false,
|
||||
subtitleEnabled: true,
|
||||
batchEnabled: false,
|
||||
crossSegmentEnabled: true,
|
||||
titleSummaryEnabled: true,
|
||||
publishReadyEnabled: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'rhythm-cut',
|
||||
group: '剪辑',
|
||||
title: '节奏卡点',
|
||||
description: '多素材按音乐节奏、情绪点和镜头动作生成混剪方案。',
|
||||
icon: <Music4 size={17} />,
|
||||
presetId: 'merge',
|
||||
planType: 'capability',
|
||||
sceneId: 'local-business',
|
||||
polishId: 'commerce',
|
||||
prompt:
|
||||
'把这些视频、图片和 BGM 做成节奏卡点短片。先识别可用动作镜头、视觉强点、情绪转折和音乐节拍,再生成开场、铺垫、高潮、收束的镜头顺序;图片需要给出推拉摇移动效建议。',
|
||||
businessParams:
|
||||
'场景:活动回顾/产品氛围/门店探访/品牌宣传\n目标:30-60 秒节奏混剪\n要求:按 BGM 情绪和节拍组织镜头',
|
||||
output: '卡点时间线 / 镜头顺序 / 字幕标题 / 发布文案',
|
||||
tags: ['卡点', 'BGM', '混剪'],
|
||||
sourceMode: 'multi-montage',
|
||||
sourceHint: '多选图片、视频和 BGM;第一项会作为主素材。',
|
||||
acceptedSourceTypes: ['video', 'image', 'audio'],
|
||||
minSources: 2,
|
||||
maxSources: 30,
|
||||
outputOptionIds: ['title', 'publishCopy', 'timeline'],
|
||||
options: {
|
||||
clipCount: 1,
|
||||
durationRange: '30-90',
|
||||
intensity: 'aggressive',
|
||||
platform: 'douyin',
|
||||
keepContext: false,
|
||||
speakerEnabled: false,
|
||||
subtitleEnabled: false,
|
||||
batchEnabled: false,
|
||||
crossSegmentEnabled: true,
|
||||
titleSummaryEnabled: true,
|
||||
publishReadyEnabled: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'voice-remake',
|
||||
group: '重制',
|
||||
title: '声音改编',
|
||||
description: '先生成改词、配音和对齐方案,声音重制按模型中心解锁。',
|
||||
icon: <AudioWaveform size={17} />,
|
||||
presetId: 'custom',
|
||||
planType: 'polish',
|
||||
sceneId: 'none',
|
||||
polishId: 'clean',
|
||||
prompt:
|
||||
'把这段视频做成声音改编方案:先转写原文,按目标语气改写口播文案,保持句长接近原表达,输出分段配音脚本、字幕、音画对齐点和需要使用的声音能力。当前先生成方案,真正换声或保声线重制需要在模型中心完成声音能力初始化后执行。',
|
||||
businessParams:
|
||||
'场景:用户自有素材的配音重制/数字人口播精修\n目标:改写文案、配音脚本、对齐点\n限制:不承诺直接换声,需模型中心声音能力',
|
||||
output: '改词脚本 / 配音方案 / 对齐点 / 字幕',
|
||||
tags: ['声音', '配音', '待解锁'],
|
||||
sourceMode: 'primary-audio-video',
|
||||
sourceHint: '选择 1 个自有口播视频或音频,先生成声音改编方案。',
|
||||
acceptedSourceTypes: ['video', 'audio'],
|
||||
minSources: 1,
|
||||
maxSources: 1,
|
||||
outputOptionIds: ['subtitle', 'title', 'context', 'timeline'],
|
||||
options: {
|
||||
clipCount: 1,
|
||||
durationRange: '60-180',
|
||||
intensity: 'conservative',
|
||||
platform: 'douyin',
|
||||
keepContext: true,
|
||||
speakerEnabled: false,
|
||||
subtitleEnabled: true,
|
||||
batchEnabled: false,
|
||||
crossSegmentEnabled: true,
|
||||
titleSummaryEnabled: true,
|
||||
publishReadyEnabled: false,
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'script-to-video',
|
||||
group: '重制',
|
||||
@@ -12792,6 +12944,10 @@ function FunClipEditingPageContent({
|
||||
'commerce-live',
|
||||
'broll-brief',
|
||||
'montage-mix',
|
||||
'news-overview',
|
||||
'explainer-remake',
|
||||
'rhythm-cut',
|
||||
'voice-remake',
|
||||
] as ClipQuickScenarioId[]
|
||||
);
|
||||
const visibleQuickScenarios = clipQuickScenarios.filter((item) =>
|
||||
@@ -13019,7 +13175,7 @@ function FunClipEditingPageContent({
|
||||
: `${selectedQuickScenario.title} 当前只需要 1 个主素材,多素材会在对应场景开放。`
|
||||
: `${selectedQuickScenario.title} 只使用 1 个主视频,不会进入多选。`;
|
||||
const assetPickerButtonText = allowsDirectMultiSelect
|
||||
? '从资产中心多选素材'
|
||||
? '多选资产素材'
|
||||
: selectedQuickScenario.acceptedSourceTypes.includes('video')
|
||||
? '从资产中心选择主视频'
|
||||
: '从资产中心选择素材';
|
||||
@@ -13982,6 +14138,9 @@ function FunClipEditingPageContent({
|
||||
setSubmittedTaskId('');
|
||||
try {
|
||||
const createdTask = await onCreateClipTask(title, selectedPreset.mode, {
|
||||
quickScenarioId: selectedQuickScenario.id,
|
||||
quickScenarioTitle: selectedQuickScenario.title,
|
||||
quickScenarioGroup: selectedQuickScenario.group,
|
||||
selectedPlan: {
|
||||
type: selectedPlanType,
|
||||
typeLabel: selectedPlan.typeLabel,
|
||||
@@ -14740,19 +14899,12 @@ function FunClipEditingPageContent({
|
||||
</div>
|
||||
|
||||
<div className="tg-ai-clip-compose">
|
||||
<label className="tg-ai-clip-goal tg-ai-clip-goal--large">
|
||||
<span>制作目标</span>
|
||||
<textarea
|
||||
value={targetText}
|
||||
onChange={(event) => setTargetText(event.target.value)}
|
||||
placeholder="例如:把这场直播拆成 5 条带货短视频,保留价格优惠、试用反馈和主播强推荐片段。"
|
||||
/>
|
||||
</label>
|
||||
|
||||
<div className="tg-ai-clip-workflow-section">
|
||||
<div className="tg-ai-clip-section-label">
|
||||
<span>快捷场景</span>
|
||||
<small>当前版本优先显示可闭环的剪辑和理解流程</small>
|
||||
<small>
|
||||
先选场景,系统会自动填好提示词和输出配置
|
||||
</small>
|
||||
</div>
|
||||
<div className="tg-ai-clip-workflow-grid">
|
||||
{visibleQuickScenarios.map((item) => (
|
||||
@@ -14782,6 +14934,15 @@ function FunClipEditingPageContent({
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label className="tg-ai-clip-goal tg-ai-clip-goal--large">
|
||||
<span>制作目标</span>
|
||||
<textarea
|
||||
value={targetText}
|
||||
onChange={(event) => setTargetText(event.target.value)}
|
||||
placeholder="例如:裁剪掉视频最后 2 秒,只输出一条可播放成片。"
|
||||
/>
|
||||
</label>
|
||||
|
||||
<div className="tg-ai-clip-config-panel">
|
||||
<div className="tg-ai-clip-section-label">
|
||||
<span>本次配置</span>
|
||||
|
||||
Reference in New Issue
Block a user