Stable Diffusion 绘本一致性相关知识如下:
工作原理: Stable Diffusion 生成随机噪声,并逐步更改噪声以努力获得与提示一致的图像。其基本结构包括 encoder + diffusion + decoder 的流程。Checkpoint 记录某个训练周期整个 diffusion 及可能的 encoder decoder 的参数,VAE 是 encoder decoder 的参数,在 SDXL 等大型模型中需配对以避免花屏现象。LoRA 模型训练时先冻结 SD 模型权重,然后在 U-Net 结构中注入 LoRA 模块并与 CrossAttention 模块结合,只对部分参数微调。
相关论文:
影响生成结果的因素: 影响生成的图与他人不同的因素包括随机数种子(Seed)。随机数种子控制最底层形状,决定照片基础轮廓,如人物外形轮廓、姿势和站位等。当随机数为“-1”时,SD 会随机生成种子。可在点击生成的照片下面的一大串英文中查看 seed 值。只有所有参数包括随机数种子都与他人相同时,才能生成相似的照片。
The Illustrated Stable Diffusion – Jay Alammar – Visualizing machine learning one concept at a time.(jalammar.github.io)贴博客是因为它解释得很清楚很好了。其次要了解Stable Diffusion的工作原理是生成随机噪声,并一步一步地更改噪声,以尝试并努力获得与提示一致的图像。work like thistext2img和img2img1.text2img2.img2img现在才进入正题!有以上img2img、text2img的流程可以看到,基本结构就是encoder+diffusion+decoder的流程。这是解释以上过程的论文的流程图。Checkpoint就是记录某个训练周期这整个diffusion/可能加上encoder decoder的参数。vae就是encoder decoder的参数,在SDXL等大型模型里vae要配对不然容易出现中间diffusion过程正常后面最后decode的时候花屏现象。接下来看ControlNet。这里的unet结构就是上面论文图中4个QKV的两片甲板的。左上这个prompt进入text encoder在每个模块上加入text information(token embeddings)。这里embedding模型就是这么用的咯,像字典一样。对token取对应的embedding。Time encoder是为了记录noise amount,第几步step。右边是controlnet插入。LoRA模型的训练逻辑是首先冻结SD模型的权重,然后在SD模型的U-Net结构中注入LoRA模块,并将其与CrossAttention模块结合,并只对这部分参数进行微调训练。也就是以上的sd encoder block和sd decoder block的权重参数进行调整。
|文本|id|内部分类|Arxiv|GitHub|项目网站|Hugging Face|原理图|效果图|合集|创建人|创建时间|最后更新时间|简介|use|父记录|<br>|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|<br>|AnyDoor||consistency|[https://arxiv.org/abs/2307.09481](https://arxiv.org/abs/2307.09481)|[https://github.com/ali-vilab/AnyDoor](https://github.com/ali-vilab/AnyDoor)|[https://github.com/ali-vilab/AnyDoor](https://github.com/ali-vilab/AnyDoor)|[https://huggingface.co/spaces/xichenhku/AnyDoor-online](https://huggingface.co/spaces/xichenhku/AnyDoor-online)|||Stable Diffusion生态技术大全|AJ|2024/04/15|2024/04/15||||<br>|Mix-of-Show||consistency|[https://arxiv.org/abs/2305.18292](https://arxiv.org/abs/2305.18292)|[https://github.com/TencentARC/Mix-of-Show](https://github.com/TencentARC/Mix-of-Show)|[https://showlab.github.io/Mix-of-Show/](https://showlab.github.io/Mix-of-Show/)||||Stable Diffusion生态技术大全|AJ|2024/04/15|2024/04/15||||<br>|LyCORIS||consistency|[https://arxiv.org/abs/2309.14859](https://arxiv.org/abs/2309.14859)|[https://github.com/KohakuBlueleaf/LyCORIS](https://github.com/KohakuBlueleaf/LyCORIS)|||||Stable Diffusion生态技术大全|AJ|2024/04/15|2024/04/15||||<br>|Res-Adapter||enhancement|[https://arxiv.org/abs/2403.02084](https://arxiv.org/abs/2403.02084)|[bytedance/res-adapter:Official implementation of"ResAdapter:Domain Consistent Resolution Adapter for Diffusion Models".(github.com)](https://github.com/bytedance/res-adapter)|[https://res-adapter.github.io/](https://res-adapter.github.io/)||||Stable Diffusion生态技术大全|AJ|2024/04/15|2024/04/15||||<br>|X-Adapter||enhancement|[https://arxiv.org/abs/2312.02238](https://arxiv.org/abs/2312.02238)|[https://github.com/showlab/X-Adapter](https://github.com/showlab/X-Adapter)|[https://showlab.github.io/X-Adapter/](https://showlab.github.io/X-Adapter/)||||Stable Diffusion生态技术大全|AJ|2024/04/15|2024/04/15||||
为什么有时候我们跟别人用的大模型、关键词、Lora还有其他参数都一样可偏偏生成出来的图就是不一样?那是因为影响照片的因素还有一个“随机数种子(Seed)”随机数种子控制的是最底层的形状,就相当于我们画画最开始的线稿它会决定我们照片的基础轮廓,相当于决定了我们照片人物的外形轮廓,包括姿势和站位等当随机数为“-1”的时候,SD就会随机给你的照片生成一个种子,这个种子就理解成不一样的线稿就可以怎么看自己照片用的seed值(随机数种子)是什么呢?在我们点击生成的照片下面,有一大串英文,里面的seed值就是我们当前生成照片的seed值只有当我们所有参数,包括随机数种子跟别人的照片都一样时,我们才能生成跟别人差不多一样的照片。