跳到主要内容

SD 文生图

本文档意在将开源模型运行在燧原GCU上

1.0 算力申请

  • 登录OpenCSG容器云平台
  • 创建免费试用的enfalme实例, 选择镜像 出图Stable Diffusion(topsrider2.4.136-ubuntu20.04-py38-sd)

1.1 快速尝试

# 下载onnx模型
git clone --depth 1 https://www.opencsg.com//models/xzgan/stable-diffusion-2-1_onnx.git
# 推理
python -m stable_diffusion.examples.stable_diffusion.demo_text2image_topsinference --model stable-diffusion-2-1_onnx/768x768/ --image_num 5 --prompt "king kong in city" --negative_prompt "nsfw" --output ./output --model_type sd_v2_1 --image_height 768 --image_width 768 --platform general --scheduler dpm2 --denoising_steps 20 --seed 1111111 --gcu 0

注意步骤1和2选择其一即可

2.0 自助转换onnx

2.1.模型权重转换

# 下载模型
git clone --depth 1 https://www.opencsg.com//models/AIWizards/stable-diffusion-v1-5.git
# 转换模型
nohup python /usr/local/lib/python3.8/dist-packages/stable_diffusion/scripts/stable_diffusion/generate_onnx_engine.py --model stable-diffusion-v1-5 --output_path stable-diffusion-v1-5_onnx --model_type sd_v1_5 --resolutions 512x512,680x512,512x680,1024x576,576x1024 --export_onnx --gcu 0 > output.log 2>&1 &

2.2.0 SD 推理测试

  • 1:生成的图片保存在 –output 定义的目录下,名字为 seed.png,其中seed.png,其中seed 为随机数种子。
  • 2:目前支持 1024x576, 512x1024, 512x512, 512x680, 576x1024, 680x512 6 种分辨率。

2.2.1. text2image 任务推理

python -m stable_diffusion.examples.stable_diffusion.demo_text2image_topsinference --model stable-diffusion-v1-5_onnx/512x512/ --image_num 6 --prompt "Tyrannosaurus Rex in virgin forest" --negative_prompt "nsfw" --output ./output  --model_type sd_v1_5 --image_height 512 --image_width 512 --platform general --scheduler dpm2 --denoising_steps 20 --seed 1441787169 --gcu 0

2.2.2. lora任务推理

创建lora目录

mkdir -p pokemon/unet

copy lora模型并放到pokemon/unet/adapter_model.safetensors

copy xxx.safetensors pokemon/unet/adapter_model.safetensors

用lora推理

python -m stable_diffusion.examples.stable_diffusion.demo_text2image_topsinference --model stable-diffusion-v1-5_onnx/512x512/ --image_num 6 --prompt "Tyrannosaurus Rex in virgin forest" --negative_prompt "nsfw" --output ./output  --model_type sd_v1_5 --image_height 512 --image_width 512 --platform general --scheduler dpm2 --denoising_steps 20 --seed 1441787169 --gcu 0 --lora pokemon:1.0

3.1 试用sd-2-1

# 下载
git clone --depth 1 https://www.opencsg.com//models/AIWizards/stable-diffusion-2-1.git
# 转换
python /usr/local/lib/python3.8/dist-packages/stable_diffusion/scripts/stable_diffusion/generate_onnx_engine.py --model stable-diffusion-2-1 --output_path stable-diffusion-2-1_onnx --model_type sd_v2_1 --resolutions 768x768 --export_onnx --gcu 1
# 推理
python -m stable_diffusion.examples.stable_diffusion.demo_text2image_topsinference --model stable-diffusion-2-1_onnx/768x768/ --image_num 5 --prompt "king kong in city" --negative_prompt "nsfw" --output ./output --model_type sd_v2_1 --image_height 768 --image_width 768 --platform general --scheduler dpm2 --denoising_steps 20 --seed 1111111