Stable Diffusion教程:使用 lambda 扩散器的稳定扩散图像变化

Stable Diffusion教程:使用 lambda 扩散器的稳定扩散图像变化

🧐 稳定扩散的简短介绍

Stable Diffusion 是一种文本到图像的潜在扩散模型,由来自 CompVis、Stability AI 和 LAION 的研究人员和工程师创建。它使用来自 LAION-5B 数据库子集的 512×512 图像进行训练。

关于 lambda 扩散器

此版本的 Stable Diffusion 已从 CompVis/stable-diffusion-v1-3-original 进行了微调,以接受 CLIP 图像嵌入而不是文本嵌入。这允许使用稳定扩散创建类似于 DALLE-2 的“图像变化”。此版本的权重已移植到 huggingface Diffusers,要将其与 Diffusers 库一起使用需要 Lambda Diffusers 存储库。

让我们开始学习如何使用 lambda 漫射器来使用稳定的漫射图像变化!

要运行本教程,我们将使用 Google Colab 和 Google Drive

⚙️ 准备依赖项

下载必要的文件:

%cd /content!git clone https://github.com/LambdaLabsML/lambda-diffusers.git%cd /content/lambda-diffusers!git checkout 4d4386e5d2ae667d18987b1a505a47efc643e9c9

安装所需的库:

%cd /content/lambda-diffusers# for lambda-diffusers!pip install -r requirements.txt

导入所需的库

%cd /content/lambda-diffusersfrom pathlib import Pathfrom lambda_diffusers import StableDiffusionImageEmbedPipelinefrom PIL import Imageimport torchfrom torch import autocastfrom diffusers import StableDiffusionPipelinefrom google.colab.patches import cv2_imshowimport cv2device = "cuda" if torch.cuda.is_available() else "cpu"

🎥 图像到图像

加载管道。

pipe = StableDiffusionImageEmbedPipeline.from_pretrained("lambdalabs/sd-image-variations-diffusers")pipe = pipe.to(device)

下载初始图像:

!rm -rf outputs!rm -rf inputs!mkdir outputs inputs!wget -c https://raw.githubusercontent.com/Omarsesa/Lablab/main/R.jpg \      -O inputs/test_01.jpgcv2_imshow(cv2.imread('inputs/test_01.jpg'))
Stable Diffusion教程:使用 lambda 扩散器的稳定扩散图像变化

生成图像

input_img_path = "inputs/test_01.jpg"im = Image.open(input_img_path)num_samples = 2image = pipe(num_samples*[im], guidance_scale=3.0)image = image["sample"]base_path = Path("outputs")base_path.mkdir(exist_ok=True, parents=True)for idx, im in enumerate(image):  im.save(base_path/f"{idx:06}.jpg")

我们加载图像运行模型保存输出图像

显示图像

在这里我们调整图像的大小然后水平连接它们并显示它们

def hconcat_resize_min(im_list, interpolation=cv2.INTER_CUBIC):  h_min = min(im.shape[0] for im in im_list)  im_list_resize = [cv2.resize(im, (int(im.shape[1] * h_min / im.shape[0]), h_min), interpolation=interpolation) for im in im_list]    return cv2.hconcat(im_list_resize)
kinput_cv_im = cv2.imread(input_img_path)im_h = Nonefor i in range(num_samples):  cv_im = cv2.imread(f"outputs/{i:06}.jpg")    if i == 0:    im_h = hconcat_resize_min([input_cv_im, cv_im])  else:    im_h = cv2.hconcat([im_h, cv_im])    #passcv2_imshow(im_h)

正如您在这里看到的,我们有初始图像的不同变体

Stable Diffusion教程:使用 lambda 扩散器的稳定扩散图像变化

在 Colab 中打开

谢谢你!– AI未来百科 ; 探索AI的边界与未来! 懂您的AI未来站

声明:本站部分文章来源于网络,如有侵犯您的合法权益,请您即时与我们联系,我们将在第一时间处理。如需转载本站文章,请在转载时标明出处并保留原文链接,否则我们将保留追究法律责任的权利。

给TA打赏
共{{data.count}}人
人已打赏
AI教程

Stable Diffusion 教程:如何使用我们的 Stable Diffusion API

2023-5-4 20:49:40

AI教程

如何使用 Cohere:Cohere 游乐场

2023-5-4 20:49:51

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧