写点什么

Stable Diffusion AIGC:3 步成为 P 图大师

  • 2023-07-10
    广东
  • 本文字数:2921 字

    阅读完需:约 10 分钟

Stable Diffusion AIGC:3步成为P图大师

本文分享自华为云社区《【云驻共创】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 工具的全面了解。通过案例讲解和对实现细节的介绍,我们可以更好地理解和应用这些技术,同时也了解了可能面临的挑战和解决方案。


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

发布于: 刚刚阅读数: 3
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
Stable Diffusion AIGC:3步成为P图大师_人工智能_华为云开发者联盟_InfoQ写作社区