BeautifulPrompt:Towards automatic prompt engineering for text-to-image synthesis
本文介绍了PAI推出的自研Prompt美化器及其在Stable Diffusion中的应用。该系统通过结合自动提示生成器和基于Bloom架构的训练方法,在高质量和低质量提示对之间建立了桥梁。文章详细描述了数据收集策略、模型构建过程及实验结果,并与MagicPrompt和chatGPT进行了对比评估。结果显示,该系统在自动提示补全和图像生成方面表现优异。
BeautifulPrompt:PAI推出自研Prompt美化器,赋能AIGC一键出美图 - 知乎作者:曹庭锋、汪诚愚、吴梓恒、黄俊背景Stable Diffusion(SD)是一种流行的AI生成内容(AI Generated Content,AIGC)模型,能在文字输入的基础上生成各种风格多样的图像。在目前的AIGC方向,SD是开源社区最热门…
BeautifulPrompt: PAI发布自主研发的Prompt美化器工具
知乎作者:曹庭锋、汪诚愚、吴梓恒、黄俊
背景
Stable Diffusion(SD)作为一种备受关注的AI生成内容技术,在当前AIGC领域广泛应用于图像创作。
基于不同的文本输入类型和艺术风格需求,在线生成多样化的图像类型。
BeautifulPrompt: PAI发布自主研发的Prompt美化器工具
知乎作者:曹庭锋、汪诚愚、吴梓恒、黄俊
背景
Stable Diffusion(SD)作为一种备受关注的AI生成内容技术,在当前AIGC领域广泛应用于图像创作。
基于不同的文本输入类型和艺术风格需求,在线生成多样化的图像类型。

BeautifulPrompt:PAI推出自主研发的Prompt美化器,并通过AIGC一键生成美图 - 知乎

该EasNLP项目提供了https://github.com/alibaba/EasyNLP/tree/master/examples/BeautifulPrompts丰富且高质量的示例代码包。
[Stable Diffusion 自动 Prompt 生成器

该平台提供了名为"自动Prompt生成器"(Stable Diffusion)的模型镜像页面,并在GitHub上发布了一个名为"AUTOMATIC1111/stable-diffusion-webui-promptgen"的项目资源包(资源包名称为stable-diffusion-webui-promptgen),欢迎在GitHub上创建账户并参与该项目的开发活动。

该项目提供了一个基于GPT-2模型的提示生成工具包。
该项目旨在为Stable Diffusion和Midjourney提供提示生成功能。
该工具包命名为MagicPrompt,并专为GPT-2模型设计。
该资源由GH/AUTOMATIC1111/...发布。

这个页面为WebUI开发的智能提示生成工具插件提供功能扩展。欢迎关注:如需更多信息,请访问 GitHub 仓库
leeguandong/sd_webui_beautifulprompt · GitHub leeguandong/sd_webui_beautifulprompt app delivers stabilized diffusion-based prompt optimization engine for browser users.

sd当前的生成质量与用户的输入直接相关,在这一领域被视为一个研究方向。值得注意的是,相关工作主要集中在提升效率和稳定性的改进方案上。然而,在ModelScope平台进行了实验评估后发现,beautifulprompt的表现尚不理想。

该方法采用了BLOOM架构,并且该架构属于 decoder-only 类型,在结构上与 GPT-3 模型具有相似之处。通过采用拥有 11 亿参数的 BLOOM 架构进行进一步训练,BeautifulPrompt展示了其强大的生成能力。
1.sft
因为高质量与低质量的prompt对较为稀缺且难以获取,在实际应用中往往面临资源限制的问题。为此可采取以下措施以实现数据采集的目的。
1.1节 摘要生成任务中,在收集高保真度的prompt数据集时,默认将其作为训练语言模型的目标数据源。通过ChatGPT系统自动生成摘要内容的方式,则可获得辅助训练数据源
Instruction: Summarize this image description in 10 words or less and ignore words like archdaily, wallpaper, highly detailed, 8k, [r/earthporn]. Check English. Ignore modifiers 'by xxx', 'with xxx' or 'in xxx'. Ignore adjective.
Input: a beautiful very detailed illustration of abandoned urbex unfinished building city nature industrial architecture architecture building spaceport by caspar david friedrich, scumm bar meadow nature synthwave, archdaily, wallpaper, highly detailed, trending on artstation.
Output: of abandoned urban building in nature.
Input: portrait painting of a lost boy by cedric peyravernay and greg ruthkowski, in the style of dishonored concept art, concept design, trending on artstation \n
Output:
AI助手
1.2 prompt扩展,利用低质量的prompt,使用chatgpt生成更高质量的prompt,
Instruction: create a detailed and creative description of the 'input'. Your response should include specific details about the colors, textures, and overall composition of the painting, as well as any unique features or elements that make it stand out.
Please provide a clear and concise response that captures the essence of the painting while also encouraging creativity and originality in your description. You may consider describing the setting or environment depicted in the painting.
Input: Digital painting of a girl with candy hat.
AI助手
1.3 指向图像标题生成的方法研究中,在数据准备阶段收集了大量高质量的图片配文,并将这些图像用于image captioning技术的应用中以产出更多的训练提示词。
在对数据进行美观值和一致性筛选,保留质量较高的数据用于sft。
2.rlhf
针对奖励模型,在获得图文配对数据的基础上,采用美学评分模型为图片赋分,并运用一个语言模型来拟合相应的prompt。将该得分机制作为评价标准,并通过PPO算法进行优化;奖励函数由打分模块与一致性指标加权计算得出:
reward = a * score_model(prompt) + b * consistency_model(raw_prompt, prompt)
AI助手
生成图片在小参数规模下1.1B的效果不亚于chatgpt生成prompt的效果。
3.调用模型
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained('alibaba-pai/pai-bloom-1b1-text2prompt-sd')
model = AutoModelForCausalLM.from_pretrained('alibaba-pai/pai-bloom-1b1-text2prompt-sd').eval().cuda()
raw_prompt = '1 girl'
input = f'Instruction: Give a simple description of the image to generate a drawing prompt.\nInput: {raw_prompt}\nOutput:'
input_ids = tokenizer.encode(input, return_tensors='pt').cuda()
outputs = model.generate(
input_ids,
max_length=384,
do_sample=True,
temperature=1.0,
top_k=50,
top_p=0.95,
repetition_penalty=1.2,
num_return_sequences=5)
prompts = tokenizer.batch_decode(outputs[:, input_ids.size(1):], skip_special_tokens=True)
prompts = [p.strip() for p in prompts]
print(prompts)
AI助手
1.introduction
对于图像生成领域而言,在线下场景中个人用户通常只需编写一个简洁明了的提示即可触发模型进行文本翻译与内容补充工作。目前我们的产品正是采用这一方法进行运作。然而,在这一领域内存在多个提供智能化联想功能的企业如美图公司等均推出了类似的技术方案基于GPT-2模型实现续写功能而像Fooocus这样的平台则采取了不同的策略通过其独特的BeautifulPrompt方案结合视觉AI反馈机制实现了强化学习驱动下的训练策略与数据集构建工作具体来说我们提出了一种全新的数据集体系包含143,000对训练提示与2,000条测试提示样本作为基础支撑了该方法的有效性研究并在此基础上构建了基于强化学习的新颖训练框架以显著提升模型的创作质量与用户体验
2.related work
2.1 图文生成评价指标
CLIP分数用于评估图像与prompt之间的相似程度;美学评分用于量化图像质量;HPS(超分处理系统)提升细节表现能力;ImageRewriter优化图像生成效率;PickScore选择最佳生成结果)。
2.2 图文生成的prompt工程
BestPrompt,MagicPrompt
3.dataset creation

3.1 prompt对收集
筛选具有相似语义的高质量提示与low-quality提示配对。原始数据源自diffusiondb平台,并包含未配对的prompt样本。基于prompt长度及特定标签等因素进行启发式分类:1.利用blip模型生成高质量prompt对应图像标题;2.通过chatgpt对low-quality prompt进行优化以提升其质量;3.利用chatgpt从现有low-quality prompt中提取优化建议。
3.2 后处理
剔除不符合要求以及非英文以外的语言示例;
去除那些尽管来自高质量prompt生成但图像审美评分较低的图像示例;
衡量每对prompt之间低质量与高质量prompt在文本相似度上的差异,并据此筛选出相似度较低的一对;
3.3 统计信息
总共收集了143,000对提示,并从中随机选取了一部分样本用于测试分析。在训练集中,在比较不同版本的提示长度时发现:低质量与高质量prompt的平均长度分别为40.3和197.8个字符。

4.the beautifulprompt model
包括三个阶段,监督微调,奖励建模训练,强化学习。

4.1 sft
假设我们有一个包含low-quality prompt x和high-quality prompt y的prompt pair,并希望利用仅具备解码器架构的语言模型来生成在given instruction和low-quality prompt x下的high-quality output。该过程与LLM的方式有所不同,在LLM中主要基于language autoregressive mechanism进行操作,在此过程中我们还面临low-quality prompt x和high-quality prompt y的问题。
4.2 rm
将其融入语言模型的训练过程中,并将其视为视觉AI提供的反馈信息。这些信息将用于训练奖励模型以评估这些评分。其中ps代表pickscore这一指标,aes代表审美评分模型。

4.3 rlhf
5.experiments
bloom,24个transformer,1.1B,sft和rm阶段,bs=64,最大长度384,lr=1e-5,A100.
5.1 基准
1.Magicprompt,自动提示补全,在lexica.ai的8000条数据训练的gpt2。2.chatgpt。
5.2 评估
自动和人类评估。


