Releases
v1.9.6
Compare
Sorry, something went wrong.
No results found
Mosael v1.9.6
修:打开插件页之后界面反复崩溃
打开插件页(尤其 ComfyUI 连接)过一会儿,整个界面崩掉、反复崩;删掉连接重建就不崩了。原因是宿主每刷一次 ComfyUI 的
工具清单 / 模型清单,都留了一条「调用记录」,每条带着整份清单(约 1MB)—— 一个连接攒下上千条、七百多 MB,而插件页
拉调用记录时不分页、一次全拿,界面解不动就崩了。删连接会连带删掉记录,所以重建之后好了一阵。
现在问目录不再留调用记录,调用记录一次最多拿最近十条;升级时自动清掉已经攒下的那些目录记录(别的记录不动)。
剪辑导出:能选格式、能只导出声音,视频轨空着也不再报错
导出框里先选「视频 / 音频」,再选格式 :视频有 MP4(H.264,哪里都能放)、MOV(H.264)、WebM(VP9 + Opus);
音频有 MP3、WAV(无损)、M4A(AAC)。选音频时分辨率、帧率、画质这几项不摆,只剩格式和响度标准化;上次选的会记住。
成片在素材库里就是那个格式 —— MP3 / WAV / M4A 进的是「音频」,下载、另存的扩展名和类型跟着走(此前一律 mp4;
MOV 也不再像导入录屏那样被换成 mp4)。
视频轨空着(只有配音、音乐)导出视频不再报「Sequence has no clips to render」 :底下没有画面时整条就是黑场,
声音照常混进去;导出框里会先说一句「时间线上没有画面,导出的视频会是一整条黑场」,点一下就换成只导出音频。
时间线上真的什么都没有时,报的是一句看得懂的话。
macOS 上双击 mp4 不该打开 Mosael :新包里 Mosael 对视频、音频的声明是「备选 + 查看」,同档里也不压过
QuickTime / 音乐,只出现在「打开方式」里;拖到程序坞图标上导入照旧。旧版本(1.8.0 之前)的包声明的是「默认 +
编辑」,电脑上还留着那样的旧 Mosael.app 时它仍会抢 —— 删掉旧包,或在 mp4 的「显示简介 → 打开方式」里改回
QuickTime 并点「全部更改」。
智能体的回答分成「过程」和「结果」,生成的图和小界面直接进答案
过程收成一行 :思考、工具调用、中间的话在答案出来之后自动收起成「已处理 · 5 步 · 32s」,点一下展开看细节。
还在跑的时候一直摊开、实时更新;失败了、没给出答案、或者有一张卡等你拍板时也不收 —— 断在哪、要点哪,一眼看得见。
AI Studio「对话」和各处的智能体面板都是这样。
生成的图进答案 :这一轮做出来的图(生成任务的产物、派生出的素材、后台任务做完回来的回执)排在答案下面,
点开预览,悬停有「在素材库中打开」。此前它们挂在工具行的明细里,过程一收起就看不到了。
智能体能在答案里画一块小界面 (地图、图表):新增 show_widget 工具,界面带标题,可以复制源码、展开全屏。
它关在沙箱里 —— 碰不到应用本身的页面和数据、不能联网发请求、不能把应用导航走或弹窗,
脚本和样式只能从 jsdelivr / unpkg / cdnjs 几家公共 CDN 加载,地图底图只放 OpenStreetMap 和 CARTO。
蒙版重做:一个编辑器、一种蒙版、精简表单和完整工作流都能交蒙版(ADR 0057)
「画蒙版」弹窗重新设计 :画布占满主体,底图永远按原始比例显示(竖幅图不再被压扁);能放大、缩小、
适应窗口、看 100% 实际像素,触控板双指滑动 / 捏合、鼠标滚轮、空格或中键拖动都能平移缩放(跟着设置里的
「画布操控方式」走)。画布上方一条工具条:笔刷 / 橡皮 / 矩形 / 椭圆、撤销重做、反选清空、视图;右边一栏按
「画笔 / 边缘 / 从底图起手 / 显示」分组;右下角唯一的主按钮「存成蒙版」。快捷键:B / E / R / O 选工具,
[ ] 调笔刷,0 适应窗口、1 实际像素,⌘Z / ⇧⌘Z 撤销重做。亮色、暗色主题都对过。
边缘处理搬进编辑器 :扩张(填负数就是收缩)和羽化,点「应用到蒙版」作用在整张上,一次撤销就回去;
和素材库里「生成蒙版」那条路、和后端是同一套算法,逐像素相同 。
蒙版只有一种样子 :单通道灰度 PNG、白 = 要改、和源图一样大。画出来的蒙版统一由后端落盘(不再由浏览器
直接上传一张 RGBA 图),旧的蒙版文件升级时自动改写成这个样子,不用手动处理。
修:ComfyUI 工作流的「完整工作流」入口交不了蒙版 (精简表单可以)。两边现在走同一条路:工作流里声明了
蒙版那一格,两种入口都画得出、都交得上去 —— 实测两边交给 ComfyUI 的原图和蒙版逐字节相同。
蒙版的底图只从参考图 / 首帧里找;视频不能当蒙版的底图(视频的局部重绘不在这一版)。
修:插件页那一份工具清单 3.1MB → 1.49MB(界面零改动)
插件页每次打开(改一个勾也会重新拉)都要搬一份 GET /api/plugins:维护者那台接了一台 46 个工具的 ComfyUI,
这份回包 3,085,961 字节,里面没有一次慢查询 (后端处理 63ms)—— 两个原因,都是白带的字节:
form.option_labels 占了 41.5% :下拉每一项的显示名。几百项的 LoRA / 大模型下拉把自己那份文件名又
照抄了一遍({"0_11Xx.safetensors": "0_11Xx.safetensors", …},真机 1,207,329 字节里 16,958 项是这种
恒等项,占 98.2%)。界面读的是 option_labels?.[值] ?? 值 —— 恒等项写不写,屏幕上那行字一模一样 ,
所以现在不写了(翻过的照旧写:是 / 否、时间线算子那些)。值本身照旧整张在 options 里。
input_schema 里重复的大表又各占一格 :同一张 395 项的 LoRA 表在一个工具里贴 4 份、在 46 个工具里
贴 25 份(重复 555,529 字节)。这份原始声明界面一个字段都不读(试跑表单读的是 form),所以宿主出这一份时
照插件那一套收一次(shared_tables + x-shared-table),键用内容指纹 —— 五个字段名不同
(lora_name_105 … lora_name_109)、内容逐字节相同的那几格只搬一份。
行为一个字没改 :展平之后和去重前逐字节相同 (连键的顺序 —— 引用占的是 enum 原来的位置),
form 那一份两次逐字节相同,界面上任何一处都不用改;插件那一侧的 accepts 协商、x-shared-table 的语义、
「指到没交上来的表就拒收整份」一条没动。单张表超过 256KB 不进共享表,照旧逐格写全 —— 不截断、不丢选项
(真正超大的那份清单要的是服务端搜索,见 ADR 0045 §5)。
真机实测(那台 8120,46 个工具):GET /api/plugins 2,929,540 → 1,488,904 字节(−49.2%) ;同一批块
折算到维护者那份 3,085,961 字节的快照上约 1.57MB 。去重关掉,体积断言当场红(测试自带你关掉的那一半)。
精简表单:子图里面的节点也能放进表单了(ComfyUI 插件 1.23.4)
「工作流里能填的」那一列里,子图里面的节点不再是灰的 。加进表单之后,值写进的是子图内部那个节点自己的输入
(执行时那个节点叫 105:9:根图 105 号那个子图里面的 9 号,和画布摘要、ComfyUI 自己的执行编号同一套写法),不是外面那个
子图节点上的格子 —— 提升出来的那一格仍是外面那个节点上的,两回事,各写各的。跑起来真的生效:交给 ComfyUI 的那张 API 图里
就是那个节点的输入变了,同一张图别的格子照工作流原样。
标记(表单上挑了哪几格、叫什么名字)写在那份子图定义 里那个节点自己的 properties 上,和根图上的节点同一个地方,所以
一份子图在这张图里用了不止一处时,里面的节点只有第一处那条路径说得清(两处说的是同一条)。这种仍放不进表单,但提示改了:
写的是「用了 N 处,里面的节点只能按第一处写(#12:5)—— 要放进表单:先在画布上把它拆开,或者只留一处」,不再是
「这一版不能放进表单」。
「结果取自」没变:仍只认根图上的输出节点(产出按执行节点号收,子图里的产出算在内部节点上是另一件事)。
修:ComfyUI 那行「插件输出超过大小限制 (1MB)」—— 重复的大表只搬一次(ComfyUI 插件 1.23.4)
插件页上 ComfyUI 连接那行是「出错了」+「已开启 42 / 42 个工具」+ 红字「插件输出超过大小限制 (1MB)」:那条线是宿主的
(runtime.MAX_OUTPUT_BYTES = 1_000_000,一问一答读到上限就停下),撞线的是工具清单 那一份回答
({"tool": "comfyui_generation", "input": {"op": "tools"}})—— 36 个工具就 1.06MB。不是把闸门抬高 :那份清单里
58 万字节是重复的同一批表(几百项的 LoRA / 大模型下拉,一张图里每个节点各带一份、每张工作流各带一份):403 份、
只有 77 张不同的表。
重复的表现在只在回答顶层 shared_tables 里搬一次,每一格指过去(x-shared-table);宿主收的时候展平回每一格
(domain/plugins/shared_tables),存下来的那份 input_schema 和以前一个字节都不差 —— 工作流节点、画板、插件页
「试一下」读的就是它,下拉照样是整张(ADR 0044 修订否掉过「在插件那一侧把长下拉删掉」)。1MB 的线没动 :超限照旧
响亮地报错,不截断。
只在宿主在请求里说了它收得下(accepts)时才这么交:旧版应用(插件从市场升上来)收到的还是逐格写全的那一份,
照旧撞线报错 —— 而不是收到一堆指不到的表、悄悄少几张下拉。模型清单走同一条路(维护者那台 89 万 → 37 万)。
修:工作区切换那几行 —— 高亮铺满整行,头像首字居中
hover 底色此前画在名字那颗菜单项上,右侧的改名/删除两颗按钮落在高亮外面(维护者截图)。现在行那一层的样子
(圆角、hover、选中、键盘聚焦)贴在最外层,里面那颗菜单项一层底色都不画 ;两颗按钮是它的兄弟 ,
点铅笔只开改名、点垃圾桶只开删除、点名字才切工作区 —— 互不牵连(外层那一格没有点击处理)。
头像方块里的首字(d / 默)没在正中:真机上量到字墨比盒子低 +3.00px (中英文字形都是),原因是
图标槽继承的行高(20px 行盒套 10px 字形),不是槽的对齐。加 leading-none 后偏心 0.00px
(也就证明不需要任何负 margin 硬怼)。
蒙版属性归组:按数据流 认,不按控件名认(ADR 0056 第一步)
精简表单「工作流里能填的」那一列多了头一组「蒙版属性」 :这张工作流里跟蒙版有关的那几格,按沿线先后摆
(来源 → 蒙版运算 → 送给采样器)。
认的是数据怎么流,不是控件叫什么 :从蒙版来源出发,沿 object_info 里声明成 MASK 的输出 往下走,
走到哪算到哪 —— 没有类名表、没有控件名表(维护者:「这就必须要根据控件名称,一旦控件名称变了就出问题了」)。
改名/换包/新写的第三方蒙版节点照样进组(测试里 GrowMask 被改名成 MyCustomMaskGrow、它的 expand 改名成
grow_px,照样进组、顺序照样对);只是名字里带 "mask" 而吃 IMAGE 的节点不 进组。
名字一个字没新编 :只用插件给的 title / hint / node_label(服务器没暴露的人话我们不编)。
顺带说明:没装的节点(不在 object_info)那条线到此为止 —— 不知道它交出的是不是蒙版就不替它猜。
修:「回到那里」跳到 ComfyUI 工作台时,点下去当场有反馈
维护者:「点这个跳转箭头切换会出现卡顿,要过一阵子才会成功跳转,容易让人误解」。原因是那一步要先等那台机器背后的
本机服务起好 才亮视图(openWorkbench 的第一句就是 readyLocalService),而这条跳转没把"正在启动"这件事接出来 ——
于是从点下去到切走之间一句反馈都没有。
现在那一行的箭头自己把这段说出来:点击当帧转圈(名字换成既有的「正在启动…」),本机服务真要起时再补一句既有的
「第一次启动可能要一两分钟…」;转完(成败都算)恢复原样,连点只叫一次桥,失败照旧只有一条 toast。
更好的做法(先切视图、再等服务)走不通 :真正亮出内嵌视图的那一下就是主进程里的桥调用自己(openComfyWorkbench
→ views.openView),渲染层没有可先切过去的"工作台那一层";要那么做得改主进程(服务没起就亮页面 = 先给一张连不上的
错误页)。这条留作以后的选项。
修:按节点名搜不到 —— 名字在边界上就按读的人的语言挑好
上一条只修了"按字面比"(去空格让 Load Image 撞上类名 LoadImage)—— 擦边 ,不是正解,维护者当场指出来:
「搜索的是节点类而不是节点名」。
真正的原因:插件交回的节点名是 {"zh", "en"} 一对(labels.node_name),宿主按看的人的语言把它塌成了一条
(workflow_library._app_item 的 pick_text)—— 界面上显示「加载图像」时,Load Image 在数据里不存在 ,
换个名字就搜不到(LoadImageMask 的显示名是「Load Image (as Mask)」,去空格也撞不上类名)。
中间试过两条路,都被维护者否掉:一是"再另带一条英文名"(node_label_en,「通过加一个语言返回项的方式这个设计明显是不对
且不合理的」);二是"名字带着 {"zh", "en"} 语言表一路透到前端、由界面自己挑、搜索比表里全部语言"
(维护者撤掉了:宿主 workflow_library._words 与前端 lib/pickLabel 那一套已回到原样)——「为了 ComfyUI 和 Mosael
的语言不匹配问题特地兼容做一套方案是不合理的」。
现在照原样:插件按语言交回一对 ,宿主在边界上按读的人的语言挑好一句 (和 hint、schema 里那两个给人看的字段
走同一条路),要搜的、要显示的、撞名要比的都是这一句。代价是中文界面显示「加载图像」时,画布上另起的英文名搜不到
(除非 node_title 里带着它)—— 这一条在 frontend/src/features/plugins/workflowLibraryView.test.ts 里写着,
免得以后当成 bug 又修回去。宿主只认这一种形状 (ADR 0006):这份回答是现问现算、不落盘的,
没有旧数据要迁,也就不留兼容分支。翻译只走官方那条路(节点包自己的 locales/<lang>/*.json 聚合进 /i18n),不接私下汉化。
修:精简表单里按画布上的节点名搜不到
搜「Load Image」一条都不出来,而画布上那个节点明明写着 Load Image(维护者截图)。原因:列表显示的是本地化的
「加载图像」,类名是 LoadImage(没有空格 ),而搜索是按字面 比 —— 中间那个空格就把它挡掉了。
现在比之前把空白、下划线、连字符都去掉(load image / loadimage / load-image 都命中);
顺带把节点号 也纳入搜索(函数注释早就写着"节点号",数组里却一直没有它)——想按刚能点的那个 #674 找是自然的下一步。
精简表单里认出哪个节点是哪个:点 #节点号 在画布上定位
左侧「工作流里能填的」那一列,分组标题写的是 Draw Mask On Image #706 这样 —— 名字加一个节点号,而节点号是死的,
光看它没法知道画布上哪个是它(维护者截图)。现在那个 #节点号 能点:选中该节点并移到中间。
不是新能力 :工作台「助手」回复里的 #12 本来就能点着定位(ADR 0042 §5)。这次把那份实现从 AssistantPanel 里
搬出来共用(workbench/locateNode.ts + 共用的 LocateNodeButton),两处说的是同一件事、只有一份实现。
旁边没有画布时(工作流库里那个宽版编辑器)照实说一句人话「还没连上画布」,不假装定位成了,也不把原因码摆到人眼前。
蒙版:能在应用里画了(ADR 0056 第二步)
生成面板的蒙版槽多了一条路:画一张 (空槽并排的两格:上传一张 / 画一张;已经填了的格子角上一支铅笔可再改)。
编辑器里:笔刷、橡皮(大小与硬度)、矩形、椭圆、撤销重做、清空、反选 、羽化 ,以及「按亮度 / 按 alpha
从底图起手」(阈值可调)—— 底图就是这一组素材里的那张原图。
产物严格照宿主契约:灰度 PNG、白 = 要改的地方 (不是带 alpha 的图 —— ComfyUI 那条注入的路读的是红通道,
带透明通道的图读出来是整块不透明,会静默地什么都不重绘 )。画完存成一张素材,名字是「蒙版 · <原图名>」。
属性归组(第一步:认出 GrowMask / FeatherMask / MaskBlur / ThresholdMask / MaskComposite / ImageToMask 的控件
并归到「蒙版属性」)还没做。
修:精简表单里调了顺序,右侧预览跟着走
生成面板的「引擎参数」和画板上的那一份一直是按表上的顺序 画的;只有表单编辑器右侧的预览自己按类别
排了一套(提示词 → 反向提示词 → 素材槽按固定角色顺序 → 尺寸 → 张数 → 种子 → 参数),于是作者在中间把
「参考图」拖到「放大倍数」下面,预览里什么都看不出变化(维护者报的)。
「表上一项该用哪一格画、排第几」收到一处(lib/appFormFields.ts):面板、预览都从它拿,谁都不许自己排一遍;
预览因此按草稿顺序 逐项画(每格一个 data-app-field 便于断言),表上没有的格子也不画。
预览要按顺序画,就得知道表上的键:那份翻译本来就在 previewOption(草稿 → 同形描述符)里做,现在它把
capabilities.form(表上每一项的键与顺序,和插件交上来的同一个形状)一并报出来,预览与面板的调用形状
因此完全一致:appFormFields(option, appForm(option)?.items ?? [])。
修:表单预览里的素材槽缩成小方块
预览的素材槽原先自己写了一套列规则(auto-fill + 88px 一格):600px 的列里一份素材只有 95px 宽,
而用的人真正看到的是铺满整行 的那一格(维护者:「右侧这个预览 同一行应该撑满宽度」)。实测改成共用规则后
是 600px(两份时各 297)。
分列规则收到一处(sourceFrames.slotColumns):真控件(ai-studio/FrameSlotField)和预览都从这里拿,
格子的高度、圆角、虚线也对齐。预览说的就是"看到的就是这样",两处不能各画一套。
修:表单字段那个设置浮层里,长名字被硬裁掉没有省略号
面板是 320px,而名字外面还套了一层 <span> —— 那层才是 grid 子项 ,min-width:auto 不肯收缩,
于是那一格 326px > 面板 320px,里面的 Truncate 宽度等于文字宽度(省略号永远不生效),长名字被面板
边缘切掉(维护者截图)。给外层加 min-w-0 之后那一格 296px、省略号出来 —— 在真页面上量过这两组数字。
同一屏的预览标题(表单名)是同一种写法,一并修掉。
加一条守卫(design/truncateNeedsShrinkableBox.test.ts):appForm 里凡是在 Truncate 外面又套了一层
的,那一层要能收缩(写了 min-w-0,或者它本身是 flex/grid 容器)。jsdom 量不了宽,所以按源码判。
修:对话记录里选中那一行是整行,「回到那里」点击独立
选中态(淡底色 + 左边那条圆角竖条)此前画在标题那一段按钮上,右侧那颗「回到那里」落在外面 ——
看上去像"选中没盖住右边"(维护者截图)。现在行那一层的样子贴在最外层,铺满整行,含那颗按钮。
那颗按钮和这一行是兄弟按钮 (按钮里套按钮读屏会念成一个),点它去它自己那一处,不会连带
打开这一行 —— 两条用例钉住(底色在整行那一层上、只画一层;点「回到那里」不换当前会话)。
修:连接开关的「开着却写着未启用」、以及新建文件夹后左边不出现
开关乐观更新之后那一段 (维护者截图):开关是开的,左边却写着「需要处理 / 未启用」—— 服务端那句
blocked_reason(未启用)说的是上一态 ,乐观写入只改了 enabled。现在开启时把它一起放掉,并且
在请求飞着的那一段卡片上说「正在启用… / 正在停用…」(转圈),不照旧态说一句话;回滚照旧。
后端那句原因是现算 的(enabled=false 才给「未启用」),所以重问回来对得上。
创建分组 / 文件夹 (维护者:「提交了、弹窗也关了,左边还是原先那几个,要过很久或刷新才出现」):
工作流库那一份是问那台 ComfyUI 扫一遍整个目录回来的(几秒起步),此前只等它重问。现在新建 / 改名 /
移动 / 删除之后先就地按同一条规则改手里这一份 (改名时里面每个文件的路径一起改),重问回来兜底。
修:别处跑了这条工作流,插件里那两组产出不跟着更新
工作流库详情弹窗里的「最近的产出」、以及大卡片上「最近的那一份产出」,只在自己这一页动作时才刷新;
在创作页、工作台、画板、工作流节点或工具里跑同一条工作流,它们是旧的(维护者指出)。
根子上是缓存失效那张表 (ADR 0053)漏了两行:插件里这两份挂在「素材 / 生成记录」名下 ——
一次跑完变的就是这两类数据,而「哪个任务刚做完」只有任务中心知道(它按任务目录的 affects 作废)。
顺带补上同类两处:model_download / model_previews 原先谁都不声明(下完模型、装完预览图,别处开着的
模型库不刷新)现在声明 models;node_install 声明 workflows(装完节点包,这张工作流缺什么就变了)。
插件页「当工具跑」产出的也是素材,改走同一张表(原先只手刷素材库子树)。
Mosael 自己下载带 libass 的完整版 FFmpeg
「管理 → 引擎 → FFmpeg」多了一行:下载并安装 。此前它只告诉你「自己去装一个完整版(brew install ffmpeg-full)
再把路径填进来」—— 用户必须自己去别处下载,而 macOS 上也不一定装了 Homebrew。
装的是清单里钉死 的静态构建(macOS / Linux:ffmpeg.martin-riedl.de 的发行构建,两个包;
Windows:GitHub 上 BtbN/FFmpeg-Builds 按日期打标签的 release,一个包里 bin/ffmpeg.exe 与 bin/ffprobe.exe),
带 sha256。清单由 scripts/sync-ffmpeg-builds.py 生成,发版前刷新。
「下载完了没有」按平台各判各的:两边都先核对 sha256(对不上一个字节都不落地 ),再确认那个可执行文件在、
跑得起来(macOS / Linux 还要补上可执行位 —— zipfile 不还原),最后一关是能不能烧字 (subtitles 滤镜);
装上一个没有 libass 的等于没装,那种不写进配置。
一次安装是一个后台任务(任务中心里看得见、能停),装到 Mosael 自己的数据目录(<数据目录>/tools/ffmpeg/<版本>/),
验过了才把路径写进原来那一格 —— 生效、重探、界面显示都是既有那一条路。
文档:⌘/ 看源码、引用悬停出预览
⌘/ (Ctrl+/) 在文档里切换 Markdown 源码与编辑 (页头那颗按钮一直在,只是没有键);焦点在别的输入框里时不抢。
正文里的引用悬停给一块预览 :标题 + 那一版正文的开头(Markdown 记号剥掉、长文截断),钉了版本的说清是第几版;
引用的那一篇没了就直说。只在真的悬停时才去问那一篇(一篇文档几十个引用,不预判)。
ComfyUI 连接启用/停用改成乐观更新
此前只有「成功之后再失效重问」,而那份缓存重问要走一趟插件(能力、状态、目录):点一下开关要等它回来才动。
现在开关先动、请求在后台走,失败回滚。
没写提示词的那一轮:发出去的是工作流里存着的那句,没有就摆一行说明
没有提示词可摆的那一轮照消息 的样子摆:同一个气泡壳子(灰字说明这一轮用的是什么)+ 底下那行脚注里的时间 ——
不是一行飘在结果旁边的说明文字。
创作页里不填提示词时,发出去的就是这张工作流自己存着的那句 (此前只在插件那一侧悄悄用它,界面上这一条消息
是空的 —— 维护者截图);那张图根本没有存着的那句(放大、抠图这类不收提示词的)就摆一行说明,不再剩一个空行。
时间归下面那行元信息,不丢。
表单里的图片输入用传图组件,不再是文件名下拉
读素材的节点此前只认一张硬编码的类名表 (LoadImage 那几个)。自家节点包的 Optional Load Image 不在表里,
于是它不算素材槽位:精简表单上「首帧」「尾帧」只好画成只有 none 的下拉,挑给它的图也没地方接。
现在按 ComfyUI 自己的上传标记(image_upload,前端就是照它给下拉加一个上传按钮)通用地认,并把「这一格在表单上
叫什么」(source_keys)报给界面 —— 表单上那两项于是画成传图的那一格。
新版下拉存着上一版节点包的值时,按定义缺省复位(和 ComfyUI 界面一致)
复位过哪几格会在这次生成的说明里 说一句(例如「这张工作流里有 1 格下拉存的还是上一版节点包的值,已按节点
默认值复位:#30 easy prompt · prefix」)—— 生成记录里留着,工作台跑的时候也看得到。跑出来的参数和文件里存的不一样,
不该没人说得清。
新版下拉(["COMBO", {options}])里存的值已经不在选项里时,ComfyUI 自己的页面会把它换回定义默认值 ——
所以同一张图在界面里跑得通、在 Mosael 里被后端拒。现在 Mosael 照同一套语义办,复位过哪几格记在节点的
_meta 里。老式列表下拉(模型文件那种)照旧不换,由提交前检查说清缺哪个文件。
新式节点(V3)的格子读值不再错位
COMFY_DYNAMICCOMBO_V3 / COMFY_AUTOGROW_V3 展开出来的子输入(sampling_mode.temperature 这类)
此前被排到 widgets_values 的最后,于是模板之后的值整体错一位(真机:提示词优化节点的 temperature 落到
thinking、top_p 落到 mtp,ComfyUI 回「mtp: 0.95 not in [...]」)。现在按前端自己的顺序读:子输入紧跟模板那一格。
提交前说清「这一格存的旧值已经不在下拉里了」
节点包更新过之后下拉的选项会变(占位符改个词也算),而工作流里存的是当初那个字符串 —— ComfyUI 到提交时才回一句
Value not in list: prefix: 'X' not in [...],看着像它自相矛盾(那串字明明在列表里,其实是另一个字符串)。
现在提交前就指出是哪一格(#30 easy prompt · prefix)、存的是什么、去哪儿改。
界面修复(三处)
画布左上角那块旧版标题骨架去掉了(名字现在在页头的分级面包屑里,画布上再摆一个就是同一个信息两处);
右下角的提示条不再因为输入框只压到一个角就飘到半空 —— 只有挡掉那一列的大半才让开,其余照旧待在右下角;
素材被删掉之后,工作流和无限画布节点里的预览不再显示成一张破图,而是一块写着「素材已删除」的占位;
这块占位整块居中(此前照抄了 <img> 的 object-cover 类,又用 place-items-center —— 高的盒子里
图标和文字被撑到上下两头,中间一大片空)。
界面修复(四处)
文档里 @ 引用文档的弹窗加了高度上限(此前文档一多就顶出屏幕);
删除线穿过内联代码不再被代码的背景盖没(代码自己也带删除线);
通知角标在窗口被工作台盖住、或应用在后台时也会自己刷新 —— 智能体推的通知不再要等点铃才出现;
模态弹窗抬到浮卡之上:开着确认卡点「全部放行」时,确认窗不再被确认卡盖住、按钮点不到。
ComfyUI 工作台自己跟住服务器的节点定义:装完节点包、重启过那台 ComfyUI 之后,画布那个页面里还是打开它时
拉的旧定义(画布上画成 UNKNOWN、导出也失败)。服务器回来那一下(WS 重连)它就地刷新一次定义,画布上那些
占位节点换成真的 —— 不用重载页面、不用人做任何事,未保存的改动也不丢。
智能体工具结果归回工具行;ComfyUI 工作台预览与节点分组(ComfyUI 插件 1.23.3)
工具的结构化结果、媒体预览和失败原因现在放在这次工具调用的展开明细里,结果到达时自动展开;收起工具行会一起收起,
不再在下一行画成一张看似独立的消息卡。等待批准的交互卡仍紧跟调用显示。
ComfyUI 工作流把未接线输出写成 links: null 时,comfy_canvas_edit 现在会在编辑边界把可变集合统一规整后再计划,
不再报 AttributeError: 'NoneType' object has no attribute 'append';根图和子图走同一条路径。
工作台助手现在能读节点的位置和大小,并在同一批里移动根图或子图节点;“整理节点”只占一步撤销。节点坐标和其他画布改动一样
先列清单、经用户应用才写入。
工作台助手现在也能读写 ComfyUI 原生空间分组:新建、重命名、移动、缩放、改色或删除分组都与节点整理共用一次确认和一次撤销;
分组按矩形范围包含节点,删除分组不会删除节点。
“运行与结果”逐个按素材自身类型选择预览:视频显示播放提示、走视频文件流,不再因一次运行的主类型是图片而显示成“大图”。运行失败
摘要也收回面板的常规字号;工作流表单和运行结果里的“只要这个节点”按输出类型写成图、视频或音频。
无限画布现在完整识别 ComfyUI 精简表单:即使表单只有提示词、参考图,也会出现「参数」入口;表单里的文案和素材槽与节点下方编辑器
共用同一份内容,提示词直接显示为可编辑文本框并与主输入框实时同步,可直接添加或移除参考素材。参数区不再重复显示精简表单标题;
留空时仍明确说明会使用工作流保存的提示词。
火山播客的发音人试听改走 PodcastTTS 自己的照稿念协议,不再被普通配音引擎目录拒绝;正式「照稿念」会从逐段稿件派生火山要求的
input_text,StartSession 直接发送协议参数,避免明明有稿件却返回 input_text is empty;语速也随同一层 speech_rate 真正交给服务端。
ComfyUI 工作台运行前由后端针对当前连接主动对账一次生成目录。刚保存、改名或目录镜像暂时落后的工作流不再被误报成“还不是
这个连接下的生成模型”,前端也不再把所有 422 错误一概猜成目录问题并重复请求。
You can’t perform that action at this time.