摘要:instructPix2Pix文字编辑图片是一种纯文本编辑图像的方法,用户提供一张图片和文本编辑指令,告诉模型要做什么,模型根据编辑指令编辑输入的图像,最终输出用户想要的图像。

本文分享自华为云社区《【云驻共创】Stable Diffusion AIGC限时0元!3步成为P图大师》,作者:香菜聊游戏 。

1、instructPix2Pix概览

instructPix2Pix文字编辑图片是一种纯文本编辑图像的方法,用户提供一张图片和文本编辑指令,告诉模型要做什么,模型根据编辑指令编辑输入的图像,最终输出用户想要的图像。

它可以让你通过简单的语言描述来生成符合要求的图片,而不需要手动编写代码或进行复杂的操作,这使得图像生成更加高效和便捷。例如,如果你想将一张天空照片转换为夜晚照片,你只需要输入指令:“将天空替换为黑暗的夜晚”,然后模型就会自动将天空替换为星星和月亮,并将颜色和光线调整为夜晚的感觉。

视频地址:https://bbs.huaweicloud.com/live/cloud_live/20230413.html

2、技术框架

2.1 框架概述

整个框架是使用现有大模型的能力,实现了自己的任务,整个技术栈都是现有技术的整合,但是依然做出了一个很好玩的应用

框架总体分为2个部分:模型训练(Traning)和推理(Inference)。

模型训练分为数据工程和模型训练。

整个pipeline的目标是通过使用GPT-3生成编辑指令和描述,以及使用Stable Diffusion生成图像对,来训练Instruct-Pix2Pix模型,使其能够根据编辑指令生成高质量的编辑后的图像。然后,使用训练好的Instruct-Pix2Pix模型进行推理,以提供给用户或实际应用场景所需的编辑后的图像。

2.2 数据生成

2.2.1 编辑指令的生成

这部分完全是文字工作,借助了GPT-3 的能力,给定一个输入的描述,然后由GPT-3 输出编辑后的指令和生成的描述

比如图中输入:The dog looks at the Camera

GPT3 会输出:编辑指令 wearing a hat 和最终的描述指令 The dog wearing a hat looks at the camera

作者使用了700条人工标注的指令,并对GPT-3进行了微调,以便在生成编辑指令和编辑后的指令时能够更好地满足要求。

输入GPT-3的指令格式包括两部分:prompt和completion。其中,prompt是输入指令,用于指导GPT-3生成相应的文本输出;completion是编辑指令和编辑后的指令,用于在GPT-3生成的结果上进行进一步的修改和调整。这样输入的好处是编辑指令也是由GPT-3生成的,这样保证生成的多样哈。最终GPT会生成超过45万的编辑指令,上图高亮的部分都是GPT-3生成,这些指令被用于训练Instruct-Pix2Pix模型,最终为实际应用场景提供高质量的图像编辑服务。

2.2.2 生成图像对

将上一步骤生成的超过45万的编辑指令和描述指令,输入通过Stable Diffusion 生成图像对。

在这个过程中存在一个挑战,做过文生图的同学都知道,即使你固定随机数,差距很小的prompt通过Stable Diffusion也有可能生成内容完全不同的图像,这是因为Stable Diffusion在生成图像时受到许多因素的影响,例如随机数生成、模型参数、输入文本的微小变化等等。因此,即使两个prompt看起来非常相似,Stable Diffusion也可能生成截然不同的图像。

解决办法:

在文生图中,使用了Cross Attention机制来建立文本和图片之间的关联。Cross Attention是一种注意力机制,其本质是通过筛选来实现信息的融合。在文生图中,这种机制被用于找到文本提示(prompt)与图片之间的关系。

具体而言,当给定一个文本提示时,Cross Attention会对文本中的不同单词进行激活,并通过注意力的机制,选择与激活单词相关联的图片区域。通过这种方式,可以根据文本提示中的不同单词来激活不同的图像区域,从而实现文本与图像的关联。

以文生图中的例子为例,如果文本提示中包含单词"bear",则Cross Attention机制会根据该单词的激活程度,选择与之相关联的图片区域。在上图中可以看到,与"bear"相关联的图片区域被激活得最多。这意味着该区域与"bear"这个单词有最强的关联。

通过Cross Attention机制,文生图能够将文本提示和图片进行有效地融合,从而产生与文本提示相对应的图像生成结果。这种机制能够帮助生成更准确和相关的图像,使文本与图像之间的关联更加紧密和有意义。

这个替换可以可以发生在任意一步,替换的越多则图像更多样。

2.3 模型训练,文生图

instructPix2Pix 是通过有监督的方法实现文本编辑图像,使用条件扩散模型。

输入的数据为:一张原图和编辑指令,输出编辑之后的图

2.3.1 文生图原理

整个任务是输入prompt,根据prompt输出一张图。

1.对输入的文字进行tokenlization和embedings获得词向量。

2.词向量会在Diffusion中通过Cross Attention的过程中参与到图像生成的过程中

3.模型还会有一个随机的噪声图向量输入,在扩散的过程中恢复到原图的生成像素向量

4.最后通过解码器将像素向量解码

2.3.2 instructPix2Pix 和Stable Diffusion的不同

1.instructPix2Pix会多出一个图像输入,在输入的时候将原图拼接到噪声图,会需要额外的channel,这些额外的channel会被初始化为0,其他的权重会使用预训练的Stable Diffusion初始化。

2.在训练中增加了随机的条件Dropout来平衡模型的生成的样本的多样性。

3.推理的过程中加入了参数可以调节原始图像所占的比例。

3、案例介绍

编辑命令支持中文,系统将中文翻译为prompt,如果遇到生成的图不好,可能是翻译的不好,也可以直接输入英文。同时系统支持生成海报,方便使用。

3.1 教程

体验地址:https://developer.huaweicloud.com/develop/aigallery/notebook/detail?id=1449263e-83d2-438a-895c-dab8ab9ba5c8&ticket=ST-81479-CIrz2uuQi2uMIRcbTlzdobWR-sso

实名认证教程地址:https://developer.huaweicloud.com/develop/aigallery/article/detail?id=4ce709d6-eb25-4fa4-b214-e2e5d6b7919c

教程中有完成的介绍,这里就不赘述了

注意:

1.切换资源使会有提示,要等资源切换完成后再做操作,不要着急。

2.点击生成海报后,会在notebook同级目录下生成poster.png,右键下载即可。

3.如果没有得到预期结果,可能的原因及方法:

• 如果图片改变程度不够,可能是"图片引导强度"参数过高,这个参数代表输出与输入的相似程度,可以调整该参数多次尝试;

• 如果是对人像进行编辑,而生成图像面部较为奇怪,是因为文生图模型对较小的面部处理结果并不好,可以尝试裁剪图像聚焦到主体;

• 运行采用随机seed,同样的描述语多次编辑会产生不同结果,可尝试反复编辑;

• 使用同义但不同表述的描述语可能对结果有较大的影响,如"turn him into a dog" vs. "make him a dog" vs. "as a dog".

• 如需生成高分辨率图,请切换更高显存的资源,同时修改应用cell中的max_size参数。

3.2 案例总结

整个案例的教程还是很清楚,也是免费的资源,开放的代码,very good

4、总结

1. 在整个视频讲解中,首先详细介绍了Instruct-Pix2Pix的技术架构,并与目前非常火热的Stable Diffusion技术方案进行了比较。通过这些讲解,我们可以深入了解这些技术的底层原理以及整个应用的实现细节。

2. 视频中还演示了Model Art的使用,这是一个用于实践这些技术的工具。在案例讲解中,我们可以看到针对不同的情况进行了多个测试案例,以展示该工具的强大功能。同时,视频还提到了在使用过程中可能遇到的问题和挑战。

综上所述,整个视频讲解提供了对Instruct-Pix2Pix技术架构、Stable Diffusion技术方案以及Model Art工具的全面了解。通过案例讲解和对实现细节的介绍,我们可以更好地理解和应用这些技术,同时也了解了可能面临的挑战和解决方案。

点击关注,第一时间了解华为云新鲜技术~

Stable Diffusion AIGC:3步成为P图大师的更多相关文章

  1. Stable Diffusion魔法入门

    写在前面 本文为资料整合,没有原创内容,方便自己查找和学习, 花费了一晚上把sd安装好,又花了大半天了解sd周边的知识,终于体会到为啥这些生成式AI被称为魔法了,魔法使用前要吟唱类比到AI上不就是那些 ...

  2. Stable Diffusion 关键词tag语法教程

    提示词 Prompt Prompt 是输入到文生图模型的文字,不同的 Prompt 对于生成的图像质量有较大的影响 支持的语言Stable Diffusion, NovelAI等模型支持的输入语言为英 ...

  3. AI 绘画咒语入门 - Stable Diffusion Prompt 语法指南 【成为初级魔导士吧!】

    要用好 Stable Diffusion,最最重要的就是掌握 Prompt(提示词).由于提示词对于生成图的影响甚大,所以被称为魔法,用得好惊天动地,用不好魂飞魄散 . 因此本篇整理下提示词的语法(魔 ...

  4. AI绘画提示词创作指南:DALL·E 2、Midjourney和 Stable Diffusion最全大比拼 ⛵

    作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 自然语言处理实战系列:https://www.showmeai.tech ...

  5. Window10环境下,Stable Diffusion的本地部署与效果展示

    Diffusion相关技术最近也是非常火爆,看看招聘信息,岗位名称都由AI算法工程师变成了AIGC算法工程师,本周跟大家分享一些Diffusion算法相关的内容. Window10环境下,Stable ...

  6. 最新版本 Stable Diffusion 开源AI绘画工具之部署篇

    目录 AI绘画 本地环境要求 下载 Stable Diffusion 运行启动 AI绘画 关于 AI 绘画最近有多火,既然你有缘能看到这篇文章,那么相信也不需要我过多赘述了吧? 随着 AI 绘画技术的 ...

  7. 最新版本 Stable Diffusion 开源 AI 绘画工具之使用篇

    目录 界面参数 采样器 文生图(txt2img) 图生图(img2img) 模型下载 界面参数 在使用 Stable Diffusion 开源 AI 绘画之前,需要了解一下绘画的界面和一些参数的意义 ...

  8. 在英特尔 CPU 上加速 Stable Diffusion 推理

    前一段时间,我们向大家介绍了最新一代的 英特尔至强 CPU (代号 Sapphire Rapids),包括其用于加速深度学习的新硬件特性,以及如何使用它们来加速自然语言 transformer 模型的 ...

  9. 使用starUML一步一步画顺序图

    顺序图:是UML中能表现出一个过程中各个详细步骤的模型图,过程可以理解为一个功能的执行过程. 下面我们以一个简单的影院管理系统中售票功能为例来一步一步完成顺序图的构建. 建模工具:starUML 版本 ...

  10. 从 GPT2 到 Stable Diffusion:Elixir 社区迎来了 Hugging Face

    上周,Elixir 社区向大家宣布,Elixir 语言社区新增从 GPT2 到 Stable Diffusion 的一系列神经网络模型.这些模型得以实现归功于刚刚发布的 Bumblebee 库.Bum ...

随机推荐

  1. Centos 安装 python3.x 为默认

    CentOS 7 中默认安装了 Python,但是版本是2.x的,由于2020年python2.x将停止更新,因此需要将版本升级至3.x.但由于python2.x是系统集成的,很多命令都是要基于pyt ...

  2. 访问nginx报错502日志:failed (13: Permission denied) while connecting to upstream

    1.错误问题 nginx启动成功,但是访问nginx报错502.检查后台项目,使用IP+端口可以正常访问项目的,这说明项目启动成功了.那就是nginx的问题.检查了nginx.conf文件发现配置的反 ...

  3. Centos7.x 安装配置jdk与jmeter

    一.准备 1.jmeter(下载地址:https://jmeter.apache.org/download_jmeter.cgi) 2.jdk(下载地址:https://www.oracle.com/ ...

  4. 解密Elasticsearch:深入探究这款搜索和分析引擎

    作者:京东保险 管顺利 开篇 最近使用Elasticsearch实现画像系统,实现的dmp的数据中台能力.同时调研了竞品的架构选型.以及重温了redis原理等.特此做一次es的总结和回顾.网上没看到有 ...

  5. laravel框架三级联动,详细代码

    这里运用到省份表中,下面是效果图 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 需要一个省份表,里面的字段要有个pid,name这些字段 下面是控制器代码,(Cit ...

  6. pg数据库的备份和恢复以及sql脚本错误的解决方法

    1.备份单库单表的数据,以insert语句的方式 pg_dump -h IP -p 端口 -U 用户名 -t 表名 --inserts –f dbname.sql 数据库名 pg_dump -h 17 ...

  7. 2022-01-31:迷宫 III。 由空地和墙组成的迷宫中有一个球。球可以向上(u)下(d)左(l)右(r)四个方向滚动,但在遇到墙壁前不会停止滚动。当球停下时,可以选择下一个方向。迷宫中还有一个洞

    2022-01-31:迷宫 III. 由空地和墙组成的迷宫中有一个球.球可以向上(u)下(d)左(l)右(r)四个方向滚动,但在遇到墙壁前不会停止滚动.当球停下时,可以选择下一个方向.迷宫中还有一个洞 ...

  8. vue全家桶进阶之路43:Vue3 Element Plus el-form表单组件

    在 Element Plus 中,el-form 是一个表单组件,用于创建表单以便用户填写和提交数据.它提供了许多内置的验证规则和验证方法,使表单验证更加容易. 使用 el-form 组件,您可以将表 ...

  9. django安装依赖包报错No such file or directory: 'requirement.txt'和警告You are using pip version 22.0.4; however, version 23.0.1 is available.

    ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirement.txt'WARNI ...

  10. Accurate SerDes LineRate

    测试现象:(单板A板载7A series,单板B板载7K series) 1. 单板A板载2个type C接口,通过线缆自环,GTP near-end loopback, OK. 2. 2块单板A,使 ...