AI 大模型之美
徐文浩
bothub 创始人
32335 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 33 讲
AI 大模型之美
15
15
1.0x
00:00/00:00
登录|注册

24|Stable Diffusion:最热门的开源AI画图工具

生成内容风格由文本提示决定
提供草稿图和文本提示
使用StableDiffusionImg2ImgPipeline
Decoder:将生成的张量还原为图片(VAE)
Generation模块:图片信息生成(UNet + Scheduler)
Text-Encoder:将文本转换为向量(CLIP模型)
示例:宇航员骑马图片
利用GPU加速生成
使用Huggingface的Diffusers库
安装依赖包
B站“跟李沐学AI”系列视频
深入了解DALL-E 2和Imagen等图片生成模型结构
探索Stable Diffusion模型结构如何实现特定功能
使用遮照图片和提示语
修改图片画面中的某一部分元素
使用Web-UI图形界面生成图片
CIVITAI平台分享模型
可以使用自己的数据训练模型
Stable Diffusion模型结构通用
图生图
Stable Diffusion基本原理
文生图
支持社区训练的模型
可以编辑图片
通过文本或图片生成新的图片
开源AI画图工具
推荐阅读
思考题
实战场景
使用社区里的其他模型
使用Stable Diffusion生成图片
Stable Diffusion 概述
Stable Diffusion:开源AI画图工具

该思维导图由 AI 生成,仅供参考

你好,我是徐文浩。
上一讲,我们一起体验了 CLIP 这个多模态的模型。在这个模型里,我们已经能够把一段文本和对应的图片关联起来了。看到文本和图片的关联,想必你也能联想到过去半年非常火热的“文生图”(Text-To-Image)的应用浪潮了。相比于在大语言模型里 OpenAI 的一枝独秀。文生图领域就属于百花齐放了,OpenAI 陆续发表了 DALL-E 和 DALL-E 2,Google 也不甘示弱地发表了 Imagen,而市场上实际被用得最多、反馈最好的用户端产品是 Midjourney
不过,在整个技术社区里,最流行的产品则是 Stable Diffusion。因为它是一个完全开源的产品,我们不仅可以调用 Stable Diffusion 内置的模型来生成图片,还能够下载社区里其他人训练好的模型来生成图片。我们不仅可以通过文本来生成图片,还能通过图片来生成图片,通过文本来编辑图片。
那么今天这一讲,我们就来看看如何使用 Stable Diffusion,做到上面这些事情。

使用 Stable Diffusion 生成图片

文生图

可能你还没怎么体验过文生图的应用,那我们先用几行最简单的代码体验一下。在这一讲里,我建议一定要用 Colab 或者其他的 GPU 环境,因为用 CPU 来执行的话,速度会慢到让人无法接受。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Stable Diffusion:开源AI画图工具 Stable Diffusion是一款备受关注的开源AI画图工具,具有强大的创作能力和广泛的应用前景。该工具以完全开源的特点脱颖而出,用户可以利用内置模型生成图片,也可以下载其他用户训练好的模型进行图片生成。不仅可以通过文本生成图片,还可以通过图片生成图片,甚至通过文本编辑图片。文章介绍了如何使用Stable Diffusion进行图片生成,以及其基本原理和使用方法。 通过简单的代码示例,读者可以了解如何使用Stable Diffusion的Pipeline来实现图生图,包括使用草稿图和文本提示语生成图片,设置负面提示语排除内容,以及提升图片分辨率等一系列应用。此外,文章还介绍了如何使用社区里的其他模型,并提供了相应的代码示例。通过深入了解Stable Diffusion的模型结构和内部工作原理,读者可以更好地理解其应用场景和技术特点。 总的来说,Stable Diffusion作为一款开源AI画图工具,具有广泛的应用前景,为用户提供了全新的图片生成体验。读者可以通过本文了解Stable Diffusion的基本原理和使用方法,以及如何利用其强大的创作能力进行图片生成。同时,文章还提到了下一讲将介绍的内容,包括如何通过LoRa算法进行模型微调和如何通过ControlNet让生成的图片更加可控,为读者展示了更多关于Stable Diffusion的技术细节和应用场景。 通过本文的阅读,读者可以快速了解Stable Diffusion的技术特点和应用方法,为他们进一步深入学习和应用Stable Diffusion提供了良好的指引。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《AI 大模型之美》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(18)

  • 最新
  • 精选
  • 东方奇骥
    老师,为什么要加了噪声,再去除噪声?

    作者回复: 来自GPT-4的回答: “Stable Diffusion是一种生成模型,它通过在数据上加入噪声,并在随后的步骤中逐渐减少这种噪声,来生成新的数据样本。这种方法的灵感来自物理学中的扩散过程,这就是它的名称中包含"Diffusion"的原因。扩散过程通常涉及到随机性和梯度下降,它们都在Stable Diffusion模型中找到了体现。 现在我们来看为什么这样做: 保留原有数据的复杂性:直接从原始数据生成新的数据样本可能非常困难,因为原始数据的复杂性和多样性。通过在数据上加入噪声,我们可以让模型从一个相对简单的分布(如高斯噪声分布)开始工作,然后逐渐通过减少噪声,使得新的数据样本逐渐接近于原始数据的复杂分布。 使模型更健壮:在训练过程中添加和减少噪声可以作为一种正则化技术,帮助防止模型过拟合。它强迫模型在不同的噪声级别下都能正确地进行预测,从而提高模型的泛化能力。 反向生成:噪声的逐渐减少实际上是对数据生成过程的逆向模拟。这意味着,我们不仅可以从原始数据生成新的数据样本,而且还可以反过来,从新的数据样本反推其可能的原始数据。 这就是为什么Stable Diffusion模型会首先在数据上加入噪声,然后逐渐减少噪声的原因。这种方法可以帮助模型更好地理解和复现原始数据的复杂性和多样性。”

    2023-05-05归属地:四川
    2
    6
  • peter
    请教老师几个问题: Q1:stable Diffusion采用的CLIP是自身的吗?还是调用chatGPT? Q2:先加噪声,再去掉,有什么意义?吃一口再吐一口,有意思吗? “先往前面的用 CLIP 模型推理出来的向量里添加很多噪声,再通过 UNet+Scheduler 逐渐去除噪声,最后拿到了一个新的张量”。 Q3:本课的代码是在本机上运行的吗?我的笔记本上是普通配置,能运行并生成图吗?(或者,图的生成是调用了某个服务器?) Q4:可以对图片进行加工吗? 比如在一个照片的头上加一个帽子。

    作者回复: 1. Stable Diffusion用了多个模型组合啊。其中输入的Prompt转换成向量直接用的CLIP模型 2. 这个是训练过程,可以理解为通过增加噪声和模型训练,我们就学会了怎么从一个随机噪声的信息复原出一张图片的能力。 3. 如果有GPU,本机可以运行,不然建议使用Colab的在线GPU环境 4. 可以啊,可以看看后面的VisualChatGPT 3,

    2023-05-06归属地:北京
    5
    1
  • 一叶
    老师 如何 手动把模型下载,然后再上传到服务器 ? 我服务器本地liunx的,发现下载很慢..... DiffusionPipeline.from_pretrained

    作者回复: 找找看国内是否有镜像?以前清华有

    2023-05-10归属地:福建
    2
  • 厚积薄发
    CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 14.75 GiB total capacity; 13.46 GiB already allocated; 10.81 MiB free; 13.46 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF 老师,colab gpu不够了,默认的16g不够,是不是需要购买更大的gpu

    作者回复: 课程里单个任务Colab里T4的16GB内存应该是够的。 当然如果你需要别的模型,GPU显存不够就需要更大显存的GPU甚至多卡了。

    2023-05-08归属地:北京
    2
  • Oli张帆
    请教一下老师,结合您之前讲的HuggingFace,我可以通过HuggingFace,免费调用Stable Diffusion的接口,来产生大量的图片。那这整个流程中需要的大量算力,是谁来买单的呢?

    作者回复: 如果是有人部署了一个付费的space然后开放出来让大家用,那就是部署的人买单 如果是HF官方提供的Space或者Inference API,就是HF官方给钱 并没有那么多免费的算力可以用,免费开放的GPU资源很少的,最多让你试一下API,大家排队慢慢用而已

    2023-05-06归属地:北京
    2
  • Toni
    1. 使用 GPU 无疑会加快图像的生成,但实在没有办法使用 GPU 时,就用 CPU,只要将下面代码中的 "cuda" 改成 "cpu" 即可,慢比没有强。 pipeline.to("cuda") => pipeline.to("cpu") --------------------- from diffusers import DiffusionPipeline pipeline = DiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5") pipeline.to("cpu") image = pipeline("Sports car, road, rural areas, blue sky, white clouds, endless grassland in the background").images[0] image -------------- 生成上面的图在 cpu 条件下约10分钟。 2. 描述图像的 prompt 如果太长会报错, 比如 Token indices sequence length is longer than the specified maximum sequence length for this model (161 > 77). 程序会继续运行,但输出结果是黑板。 Potential NSFW content was detected in one or more images. A black image will be returned instead. Try again with a different prompt and/or seed. prompt 中的 Token 数超过限定时,要停止运行,以节省时间。

    作者回复: 👍

    2023-05-05归属地:瑞士
    10
  • Jack
    第一次运行“a photograph of an astronaut riding a horse”,只有马,没有宇航员,多运行几次就有了,不过图片没有老师的好看

    作者回复: 可以多试试使用不同的随机数seed,不同随机数的差别很大,我也是挑了一个好看的放出来。

    2023-05-05归属地:广东
    2
  • Jacob.C
    老师可以讲一下,colab 上,跑这个太空人骑马要运行耗时多久吗?

    作者回复: Colab下用GPU T4跑,一般在5-20秒之间吧。

    2023-05-05归属地:广东
    3
  • Geek_7ee455
    老师,在mac上能自己部署一套stable diffusion吗

    作者回复: 可以啊,如果是新的M1/M2芯片的Mac的话,Intel CPU的因为显卡的原因不确定行不行。 Apple官方给了解决方案 https://huggingface.co/docs/diffusers/optimization/mps

    2023-05-05归属地:浙江
    4
  • Amark
    为啥有的图片跟文字不符,文字描述有啥要求吗
    2024-02-01归属地:陕西
收起评论
显示
设置
留言
18
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部