BeautifulPrompt:PAI推出自研Prompt美化器,赋能AIGC一键出美图

news2024/11/19 19:42:17

作者:曹庭锋、汪诚愚、吴梓恒、黄俊

背景

Stable Diffusion(SD)是一种流行的AI生成内容(AI Generated Content,AIGC)模型,能在文字输入的基础上生成各种风格多样的图像。在目前的AIGC方向,SD是开源社区最热门的模型。然而,SD能够生成高颜值的图像,非常依赖于用户提供的Prompt。如果没有好的Prompt,SD往往无法生成用户预期的图像,极大的影响用户的使用体验。在先前的工作中,阿里云机器学习PAI团队在AIGC方向做了很多探索,包括PAI-Diffusion中文模型的开源、基于Blade的推理优化等,并且推出一系列行业解决方案。为了提升SD系列模型的易用性、降低使用门槛、释放AI模型的创造潜力,我们提出并训练完成面向SD自动Prompt美化器,使得用户只要输入一个极其简单的Prompt,就可以得到一系列经过语言模型优化过的、细节满满的Prompt,帮助您更简单地生成高颜值图像。在下文中,我们详细介绍PAI自动Prompt生成模型的功能和背后的技术干货。

一键体验Prompt自动生成

在详细介绍PAI自动Prompt生成模型前,我们首先给出体验Prompt生成效果。在以下的示例中,我们分别对比了原始Prompt和我们生成Prompt在Stable Diffusion v1.5底座模型上生成图像的效果。对于每个Prompt,我们随机生成两张图片进行对比。

我们也在ModelScope上构建了一个Demo以供用户体验(链接)。只要输入一个简单的Prompt,我们的模型就可以扩写成一个细节描述详细的Prompt,然后使用Stable Diffusion进行文图生成。

Prompt美化器背后的技术

在本节中,我们详细介绍如何训练一个优秀的Prompt美化器。整体架构如下图所示:

底座模型

PAI-Prompt生成模型底座基于BLOOM(BigScience Language Open-science Open-access Multilingual),由BigScience训练并且开源。BLOOM具有Decoder-only模型架构,和GPT-3非常相似,最大具有1760亿参数。在我们的模型训练时,我们选择了具有11亿参数的BLOOM模型进行继续训练,其原因在于它的参数量不大,当它用于线上部署时,推理速度较快,而且训练和推理成本都相当可控,具有很高的实用价值。

无需数据标注的SFT

由于模型的训练需要高质量和低质量的Prompt对,这些数据一般很难直接去做标注。因此我们使用如下方法自动话地搜集训练数据。

1.摘要生成:首先,我们搜集开源的高质量Prompt数据集,作为语言模型生成的Target。在这种场景下,由于缺乏低质量的Prompt,我们可以使用ChatGPT等大模型生成Summary作为低质量的Prompt。以下是一个Summary的例子:

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:

2.Prompt扩展:利用低质量的Prompt,使用ChatGPT生成更高质量的Prompt。以下是一个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.

3.图像标题生成:我们搜集了高质量的图文对,对图像进行image captioning,生成更多可供训练模型的Prompt。

最终,得到的数据会进行美观值和一致性筛选,我们保留质量较高的数据用于SFT。

面向SD的强化学习优化

RLHF(Reinforcement Learning from Human Feedback)对ChatGPT等大模型的效果提升有重要的作用。在我们的应用中,我们设计了面向Stable Diffusion的强化学习算法,优化Prompt生成模型。

对于Reward Model,我们在得到图文对数据基础上,使用美学值评分模型来给图片打分,并使用一个语言模型来拟合对应Pprompt->美学值评分,将此作为我们的打分模型。此外,我们还采用最先进的强化学习算法PPO来进一步优化模型,奖励函数使用打分模型和一致性得分加权:

reward = a * score_model(prompt) + b * consistency_model(raw_prompt, prompt)

这样可以进一步加强我们生成Prompt的美观性和图文一致性。在完成了上述三阶段训练以后,我们的模型在小参数规模下(1.1B)的效果不亚于ChatGPT生成Prompt的效果,示例如下:

模型调用

如果想快速体验模型效果,可以访问我们在ModelScope社区的创空间页面链接。同时,我们也在huggingface等开源社区上架了这一模型,使用接口如下:

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)

未来展望

在这一期的工作中,我们提出并训练完成面向SD自动Prompt美化器,使得用户只要输入一个极其简单的Prompt,就可以得到一系列经过语言模型优化过的Prompt,帮助您更简单地生成高颜值图像。在未来,我们计划增加这一类模型对各种类SD模型的适配,丰富PAI-AIGC的算法和产品能力。

阿里灵杰回顾

  • 阿里灵杰:阿里云机器学习PAI开源中文NLP算法框架EasyNLP,助力NLP大模型落地
  • 阿里灵杰:预训练知识度量比赛夺冠!阿里云PAI发布知识预训练工具
  • 阿里灵杰:EasyNLP带你玩转CLIP图文检索
  • 阿里灵杰:EasyNLP中文文图生成模型带你秒变艺术家
  • 阿里灵杰:EasyNLP集成K-BERT算法,借助知识图谱实现更优Finetune
  • 阿里灵杰:中文稀疏GPT大模型落地 — 通往低成本&高性能多任务通用自然语言理解的关键里程碑
  • 阿里灵杰:EasyNLP玩转文本摘要(新闻标题)生成
  • 阿里灵杰:跨模态学习能力再升级,EasyNLP电商文图检索效果刷新SOTA
  • 阿里灵杰:EasyNLP带你实现中英文机器阅读理解
  • 阿里灵杰:EasyNLP发布融合语言学和事实知识的中文预训练模型CKBERT
  • 阿里灵杰:当大火的文图生成模型遇见知识图谱,AI画像趋近于真实世界
  • 阿里灵杰:PAI-Diffusion模型来了!阿里云机器学习团队带您徜徉中文艺术海洋
  • 阿里灵杰:阿里云PAI-Diffusion功能再升级,全链路支持模型调优,平均推理速度提升75%以上
  • 阿里灵杰:EasyNLP集成K-Global Pointer算法,支持中文信息抽取
  • 阿里灵杰:PAI-Diffusion中文模型全面升级,海量高清艺术大图一键生成

免费领取 交互式建模PAI-DSW、模型训练PAI-DLC 5000CU*H计算资源包,以及价值500元模型在线服务 PAI-EAS 抵扣包。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/641217.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

十五周算法训练营——普通动态规划(上)

今天是十五周算法训练营的第十一周,主要讲普通动态规划(上)专题。(欢迎加入十五周算法训练营,与小伙伴一起卷算法) 斐波那契数 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那…

设计模式——适配器模式

1.定义 将一个类的接口转换成客户所希望的另一个接口,Adapter模式使得那些原本因为接口不兼容而不能一起工作的那些类可以一起工作。 2.使用场景 一般来说,适配器模式可以看作一种“补偿模式”,用来补救设计上的缺陷。应用这种模式算是“无…

驱动开发:内核LoadLibrary实现DLL注入

远程线程注入是最常用的一种注入技术,在应用层注入是通过CreateRemoteThread这个函数实现的,该函数通过创建线程并调用 LoadLibrary 动态载入指定的DLL来实现注入,而在内核层同样存在一个类似的内核函数RtlCreateUserThread,但需要…

【模型评估】AP 和他们的兄弟们:mAP、AP50、APs、APm、APl

AP是在目标检测任务中,尝尝被用于评估模型预测能力的指标。那AP是什么?为什么能够充当不同模型综合对比评测的公认指标呢? 在学习下文之前,混淆矩阵和ROC可以先了解下: 【模型评估】混淆矩阵(confusion_m…

世界中西医结合医学研究院一行莅临万民健康交流指导

为进一步发展中医药产业,深入挖掘中医药文化,坚持中西医并重,传承精华,守正创新,助力乡村振兴、促进乡村医疗产业发展。6 月 10 日 , 世界中西医结合医学研究院医学工程院院士罗先义 、谈家桢生命基金会主任…

测试左移及其相关实践

本文首发于个人网站「BY林子」,转载请参考版权声明。 之前在《敏捷测试的核心》、《构建测试的体系化思维(进阶篇)》和《一页纸测试策略》等文章中提到过测试左移,但是没有专门针对这个主题做过系统的介绍,但又总是被社…

M4内核的FPU/DSP使用总结

FPU简介 近年,在Cortex-M3之后ARM公司又推出Cortex-M4内核,ARM Cortex-M4处理器是由ARM专门开发的最新嵌入式处理器,在M3的基础上强化了运算能力,新加了浮点、DSP、并行计算等。Cortex-M4处理器的最大亮点之一,也是本文…

dom-to-image分享多张异步图片遇到的坑

dom-to-image库 存在的问题 github-issue地址 问题:当超过一张图片时,ios/safari首次会出现某张图片空白,再次生成canvas才正常。 之前有一张图片时通过执行2次domtoimage.toJpeg(魔法),当超过1张图片时&a…

JavaWeb笔记(一)

Java网络编程 在JavaSE阶段,我们学习了I/O流,既然I/O流如此强大,那么能否跨越不同的主机进行I/O操作呢?这就要提到Java的网络编程了。 **注意:**本章会涉及到计算机网络相关内容(只会讲解大致内容&#x…

PyTorch 深度学习 || 专题八:PyTorch 全连接网络分类

PyTorch 全连接网络分类 文章目录 PyTorch 全连接网络分类1. 非线性二分类2. 泰坦尼克号数据分类2.1 数据的准备工作2.2 全连接网络的搭建2.3 结果的可视化 1. 非线性二分类 import sklearn.datasets #数据集 import numpy as np import matplotlib.pyplot as plt from sklear…

Java企业级信息系统开发学习笔记(4.2)Spring Boot项目单元测试、热部署与原理分析

该文章主要为完成实训任务,详细实现过程及结果见【http://t.csdn.cn/pG623】 文章目录 一、Spring Boot单元测试概述1.1 对项目HelloWorld01进行单元测试1. 添加测试依赖启动器和单元测试2. 创建测试类与测试方法 1.2 对项目HelloWorld02进行单元测试1. 添加单元测试…

C++冷知识:构造函数初始化时,为什么使用 : 而不是使用作用域内初始化对象?

:是什么? 这样的行为被称之为初始化列表。具体展示如下: 直接初始化对象。 以一个线程池类为例: class ThreadPool { public:// 构造函数,创建指定数量的线程ThreadPool(size_t num_threads) : stop(false){....}// 析构函数&…

【计算摄影学】总目录

1.数码相机 《数码相机中的图像传感器和信号处理》和《光与赢的魔幻乐园有趣的透镜》 1.1 数码相机概览 1.2 数码相机中光学系统 2.图像传感器 《数码相机中的图像传感器和信号处理》和《智能cmos图像传感器与应用》 2.1 图像传感器基础知识 2.2 CCD图像传感器 2.3 CMOS图像…

RankNet方法在移动终端的应用

RankNet方法在移动终端的应用 RankNet代码示例pythonJava 移动终端的应用 RankNet RankNet 是一种排序学习方法,由 Microsoft Research 提出,用于解决排序问题。它基于神经网络,并使用一对比较的方式来训练和优化模型。 在 RankNet 中&…

你的企业还没搭建这个帮助中心网页,那你太落后了!

作为现代企业,拥有一个完善的帮助中心网页已经成为了不可或缺的一部分。帮助中心网页不仅可以提供给用户有关产品或服务的详细信息,还可以解答用户的疑问和提供技术支持,使用户在使用产品或服务时遇到问题可以很快地得到解决。因此&#xff0…

内网隧道代理技术(四)之NETSH端口转发

NETSH端口转发 NETSH介绍 netsh是windows系统自带命令行程序,攻击者无需上传第三方工具即可利用netsh程序可进行端口转发操作,可将内网中其他服务器的端口转发至本地访问运行这个工具需要管理员的权限 本地端口转发 实验场景 现在我们有这么一个环境…

AntDB存储技术——水平动态扩展技术

数据库集群安装完成后,其数据存储容量是预先规划并确定的。随着时间的推移以及业务量的增加,数据库集群中的可用存储空间不断减少,面临数据存储容量扩充的需求。 通过增加数据节点,扩充集群数据容量,必然需要对已有数…

云服务器是什么? 云服务器有哪些选择?

欢迎前往我的个人博客云服务器查看更多关于云服务器和建站等相关文章。 随着互联网技术的发展和云计算技术的应用,越来越多的企业倾向于使用云服务器来满足其不断增长的计算需求。云服务器是一种基于云计算技术的虚拟服务器,它能够为企业提供高性能、可…

创业很长时间以后

创业过很长时间以后…综合能力是有滴 创业和打工后的思维习惯 为了效率,一般情况是这样滴 趣讲大白话:区别还是有滴 【趣讲信息科技195期】 **************************** 创业还是很难滴 每年成立很多新公司 有很多公司关门 公司平均生存时间&#xff1…

AntDB 企业增强特性介绍——AntDB在线数据扩容关键技术

数据库集群安装完成后,其数据存储容量是预先规划并确定的。随着时间的推移以及业务量的增加,数据库集群中的可用存储空间不断减少,面临数据存储容量扩充的需求。 传统的在线扩容的流程大致如下。 (1)在集群中加入新的 …