关于 prompt-engineering
面向 ComfyUI 图像生成提示词编写的技能,讲解 CLIP 编码、权重语法及不同模型的提示方式。还涵盖长提示词处理、嵌入词和 LoRA 触发词等实践。
主要功能
- 01CLIP 分块与 BREAK 用法
- 02提示词权重语法
- 03SD 1.5、SDXL、Flux 与 SD3 指南
- 04嵌入词与 LoRA 触发词
- 05通配符和条件合并节点
适用场景
- 01处理超过 CLIP 令牌限制的提示词
- 02为不同图像模型调整正向与负向提示词
- 03使用嵌入词改善负向提示词
- 04组合 LoRA、通配符或区域条件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ artokun/ comfyui-mcp --skill prompt-engineering安装后在 Claude Code 中输入/prompt-engineering确认已加载。
详细介绍
ComfyUI 提示词工程
CLIP 文本编码基础
ComfyUI 使用 CLIP(对比语言-图像预训练)文本编码器,将文本提示词转换为条件张量。CLIPTextEncode 节点接收一个文本字符串和一个 CLIP 模型,并为 KSampler 生成 CONDITIONING 输出。
Token 限制
CLIP 按 77 个 token 的分块处理文本。每个词通常由 1–3 个 token 组成。超过 77 个 token 的提示词会被静默截断,除非使用 BREAK token 或多 CLIP 编码节点。
权重语法
强调(注意力权重)
调整模型对特定词语或短语的关注程度:
| 语法 | 效果 | 等效权重 |
|---|---|---|
(word:1.3) | 将强调程度提高 30% | 显式权重 1.3 |
(word:0.7) | 将强调程度降低 30% | 显式权重 0.7 |
(word) | 略微提高 | (word:1.1) |
((word)) | 中度提高 | (word:1.21) — 1.1^2 |
(((word))) | 大幅提高 | (word:1.331) — 1.1^3 |
[word] | 略微降低 | (word:0.9091) — 1/1.1 |
[[word]] | 中度降低 | (word:0.8264) — 1/1.1^2 |
权重规则
- 有效范围:0.0 到 2.0(超过 1.5 通常会产生瑕疵)
- 默认权重:未修改 token 的权重为 1.0
- 嵌套权重会相乘叠加:
((word))= 1.1 * 1.1 =(word:1.21) - 短语:
(red sports car:1.3)会对整个短语应用权重 - 混合使用:
(detailed face:1.4), (blurry background:0.6)可组合在一个提示词中
示例
a (beautiful:1.3) woman with (flowing red hair:1.2), wearing a blue dress, (sharp focus:1.1)
(masterpiece:1.4), (best quality:1.3), a knight in (ornate armor:1.2), standing on a cliff, (dramatic lighting:1.1), cinematic
BREAK token
BREAK 关键字会强制 CLIP 结束当前的 77-token 分块,并在新分块中开始处理后续文本。这对较长的提示词至关重要。
何时使用 BREAK
- 提示词超过约 60 个词(接近 77-token 限制)
- 想要分隔提示词中概念上不同的部分
- 某些细节被忽略(它们可能超出了 77-token 截断点)
BREAK 示例
masterpiece, best quality, a beautiful Japanese garden with cherry blossoms,
stone lanterns, koi pond, traditional wooden bridge, morning mist
BREAK
highly detailed, 8k uhd, photorealistic, volumetric lighting,
depth of field, golden hour, award-winning photography
每个分块都会独立编码,然后拼接为条件,因此所有 token 都会得到处理。
Embeddings / 文本反演
Embedding(文本反演)是经过预训练的 token 集,可将复杂概念编码为单个触发词。
语法
embedding:easynegative
embedding:badhandv4
embedding:bad-image-v2-39000
在提示词中的用法
- 直接将 embedding 触发词放入提示词文本中
- 最常用于负面提示词以提升质量
- embedding 的
.safetensors或.pt文件必须位于models/embeddings/中
常见负面 Embedding
| Embedding | 最适用于 | 描述 |
|---|---|---|
easynegative | SD 1.5 | 通用画质提升 |
badhandv4 | SD 1.5 | 修复手部畸形 |
bad-image-v2-39000 | SD 1.5 | 减少瑕疵 |
negativeXL_D | SDXL | SDXL 专用负面 embedding |
ac_neg1 | SDXL | 另一种 SDXL 负面 embedding |
使用 Embedding 的示例
正面:a portrait of a woman, masterpiece, best quality
负面:embedding:easynegative, embedding:badhandv4, worst quality, low quality
特定模型的提示词编写
SD 1.5
负面提示词:重要。SD 1.5 对负面提示词很敏感。
正面提示词结构:
(masterpiece:1.2), (best quality:1.2), subject description, details, style tags
推荐的负面提示词:
worst quality, low quality, normal quality, lowres, watermark, signature,
text, jpeg artifacts, blurry, bad anatomy, bad hands, extra fingers,
missing fingers, extra limbs, deformed, disfigured, mutation, ugly
要点:
masterpiece, best quality等质量标签会显著影响输出- 对 Danbooru 风格的标签响应良好:
1girl, long hair, blue eyes, school uniform - 基于 embedding 的负面提示词(
easynegative)效果不错 - 提示词应保持简洁,因为每个分块最多只能包含 77 个 token
SDXL(1.0 / Turbo / Lightning)
负面提示词:重要性中等。与 SD 1.5 相比,SDXL 对负面提示词不太敏感。
正面提示词结构:
subject description with natural language, detailed description of scene and style
推荐的负面提示词:
blurry, low quality, deformed, ugly, bad anatomy, disfigured, poorly drawn face,
mutation, mutated, extra limbs, watermark, text
关键说明:
- SDXL 对自然语言的理解优于基于标签的提示词
- 采用双 CLIP 编码器(CLIP-L + CLIP-G)。使用
CLIPTextEncodeSDXL进行单独控制 CLIPTextEncodeSDXL包含单独的text_g(全局描述)和text_l(局部细节)字段- 原生支持更长的提示词(通过双 CLIP 使用两个 77-token 块)
- 质量标签不那么关键,但仍有帮助
- SDXL Turbo:1-4 步,CFG 1.0-2.0,只需极少的负面提示词
- SDXL Lightning:4-8 步,CFG 1.0-2.0,通常使用空负面提示词也能正常工作
Flux(Flux.1 schnell / dev)
负面提示词:不使用。Flux 在 CFG=1.0 下运行,不进行负面条件控制。
正面提示词结构:
Detailed natural language description. Flux excels with descriptive sentences
rather than comma-separated tags. Describe the scene as if writing a paragraph.
关键说明:
- **CFG 必须为 1.0。**更高的值会造成伪影
- **不使用负面提示词。**负面条件控制端口不连接任何内容或输入空字符串
- T5-XXL 编码器能够理解复杂句子和空间关系
- Flux 对组合式提示词的处理优于 SD 模型
- 得益于 T5 编码器,较长的提示词(200+ tokens)也能很好地发挥作用
- 提示词结构:像撰写说明文字一样自然地描述场景
- Schnell:4 步,使用简单的调度器
- Dev:20-50 步,sgm_uniform 调度器
Flux 提示词示例
A serene Japanese garden in autumn. A stone path leads through a grove of maple
trees with bright red and orange leaves. A small wooden bridge crosses a koi pond
where golden fish swim beneath the surface. Morning mist rises from the water,
and soft sunlight filters through the canopy. The scene is photorealistic with
warm, natural lighting and shallow depth of field.
SD3 / SD3.5
负面提示词:极少。SD3 几乎不需要负面引导。
正面提示词结构:
Natural language description, supports very long detailed prompts thanks to T5-XXL
关键说明:
- 采用三重 CLIP 架构:CLIP-L + CLIP-G + T5-XXL
- 支持的提示词长度远超 SD 1.5 或 SDXL
- 自然语言的效果优于基于标签的提示词
- CFG 4-7(低于 SD 1.5)
- 只需极少的负面提示词。
low quality, blurry通常就足够了 - 如果可用,请使用
CLIPTextEncodeSD3节点进行模型专用编码
提示词结构最佳实践
推荐顺序
- 质量修饰词(适用于 SD 1.5/SDXL):
masterpiece, best quality, highly detailed - 主体:
a young woman, a cyberpunk cityscape, a golden retriever - 主体细节:
with long flowing red hair, wearing a white dress - 动作/姿势:
standing in a field, looking at the camera, running - 环境:
in a sunlit meadow, at night in a neon-lit street - 构图:
close-up portrait, full body shot, wide angle - 光照:
dramatic lighting, soft natural light, studio lighting, golden hour - 风格/媒介:
oil painting, photograph, digital art, watercolor, anime - 技术画质:
8k, uhd, photorealistic, sharp focus, depth of field
画质增强词
这些词元通常能提升 SD 1.5 和 SDXL 的输出画质:
masterpiece, best quality, highly detailed, 8k, photorealistic,
ultra-detailed, sharp focus, professional, award-winning
专用于照片级真实感:
photorealistic, hyperrealistic, RAW photo, DSLR, 8k uhd,
film grain, Fujifilm XT3, sharp focus, natural lighting
用于动漫/插画:
masterpiece, best quality, highly detailed, anime,
beautiful detailed eyes, detailed face, illustration
LoRA 触发词
LoRA(低秩适配)模型针对特定概念进行了微调,需要使用其触发词来激活所学习的概念。
规则
- 触发词因 LoRA 而异。请查看 LoRA 的模型页面,确认其触发词
- 在提示词中自然地放入触发词:
a photo of ohwx woman in a garden(其中ohwx是触发词) - 有些 LoRA 使用风格触发词:
in the style of pixar3d - 可以叠加多个 LoRA,但每个 LoRA 都需要在提示词中使用各自的触发词
- LoRA 强度(在
LoraLoader节点中)会与提示词权重相互作用。通常将其中一个保持为默认值
常见模式
# Character LoRA
a photo of sks person, wearing casual clothes, in a park
# Style LoRA
a landscape painting, autumn forest, in the style of impressionism, masterpiece
# Concept LoRA
a character wearing mecha_armor, standing in a battlefield, detailed
通配符和动态提示词
如果已安装 ComfyUI-Impact-Pack 或通配符节点包,可以使用动态提示词语法:
通配符语法
a {red|blue|green|yellow} car parked on a {sunny|rainy|snowy} street
每次生成时,{option1|option2|option3} 都会随机选择一个选项。
通配符文件
可以引用通配符 .txt 文件(每行一个选项):
a __haircolor__ haired woman wearing a __clothing__ in __location__
其中 haircolor.txt、clothing.txt 和 location.txt 位于通配符目录中。
CLIPTextEncode 变体
| 节点 | 用途 | 说明 |
|---|---|---|
CLIPTextEncode | 标准的单 CLIP 编码 | 适用于所有模型 |
CLIPTextEncodeSDXL | SDXL 双 CLIP 编码,使用独立的 G/L 字段 | 更好地控制 SDXL |
CLIPTextEncodeSD3 | SD3 三 CLIP 编码 | 适用于 SD3/SD3.5 模型 |
CLIPTextEncodeFlux | 基于 T5 的 Flux 编码 | 适用于 Flux 模型 |
ConditioningCombine | 合并两个条件 | 组合不同的提示词要素 |
ConditioningSetArea | 区域提示 | 将条件应用于图像的特定区域 |
ConditioningSetMask | 基于蒙版的条件 | 仅在蒙版生效的位置应用提示词 |
常见的提示词错误
- 在 Flux 中使用负面提示词:Flux 会忽略负面提示词,而且 CFG > 1 会导致瑕疵
- 在 Flux/SD3 中使用标签式提示词:这些模型更偏好自然语言描述
- 超过 77 个 token 却未使用 BREAK:超出限制的 token 会被静默丢弃
- 权重 > 1.5:会导致颜色渗漏、瑕疵和失真
- 使用冲突的词语:
(bright:1.3) (dark:1.3)会使模型困惑 - 没有对应文件却使用嵌入:安装
.safetensors文件之前使用embedding:name会导致错误 - LoRA 触发词错误:提示词必须包含 LoRA 激活所需的准确触发词
- 在 Flux 提示词中使用质量标签:
masterpiece, best quality对 Flux 毫无意义。请用自然语言描述质量
来源
- 官方: 未找到专门的厂商提示指南。CLIP
(word:1.2)注意力是社区惯例(A1111/ComfyUI),并非模型厂商规范。 - 经验观察: 特定模型的说明(Flux CFG=1、SD 1.5 质量标签、BREAK token)来自对 ComfyUI 行为的观察。