大话AI绘画技术原理和算法优化如何实现效应最大化?
摘要:引子 博主很长一段时间都没有发文,确实是在忙一些技术研究。 如标题所示,本篇博文主要把近段时间的研究工作做一个review。 看过各种相关技术的公关文章,林林总总,水分很多。 也确实没有多少人能把一些技术细节用一些比较通俗的语言阐述清楚。
引子
博主很长一段时间都没有发文,确实是在忙一些技术研究。
如标题所示,本篇博文主要把近段时间的研究工作做一个review。
看过各种相关技术的公关文章,林林总总,水分很多。
也确实没有多少人能把一些技术细节用一些比较通俗的语言阐述清楚。
故此,再一次冠以大话为题,对AI绘画主要是stable diffusion做一个技术梳理。
如何学习以及相关资源
相信很多朋友都想入门到这个技术领域捣腾捣腾,
而摆在眼前的确是一条臭水沟。
为什么这么说,让我们来看一些数据。
Hardware:32 x 8 x A100 GPUs
Optimizer:AdamW
Gradient Accumulations: 2
Batch:32 x 8 x 2 x 4 = 2048
Learning rate:warmup to 0.0001 for 10,000 steps and then kept constant
Hardware Type:A100 PCIe 40GB
Hours used:150000
Cloud Provider:AWS
Compute Region:US-east
Carbon Emitted (Power consumption x Time x Carbon produced based on location of power grid):11250 kg CO2 eq.
摘自:CompVis/stable-diffusion-v1-4 · Hugging Face
该模型是在亚马逊云计算服务上使用256个NVIDIA A100 GPU训练,共花费15万个GPU小时,成本为60万美元
摘自:Stable Diffusion - 维基百科,自由的百科全书 (wikipedia.org)
这个数据就是一个劝退警告,但是由于效果太过于“吓人”,所以飞蛾扑火,全世界都打起架来了。
当然,刚开始学习,就直接奔着最终章去,确实也不是很现实。
随着这个领域的爆火,各种资源爆炸式增长。
以下是博主给出的一部分参考资源,便于参阅。
相关整合资源:
heejkoo/Awesome-Diffusion-Models: A collection of resources and papers on Diffusion Models (github.com)
第三方:
Generative Deep Learning (keras.io)
huggingface/diffusers: 🤗 Diffusers: State-of-the-art diffusion models for image and audio generation in PyTorch (github.com)
AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI (github.com)
官方:
CompVis/stable-diffusion: A latent text-to-image diffusion model (github.com)
Stability-AI/stablediffusion: High-Resolution Image Synthesis with Latent Diffusion Models (github.com)
想要开箱式快速上手,建议把keras社区的这个生成花朵的玩具跑起来感受一下。
Denoising Diffusion Implicit Models (keras.io)
这个是一个非常简洁的实现,麻雀虽小五脏俱全,可以快速热身起来。
Stable Diffusion的基本原理
这里博主并不打算展开讲解过多,
只做一个大话概览阐述,便于快速入门了解。
若还有疑惑,大家可以参阅其他的资源。
了解原理,仅仅阅读代码肯定是远远不够的,
但是不阅读代码,你就不知道具体的实现细节。
官方实现,那个代码仓库真是一座屎山,乱七八糟的。
所以极佳的阅读版本是keras社区的实现。
keras-cv/keras_cv/models/stable_diffusion
stable_diffusion的主要组件如下:
1.文案编码器:
keras-cv/text_encoder.py
负责对输入的文字进行特征编码,用于引导 diffusion 模型进行内容生成。
