Stable Diffusion AIGC:3步成为P图大师
摘要: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 教程
教程中有完成的介绍,这里就不赘述了

注意:
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图大师的更多相关文章
- Stable Diffusion魔法入门
写在前面 本文为资料整合,没有原创内容,方便自己查找和学习, 花费了一晚上把sd安装好,又花了大半天了解sd周边的知识,终于体会到为啥这些生成式AI被称为魔法了,魔法使用前要吟唱类比到AI上不就是那些 ...
- Stable Diffusion 关键词tag语法教程
提示词 Prompt Prompt 是输入到文生图模型的文字,不同的 Prompt 对于生成的图像质量有较大的影响 支持的语言Stable Diffusion, NovelAI等模型支持的输入语言为英 ...
- AI 绘画咒语入门 - Stable Diffusion Prompt 语法指南 【成为初级魔导士吧!】
要用好 Stable Diffusion,最最重要的就是掌握 Prompt(提示词).由于提示词对于生成图的影响甚大,所以被称为魔法,用得好惊天动地,用不好魂飞魄散 . 因此本篇整理下提示词的语法(魔 ...
- AI绘画提示词创作指南:DALL·E 2、Midjourney和 Stable Diffusion最全大比拼 ⛵
作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 自然语言处理实战系列:https://www.showmeai.tech ...
- Window10环境下,Stable Diffusion的本地部署与效果展示
Diffusion相关技术最近也是非常火爆,看看招聘信息,岗位名称都由AI算法工程师变成了AIGC算法工程师,本周跟大家分享一些Diffusion算法相关的内容. Window10环境下,Stable ...
- 最新版本 Stable Diffusion 开源AI绘画工具之部署篇
目录 AI绘画 本地环境要求 下载 Stable Diffusion 运行启动 AI绘画 关于 AI 绘画最近有多火,既然你有缘能看到这篇文章,那么相信也不需要我过多赘述了吧? 随着 AI 绘画技术的 ...
- 最新版本 Stable Diffusion 开源 AI 绘画工具之使用篇
目录 界面参数 采样器 文生图(txt2img) 图生图(img2img) 模型下载 界面参数 在使用 Stable Diffusion 开源 AI 绘画之前,需要了解一下绘画的界面和一些参数的意义 ...
- 在英特尔 CPU 上加速 Stable Diffusion 推理
前一段时间,我们向大家介绍了最新一代的 英特尔至强 CPU (代号 Sapphire Rapids),包括其用于加速深度学习的新硬件特性,以及如何使用它们来加速自然语言 transformer 模型的 ...
- 使用starUML一步一步画顺序图
顺序图:是UML中能表现出一个过程中各个详细步骤的模型图,过程可以理解为一个功能的执行过程. 下面我们以一个简单的影院管理系统中售票功能为例来一步一步完成顺序图的构建. 建模工具:starUML 版本 ...
- 从 GPT2 到 Stable Diffusion:Elixir 社区迎来了 Hugging Face
上周,Elixir 社区向大家宣布,Elixir 语言社区新增从 GPT2 到 Stable Diffusion 的一系列神经网络模型.这些模型得以实现归功于刚刚发布的 Bumblebee 库.Bum ...
随机推荐
- odoo 开发入门教程系列-添加修饰
添加修饰 我们的房地产模块现在从商业角度来看是有意义的.我们创建了特定的视图,添加了几个操作按钮和约束.然而,我们的用户界面仍然有点粗糙.我们希望为列表视图添加一些颜色,并使一些字段和按钮有条件地消失 ...
- .NET Core反射获取带有自定义特性的类,通过依赖注入根据Attribute元数据信息调用对应的方法
前言 前段时间有朋友问道一个这样的问题,.NET Core中如何通过Attribute的元数据信息来调用标记的对应方法.我第一时间想到的就是通过C#反射获取带有Custom Attribute标记的类 ...
- VUE的路由懒加载及组件懒加载
一,为什么要使用路由懒加载 为给客户更好的客户体验,首屏组件加载速度更快一些,解决白屏问题 二,懒加载简单来说就是延迟加载或按需加载,即在需要的时候的时候进行加载 三,常用的懒加载方式有两种:即使用v ...
- SpringBoot SpringSecurity 介绍(基于内存的验证)
SpringBoot 集成 SpringSecurity + MySQL + JWT 附源码,废话不多直接盘 SpringBoot已经为用户采用默认配置,只需要引入pom依赖就能快速启动Spring ...
- C# 系统菜单弹出框方向
右键菜单,tootip等弹出时,弹出的位置经常在左侧,使用体验不好. 弹出方向有左对齐和右对齐 SystemParameters.MenuDropAlignment 当右对齐时,值为false 可以在 ...
- Redis主从和哨兵搭建
今天主要分享Redis主从架构和哨兵的搭建. 主从集群搭建 总共三个节点,一个主节点和两个从节点.都安装在一台机器上模拟主从集群,信息如下: IP PORT 角色 192.168.246.140 70 ...
- NC51101 Lost Cows
题目链接 题目 题目描述 \(N (2 \leq N \leq 8,000)\) cows have unique brands in the range 1..N. In a spectacular ...
- ai问答:使用 Vue3 组合式API 和 TS 封装 echarts 折线图
使用这个组件时,只需要传入合适的chartData数组,就可以渲染一个折线图,并且响应数据变化. <template> <div ref="chart" styl ...
- 如何在 🤗 Space 上托管 Unity 游戏
你知道吗?Hugging Face Space 可以托管自己开发的 Unity 游戏!惊不惊喜,意不意外?来了解一下吧! Hugging Face Space 是一个能够以简单的方式来构建.托管和分享 ...
- 2023-05-09:石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 。 有 n 块石子排成一排。 每个玩家的回合中,可以从行中 移除 最左边的石头或最右边的石头, 并获得与该行中剩余石头值
2023-05-09:石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 . 有 n 块石子排成一排. 每个玩家的回合中,可以从行中 移除 最左边的石头或最右边的石头, 并获得与该行中剩余石头值 ...