使用Stable Diffusion进行Ai+艺术设计(以智慧灯杆为例)


Stable Diffusion 是一种以 CLIP ViT-L/14 文本编码器的(非池化)文本嵌入为条件的潜在扩散模型。

一. 安装环境

创建并激活一个合适的名为conda的环境:ldm

conda env create -f environment.yaml
conda activate ldm

更新现有的虚拟环境:

conda install pytorch torchvision -c pytorch
pip install transformers==4.19.2 diffusers invisible-watermark
pip install -e .

二. 配置模型

2.1 stable diffusion v1

Stable Diffusion v1 指的是模型架构的特定配置,该架构使用下采样因子 8 自动编码器和 860M UNet 和 CLIP ViT-L/14 文本编码器用于扩散模型。该模型在 256x256 图像上进行预训练,然后在 512x512 图像上进行微调。
模型一共有四个尺度:
1.sd-v1-1.ckpt:在laion2B-en上分辨率为256x256迭代了237k 步。在laion512x512高分辨率上迭代了194k 步(来自 LAION-5B 的分辨率为>= 1024x1024的 170M 的示例。
2.sd-v1-2.ckpt: 从 sd-v1-1.ckpt微调得到。在laion-aesthetics v2 5+上分辨率为512x512迭代了515k 步(laion2B-en 的一个子集,具有估计的美学分数> 5.0,并另外过滤到具有原始大小>= 512x512和估计水印概率< 0.5的图像。水印估计来自LAION-5B元数据,美学分数是使用LAION-Aesthetics Predictor V2估算的)。
3.sd-v1-3.ckpt: 从sd-v1-2.ckpt微调得到。512x512“laion-aesthetics v2 5+”分辨率为512x512迭代了195k 步,文本条件下降 10%,以改进无分类器指导采样。
4.sd-v1-4.ckpt: 从sd-v1-2.ckpt微调得到。“laion-aesthetics v2 5+”分辨率为512x512迭代了225k 步,文本条件下降 10%,以改进无分类器指导采样。
本次测试使用的模型是sd-v1-1.ckpt
在这里插入图片描述

2.2 运行并测试生成效果

获得stable-diffusion-v1-*-original权重后,将它们链接起来:

mkdir -p models/ldm/stable-diffusion-v1/
ln -s <path/to/model.ckpt> models/ldm/stable-diffusion-v1/model.ckpt 

或者直接把模型放在models/ldm/stable-diffusion-v1/ 下面。
测试一下从文本到图像:

python scripts/txt2img.py --prompt "a photograph of an astronaut riding a horse" --plms 

默认情况下,以 50 步渲染大小为 512x512的图像。
测试一下从图像到图像:

python scripts/img2img.py --prompt "A fantasy landscape, trending on artstation" --init-img <path-to-img.jpg> --strength 0.8

猜你喜欢

转载自blog.csdn.net/m0_46339652/article/details/128499121