首页 / AI教程 / 正文
AI教程

Stable Diffusion教程:零基础轻松入门,从安装到出图一站式掌握AI绘画

chuanbook chuanbook
发布于 2026 年 10 月 05 日
阅读 约26分钟
浏览 1
评论 0

我刚开始接触 Stable Diffusion 时,脑子里全是问号。它到底能做什么?跟 Midjourney 有什么区别?我的电脑能不能跑?这些疑问堆在一起,让人有点不敢下手。后来我花了不少时间折腾,从完全不懂到能稳定出图,才慢慢摸清了门道。这篇教程就把我踩过的坑、试过的路,原原本本讲给你听。你不需要先成为程序员,也不需要懂复杂的数学,跟着走就能把环境搭起来。

1.1 Stable Diffusion 能做什么:原理、版本差异与典型应用

我最早以为 Stable Diffusion 就是个“文字转图片”的工具。用久了才发现,它的本事远不止生成一张好看的图。它本质是一个扩散模型,训练时先给图片加噪声,再学着把噪声一步步去掉。生成的时候,它从一团随机噪声开始,根据你给的文字提示,反复猜测“下一步该去掉哪些噪声”,几十步之后,图像就浮现出来了。这个过程有点像雕塑家从石头里凿出形状,只不过石头是数字噪声,凿子是你的提示词。

版本差异这块,我实际用过 SD 1.5、SD 2.1、SDXL 和 SD3。SD 1.5 最经典,模型小、插件多、社区资源丰富,适合新手起步。SD 2.1 画风更干净,但早期很多模型不兼容,现在用的人少了一些。SDXL 的默认分辨率到了 1024,细节和构图明显更强,对显存要求也更高。SD3 我试过几次,文字理解能力好,不过生态还在完善。我的建议是:先拿 SD 1.5 练手,熟悉了再上 SDXL。典型应用方面,我做过头像生成、电商产品图、小说插画,还帮朋友修复过老照片。有人用它做游戏概念设计,有人批量生成社交媒体配图。只要涉及“从文字到图像”,它都能派上用场。

1.2 学习路径与硬件配置:显卡、显存、系统与运行方式选择

我自己的学习路径很笨:先让软件跑起来,能出一张图,再去研究提示词怎么写。这个顺序对我很管用。一上来就啃参数、看论文,容易劝退。跑通之后,再逐个理解采样器、CFG、步数这些概念。接着学图生图、ControlNet、LoRA。每一步都动手试,比光看教程强十倍。你也可以按这个节奏走:安装 → 出图 → 提示词 → 进阶控制 → 工作流优化。

硬件配置是很多人卡住的地方。我第一台跑 SD 的电脑是 RTX 3060 12G,当时算中端卡。6G 显存能跑 SD 1.5,但分辨率一高就爆显存。8G 显存比较舒服,12G 以上可以玩 SDXL 和批量生成。NVIDIA 显卡支持最好,CUDA 生态成熟。AMD 卡也能跑,需要额外配置,性能会打折扣。Mac 的 M 系列芯片用 MPS 后端,速度慢一些,出图质量没问题。系统方面,Windows 用户最多,整合包也最丰富。Linux 适合折腾,性能释放更充分。运行方式有好几种:本地部署最自由,云端租卡适合没显卡的人,Colab 免费但限制多。我推荐新手先用整合包在本地跑,省心。

1.3 Stable Diffusion WebUI 安装教程:整合包、手动部署与模型目录说明

安装 WebUI 有两条路:整合包和手动部署。我两种都试过。整合包适合第一次接触的人,下载解压,双击启动脚本,等它自动装依赖,浏览器就打开了。秋叶整合包、星空整合包我都用过,秋叶的更新频率高,对新手友好。手动部署适合想搞明白每一步的人。大概流程是:装 Python、装 Git、克隆仓库、创建虚拟环境、安装 PyTorch 和依赖。手动部署的好处是出错知道去哪查,坏处是网络问题能折腾一整天。

模型目录这块,我当初放错了好几次。WebUI 根目录下有个 models 文件夹,里面几个子目录各有用途。Stable-diffusion 放主模型,也就是 Checkpoint,文件通常几个 G。VAE 放色彩修正模型,有些主模型自带 VAE,就不用额外放。Lora 放风格微调模型,文件小,效果明显。embeddings 放文本反转文件,用来补充提示词。ControlNet 放控制模型,配合 ControlNet 插件使用。我习惯在 Stable-diffusion 下面再建子文件夹,按风格分类,找起来方便。放好模型后,在 WebUI 左上角点刷新,模型列表就会更新。

1.4 安装后验证与常见报错处理:网络、依赖、CUDA 与启动参数

安装完启动,终端会输出一串日志。看到 Running on local URL: http://127.0.0.1:7860 就说明成功了。浏览器打开这个地址,能看到文生图界面。我习惯先在提示词里写 a cute cat,点生成,等几十秒。如果出一张猫图,环境就没问题。要是报错,先看终端最后几行,错误信息通常很具体。

常见报错我遇到过不少。网络问题最常见,克隆仓库卡住、下载模型失败。我会挂代理,或者用国内镜像源。依赖缺失的话,终端会提示 ModuleNotFoundError,按名字装就行。CUDA 错误麻烦一些,通常是 PyTorch 版本和显卡驱动不匹配。我一般去 PyTorch 官网复制对应 CUDA 版本的安装命令,重新装一遍。显存不足会报 CUDA out of memory,加启动参数 --medvram 或 --lowvram 能缓解。启动参数写在 webui-user.bat 的 COMMANDLINE_ARGS 后面。我常用 --xformers 加速,--api 开接口,--listen 让局域网访问。遇到报错别慌,把错误信息复制到搜索引擎,大概率有人已经解决了。

安装好 WebUI 之后,我盯着浏览器里那个界面发了半天呆。按钮不少,输入框好几个,参数密密麻麻。心里有点发怵,生怕点错一个就崩了。硬着头皮试了几次,发现其实没那么复杂。这一章我就带你把我当初摸索的过程走一遍,怎么认界面、怎么调参数、怎么放模型,最后顺顺利利出第一张图。

2.1 界面功能速览:文生图、图生图、设置与扩展页签

WebUI 的页签排在最上面,一排小字。我一开始只认得“文生图”三个字,其他的一概没碰。文生图就是我输入文字,它吐图片,最直接。图生图是拿一张现成的图当底子,让它改。这两个页签用得最多。设置页签我很少动,除非要改主题或者调一些默认值。扩展页签是装插件的地方,比如 ControlNet 就在那儿管。我第一次打开时,觉得页签太多,后来发现日常就盯着文生图,其他的等需要了再学。

文生图页面里,左边是提示词框,上边正向,下边反向。右边有一堆滑条和下拉菜单,那就是参数区。中间是生成按钮,大块蓝色,点了就开始跑。右上角有个小箭头,能展开更多选项,比如高分辨率修复、面部修复。我当初没注意这些,出图总觉得差口气。图生图页面多了一个上传图片的区域,还有重绘幅度滑条。那个滑条很关键,调小了变化少,调大了变化猛。我试过把一张风景图重绘成油画,滑条拉到 0.7,效果挺惊喜。

设置页签里,我偶尔会改一下输出目录,或者把界面语言切成中文。扩展页签下面有“可用”和“已安装”两个子页。装 LoRA 或者 ControlNet 模型时,得在这里刷新一下。页签之间的切换不会丢数据,提示词和参数都留着。我习惯先在图生图里调好构图,再切回文生图写新提示词。这个来回切的动作,用熟了很顺手。

2.2 核心参数理解:采样器、步数、CFG、分辨率、随机种子

采样器这个名字听着唬人,其实我理解它就是“去噪的算法”。不同采样器出图风格有细微差别,速度也不一样。我常用的是 DPM++ 2M Karras 和 Euler a。Euler a 出的图有点随机感,DPM++ 2M 更稳。新手不用纠结,挑一个先跑起来。步数控制去噪迭代多少次。我一开始设 50,觉得越高越好。后来发现 20 到 30 就够,再高提升不明显,时间倒是翻倍。步数太低会糊,比如 10 步以下,细节基本没有。

CFG 这个参数我花了些时间才搞懂。它管的是“听提示词的话有多认真”。设成 7 到 11 之间比较正常。太低,比如 3,它就开始自由发挥,容易跑偏。太高,比如 15 以上,颜色会变得很浓烈,像打翻了颜料盘。分辨率我踩过坑。SD 1.5 原生是 512x512,我直接设 1024x1024,结果出来的人有两个头。后来才知道,分辨率要跟模型训练尺寸匹配,想大图得用高分辨率修复。

随机种子是个数字。同一个种子、同样的提示词、同样的参数,出的图基本一样。我习惯把满意的图的种子记下来,下次想微调就固定它,只改提示词里的一个词,看变化。种子设成 -1 就是每次随机。批量生成时,种子会递增,方便对比。有一次我忘了固定种子,重跑了一遍,出来的图完全不一样,吓了一跳。从那以后,满意就截图保存参数。

2.3 模型管理:Checkpoint、VAE、LoRA 的下载与放置

Checkpoint 就是主模型,文件大,几个 G。下载的地方主要是 Civitai 和 Hugging Face。我最早在 Civitai 上挑花了眼,看哪个都好看。下载完,文件要放到 models/Stable-diffusion 目录下。放进去之后,在 WebUI 左上角点那个刷新按钮,模型列表就出来了。我犯过一次错,把模型放到了 models 根目录,刷新半天没反应。后来按子目录放,再也没出过问题。我习惯在 Stable-diffusion 下面再建文件夹,比如“写实”“二次元”“建筑”,找起来快。

VAE 是色彩修正模型。有些主模型自带 VAE,出图颜色就挺好。有些主模型偏灰,就得额外挂一个 VAE。文件放到 models/VAE 目录。在设置页签里能选 VAE,或者用 --autolaunch 参数。我一般把常用的 VAE 放进去,然后在设置里指定默认。LoRA 是小文件,几十到几百兆。它像给主模型加滤镜,能调风格、调人物特征。文件放到 models/Lora。在提示词里写 <lora:文件名:1> 就能调用,后面的数字是权重。我试过把两个 LoRA 叠在一起,效果有时候很妙,有时候打架。

下载模型的时候,注意看文件格式。一般是 .safetensors,比 .ckpt 安全,不容易带恶意代码。Civitai 上有些模型需要登录才能下载。我一般用浏览器直接下,或者复制下载链接用下载工具。模型太多会占硬盘,我定期清理不常用的。放好模型,刷新,在文生图页面左上角的下拉菜单里就能选。选中之后,等几秒,它会加载到显存里。加载大模型时,终端会滚出一堆日志,正常。

2.4 生成第一张作品:从输入到保存、复现与批量出图

我第一次生成,提示词就写了 a cute cat。反向提示词空着。参数全是默认。点了生成,进度条慢慢走,终端在刷。等了大概二十秒,图片出来了,一只模糊的橘猫。虽然不完美,但那种“我输入文字,它给我图”的感觉,特别奇妙。我马上点了保存,图片存到了 outputs/txt2img-images 文件夹里。保存按钮在图片下方,也可以右键另存。我习惯按日期建文件夹,把满意的图归档。

想复现一张图,得把种子固定。在图片下方,有个绿色的小按钮,点一下就把种子填回参数区。再点生成,出来的图几乎一样。我经常用这招做对比测试。比如固定种子,只把提示词里的 cat 改成 dog,看模型怎么变。批量出图有两个地方调。一个是 Batch count,每批生成几张,一张一张跑。另一个是 Batch size,同时生成几张,对显存要求高。我一般 Batch count 设 4,Batch size 设 1。显存够的话,Batch size 设 2 能快一些。有一次我 Batch size 设了 8,直接爆显存,终端报 CUDA out of memory。后来加了 --medvram 参数才缓过来。

出图之后,除了保存,还可以点图片下面的文件夹图标,直接打开输出目录。图片的文件名里包含了种子和参数,方便以后查。我有时会把满意的图拖回图生图,加上 ControlNet 再加工。第一张图不用追求完美,能跑通流程就是胜利。我大概跑了十几张,才慢慢找到感觉。每张图都看看终端有没有报错,参数有没有生效。出图速度跟显卡有关,我的 3060 跑 512x512 大概五秒一张。慢一点没关系,关键是先动起来。

前两章我们把环境搭好了,第一张图也跑出来了。那张模糊的橘猫虽然能看,但我心里清楚,离“想要什么就出什么”还差得远。问题出在提示词上。我一开始以为提示词就是把想要的词堆上去,后来发现这里面有结构、有语法、有取舍。这一章我把自己踩过的坑和总结出来的方法都摆出来,帮你少走些弯路。

3.1 提示词基本结构:正向提示词、反向提示词与权重语法

正向提示词就是你想要的东西。我最初写 a cute cat,出来的猫是猫,但构图、光影、画质全凭运气。后来我学会按顺序写:先写主体,再写细节,最后写风格和质量词。比如 a cute cat, sitting on a windowsill, soft sunlight, detailed fur, photorealistic。这样模型知道先画什么、后补什么。主体越靠前,权重越高,这是我试了很多次才摸出来的。有人喜欢把一堆词用逗号隔开,有人喜欢用自然语言句子。两种都行,但我发现逗号分隔的标签式写法更可控,尤其是用 SD 1.5 系模型的时候。

反向提示词是你不想要的东西。我一开始完全忽略它,结果人物不是多根手指就是脸崩。后来我固定加一段反向词,比如 lowres, bad anatomy, bad hands, extra fingers, blurry, watermark, text。效果立竿见影,手部问题少了很多。反向提示词不是越长越好,写太多会把正常的细节也压掉。我试过复制网上那种几百词的反向模板,出图反而变得灰扑扑的,像蒙了一层雾。现在我用的反向词就十来组,够用就行。

权重语法分两种。一种是括号加数字,比如 (masterpiece:1.3),数字大于 1 就是加强,小于 1 就是减弱。另一种是方括号,[cat] 相当于乘 0.9 左右。我常用的是圆括号加冒号加数字,写起来清楚。调整权重的时候要克制,一次动 0.1 到 0.2 就够了。我有一次把 (detailed eyes:2.0) 写进去,出来的眼睛大得吓人,像外星人。权重超过 1.5 就容易出怪东西,低于 0.5 基本等于没写。这个尺度得自己试几遍才有感觉。

3.2 常用关键词库:画质、人物、场景、风格、光影与镜头语言

画质词是最基础的一层。我常用的有 masterpiece, best quality, ultra detailed, high resolution, 8k。这些词不会直接改变画面内容,但能让模型在细节上多花力气。反向词里的 lowres, worst quality, jpeg artifacts 是配套的。我试过不加画质词,出图确实会糊一些,尤其是人脸和远景。不过画质词加多了也没用,三到五个就够,堆太多反而互相打架。

人物相关的词分得很细。外貌方面有 1girl, long hair, blue eyes, slim。表情有 smiling, crying, angry。动作有 standing, sitting, running。服装有 white dress, leather jacket。我建议新手先把人物主体定下来,再一点点加细节。我一上来就写了二十个人物词,结果出来的人脸是拼凑的,五官错位。后来我改成先写 1girl, solo,出图稳定了再加头发颜色和衣服。场景词也是类似的逻辑,forest, city street, beach, bedroom 这些先定大环境,再补 trees, neon lights, sunset 之类的细节。

风格词能决定整张图的调性。photorealistic 是写实,anime 是二次元,oil painting 是油画,cyberpunk 是赛博朋克。光影词我最近才开始重视,soft lighting, rim light, golden hour, dramatic shadows 这些加进去,画面立刻有层次。镜头语言是进阶玩法,close-up, full body, from above, depth of field, bokeh。我用 close-up 和 depth of field 组合出过一张背景虚化的人像,朋友以为我拿相机拍的。这些词不用全记,挑几个顺手的反复用,慢慢就形成自己的模板了。

3.3 提示词调试方法:增删词、权重调整、种子固定与对比测试

调试提示词最忌讳一次改一堆。我早期经常一口气改五六个词,出图变了也不知道是哪个词起的作用。后来我养成习惯:固定种子,一次只动一个地方。比如先跑一张基准图,记下种子。然后把 blue eyes 改成 green eyes,其他不动。出来的图除了眼睛颜色,其他基本一致。这样我就能确认这个词确实在控制眼睛颜色。增词也是同理,加一个 earrings,看耳朵上有没有多东西。

权重调整要小步走。我一般从 1.0 开始,想加强就加到 1.2,想减弱就降到 0.8。试完一轮再决定要不要继续调。有一次我想让人物笑得更明显,把 smiling 从 1.0 加到 1.5,结果嘴咧到了耳根,像恐怖片。降到 1.2 就自然多了。权重这个东西,差 0.1 有时候就是天壤之别。我还试过用 [word1|word2] 这种交替语法,让模型在两步之间切换,出来的图有种融合感,挺有意思。

对比测试是提升最快的方法。我习惯一次生成四张,用同一个种子,只改提示词里的一个变量。WebUI 的 X/Y/Z 脚本特别好用,能批量跑不同参数组合。比如 X 轴设提示词,分别写 cat 和 dog,Y 轴设 CFG,跑 7 和 10。一次出四张图,对比一目了然。我靠这个办法摸清了很多参数的脾气。种子固定之后,连采样器的差异都能看出来。Euler a 和 DPM++ 2M 在同一个种子下,构图接近,但细节质感不一样。这些细微差别,不对比是发现不了的。

3.4 实战案例:人物肖像、风景概念、产品图与二次元风格生成

人物肖像是我练得最多的。我的模板大概是:(masterpiece, best quality:1.2), 1girl, solo, close-up portrait, long black hair, brown eyes, soft smile, white shirt, sitting by window, soft natural light, depth of field, photorealistic。反向词固定用那套手部和画质的。种子挑一个顺眼的固定住,然后微调表情和光线。我出过一张下午阳光打在侧脸上的图,皮肤质感很真实,连毛孔都看得到。秘诀是加了 skin texture, pores, subsurface scattering 这几个词。不加的话,脸会像塑料。

风景概念图的关键在氛围。我写过 mountain range, misty valley, sunrise, volumetric light, epic scale, matte painting。出来的图有那种电影概念画的味。风景图不需要太多反向词,主要防止出现人物就行,加个 people, person 到反向里。产品图我试得少,但逻辑类似。a white ceramic mug on wooden table, studio lighting, clean background, product photography, sharp focus。背景一定要干净,光线要均匀。我出过一张咖啡杯的图,杯壁上的高光很漂亮,就是加了 rim light 和 reflection。

二次元风格我用的是专门的动漫模型,提示词里加 anime, manga, cel shading。人物肖像那套词也能用,但画质词要换成 detailed anime face, vibrant colors。我试过用写实模型硬出二次元,结果像恐怖谷里爬出来的。模型和提示词得配套。二次元图对眼睛和头发的细节要求高,detailed eyes, flowing hair 这两个词我几乎每次都加。有一次我加了 cherry blossoms, school uniform,出来一张樱花树下的少女,氛围感拉满。那是我第一次觉得,提示词真的能像画笔一样,把脑子里的画面一点点描出来。多试、多记、多对比,手感自然就来了。

到了这个阶段,WebUI 的基本按钮我已经摸熟了,提示词也能写出个七七八八。但真正让我觉得“这东西还能这么玩”的,是装完 ControlNet 那天下午。那之前我出图靠抽卡,十张里能有一张构图满意的就算走运。ControlNet 把我从抽卡里捞了出来,姿势、线稿、深度、边缘,全都能锁死。这一章我把自己折腾扩展和排查问题的过程都摆出来,能少走一段是一段。

4.1 ControlNet 与图生图控制:姿态、线稿、深度与参考图

装 ControlNet 之前我犹豫了很久,看教程说步骤多、模型大、容易报错。实际装下来,核心就三件事:装扩展、下模型、开设置。扩展面板里搜 sd-webui-controlnet,点安装,重启。模型去 Hugging Face 上找 lllyasviel/ControlNet-v1-1 那一套,挑几个常用的下到 extensions/sd-webui-controlnet/models 文件夹里。设置页里把 Allow other script to control this extension 勾上,不然图生图界面不显示。我第一次装完没勾这个,对着空白面板找了半个小时。

姿态控制用的是 OpenPose 模型。找一张参考图丢进去,预处理器选 openpose,点预览能看到骨架线。然后写提示词,生成。我第一次用的时候惊呆了,出来的角色和参考图姿势几乎一模一样。膝盖弯曲的角度、手臂抬起的高度、头偏的方向,全对上了。以前写十遍 standing, arms crossed 都不一定有那个味道。OpenPose 对单人姿势特别稳,多人场景偶尔会把手脚搞混,得换 openpose_hand 或者调低权重。权重我一般给 0.8 到 1.0,太低锁不住,太高画面会僵,人物像被吊着线。

线稿控制我用得最多的是 canny 和 lineart。canny 适合已经有清晰轮廓的图,比如建筑设计或者产品图。丢进去之后出来的图会保留原来的结构,只换材质和光影。我用这个办法把一张手绘草图变成了写实渲染图,朋友以为我建模了。lineart 更柔和一些,适合动漫线稿上色。深度图 depth 是另一种思路,它不看线条,看远近。近的地方亮,远的地方暗。这个模型对场景构图特别有用,我拿一张风景照丢进去,出来的图前景、中景、背景的层次感跟原图一致,只是风格全变了。参考图模式 reference_only 更省事,不用预处理器,直接把原图当风格参考,出来的图会有原图的色调和气质,但构图自由。我经常用它来统一一组图的风格。

图生图配合 ControlNet 是另一个维度。普通图生图靠 denoising strength 控制变化幅度,0.3 微调,0.7 大改。但构图还是容易跑偏。加上 ControlNet 之后,构图锁死,只让模型改细节。我做过一组对比:同样一张原图,denoising 0.6,不加 ControlNet 出来的图人物位置全变了;加了 canny 之后,人物还在原地,衣服从 T 恤换成了西装。这个组合让我第一次觉得,控制权真的回到了自己手里。不过要注意,ControlNet 的权重和图生图的 denoising 要配合调,两个都高容易出鬼影,两个都低又没变化。我一般先固定 denoising 0.5,再微调 ControlNet 权重。

4.2 LoRA 与扩展插件:风格定制、模型叠加与效率工具

LoRA 是我今年花时间最多的东西。基础模型决定大方向,LoRA 决定小味道。我下过一个水墨风格的 LoRA,配上写实底模,出来的图有种宣纸晕染的感觉。LoRA 文件很小,几十兆,放在 models/Lora 文件夹里。调用的时候在提示词里写 <lora:文件名:0.8>,数字是权重。我一开始不知道权重怎么给,直接写 1.0,出来的图风格过猛,像蒙了一层滤镜。降到 0.6 就舒服多了。人物 LoRA 也一样,权重要克制,0.5 到 0.8 之间慢慢试。

多个 LoRA 叠加是进阶玩法。我试过同时挂一个画风 LoRA 和一个角色 LoRA,权重分别 0.7 和 0.6。出来的图既有那个画风的味道,人物也像那个角色。但叠加数量超过三个就容易互相打架,画面变脏。我的经验是,画风 LoRA 和人物 LoRA 可以共存,两个画风 LoRA 放一起基本会糊。还有一点,LoRA 和底模的匹配度很重要。SD 1.5 的 LoRA 放到 SDXL 上用,效果会打折,甚至完全不起作用。下 LoRA 的时候看一眼作者标注的底模版本,能省很多调试时间。

扩展插件里我装了七八个,常用的就三四个。ADetailer 是修脸神器,出图之后自动检测人脸,局部重绘。以前人物脸崩了只能整张重跑,现在 ADetailer 自动修,省了一大半时间。它的原理是检测到脸之后,裁出来放大重绘,再贴回去。我一般把重绘幅度设在 0.3 到 0.4,太高会换脸,太低没效果。Image Browser 是图库管理,生成的图多了之后,靠文件夹翻太累,这个插件能按模型、提示词、日期筛选。Tag Complete 是提示词补全,打几个字母自动弹标签,省得记拼写。还有一个 Dynamic Prompts,支持随机组合提示词,批量出图的时候特别好用,我设好一个模板让它自己跑,去泡杯茶回来就有几十张不同变体的图。

效率工具里我特别想提 X/Y/Z plot 脚本。这个不算扩展,是 WebUI 自带的,但用好了顶十个插件。X 轴设采样器,Y 轴设步数,Z 轴设 CFG,一次跑几十张对比图。我靠它摸清了 DPM++ 2M Karras 和 Euler a 的区别,也找到了自己常用模型的甜点步数。以前一张一张试,试到后面忘了前面。现在一次出完,截个图存档,下次直接查。这个脚本配合 LoRA 权重扫描也很有用,X 轴写 <lora:xxx:0.2> 到 <lora:xxx:1.0>,几步一档,一眼看出最佳权重在哪。我靠这个办法给每个常用 LoRA 都建了一个权重参考表。

4.3 工作流优化:显存管理、速度提升、批量生成与参数预设

显存不够是大多数人都会撞上的墙。我一开始用 8G 显存跑 SDXL,出图慢不说,动不动就爆。后来学会了几招。第一,启动参数加 --medvram 或者 --lowvram,显存占用能降不少,代价是速度慢一点。第二,出图分辨率别一上来就拉满,512x768 先跑,满意了再用高清修复放大。第三,关掉没用的扩展,有些插件常驻显存,关掉之后能腾出几百兆。第四,批次数不要开太大,一次两张比一次八张稳。我现在的习惯是,跑 SDXL 用 --medvram-sdxl,跑 SD 1.5 就不加参数,流畅很多。

速度提升方面,采样器选择影响很大。Euler a 快但细节少,DPM++ 2M Karras 慢一点但质感好。我一般草稿阶段用 Euler a 跑 20 步,看构图和颜色。构图满意了再换 DPM++ 2M Karras 跑 30 步出成品。这样试错成本低很多。还有个技巧是降低分辨率出草稿,512x512 跑一张只要几秒,比 1024x1024 快四倍。确定构图之后再高清修复放大,总时间反而更短。--xformers 这个启动参数也值得加,能加速注意力计算,我记得加了之后速度提升了大概两成。前提是你的显卡和驱动支持,N 卡一般没问题。

批量生成我经历过两个阶段。早期是一张一张跑,改一个词跑一张,效率很低。后来学会用 X/Y/Z plot 批量对比,再后来用 Dynamic Prompts 做随机组合。现在我的批量流程是这样的:先用一个模板提示词,配合 Dynamic Prompts 跑二十张不同变体,挑出三四张构图好的。然后固定种子,用 X/Y/Z plot 微调权重和参数。最后挑一张最满意的,高清修复出大图。这个流程比一张一张磨快很多。参数预设是另一个省时间的办法。WebUI 有 Styles 功能,可以把常用的提示词组合存成预设,下次一键调用。我存了“写实人像”“二次元”“风景”“产品图”四套,每套里包含正向词、反向词和推荐参数。点一下全部填好,只需要改主体词就行。

工作流优化到最后,其实是减少重复劳动。我给自己定了几条规矩:第一,任何参数改动一次只动一个,配合固定种子。第二,出图之后立刻在文件名或图库插件里标注用的模型和 LoRA,不然过两天就忘。第三,每周整理一次输出文件夹,把废图删掉,好图归档。第四,常用设置存成预设,不重复造轮子。这几条看起来简单,坚持下来省了我大量时间。以前我经常花半小时调参数,最后发现是某个 LoRA 权重忘了改。现在有预设和标注,这种低级错误少了很多。

4.4 常见问题与持续学习:崩图、手部、版权、模型社区与资源导航

崩图是每个人都会遇到的。画面扭曲、颜色断层、结构错乱,原因五花八门。我遇到最多的是这几种:提示词冲突,比如同时写了 close-up 和 full body,模型不知道该听谁的。权重过高,某个词给到 1.8 以上,画面容易被那个词带偏。分辨率不对,SD 1.5 在 1024x1024 下容易出双头,因为训练分辨率是 512。采样器步数太低,20 步以下细节不够。LoRA 不匹配,底模和 LoRA 版本对不上。排查的时候我习惯从最简单的开始:关掉所有 LoRA,换回默认参数,只留核心提示词。跑一张正常的,再一个一个加回去。这样能定位到具体是哪个环节出的问题。

手部问题是老生常谈。SD 1.5 画手,十张里有三张能看就算不错。我的应对办法分三层。第一层,反向词里加 bad hands, extra fingers, missing fingers, fused fingers。第二层,用 ADetailer 的 hand_yolov8n 模型单独修手,检出率比人脸低一些,但能救回不少。第三层,ControlNet 的 openpose_hand 或者 depth_hand,直接给手部姿势参考。如果还不行,我就用局部重绘,把手部框出来,降低重绘幅度到 0.3,让它自己修。这三层下来,大部分手部问题能解决。实在救不了的,裁掉或者换构图,别跟一只手较劲。

版权问题我以前没太在意,直到有次想拿一张图做商业用途,才去查了查。基础模型本身的license各不相同,SD 1.5 是 CreativeML Open RAIL-M,允许商用但有一些限制。SDXL 的 license 更宽松一些。LoRA 的版权看作者,有些明确写了不能商用,有些没写。我现在的习惯是,商用之前查三样:底模 license、LoRA 作者说明、生成图里有没有明显模仿某个在世艺术家的风格。社区里对 AI 生成图的版权还在讨论,各地法律不一样。稳妥起见,商用项目我会用自己训练的 LoRA 或者明确可商用的底模,避免直接用网上下的风格 LoRA。

模型社区和资源导航我常去几个地方。Civitai 是最大的模型分享站,Checkpoint、LoRA、 embeddings 都有,每个模型下面有示例图和推荐参数。Hugging Face 更偏技术向,很多官方模型和论文配套资源。Reddit 的 r/StableDiffusion 适合看别人的工作流和踩坑记录。国内的话,B站和知乎上有不少中文教程,LiblibAI 也有模型下载。我建议新手先在一个社区扎根,把热门模型和常用工作流摸熟,再扩散。资源太多容易眼花,我有一阵子每天下十几个 LoRA,结果一个都没用透。后来改成一周只试一个新东西,反而学得扎实。

持续学习这件事,我的体会是别贪多。每周花一两个小时看一个新功能或者试一个新模型,比一天看十个教程然后全忘掉强。我现在的节奏是:周中晚上抽空跑几张图练手,周末整理一周的产出,写几句笔记。笔记不用长,记下哪个参数好用、哪个 LoRA 翻车、哪个提示词组合出了好图。攒了几个月回头看,这些笔记比任何教程都贴合自己的习惯。Stable Diffusion 这个圈子更新快,但底层逻辑变化慢。把基础打牢,新东西上手就快。我到现在也没用遍所有功能,但常用的那几样已经够我做出想要的东西了。

版权声明
文章版权声明:除非注明,否则均为ZBLOG原创文章,转载或复制请以超链接形式并注明出处。
分享到
chuanbook

评论

发表评论

请文明发言,共同维护良好交流氛围。
链接已复制到剪贴板