news 2026/9/16 19:14:55

ComfyUI节点式AI绘画工作流:从部署到LoRA与ControlNet实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ComfyUI节点式AI绘画工作流:从部署到LoRA与ControlNet实战

我想先从一个多数人都经历过的场景说起:在WebUI里调参数调到头秃,种子明明固定了,换一个采样器整张图就面目全非;想叠加LoRA和ControlNet,插件版本冲突让启动器红字一片;好不容易做出一张满意构图,想批量替换角色,又得在参数面板里来回横跳。这类问题在ComfyUI里基本都会被摊开解决。ComfyUI是一套以节点图为核心的AI绘画工作流系统,它不像传统软件那样把功能藏在按钮后面,而是把"加载模型、写提示词、进采样器、解码出图"拆成一个个看得见摸得着的模块,你用连线把它们串成流水线,想在哪一环调整就在哪一环调整。这篇文章我会从零开始,先把ComfyUI部署起来,再带你搭出第一个能日常出图的文生图工作流,然后把批量调参、模板固化、LoRA、ControlNet、局部重绘这些进阶打法挨个讲透,最后把我跑图一年踩过的坑整理成一份排查清单。无论你是刚听说ComfyUI还没动手的新手,还是在WebUI里玩了一段时间想换个思路提效的老手,这篇应该都能帮你少走不少弯路。

1. 别再被WebUI的按钮绑架了:ComfyUI到底解决了什么问题

1.1 WebUI让人上火的三个典型场景

先说个我在WebUI里反复踩的坑。每次调整一个参数,出图效果不对,我就要把整条流程从头跑一遍。比如有一段提示词写得不满意,想只改后半段看效果,WebUI虽然也能做到,但你心里清楚每次参数微调都是在Draw一个看不见的"全局状态"里摸黑试探。尤其当你同时叠加LoRA、ControlNet、高清修复、蒙版重绘时,设置面板会变得极其拥挤,稍不留神点错一个开关,出来的图就完全不是预期效果。

第二个痛点是"复现难"。固定seed听起来很简单,但当你换了采样器、换了模型、甚至调整了LoRA权重,固定seed其实很难保证画面稳定。真正的稳定需要在同一套流程里做对照实验,WebUI的文件管理和批量逻辑面对这种需求就显得力不从心。

第三个痛点是插件生态越丰富,版本兼容越痛苦。今天装了ControlNet的A版本,明天另一个插件依赖的库版本冲突,启动器直接罢工。我在WebUI里至少经历了两三次"下午还能跑图、晚上升级完就崩了"的尴尬时刻。这些痛点让我下定决心换工具。

1.2 节点图才是"工作流"这个词的本义

ComfyUI的核心思路其实特别朴素:把AI绘画的完整链路抽象成节点,每个节点做一件事。比如CheckpointLoaderSimple只负责加载模型,CLIPTextEncode只负责把文字提示词编码成模型能理解的向量,KSampler负责潜空间采样,VAEDecode负责把潜空间数据解码成人眼可见的图像,SaveImage负责存图。节点和节点之间用连线传递数据,一条线从模型加载走到图像保存,就是一条完整的工作流。

用做饭来打比方,WebUI像一个"一键出餐"的微波炉,你把食材丢进去按个按钮等结果;ComfyUI则是把备菜、调味、烹饪、装盘全摊开在厨房台面上,每一步你都能插手。刚开始你可能觉得节点图看着吓人,但只要亲手接通过一次,就会发现它不过是一条清晰的生产线。而且这条生产线里的每个环节都可以单独替换——你换掉加载模型这个节点,后面的流程完全不用动,就能用另一个模型出图;你在采样前插入一个ControlNet节点,就能给思路加一条硬约束。

1.3 什么人建议转投ComfyUI

不是说所有人必须换,如果你只是想偶尔吐个头像、出几张朋友圈配图,WebUI的傻瓜式操作反而更舒服。但下面这几类人,我强烈建议把ComfyUI纳入主力出图工具:

  • 需要批量出图、批量换角色、批量做分镜的人。ComfyUI的队列机制和模板复用能省掉大量重复劳动。
  • 需要精细控制画面的人。比如锁定某个动作姿态、限定构图的线稿走向、只重绘画面某一块区域。
  • 需要叠加多模型、多LoRA、多ControlNet进行组合实验的人。节点化的流程天然支持复杂的串联和并联。
  • 想把AI绘画流程"产品化"的人。工作流本身是一份可保存、可分享、可迭代的JSON资产,团队协作时这个优势特别明显。

如果你是纯新手,还没怎么碰过AI绘画,我反而觉得直接学ComfyUI也完全可行,别被节点图吓到。把十来个基础节点接通过一次,你收获的不只是某张图,而是对整个AI绘画底层链路的一个完整理解。

2. 环境搭建二选一:秋叶整合包和官方便携版怎么选

2.1 秋叶一键整合包:给新手的零门槛方案

社区里常说的"秋叶整合包",本质是有人把ComfyUI本体、Python运行时、常用自定义节点、模型管理器、启动器打成了一个解压即用的包。它的最大优势是省心:你不需要单独配Python环境,不需要手动装CUDA依赖,不用理解Git是什么,解压以后点开启动器、选好模型路径就能开始干活。很多人的第一张ComfyUI图就是从整合包开始的。

但整合包也有几个不那么舒服的地方。一是体积巨大,动辄十几个G往上,下载和解压都挺耗时。二是更新滞后,整合包发布时自带的ComfyUI版本和自定义节点版本是固定的,如果你想追社区的最新功能,很容易遇到"整合包里版本太老"的尴尬。三是一旦出了问题,排查链路会比较长,因为你不太清楚它内部到底配置了什么,出bug时只能靠经验猜。

我的建议是:如果你完全没搭过AI环境、而且不想在这上面花太多时间,先拿整合包把流程跑通是最高效的路。等你在ComfyUI里待了一段时间、开始频繁折腾自定义节点和版本更新时,再考虑手动部署也不迟。

2.2 官方便携版手动部署:更可控,也更值得推荐

如果你有一定动手能力,我更推荐直接从官方releases页面下载Windows便携版压缩包,文件名通常类似ComfyUI_windows_portable_nvidia.7z。解压后目录里自带Python运行时,不需要额外安装Python,找到run_nvidia_gpu.bat双击运行,首次启动会自动检测CUDA/GPU硬件,然后打开本地的Web界面,默认地址是127.0.0.1:8188

便携版的好处有三个:目录结构一目了然,模型放哪里、插件放哪里你都清清楚楚;升级方便,进到ComfyUI子目录里用Git拉取最新代码就能更新,出问题也能用Git回退;基本不带多余的默认节点,整个环境很干净,后续想让工作流变得可控,还是建议走这条路。

有一点需要特别提醒:整个安装目录尽量不要出现中文和空格,放在类似D:\AI\ComfyUI_portable这种位置最稳妥。我见过不少奇怪的报错,最后追查下来都跟中文路径有关。这不是玄学,是很多底层库对Unicode路径支持不完善造成的。

2.3 模型的目录结构必须尽早搞懂

ComfyUI启动后会在models文件夹下自动建好若干子目录,每个子目录对应一类模型。你只需要把对应文件丢进去,界面里就能在下拉菜单中选到。最常见的目录和用途我整理成了表格:

目录存放内容说明
checkpoints大模型文件(ckpt/safetensors)决定画面整体风格和底子,通常自带CLIP和VAE
vae单独的VAE文件当大模型自带的VAE不佳时使用,修复偏灰、颜色发闷
lorasLoRA模型文件给大模型叠加上特定风格、角色或概念
controlnetControlNet模型文件用于姿态、线稿、深度等结构控制
embeddings负面/正面embedding文件配合提示词词组使用,常用来屏蔽低质量内容

有个小技巧:这些目录里可以再建子文件夹,界面上的下拉选项会按"子文件夹/文件名"的形式展示,所以我在loras里按画风、角色、场景分了几个子文件夹,几百个LoRA找起来也不会乱。

2.4 显存和启动参数:小显卡也能跑,但要知道取舍

ComfyUI对显存的调度比WebUI灵活一些,但显存依然是最现实的瓶颈。常见的启动参数有几个比较实用:

参数作用推荐场景
--lowvram强制低显存模式,逐层加载未用模型6G及以下显存跑SD1.5
--normalvram普通显存模式8G-12G显存
--force-fp16强制使用半精度浮点,降低显存占用大多数N卡都建议开启
--auto-launch启动后自动打开浏览器界面懒得手动输入地址时使用

我的经验是:8G显存跑SD1.5的常规出图很宽裕,跑SDXL就会紧张;如果要跑更大的模型或视频工作流,建议显存至少12G以上。参数不是堆得越多越好,比如--lowvram在显存够用的情况下反而会因为频繁换层拖慢速度,所以先按默认跑,真遇到显存不足再加。

3. 第一个工作流接线实录:从加载模型到保存一张图

3.1 最小工作流的节点清单

打开ComfyUI界面,默认会自带一个文生图模板,但我们不依赖模板,手动搭一遍才能理解每个节点的作用。一个最小可跑通的工作流只需要六个节点:

节点作用主要输入输出
CheckpointLoaderSimple加载大模型模型名MODEL、CLIP、VAE
CLIPTextEncode(正向)编码正向提示词clip、textconditioning
CLIPTextEncode(负向)编码负向提示词clip、textconditioning
EmptyLatentImage创建空白潜空间画布width、height、batch_sizelatent
KSampler潜空间采样model、positive、negative、latent_imagelatent
VAEDecode解码潜空间为图像samples、vaeimage
SaveImage保存并预览图像images

3.2 接线顺序与每个连线的含义

在界面空白处双击,会弹出节点搜索框,逐个添加上面这些节点后,按下面的顺序连线:

  1. CheckpointLoaderSimple先选一个底模。常见的SD1.5模型基本都可以。
  2. CLIPTextEncode的正向节点text输入框里写正面描述,比如雕刻感、光影质感;负向节点里写通用负向词,比如lowres、worst quality、bad anatomy这一类。
  3. CheckpointLoaderSimple输出的CLIP分别接到两个CLIPTextEncode的clip输入上。
  4. EmptyLatentImage里设置宽度、高度,batch_size先填1。新手最容易忽视这里,很多显存不够的报错都是从batch_size=2开始的。
  5. KSampler是核心采样节点,把CheckpointLoaderSimple输出的MODEL接进model输入,两个CLIPTextEncode的conditioning分别接进positive和negative,把EmptyLatentImage输出的latent接进latent_image输入。
  6. KSampler输出的LATENT接进VAEDecode的samples,CheckpointLoaderSimple输出的VAE接进vae。
  7. VAEDecode输出的image接进SaveImage,然后点右上角的Queue Prompt排队出图。

第一次出图后,你已经有了一个最小的、可复现的AI绘画链路。

3.3 checkpoint、CLIP、VAE三者到底是什么关系

这一步很多人都会产生困惑,为什么一个CheckpointLoaderSimple会拖出三条线?因为一个常规大模型文件内部其实打包了三个部件:

  • UNet:负责潜空间内的扩散采样,它决定了画面的风格和内容走向。
  • CLIP:负责文本编码,把自然语言描述转换成模型能理解的语义向量。
  • VAE:负责潜空间和人眼可见图像之间的来回解码。没有它,隐空间里的数据只是一堆张量,没法变成图片。

这个设计在ComfyUI里被可视化成三条不同颜色的连线,非常直观。你可以在采样之后、VAEDecode之前插入独立VAE来替换大模型自带的那个,但一般底模内置的够用,只有当出图灰度很大、色彩发闷时才需要单独加载VAE修正,这一点后面避坑章节会展开说。

3.4 KSampler参数逐个拆解:为什么这样填

KSampler是工作流里参数最多的节点,也是最值得花时间理解的地方。我通常这样填:

参数推荐值说明
seed固定一个值相当于这次实验的编号,固定它才能做可控对比
steps25扩散步数,太少了细节不够,太多了收益有限
cfg7提示词服从度,太高容易过饱和、溢出伪影
sampler_namedpmpp_2m采样器算法
schedulerkarras步长调度策略,细节还原更均匀
denoise1文生图保持1,图生图局部重绘时才调低

如果你用过WebUI,会发现这些参数很眼熟。区别在于ComfyUI允许你更精确地控制它们。举个例子,steps从25调到35,CPU/GPU时间会变长,但画面细节提升有限;真正影响风格的是sampler_name和scheduler的组合。dpmpp_2m搭配karras是我日常出图的基础配置,细节不够上restart采样器,想要更柔和可以用euler a。cfg我很少超过8,因为太高的cfg会让画面出现一种"用力过猛"的塑料感和色斑。

提示:seed旁边通常有fix/randomize/increment等控制选项。日常探索选randomize,一旦找到了满意构图,立刻把seed固定下来,后面调整任何参数都以这个seed为基准,这样你才能判断画面变化到底是哪个参数引起的。

4. 把工作流变成套路:批量出图、调参思路与模板固化

4.1 seed的正确用法:像做实验一样对待出图

很多人把seed当成"欧气编号",换一个seed重新开一局。其实seed更合理的用法是作为对照实验的控制变量。我个人的工作习惯是这样的:先用randomize模式连出几十张,把构图满意的图挑出来;然后固定这张图的seed,把提示词里的某个关键词换掉、或者把seed固定后调整steps,观察画面变化。因为seed相同意味着初始噪声相同,画面演进的基础是相同的,这时候画面差异基本来自你改动的那一个变量。

这种"对照组"习惯在批量出图时帮了大忙。我要做一组风格统一的头像时,固定一个seed,只改提示词里的角色名、服饰、场景关键词,出来的图构图结构高度一致,只是内容在局部替换,这比每张图都从零抽卡稳定得多。

4.2 一个工作流吃遍天:模板固化思维

ComfyUI最大的价值不在于省几次点击,而在于把流程本身变成资产。我搭好一套"底模+常用LoRA+固定尺寸+固定采样参数"的文生图工作流之后,会顺手导出成模板文件,之后所有出图都在这个模板上复制修改。这样做的原因很简单:减少每次都要重新决策的认知负担。你不需要反复思考steps和cfg应该填多少,模板已经替你定好了基础盘,你只需要把精力花在提示词和结构控制上。

实际复用的时候建议这样操作:

  • 平时把画风底模和常用LoRA全部预置在工作流里,权重设成0,需要时直接改权重。
  • 把不同出图任务的模板分文件夹存放,比如"写实人像""二次元立绘""电商海报底图""分镜草稿"各存一份。
  • 给对方分享或自己归档时,除了导出JSON,最好再保存一张嵌入工作流的PNG图片。ComfyUI会把工作流数据写入PNG的元信息中,别人把这张图拖进ComfyUI界面就能还原出整条流程图。

4.3 用ComfyUI-Manager管理自定义节点

折腾一段时间后,你一定会开始装各种第三方节点,比如ControlNet辅助预处理器、视频生成、局部重绘增强一类的扩展。手动从GitHub克隆插件再逐个装依赖太原始了,现在社区通常用ComfyUI-Manager来做这件事。

Manager的用法很简单:安装后在界面侧边出现Manager按钮,打开后可以在Custom Nodes Manager里搜索并一键安装想要的节点;当某个工作流导入后出现漂红节点时,Manager也能提示你缺失了哪些节点,以及在界面里直接补装。它是ComfyUI生态里最值得先装的自定义节点之一。

不过要提醒一句:自定义节点不是装得越多越好。每个额外节点都意味着多一份版本兼容成本,装多了启动变慢,还容易出现莫名其妙的互相覆盖。我现在的原则是:只有明确要用某个功能时才装对应节点,用完一段时间不用了,就清理掉。

4.4 快捷键与队列:批量出图的节奏感

ComfyUI对键盘流用户很友好,记住几个高频快捷键能明显提高出图效率:

  • Ctrl+Enter:直接把当前工作流加入队列并开始执行。
  • 双击空白处:快速搜索添加节点。
  • 右键节点:快速操作常用功能,比如复制、静音、替换模型名。
  • 点Queue Prompt多次:把多个出图任务按顺序压进队列。ComfyUI的队列是串行执行的,不要指望它同时并发跑多张图,但你可以事先排好一组任务,然后去看文档、写代码,让机器慢慢消化。

串行队列听起来慢,实际上对显卡更友好,因为显存是固定的,并发跑大图反而会因为OOM频繁中断。如果确实需要真正意义的并行批量出图,可以横向做"同一套工作流复制两份、分别开两个ComfyUI实例、轮流喂不同提示词"的土办法,适合有双卡或显存带宽有余量的场景。

5. 进阶组合拳:LoRA、ControlNet与局部重绘的实战搭配

5.1 LoRA叠加与权重调整

LoRA本质上是给大模型加了一层轻量的风格/角色补丁,体积通常只有几十到几百MB,不会像换底模那样大动干戈。在ComfyUI里加LoRA,需要在CheckpointLoaderSimpleKSampler之间插入一个LoraLoader节点,经典实现里它会同时接收MODEL和CLIP两条线,然后在内部把底模的权重调整成"底模+LoRA"的合成状态。

实际连线的顺序是:

CheckpointLoaderSimpleLoraLoaderKSampler(MODEL指向)

如果你的底模支持,CLIP输出也走同样的LoraLoader;如果只想让画面风格变化、不想影响文本理解,用LoraLoaderModelOnly只加载模型部分也成立。

LoRA的强度(strength)是核心控制点。不同LoRA的敏感度差异极大,我的经验是从0.6起步,逐档加到1.0以上,观察画面风格足够明显后立刻往回退一点。权重太高画面会出现腻得化不开的油腻感,角色特征也会变得畸形。

多个LoRA可以像串联水管一样一个接一个插进链路,形成"底模+画风LoRA+角色LoRA"的组合。这里建议把每个LoRA的强度先统一控制在0.6-0.8,再微调某一个,否则多个高权重叠加会产生灾难性的互相污染。

5.2 ControlNet:在采样时画出一条结构轨道

ControlNet解决的是"结构可控"问题。它能在采样过程中引入另一张参考图的结构约束,常见的有三种:

  • OpenPose:提取人物的骨骼姿态,适合锁定动作。
  • Canny:提取参考图的边缘线稿,适合锁定构图和轮廓。
  • Depth:提取参考图的深度信息,适合锁定前后景空间关系。

在ComfyUI里使用ControlNet的常规接线是:先用LoadImage载入参考图,接一个预处理器节点得到对应的特征图(比如骨骼图、线稿图、深度图),然后通过ControlNetLoader加载ControlNet模型文件,最后用ControlNetApplyAdvanced把正面conditioning、负向conditioning与control_net结合,输出一组新的conditioning送给KSampler。

一个容易忽略的细节是ControlNet也有强度参数,我通常先从1.0开始,如果画面里动作或结构过于松散就往上加,如果结构太死板导致构图僵硬就往下降一点。它跟LoRA一样,不是越大越好,找到一个"结构被约束住但画面依然自然"的平衡点才是关键。

5.3 局部重绘:用蒙版精准修改画面细节

出图后经常有需要"哪里不满意改哪里"的场景。WebUI里有Inpaint功能,ComfyUI里则是通过一个专门的节点链来实现:

  • LoadImage载入原图,Load Mask载入你标好蒙版的黑色图片(白色区域是要重绘的区域)。
  • VAEEncodeForInpaint把原图和蒙版一起编码成潜空间数据。这个节点和普通的VAEEncode不一样,它会把蒙版信息一并保存,让采样过程知道哪些区域需要重新生成、哪些区域作为参考保留。
  • 采样的denoise值要小心:局部微调时我通常填0.4-0.6,大范围重构时才拉到0.75以上。denoise越高,重绘区域偏离原图越远。
  • 解码后得到的就是只改动蒙版区域的成图。

比如你生成了一张人物半身像,脸还算能看但手部乱成一团,我一般不在全图画布上反复抽卡,而是只圈出手部区域做局部重绘。这样既保留了原图的其他部分,又能针对问题区域集中火力,比整图重新生成高效得多。

5.4 一条完整链路:从文生图到精修的流水线

把上面几个技巧串起来,就可以搭出一条"生成-控制-精修"的完整流水线。我自己最常用的一条链路长这样:

  1. 文生图工作流先生成一张底图,不走任何结构控制,只负责确定画面氛围和风格。
  2. 把这张图接进OpenPose预处理,提取出人物姿态作为结构约束,重新采样得到一张姿势准确但有风格变化的图。
  3. 发现手部或脸部细节不满意时,用VAEEncodeForInpaint+ 蒙版局部重绘,denoise调到0.5只修局部。
  4. 最终成图通过SaveImage保存,如果后续要批量做分镜,就把这一步替换成按序列命名保存的节点,批量导出成套图。

这套链路搭好一次之后,换底模、换LoRA、换参考图都不会影响整体结构,名副其实地变成一条"半自动"出图流水线。准备搞本地生成视频或动画分镜工作流的朋友,其实也不用另起炉灶,底图生成部分完全可以复用这条链路,后面再接上视频生成节点就行。

6. 跑图一年我踩过的坑:显存、色彩、版本兼容的排查清单

6.1 显存不足(OOM):先减分辨率,再谈优化参数

OOM大概是我跑图时遇到频率最高的报错。英文错误里通常会出现CUDA out of memory字样。处理它的优先级我觉得应该按下面的顺序来:

  1. 先把分辨率降下来,比如从1024x1024降到768x768。显示占用是立竿见影的,一张大图的显存开销远超你想象。
  2. EmptyLatentImage的batch_size改回1。很多人习惯调batch_size出多张,但每多一张图的显存是线性增长。
  3. 如果还不行,再考虑启动参数。8G显存以下的机器强烈建议配--lowvram--force-fp16,前者牺牲一点速度换内存调度,后者用半精度减少显存占用。
  4. 换模型。SDXL和SD3系列对显存要求远高于SD1.5,跑不动不是你的配置错,是模型本来就吃显存。想要低显存玩,可以先从SD1.5生态开始。

另外一个小技巧:ComfyUI界面左上角能显示当前显存占用情况,所以跑图前可以先看一眼余量,避免盲调。

6.2 出图灰蒙蒙、颜色发闷:先查VAE

我有一个朋友第一次用某个模型出图,所有结果都像蒙了一层灰,画面色彩特别闷。我当时就给了一个排查方向:看模型是否内置VAE。很多社区发布的模型文件为了体积,会把VAE单独拆出来,ComfyUI加载这种模型时如果不显式加载VAE,解码出来的图就会灰蒙蒙的。

解决办法是在VAEDecode前面接一个VAELoader,把单独下载的VAE文件接进去,这类问题基本一秒解决。还有一个判断技巧:如果同一张latent交给不同VAE解码,色彩差异巨大甚至整体发灰,基本可以确认是VAE缺失或模型自带VAE解码能力太弱。

色彩异常还有一种可能是CFG调太高,画面出现过饱和、彩色噪点、高光溢出。如果你用的是8以上的CFG且画面脏乱,先别急着怪模型,把CFG降回5-7再试。

6.3 节点飘红与模块找不到:别慌,走三步排查

工作流里突然出现红色节点,是最容易让新手崩溃的场面。我的排查顺序一般是这样的:

  1. 看红色节点上的错误信息,通常是字符串,找关键词。ModuleNotFoundError说明某个Python库缺失,KeyErrorTypeError多半是节点接口不兼容,CUDA out of memory则是显存问题。
  2. 如果和自定义节点相关,用ComfyUI-Manager检查这个节点有没有可用的更新,或者重新安装一次。
  3. 版本兼容问题重点盯ComfyUI本体版本。社区更新迭代快,前阵子升级后有些旧节点接口改名,很多旧工作流一导入就红。我的做法是升级前先手动备份user/default/workflows目录下的JSON,出现问题就能一键回滚。

还有一点容易被忽略:导入别人分享的工作流时飘红,大概率是因为对方用了你没有安装的自定义节点或模型。这时候红色警告里通常会标注缺失的具体名称,照着补装就行。别看到红框就以为是自己电脑坏了,绝大多数情况只是"组件没装齐"。

6.4 工作流分享与复现的易碎点

ComfyUI的工作流以JSON形式内嵌在PNG图片里,分享起来特别方便,但复现时有三件事别人可能不知道:

  • 工作流里引用的模型、LoRA、ControlNet文件并不会随着JSON打包给对方,对方需要自己去下载对应文件,所以分享时一定要顺手把模型名、LoRA名、版本信息写在说明里。
  • 自定义节点版本不一致会导致同样的工作流在不同人的电脑上表现完全不同。尽量固定一个相对稳定的节点版本再分享,避免对方装到最新但接口变了。
  • 版本更新带来的节点改名问题。我见过不止一次:同一条链路,旧版本用一个节点名,新版本拆分成了两个名字,导致旧工作流导入时必须手动重新接。所以我的习惯是"搭好的核心工作流,非必要不升级;升级前先备份一切"。

每次分享工作流时,我都会附上一张成品图截图,把关键参数用Revit标在截图角落。这既是给别人看的说明,也是自己半年后回看的存档。别高估未来的记忆力,图片比JSON更直观。

跑了一年多ComfyUI,我最深的体会是:它的学习曲线并不陡,真正花时间的不是记节点,而是理解每个节点背后"为什么这样接"。当你想明白一个checkpoint为什么拖出三条线、一个采样器为什么影响风格、一个蒙版为什么决定重绘范围之后,ComfyUI就不再是某个工具的说明书,而是一个能让你自由组合想法的沙盘。最后分享一个小习惯:我现在搭完任何一套新工作流,都会顺手导出JSON并截一张成品图存档。这不光是为了分享,更是为了在ComfyUI频繁更新的节奏里,给自己留一张随时可以回到的"安全网"。希望这篇能帮你少踩几个我当年踩过的坑,把精力花在真正出图上。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 19:14:48

Claude Code 工具并发报 400,这次用 TaoToken 走通 /clear 清空上下文

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/16 19:10:21

QtScrcpy:安卓投屏与控制的专业解决方案

1. QtScrcpy:安卓投屏与控制的专业解决方案作为一名长期从事移动设备管理的技术顾问,我一直在寻找能够真正解决多设备协同问题的工具。直到遇到QtScrcpy,这款基于Scrcpy二次开发的开源工具彻底改变了我的工作方式。它不仅实现了高清低延迟的安…

作者头像 李华
网站建设 2026/9/16 19:10:06

三周自建轻量级CRM:从线索到工单的落地实践

先说个背景。做销售的团队都知道,客户资料到处散落在Excel、微信聊天记录、纸质名片里,跟进到哪一步全凭个人记忆,这种状态撑到几十个客户还行,一旦过了两三百条线索,基本就开始乱了。我接手DeskcommCRM这个项目的时候…

作者头像 李华