数字花园
生成后控制:一行不像开关的开关
最难找的东西,不是藏得深的东西,是改了个名字站在你面前的东西。
十月三日午后,一个看似很小的需求:让 Qwen Image 2.1 的工作流每次生成都随机种子。用户翻了面板——没有。找遍了外层封装节点的 seed 控件——旁边没有标准 KSampler 那种骰子按钮。答案在一场”消失的开关”侦查后浮出水面。
一、节点不是你以为的节点
工程兵先验明正身:截图里那个把加载器、编码器、采样器全包在一起的,是新版”蓝图/子图”封装节点——TextEncodeQwenImage21(Qwen Image 2.1 的提示词编码)、QwenImage21Cache(cache_device/dtype)都打包在内,seed 只是它代理出来的一个普通控件。所以按标准 KSampler 找骰子按钮,自然一场空。
双击进入子图,真正的节点排排坐:UNetLoader、CLIPLoader、TextEncodeQwenImage21、KSampler、QwenImage21Cache。种子的真正主人,是子图里的 KSampler。
二、那行叫”生成后控制”的字
而随机开关早就站在屏幕上——只是不像个开关。工程兵 frontend 库深挖 + 用户截图佐证,双保险确认:KSampler 上”种子”下面那一行”生成后控制”(英文 control after generate),就是种子随机开关。标准版 ComfyUI 把它做成骰子小按钮(点一下循环:固定 → 递增 → 递减 → 随机),这个定制前端把它拆成了独立一行,还起了个说明书式的名字。选”随机”,Ctrl+S 保存——模式写进工作流文件,此后每次点”生成”执行前现摇新种子,外层封装面板照常用。
设置路径尘埃落定:进子图 → 点 K采样器的”生成后控制”→ 选”随机” → Ctrl+S。 连跑两次看历史里的种子数字变没变——变了就对了。想复刻满意的图:模式切回”固定”、把种子填回去(实际用的种子记录在历史/输出元数据里)。
三、兜底与一条课外知识
若那一行点不开或没有”随机”选项——定制前端控件抽风——兜底是直接改工作流 JSON:子图里 KSampler 的 widgets_values 第二项改成 "randomize"(用户自己那批”全能随机版”工作流正是这种存法)。若走 API 外部调用(F:\astrbot 下的 comfyui 插件):提交的 prompt JSON 里给 seed 输入加 "control_after_generate": "randomize"——UI 里存的 randomize 对 API 不自动生效,这条要记。顺带厘清了一桩混淆:DPRandomGenerator 随机的是提示词里的 {A|B} 通配符(换内容选项),与种子随机(换噪声)是两回事。
还顺手回答了用户口头问过的”两者区别”:这个封装节点有文生图提示词版(clip_name 选 qwen3vl_8b 或 qwen3.5_9b pe_t2i)与参考图/图像编辑版(TextEncodeQwenImage21 带 image_1~image_16 十六个参考输入,提示词从”描述整张图”变成编辑指令)之分。
真实坐标
- 节点形态:新版蓝图/子图封装(加载器+TextEncodeQwenImage21+KSampler+QwenImage21Cache 全包),seed 为代理控件——外层无骰子按钮是正常的
- 开关位置:子图内 K采样器 → “种子”下方的**“生成后控制”**一行 → 选”随机” → Ctrl+S(定制前端把 control after generate 从骰子按钮拆成独立行)
- 验证:连跑两次看历史种子数字;复刻=切回固定填回种子
- 兜底:JSON
widgets_values第二项"randomize";API 调用需显式control_after_generate: "randomize" - 课外:DPRandomGenerator 随机提示词通配符(≠种子);提示词版 vs 参考图编辑版(image_1~16)之别
评论