百度的飞桨就可以用部署stable-diffusion参考网址
https://www.paddlepaddle.org.cn/
第一步下载镜像
nvidia-docker pull registry.baidubce.com/paddlepaddle/paddle:2.3.2-gpu-cuda10.2-cudnn7 或
nvidia-docker pull registry.baidubce.com /paddlecloud/paddlenlp:develop-gpu-cuda10.2-cudnn7-latest
用一个Dockerfile做镜像好使用些同时更换pip的镜像源
第二部进入容器
nvidia-docker run --name paddle -it -v $PWD:/paddle registry.baidubce.com/paddlepaddle/paddle:2.3.2-gpu-cuda10.2-cudnn7 /bin/bash
第三部安转更新模块
pip install --upgrade paddlepaddle
!pip install --upgrade paddlehub
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
第四部 py代码
#英文生成图像
import paddlehub as hub
from docarray import DocumentArray, Document
module = hub.Module(name="stable_diffusion")
text_prompts = ["in the morning light,Overlooking TOKYO city by greg rutkowski and thomas kinkade,Trending on artstation."]
images = module.generate_image(text_prompts,output_dir='/cuit_cxd/nlp/ernievilg_output1')
#还可以用中文生成
import paddlehub as hub
from docarray import DocumentArray, Document
module = hub.Module(name="ernie_vilg")
text_prompts = ["日落时的枫树,秋天风格"]
images = module.generate_image(text_prompts=text_prompts, style='油画', output_dir='./ernie_vilg_out/')
#或者支持disco_diffusion_clip_vitb32
import paddlehub as hub
from docarray import DocumentArray, Document
module = hub.Module(name="disco_diffusion_clip_vitb32")
text_prompts = ["A beautiful painting of a singular lighthouse, shining its light across a tumultuous sea of blood by greg rutkowski and thomas kinkade, Trending on artstation."]
images = module.generate_image(text_prompts=text_prompts, style='油画', output_dir='./ernie_vilg_out/')
参数的说明:
ext_prompts(str): 输入的语句,描述想要生成的图像的内容。
style(Optional[str]): 生成图像的风格,当前支持'油画','水彩','粉笔画','卡通','儿童画','蜡笔画','探索无限'。
topk(Optional[int]): 保存前多少张图,最多保存6张。
output_dir(Optional[str]): 保存输出图像的目录,默认为"ernievilg_output"。
images(List(PIL.Image)): 返回生成的所有图像列表,PIL的Image格式。
artist(Optional[str]): 指定特定的艺术家,如Greg Rutkowsk、krenz,将会生成所指定艺术家的绘画风格。当不指定时,风格完全由您所填写的prompt决定。各种艺术家的风格可以参考网站。
width_height(Optional[List[int]]): 指定最终输出图像的宽高,宽和高都需要是64的倍数,生成的图像越大,所需要的计算时间越长。
seed(Optional[int]): 随机种子,由于输入默认是随机高斯噪声,设置不同的随机种子会由不同的初始输入,从而最终生成不同的结果,可以设置该参数来获得不同的输出图像。
output_dir(Optional[str]): 保存输出图像的目录,默认为"disco_diffusion_clip_vitb32_out"。
ra(DocumentArray): DocumentArray对象, 包含n_batches个Documents,其中每个Document都保存了迭代过程的所有中间结果。详细可参考DocumentArray使用文档。