大家好,我是每天分享AI应用的萤火君!
在AI绘画中提示词是一个很重要的方面,有效的提示词才能生成期望的图像。提示词就像是图像的引路灯,往往一个词就有化腐朽为神奇的力量。关于提示词的重要性,这里就不多说了,用过的同学应该都知道。
这篇文章的主题是反推提示词。有时候我们看到一张图特别棒,想要模仿它的构图或者某些风格;又或者我们想要在重绘图像时保持图像的基本元素不变;再或者我们想要训练自己的模型,就需要给所有的训练图片打标。这些时候就需要反推提示词了。
最基本的反推方法是人力反推,我们根据自己的认识,参考图片内容,手动编写,不过大家的认识都是有限的,很多元素和风格可能不知道如何描述,即使能描述出来,还要翻译成英文,人力反推费时费力,最终出图效果也不一定好,可谓低质低效。因此本文并不是介绍人工反推提示词的方法。
本文介绍的都是通过AI模型反推提示词的方法,用到的AI绘画工具是ComfyUI,只需要上传一张图,就可以生成各种风格的高质量提示词。
如果你对提示词还是一知半解,缺少一个整体的认识,可以先看看我之前分享过一些提示词教程:
环境准备
本地手工部署
如果你本地有一个24G显存的Nvidia显卡,可以参考我这篇文章,在本地部署一个ComfyUI:
不过想要运行本文介绍的工作流,你还要安装缺失的插件节点、下载相关的模型,这个难度和工作量不容小视,建议仅对这一套比较熟悉的同学尝试。
云环境免费体验
如果你本地没有相关的资源,也不想费力吧啦的自己部署,或者就是想看看效果,可以直接使用我的云镜像,一键开启,直接使用。这个平台注册就送一定的额度,大家可以免费使用几个小时,足够时间体验反推提示词了。
镜像访问地址:https://www.haoee.com/applicationMarket/applicationDetails?appId=27&IC=XLZLpI7Q
注册成功后,点击页面上的“立即创建”,即可开启 ComfyUI 应用,如下图所示:
应用创建后会自动跳转至“工作台”。启动成功后,状态将显示为“运行中”,此时点击“打开应用”,即可在浏览器进入操作界面。本应用启动大约需要1-2分钟,如果打开页面显示空白,请刷新再尝试。
ComfyUI在浏览器中启动后,我们可以先通过设置切换到中文界面,选择“中文”:
然后点击“加载”旁边的小箭头,选择一个“提示词”工作流,点击“添加提示词队列”,就可以开始愉快的生成了。
反推提示词的各种方法
目前在ComfyUI中我们可以使用多种提示词反推方法,这里将逐一介绍。
文末有模型和工作流的下载方式。
1、WD14 Tagger
WD14 Tagger 出来的比较早,Stable Diffusion WebUI 中也有这个插件,使用特别广泛,它会生成标签式的提示词。看下边工作流中使用红框圈出来的节点,只需要选择一个反推模型,设置提示词的阈值,就可以自动生成标签式的提示词,然后我们可以用这个提示词再去生成一张新的图片。
这个插件的完整名称是:ComfyUI-WD14-Tagger
2、CLIP询问机
CLIP询问机会生成偏自然语言风格的提示词,但是也会出现很多标签词,算是一个提示词的折中版本。
我是用的是 comfyui-mixlab-nodes 插件提供的,这个节点支持多种提示词模式:最快、经典、最好,还可以生成反向提示词。
3、JoyCaption
这个插件的完整名称是:Comfyui_CXH_joy_caption。
JoyCaption 内部提供了多个提示词反推方法,下图对比了使用 Min2_6、Joy_caption、Florence2反推提示词的效果。
对应生成的图像如下所示:
简单介绍下这几个提示词反推模型:
MIn2_6 使用的模型是:MiniCPMv2_6-prompt-generator,这是通过微调 MiniCPM-V 2.6 实现的,MiniCPM-V 2.6 是一个适用于图片和视频的多模态大语言模型。MiniCPMv2_6-prompt-generator在 2x 4090 24GB GPU上进行训练,并使用来自Midjourney的3000多个样本进行训练。该模型可以生成具有自然语言风格的短提示和长提示,可用于LORA训练时生成图像标签。使用整数量化版本可以降低GPU内存使用量(约7GB)。
Joy_caption 本身有一个自己的模型,这里搭配了Llama-3.1-8B的一个微调模型,应该是用来优化提示词的。
Florence2 使用的模型是:CogFlorence-2.2-Large,它是通过微调微软发布的 Florence-2-large 模型实现的。Florence-2-large是一个先进的视觉基础模型,可以解释简单的文本提示,执行如标注、对象检测和分割等任务。它学习了包含1.26亿张图像的54亿个注释。CogFlorence-2.2-Large 在4万张图像子集中进行了调优,可以生成自然语言风格的提示词,也可以生成传统标签风格的提示词,这对于支持两个CLIP文本编码器的Flux等模型特别有意义。
这几个里边,个人体感,Joy_caption的效果最好,其次是 Florence2、MIn2_6。
Joy_caption还支持批量打标,方便训练模型:
4、Miaoshouai-Tagger
这个插件也会使用上文提到的 Florence2 模型,使用的是 Florence-2-large-PromptGen-v1.5,,然后它可以同时输出两种格式提示词(caption_method选择mixed),搭配Flux,生成效果比较完美。演示效果如下图所示:
这个插件的完整名称是:ComfyUI-Miaoshouai-Tagger。它也支持批量达标,方便大家去训练模型。
个人认为,这个插件对原始参考图像的还原度是最高的。
中文提示词
考虑到很多同学书写英文比较费劲,这里额外介绍一个可以直接输入中文提示词的节点。
这个节点是 comfyui-mixlab-nodes 插件提供的,提示词允许输入中文,它会自动翻译,然后还可以根据我们的提示词进行自动优化,优化能力来源于大量用户使用的Midjourney提示词。
资源下载
本文大部分工作流都可以通过我的公众号免费获取,给G众/号“萤火遛AI”发消息“工作流”即可获取。
本文介绍的模型都可以通过 Github 和 Huggingface 下载到,如果你下载不方便也可以通过我整理的网盘资源获取,另外还包括 Stable Diffusion WebUI 和 ComfyUI 的使用教程,也包括本文介绍的所有工作流,有兴趣的可以看看:https://xiaobot.net/post/03340243-9df6-4ea0-bad6-9911a5034bd6
以上就是本文的主要内容,从测试结果看 Miaoshouai-Tagger 和 Joy_caption 的效果是最好的,搭配Flux更是如虎添翼,有兴趣的同学快去试试吧。