cv.cm

AI · AI绘画

文生图AI是怎么工作的?怎样用好它?

阅读约 7 分钟

简短回答

文生图AI先把你的提示词编码成数字,再由生成器构建出与之匹配的图片,通常是从随机起点开始一步步去除噪声。你可以通过提示词、图片尺寸、步数、引导强度和种子来控制结果。好的流程是:先快速出很多张小草稿,固定一个种子,优化提示词,再对最满意的一张做编辑和放大。

打开AI 绘画生成器

从提示词到图片,中间发生了什么

大多数文生图系统由三部分组成。文本编码器把提示词变成一串捕捉其含义的数字;图像生成器以这些数字为条件创建图片;解码器再把生成器的内部表示转换成真正的像素。

目前最常见的生成器类型是扩散模型(diffusion model)。它从纯随机噪声开始,经过一系列步骤,每一步在文字的引导下预测并去掉一点噪声。潜在扩散模型(latent diffusion model),也就是 Stable Diffusion 背后的这一家族,是在压缩空间而不是全尺寸像素上做这件事,运行成本低得多。另一类系统是自回归的:它们把图片当作一串 token,一个接一个地生成,很像语言模型写文字。例如 Janus-Pro 就是这样工作的。两类模型你用的输入是一样的,所以下面的流程对两者都适用。

  1. 提示词被切分成 token 并编码。
  2. 根据种子生成一个随机起点。
  3. 生成器对这个起点精修固定的步数,每一步都朝提示词靠拢。
  4. 解码器输出所选尺寸的最终图片。

关键参数

各工具的叫法不同,许多在线服务也隐藏了其中一些。能看到的时候,下面这些值得了解。

参数控制什么实用建议
提示词模型要画什么主体在前,然后是场景、风格、光线和镜头。参见图片提示词指南。
反向提示词模型要避开什么简短而具体:文字、水印、多余的手指。没有具体要排除的就留空。
尺寸 / 画幅输出的像素和形状使用模型训练时的尺寸。尺寸大得多时主体可能重复;改为事后放大。
步数(steps)精修的轮数步数多会增加细节,但到一定程度后只是白花时间。先用工具的默认值。
引导强度(CFG scale)图片多严格地遵循提示词值低会偏离提示词,值过高会显得生硬或过饱和。从默认值开始。
种子(seed)随机起点同一环境下,相同的种子、提示词和参数会得到几乎一样的图片。调提示词时固定它。
采样器 / 调度器去除噪声所用的算法对速度和质感有一点影响。要改也最后再改。
批量数每次运行生成几张一次多生成几张再挑,比一张张重跑更快。

引导的原理是在每一步比较两个预测,一个带提示词,一个不带,然后把结果进一步推向两者的差异。所以这个值像是提示词的力度旋钮,调得过高会让一切都被夸大。

从想法到成图的工作流程

  1. 用一句话写下需求:图片用来做什么、形状(方形帖子、16:9 横幅、9:16 手机壁纸),以及必须呈现的那一件事。
  2. 起草提示词,包含主体、动作、场景、风格、光线和构图。
  3. 用随机种子生成一批四到八张小图。看构图,不看细节。
  4. 挑出最好的一张并记下它的种子。从现在起固定这个种子。
  5. 每次只改提示词里的一处(光线、镜头、颜色)并对比。种子固定时,差异就来自你改的词。
  6. 构图满意后,用局部重绘(inpainting)或图生图修补局部问题,而不是从头重新生成。
  7. 把成图放大到你需要的尺寸,再用原始大小检查脸、手和所有文字。
  8. 把提示词、种子、模型和参数记在文件旁边,以后就能做变体。

下面是第 5 步的一个小例子。种子不变,每次运行只换光线那一句。

seed 1234
A: a lighthouse on a rocky coast, wide shot, overcast soft light
B: a lighthouse on a rocky coast, wide shot, golden hour, warm rim light
C: a lighthouse on a rocky coast, wide shot, blue hour, lamp glowing

因为起始噪声相同,A、B、C 的布局相近,你就能单独比较光线。如果每次都换新种子,比较的就是不同的构图了。

怎么选尺寸和分辨率

每个模型都是围绕特定尺寸训练的。早期的 Stable Diffusion 模型主要用 512×512 像素训练;较新的模型围绕 1024×1024 和几种画幅比例训练。要求的图片比训练尺寸大得多时,常会出现重复的主体,比如两个脑袋或两条地平线,因为模型用它所知道的东西去填充多出来的空间。

更稳妥的做法,是用原生尺寸生成,再用AI放大工具放大。例如,cv.cm 的AI图片生成器用自回归模型在你自己的GPU上生成 384 像素的图,然后可以用 Real-ESRGAN 放大 2 倍或 4 倍。放大工具能锐化边缘和纹理,但无法添加物体,也修不好糟糕的构图,所以先把布局做对。

文生图还做不好的地方

  • 图中的文字。字母可能拼错或被编造出来,长句和非拉丁文字尤其严重。文字必须正确时,事后用编辑器添加。
  • 手和数量。多指或手指粘连比以前少了,但仍会出现。精确的数量(七只鸟)和空间关系(在左边、在后面)也常常出错。
  • 多个不同的人。一个人的特征会串到另一个人身上。分阶段构建场景,或使用参考图。
  • 同一个角色出现两次。除非使用参考图、固定的描述词或微调,否则每次新生成都是一个新人。参见一致性角色指南。
  • 偏向常见的样貌。没有细节时,模型会退回训练数据里最常见的脸、地点和风格。明确写出年龄、地域、体型和场景。
  • 真人、品牌和标志。许多服务会拦截它们;即使工具允许,使用它们也可能带来法律风险。

用在线服务,还是本地模型?

Midjourney、GPT image、Imagen,或者在线的 Stable Diffusion 和 FLUX 服务这类在线工具上手容易,运行的也是大模型,但你的提示词要发送到服务器,并受其内容规则和条款约束。本地工具则在你自己的GPU上运行模型:数据不会离开你的设备,每个参数都看得见,但模型必须装得进显存,通常也更小。

问题在线服务本地或浏览器内模型
隐私提示词和图片会发给服务商留在你的设备上
图片质量通常模型更大、更强模型较小;取决于你的硬件
可控性部分参数被隐藏所有参数可见
成本免费额度或订阅下载后免费;消耗你的电力和GPU

常见问题

文生图AI就是扩散模型吗?

不一定。目前扩散是最常见的方法,但也有一些文生图模型是自回归的,把图片当作一串 token 来生成。两种用法是一样的。

为什么同一条提示词每次生成的图都不一样?

每次运行都从种子决定的新随机噪声开始。固定种子,再配上相同的模型和参数,就能再次得到相同或非常相近的图片。

CFG 或引导强度应该设多少?

先用工具的默认值。如果图片忽略了提示词的某些部分就稍微调高一点;如果颜色显得生硬或细节过度处理就调低。

AI生成的图片可以商用吗?

取决于工具的条款和你所在地的法律。许多服务允许商用,但在一些国家,纯AI生成的图片受到的版权保护有限。请查看条款和版权指南。

为什么AI图片经常是方形的,而且很小?

模型是在特定尺寸上训练的,生成大图要消耗大量显存和时间。先用原生尺寸生成,再用AI放大工具得到最终分辨率。

全部AI教程