Shader Generator 是一个用于 WebGL 视频特效的 AI 着色器生成工具,主要服务于视频编辑场景中的滤镜、转场、遮罩与调色需求。
用途
该工具用于生成视频特效(effect)和转场(transition),可应用于视频、图片和 GIF 素材。典型用途包括:视频外观调整(颜色、模糊、发光、颗粒、扭曲)、调色与风格化(青橙色调、电影感、复古、LUT 风格)、可见性控制(遮罩、揭示、擦除、形状抠图、渐变淡出),以及片段之间的混合过渡(交叉淡化、溶解、滑动、3D 立方体/翻页)。
主要能力
- 目录优先:生成前先调用 browse_library 查找内置特效、内置转场以及项目中的特效/转场资产。内置资产是稳定的全局资产 id,可能不会出现在 read_project 的资产列表中。目录条目通过 edit_item 应用,而不是 submit_shader。
- 生成流程:通过 submit_shader 提交生成任务,返回 jobId,之后使用 track_progress 工具跟踪任务生命周期。生成始终产出库资产。
- 类型路由:根据用户意图选择 --type。视频外观、调色、可见性控制归为 effect;片段间混合归为 transition。没有单独的 LUT 或遮罩生成器,它们都属于 effect。
- 内置缩放特效:builtin:zoom 仅支持 track-bound 模式,必须提供 trackId、trackBoundFrom 和 trackBoundDurationInFrames 三个字段。item-bound 模式下不会渲染。
- 内置 LUT 属性:通过 edit_item 添加内置 LUT 效果,支持 intensity 属性(0–1,默认 1)。
- 应用已有 LUT 资产:用户上传的 .cube 文件成为 lut 资产。应用时通过 edit_item 添加一个 effect 项,其 assetId 为字面字符串 "lut",真实 LUT 资产 id 放在 propertyOverrides.lut.assetId 中。
使用方式
- 生成前先检查两条非生成路径:目录条目(browse_library)和用户已上传的 .cube LUT 资产。
- 仅当没有目录条目匹配用户意图时,才调用 submit_shader 生成。调用前用一句话复述用户意图,然后立即执行。
- submit_shader 参数包括:type("effect" 或 "transition",必填)、prompt(着色器描述,必填)、name(库中显示的资产名)、referenceAssetIds(资产 id,图片 id 用于视觉参考,特效/转场 id 用于复用代码风格,每次提交最多 1 个且类型需匹配)。
- 提交后停止,告知用户任务已创建。使用 track_progress 跟踪状态。
- 应用是独立且可选的步骤,仅在用户明确要求时执行(如“加到视频”“apply”“用到第一段”)。模糊时默认仅生成到库。
适用场景
适用于需要为视频添加视觉特效、转场、调色或遮罩的编辑工作流。特效和转场可应用于视频、图片和 GIF 素材。
限制
- 新着色器生成目前处于 beta 阶段,生成前需向用户提示并等待明确确认。
- builtin:zoom 仅支持 track-bound 模式,item-bound 模式下不会渲染。
- 转场需要两个相邻的同轨道端点,edit_item 会验证实时接缝可行性,拒绝需要冻结帧或与相邻转场重叠的时长。
- 手动编写着色器代码仅用于修改已生成的现有资产代码,绝不作为生成失败时的回退方案。
- 着色器属性是数组,允许的属性类型仅为 number、boolean、color、select 和 vec2。
- 应用已有 LUT 资产时,assetId 必须是字面字符串 "lut",传入真实 UUID 会静默不渲染。
- 关于收费、价格、平台支持等具体信息,资料中暂未提供。