服务器部署diffusion大模型并生成图片
安装相关库以及依赖
如果不想翻墙或者设置hugging face网站的token的话,可以选择本地安装相关库和依赖。
安装diffusers等相关库和依赖
通过GitHubhttps://github.com/huggingface/diffusers下载源码,上传服务器,打开终端,激活相关anaconda环境或者新建一个虚拟环境,进入diffusers根目录,终端输入
pip install -e .
通过以上代码本地安装好依赖后基本ok了,如果想后面微调diffusion相关大模型的话,可以cd进入examples/dreambooth文件夹,终端输入:
pip install -r requirement_sdxl.txt
代码后面加上对应镜像源就ok了。
部署大模型
可以选择在图片生成过程中在线下载大模型,不过一般需要设置令牌,我选择的是下载对应的大模型部署到服务器,然后本地调用。
在https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0官方链接下载模型,上传至服务器,然后运行以下代码:
from diffusers import DiffusionPipeline
import torch
# load both base & refiner
base = DiffusionPipeline.from_pretrained(
"本地路径/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16, variant="fp16", use_safetensors=True
)
base.to("cuda")
refiner = DiffusionPipeline.from_pretrained(
"本地路径/stable-diffusion-xl-refiner-1.0",
text_encoder_2=base.text_encoder_2,
vae=base.vae,
torch_dtype=torch.float16,
use_safetensors=True,
variant="fp16",
)
refiner.to("cuda")
# Define how many steps and what % of steps to be run on each experts (80/20) here
n_steps = 40
high_noise_frac = 0.8
prompt = "A majestic lion jumping from a big stone at night"
# run both experts
image = base(
prompt=prompt,
num_inference_steps=n_steps,
denoising_end=high_noise_frac,
output_type="latent",
).images
image = refiner(
prompt=prompt,
num_inference_steps=n_steps,
denoising_start=high_noise_frac,
image=image,
).images[0]
以上代码运行成功后就可以了。
生成图片
本次我们以生成赛博猫咪为主题的图片,以下的正面词和负面词
正面词prompt1
(highest quality), masterpiece, intricate, high detail, professional photo, 8k uhd, sharp focus, (realistic photograph:1.2), (half a cat, half a futuristic cyborg white porcelain AI cat, in a vrtual high tech environment:1.2), bright environment
正面词prompt2
cybernetic cat wears futuristic armor, in a battlefield
负面词Negative Prompt
deformed iris, deformed pupils, (semi-realistic, cgi, 2.5d, 3d, sketch, cartoon, drawing, anime:1.2), frame, mirror, polaroid, dark environment
因显存有限,生成图片为高768,宽512的尺寸。