大家好,我是微学AI,今天给大家带来一个文本生成图像的案例。让大家都成为艺术家,自己电脑也能生成图片 ,该模型它能让数十亿人在几秒钟内创建出精美的艺术品。在速度和质量方面,都有所突破,这意味着图像生成技术走向大众。
Stable Diffusion模型包括两个步骤:
前向扩散——通过逐渐扰动输入数据将数据映射到噪声。这是通过一个简单的随机过程正式实现的,该过程从数据样本开始,并使用简单的高斯扩散核迭代地生成噪声样本。此过程仅在训练期间使用,而不用于推理。
参数化反向——撤消前向扩散并执行迭代去噪。这个过程代表数据合成,并被训练通过将随机噪声转换为真实数据来生成数据。
模型构架:

下面介绍一下,Stable Diffusion模型的代码实现,主代码:
from tensorflow import keras
from stable_diffusion_tf.stable_diffusion import StableDiffusion
import argparse
from PIL import Image
import os
parser = argparse.ArgumentParser()
parser.add_argument(
"--prompt",
type=str,
nargs="?",
default="Romantic lavender and sunset",
help="the prompt to render",
)
parser.add_argument(
"--output",
type=str,
nargs="?",
default="output4.png",
help="where to save the output image",
)
parser.add_argument(
"--H",
type=int,
default=256,
help="image height, in pixels",
)
parser.add_argument(
"--W",
type=int,
default=512,
help="image width, in pixels",
)
parser.add_argument(
"--scale",
type=float,
default=7.5,
help="unconditional guidance scale: eps = eps(x, empty) + scale * (eps(x, cond) - eps(x, empty))",
)
parser.add_argument(
"--steps", type=int, default=50, help="number of ddim sampling steps"
)
parser.add_argument(
"--seed",
type=int,
help="optionally specify a seed integer for reproducible results",
)
parser.add_argument(
"--mp",
default=False,
action="store_true",
help="Enable mixed precision (fp16 computation)",
)
args = parser.parse_args()
if args.mp:
print("Using mixed precision.")
keras.mixed_precision.set_global_policy("mixed_float16")
# 引入StableDiffusion模型
generator = StableDiffusion(img_height=args.H, img_width=args.W, jit_compile=False)
img = generator.generate(
args.prompt,
num_steps=args.steps,
unconditional_guidance_scale=args.scale,
temperature=1,
batch_size=1,
seed=args.seed,
)
Image.fromarray(img[0]).save(args.output)
print(f"saved at {args.output}")
代码下载地址:
链接:https://pan.baidu.com/s/1ES7Vr_gla5hwPmdkUdR8Qg?pwd=wqmb
提取码:wqmb
运行案例,大家用GPU跑会快一点。
描述语言: A girl carrying a bag faces the sea as the sun sets(一个女孩背着包面向大海,夕阳西下)

描述语言: A sea of romantic lavender with the sun setting(浪漫的薰衣草的海洋,夕阳西下)

有技术问题,可以私信