AIGC代码学习记录

本文主要记录不同的SD模型代码中实现的一些细节,如text2img,img2img,inpaint等等

1. 文生图
第一步:生成随机的latent feature (n,4,64,64);n为生成的图片个数;
第二步:对于prompt用clip生成特征,正向提示词的特征(n,77,768),反向提示词的特征(n,77,768)。后续用公式得到最终的噪声:在这里插入图片描述
第三步:生成时间步伐的特征(n,320);
第四步:latent feature放入UNet中,用cnn和多头注意提取特征并下采样,每次都要先加上时间特征,然后和提示词特征用交叉注意力生成新的特征;
第五步:最终UNet输出的是噪声(n,4,64,64);
第六步:根据之前文章的公式对latent feature (n,4,64,64)去燥,得到新的latent feature (n,4,64,64);不断的采样得到最终的latent feature
第七步:最终的latent feature 放到VAE解码器中,放大8倍得到输出图片(n,3,512,512);

2. 图生图
第一步:与文生图不同,这里的latent feature (n,4,64,64)不是随机生成的,是输入图片用VAE编码器得到的;注意这里有个系数strength,0表示对latent feature不加噪声,1表示加很多噪声完全摧毁原有的信息;
第二步:对于prompt用clip生成特征,正向提示词的特征(n,77,768),反向提示词的特征(n,77,768)。
第三步:生成时间步伐的特征(n,320);
第四步:latent feature放入UNet中,用cnn和多头注意提取特征并下采样,每次都要先加上时间特征,然后和提示词特征用交叉注意力生成新的特征;
第五步:最终UNet输出的是噪声(n,4,64,64);
第六步:根据之前文章的公式对latent feature (n,4,64,64)去燥,得到新的latent feature (n,4,64,64);不断的采样得到最终的latent feature
第七步:最终的latent feature 放到VAE解码器中,放大8倍得到输出图片(n,3,512,512);

3. Inpainting
第一步:生成随机的latent feature (n,4,64,64);n为生成的图片个数;
第二步:得到mask img (n,3,512,512)和mask(n,1,512,512);
第三步:mask下采样到(n,1,64,64);mask img用编码器得到(n,4,64,64);把这两个cat起来得到c_cat (n,5,64,64);
第四步:对于prompt用clip生成特征,正向提示词的特征(n,77,768),反向提示词的特征(n,77,768);
第五步:生成时间步伐的特征(n,320);
第六步:把c_cat (n,5,64,64)和latent feature (n,4,64,64) 连接起来得到网络的输入 (n,9,64,64);也就是说输入UNet的xc是图像特征加上latent feature;而cc是prompt的特征,out = self.diffusion_model(xc, t, context=cc);如下图所示:4个latent feature+4个mask img feature+1 mask;
在这里插入图片描述
第七步:把上面这些输入UNet中,用cnn和多头注意提取特征并下采样,每次都要先加上时间特征,然后和提示词特征用交叉注意力生成新的特征;
第八步:最终UNet同样输出噪声(n,4,64,64);
第九步:根据之前文章的公式对latent feature (n,4,64,64)去燥,得到新的latent feature (n,4,64,64);不断的采样得到最终的latent feature;
第十步:最终的latent feature 放到VAE解码器中,放大8倍得到输出图片(n,3,512,512);

相关推荐

  1. casa学习代码记录

    2024-07-20 10:34:02       81 阅读
  2. AIGC示例代码

    2024-07-20 10:34:02       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 10:34:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 10:34:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 10:34:02       45 阅读
  4. Python语言-面向对象

    2024-07-20 10:34:02       55 阅读

热门阅读

  1. RoCE(RDMA over Converged Ethernet)网络速率测试工具

    2024-07-20 10:34:02       15 阅读
  2. 读取 Excel 文件

    2024-07-20 10:34:02       14 阅读
  3. 实战:springboot用LocalDateTime快速替换Date

    2024-07-20 10:34:02       14 阅读
  4. Spark的部署模式

    2024-07-20 10:34:02       16 阅读
  5. Shell 构建flutter + Android 生成Apk

    2024-07-20 10:34:02       13 阅读
  6. 前端面试题日常练-day95 【Less】

    2024-07-20 10:34:02       15 阅读
  7. 前端TS习题

    2024-07-20 10:34:02       13 阅读
  8. 在SAP中,ME22N使用的BAPI是什么

    2024-07-20 10:34:02       18 阅读