ComfyUI Prompt Injection 插件保姆级教程
1. 插件简介
插件地址: https://github.com/DataCTE/prompt_injection
ComfyUI Prompt Injection 是一个超级神奇的插件!它就像一个"精准投放专家",能够把不同的提示词精确地投放到AI模型的不同"工作区域"。想象一下,AI模型就像一个大工厂,有很多不同的车间,这个插件可以让你给每个车间发送不同的工作指令!
这个插件能给我们带来什么效果?
- 🎯 精准控制:可以让图片的不同部分听从不同的指令
- 🎨 创意混合:比如让构图听从"蓝色狗"的指令,但主体内容变成"白色猫"
- 🔧 细节调节:可以单独控制光照、风格、内容等不同方面
- 🎭 风格分离:让内容和风格分别受不同提示词影响
- 🚀 高级玩法:为专业用户提供模型内部的精细控制
简单来说,就像给AI模型的大脑装了一个"分区遥控器",让你可以分别控制它的不同思考区域!
2. 如何安装
方法一:通过ComfyUI管理器安装(推荐)
- 打开ComfyUI
- 点击右下角的"Manager"按钮
- 选择"Install Custom Nodes"
- 搜索"prompt injection"
- 找到对应插件点击安装
- 重启ComfyUI
方法二:手动安装
- 打开你的ComfyUI安装目录
- 进入
custom_nodes文件夹 - 在这里打开命令行/终端
- 输入命令:
git clone https://github.com/DataCTE/prompt_injection.git - 重启ComfyUI
无需额外依赖
这个插件很轻量,不需要安装额外的模型文件或依赖包,安装后即可使用!
3. 节点详解
本插件总共包含 4 个节点,本教程将全部详细介绍:
3.1 PromptInjection 节点 - 多区域提示词注入器
这个节点就像一个"多频道广播站",可以同时向AI模型的多个工作区域发送不同的指令。它专门针对标准的Stable Diffusion模型设计,可以精确控制模型的不同层级。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Model | model | MODEL类型 | 你的AI模型 | 要改造的AI模型,像要装遥控器的电视 | 输入的扩散模型 | 连接你加载的SD模型 |
| All | all | CONDITIONING | 通用提示词 | 给所有区域的默认指令,像广播的背景音乐 | 应用于所有未指定块的条件 | 连接你的主要提示词编码 |
| Input 4 | input_4 | CONDITIONING | 特定提示词 | 给输入区域4的专门指令,像给特定房间的指令 | 输入块4的特定条件 | 连接想要影响早期处理的提示词 |
| Input 5 | input_5 | CONDITIONING | 特定提示词 | 给输入区域5的专门指令,像给另一个房间的指令 | 输入块5的特定条件 | 连接想要影响输入处理的提示词 |
| Input 7 | input_7 | CONDITIONING | 特定提示词 | 给输入区域7的专门指令,控制更深层的输入 | 输入块7的特定条件 | 连接想要影响深层输入的提示词 |
| Input 8 | input_8 | CONDITIONING | 特定提示词 | 给输入区域8的专门指令,控制最深层输入 | 输入块8的特定条件 | 连接想要影响最深输入的提示词 |
| Middle 0 | middle_0 | CONDITIONING | 特定提示词 | 给中间核心区域的指令,像给大脑中枢的指令 | 中间块0的特定条件 | 连接想要影响核心理解的提示词 |
| Output 0 | output_0 | CONDITIONING | 特定提示词 | 给输出区域0的指令,控制最终输出的开始 | 输出块0的特定条件 | 连接想要影响输出开始的提示词 |
| Output 1 | output_1 | CONDITIONING | 特定提示词 | 给输出区域1的指令,控制输出的细节 | 输出块1的特定条件 | 连接想要影响输出细节的提示词 |
| Output 2 | output_2 | CONDITIONING | 特定提示词 | 给输出区域2的指令,控制输出的进一步细化 | 输出块2的特定条件 | 连接想要影响输出细化的提示词 |
| Output 3 | output_3 | CONDITIONING | 特定提示词 | 给输出区域3的指令,控制输出的更多细节 | 输出块3的特定条件 | 连接想要影响输出更多细节的提示词 |
| Output 4 | output_4 | CONDITIONING | 特定提示词 | 给输出区域4的指令,控制输出的精细调节 | 输出块4的特定条件 | 连接想要影响输出精细调节的提示词 |
| Output 5 | output_5 | CONDITIONING | 特定提示词 | 给输出区域5的指令,控制最终输出效果 | 输出块5的特定条件 | 连接想要影响最终输出的提示词 |
| Weight | weight | -2.0到5.0 | 1.0 | 注入强度,像调节音量大小 | 提示词注入的权重强度 | 1.0正常,2.0更强,0.5更弱 |
| Start At | start_at | 0.0到1.0 | 0.0 | 开始生效的时机,像定时器的开始时间 | 注入开始的采样百分比 | 0.0从头开始,0.3从30%开始 |
| End At | end_at | 0.0到1.0 | 1.0 | 结束生效的时机,像定时器的结束时间 | 注入结束的采样百分比 | 1.0到最后,0.7到70%结束 |
3.2 SimplePromptInjection 节点 - 简单提示词注入器
这个节点就像一个"单点投放器",专门用来给AI模型的某一个特定区域发送指令。它比多区域注入器更简单,适合新手或者只需要控制一个区域的情况。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Model | model | MODEL类型 | 你的AI模型 | 要改造的AI模型,像要装开关的灯 | 输入的扩散模型 | 连接你加载的SD模型 |
| Block | block | 下拉选择 | output:0 | 选择要控制的区域,像选择要开的灯 | 目标注入的模型块 | 从下拉菜单选择想控制的区域 |
| Conditioning | conditioning | CONDITIONING | 你的提示词 | 要发送的指令,像要播放的音乐 | 要注入的条件编码 | 连接你想注入的提示词编码 |
| Weight | weight | -2.0到5.0 | 1.0 | 注入强度,像调节音量大小 | 提示词注入的权重强度 | 1.0正常强度,可以调高调低 |
| Start At | start_at | 0.0到1.0 | 0.0 | 开始生效的时机,像闹钟的设定时间 | 注入开始的采样百分比 | 0.0从一开始就生效 |
| End At | end_at | 0.0到1.0 | 1.0 | 结束生效的时机,像闹钟的结束时间 | 注入结束的采样百分比 | 1.0一直生效到最后 |
可选择的区域(Block)包括:
- input:4, input:5, input:7, input:8:控制输入处理的不同阶段
- middle:0:控制核心理解区域
- output:0, output:1, output:2, output:3, output:4, output:5:控制输出生成的不同阶段
3.3 AdvancedPromptInjection 节点 - 高级提示词注入器
这个节点就像一个"编程控制器",让你可以用文本的方式精确指定要控制哪些区域,以及每个区域的控制强度。它给专业用户提供了最大的灵活性。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Model | model | MODEL类型 | 你的AI模型 | 要改造的AI模型,像要编程的机器人 | 输入的扩散模型 | 连接你加载的SD模型 |
| Locations | locations | 多行文本 | output:0,1.0 | 控制区域和强度的清单,像遥控器的按键表 | 块位置和权重的配置文本 | 每行写一个区域,格式:区域名,强度 |
| Conditioning | conditioning | CONDITIONING | 你的提示词 | 要发送的指令,像要执行的程序 | 要注入的条件编码 | 连接你想注入的提示词编码 |
| Start At | start_at | 0.0到1.0 | 0.0 | 开始生效的时机,像程序的启动时间 | 注入开始的采样百分比 | 0.0从开始执行 |
| End At | end_at | 0.0到1.0 | 1.0 | 结束生效的时机,像程序的结束时间 | 注入结束的采样百分比 | 1.0执行到最后 |
Locations参数使用方法:
- 每行写一个控制指令
- 格式:
区域名,强度值 - 例如:
output:0,1.5表示给output:0区域注入1.5倍强度 - 例如:
middle:0,0.8表示给middle:0区域注入0.8倍强度
3.4 SVDPromptInjection 节点 - 视频模型提示词注入器
这个节点是专门为SVD(Stable Video Diffusion)视频模型设计的"视频控制器"。它可以控制视频生成过程中的各个环节,让你对视频的不同方面进行精确控制。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Model | model | MODEL类型 | 你的SVD模型 | 要改造的视频AI模型,像要调节的摄像机 | 输入的SVD扩散模型 | 连接你加载的SVD模型 |
| All | all | CONDITIONING | 通用提示词 | 给所有区域的默认指令,像摄像机的基础设置 | 应用于所有未指定块的条件 | 连接你的主要提示词编码 |
| Time Embed | time_embed | CONDITIONING | 时间控制 | 控制时间理解,像视频的时间轴控制 | 时间嵌入层的特定条件 | 连接控制时间流的提示词 |
| Label Emb | label_emb | CONDITIONING | 标签控制 | 控制标签理解,像视频的分类标签 | 标签嵌入层的特定条件 | 连接控制视频类型的提示词 |
| Input Blocks 0-8 | input_blocks_0到8 | CONDITIONING | 输入控制 | 控制输入处理的9个阶段,像摄像机的9个镜头 | 输入块0-8的特定条件 | 分别连接控制不同输入阶段的提示词 |
| Middle Block 0-2 | middle_block_0到2 | CONDITIONING | 核心控制 | 控制核心处理的3个阶段,像视频的核心理解 | 中间块0-2的特定条件 | 连接控制核心理解的提示词 |
| Output Blocks 0-8 | output_blocks_0到8 | CONDITIONING | 输出控制 | 控制输出生成的9个阶段,像视频的9个输出层 | 输出块0-8的特定条件 | 分别连接控制不同输出阶段的提示词 |
| Weight | weight | -2.0到5.0 | 1.0 | 注入强度,像摄像机的信号强度 | 提示词注入的权重强度 | 1.0正常,可以调节强弱 |
| Start At | start_at | 0.0到1.0 | 0.0 | 开始生效的时机,像录制的开始时间 | 注入开始的采样百分比 | 0.0从开始录制 |
| End At | end_at | 0.0到1.0 | 1.0 | 结束生效的时机,像录制的结束时间 | 注入结束的采样百分比 | 1.0录制到最后 |
4. 使用技巧和建议
🎯 基础使用流程
- 选择合适的节点:新手用Simple,进阶用Prompt,专业用Advanced,视频用SVD
- 连接模型:将你的AI模型连接到节点的Model输入
- 准备提示词:用CLIP Text Encode节点编码你的提示词
- 选择注入区域:根据想要的效果选择合适的区域
- 调整参数:从默认参数开始,逐步调整到满意效果
💡 参数调优建议
- Weight权重:1.0是标准强度,1.5-2.0增强效果,0.5-0.8减弱效果
- 时间控制:Start At和End At可以控制注入的时机,实现分阶段控制
- 区域选择:Output区域影响最终效果,Middle区域影响核心理解,Input区域影响早期处理
🚀 进阶技巧
- 分层控制:用不同的提示词控制不同层级,实现复杂的混合效果
- 时间分段:用Start At和End At实现分时段的不同控制
- 权重调节:用不同的Weight值实现精细的强度控制
- 组合使用:多个节点串联使用,实现更复杂的控制效果
⚡ 实验建议
- 对比测试:同样的提示词在不同区域的效果对比
- 权重实验:同样区域不同权重的效果对比
- 时间实验:不同时间段注入的效果对比
- 组合实验:多区域组合注入的效果探索
5. 常见问题解答
Q1: 为什么注入后没有明显效果?
A: 可能的原因和解决方法:
- 检查Weight是否太低,尝试调高到1.5-2.0
- 确认提示词编码是否正确连接
- 尝试选择不同的注入区域,Output区域通常效果更明显
- 检查Start At和End At的时间范围设置
Q2: 不同区域有什么区别?
A: 简单理解:
- Input区域:影响AI对输入的理解和处理
- Middle区域:影响AI的核心思考和判断
- Output区域:影响AI的最终输出和表现
- 数字越大:通常表示处理的越深入
Q3: Weight参数设置多少合适?
A: 建议范围:
- 0.5-0.8:轻微影响,适合微调
- 1.0:标准强度,平衡效果
- 1.5-2.0:强烈影响,明显效果
- 2.0以上:可能过度,需要小心使用
Q4: 如何实现"蓝狗构图白猫内容"的效果?
A: 具体步骤:
- 用"blue dog"编码作为All或大部分区域的提示词
- 用"white cat"编码注入到Output:0和Output:1区域
- 调整Weight到1.5-2.0增强白猫效果
- 实验不同的区域组合找到最佳效果
Q5: SVD节点和普通节点有什么区别?
A: 主要区别:
- SVD节点:专门为视频模型设计,有更多的控制区域
- 普通节点:为图像模型设计,区域较少但更精简
- 使用场景:SVD用于视频生成,普通节点用于图像生成
Q6: 可以同时使用多个注入节点吗?
A: 可以,但要注意:
- 多个节点会叠加效果,可能过度
- 建议先用一个节点实验,再考虑组合
- 注意权重的累积效果,避免过强
6. 实际应用场景
🎨 创意混合场景
- 风格内容分离:让构图听从一个提示词,内容听从另一个提示词
- 多风格融合:在不同区域注入不同风格的提示词
- 细节控制:单独控制光照、色彩、纹理等特定方面
🔬 实验研究场景
- 模型行为研究:探索AI模型不同区域的功能
- 提示词效果分析:研究同一提示词在不同区域的表现
- 参数敏感性测试:测试不同参数对最终效果的影响
🎬 专业创作场景
- 精确控制:为专业创作提供精细的控制能力
- 批量处理:用固定的注入模式处理大量图像
- 风格一致性:保持某些方面一致,变化其他方面
🎓 学习研究场景
- AI原理学习:通过实验理解AI模型的内部工作机制
- 提示词工程:研究提示词在不同层级的作用机制
- 模型优化:为模型微调和优化提供参考
7. 总结
ComfyUI Prompt Injection插件是一个功能强大的高级工具,它为用户提供了对AI模型内部工作机制的精细控制能力。虽然概念相对复杂,但通过合理的实验和练习,可以实现很多传统方法难以达到的创意效果。
记住这几个要点:
- 从Simple节点开始学习,逐步进阶到Advanced
- 多做对比实验,理解不同区域的作用
- 合理设置权重,避免过度注入
- 善用时间控制,实现分阶段效果
- 保持实验精神,探索更多可能性
希望这份教程能帮助你掌握这个强大的工具,创造出更多令人惊艳的作品!
插件节点统计:
- 总节点数:4个
- 本教程已覆盖:4个
- 完成度:100% ✅
节点列表:
- ✅ PromptInjection - 多区域提示词注入器
- ✅ SimplePromptInjection - 简单提示词注入器
- ✅ AdvancedPromptInjection - 高级提示词注入器
- ✅ SVDPromptInjection - 视频模型提示词注入器
教程编写完成,所有节点已全部详细解析!