«

Stable Diffusion(Huggingface的方式安装)

WAP站长网 发布于 阅读:34 SEO教程


Huggingface的方式安装

在Huggingface个人目录下有一个token号,这个tokens号要在服务器登陆的过程中进行添加;

1,在服务器登陆要输入huggingface登陆:

huggingface-cli login # READ 权限的就够了 

运行完命令,按照提示将之前的token复制过来,然后 Y ,回车,登陆成功!

2,相关包安装

pip install --upgrade diffusers transformers scipy pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113 pip install accelerate # 这个加速包可以不装,但是他一直提示看着难受的就装了 

3,运行模式

import torch from torch import autocast from diffusers import StableDiffusionPipeline model_id = "CompVis/stable-diffusion-v1-1" device = "cuda" pipe = StableDiffusionPipeline.from_pretrained(model_id, use_auth_token=True) pipe = pipe.to(device) prompt = "a photo of an astronaut riding a horse on mars" with autocast("cuda"): image = pipe(prompt, guidance_scale=7.5)["sample"][0] image.save("astronaut_rides_horse.png") 

哈哈,报错,error key ‘sample’
打印下pipe看看

只有两个key:images 和 nsfw_content_detected
那改成 images试试

import torch from torch import autocast from diffusers import StableDiffusionPipeline model_id = "CompVis/stable-diffusion-v1-1" device = "cuda" pipe = StableDiffusionPipeline.from_pretrained(model_id, use_auth_token=True) pipe = pipe.to(device) prompt = "a photo of an astronaut riding a horse on mars" with autocast("cuda"): image = pipe(prompt, guidance_scale=7.5)["images"][0] image.save("astronaut_rides_horse.png") 

第一次运行会下载模型,需要点时间,生成的时候显存大概占用12G


成功了,看下生成的怎么样。

马马虎虎,还有很大优化空间。

补充

显卡显存不足10G的话可以改成float16 precision

import torch from torch import autocast from diffusers import StableDiffusionPipeline model_id = "CompVis/stable-diffusion-v1-1" device = "cuda" pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16) #pipe = StableDiffusionPipeline.from_pretrained(model_id, use_auth_token=True) pipe = pipe.to(device) prompt = "a photo of an astronaut riding a horse on mars" with autocast("cuda"): image = pipe(prompt, guidance_scale=7.5)["images"][0] image.save("astronaut_rides_horse.png") 

#To swap out the noise scheduler, pass it to from_pretrained:
要交换噪声调度器,将其传递给from_pretrained:

import torch from diffusers import StableDiffusionPipeline, LMSDiscreteScheduler model_id = "CompVis/stable-diffusion-v1-1" # Use the K-LMS scheduler here instead scheduler = LMSDiscreteScheduler(beta_start=0.00085, beta_end=0.012, beta_schedule="scaled_linear", num_train_timesteps=1000) pipe = StableDiffusionPipeline.from_pretrained(model_id, scheduler=scheduler, use_auth_token=True) pipe = pipe.to("cuda") prompt = "a photo of an astronaut riding a horse on mars" with autocast("cuda"): image = pipe(prompt, guidance_scale=7.5)["images"][0] image.save("astronaut_rides_horse.png") 


哈哈啊哈啊
PS:huggingface-cli: command not found

参考

CompVis/stable-diffusion-v1-1(Hugging Face)
模型方法–Stable Diffusion
CompVis/stable-diffusion(github)
Stable Diffusion with ? Diffusers

diffusioncodestablediffusionprompttokenhuggingfacepngguiidelms服务器stable diffusioncliurlgitjaxhugging facensfwtransformerspytorch噪声调度transformergithubsfw