跳到主要内容

SDXL 文生图

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

1.0 算力申请

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

1.1 快速尝试

# 下载onnx模型
git clone --depth 1 https://www.opencsg.com//models/xzgan/stable-diffusion-xl-base-1.0_onnx.git
# 推理
python -m stable_diffusion.examples.stable_diffusion_xl.demo_text2image_topsinference --model stable-diffusion-xl-base-1.0_onnx/1024x1024/ --platform general --gcu 0 --image_num 1 --prompt "draw a dragon" --negative_prompt "not black" --seed 1000 --denoising_steps 20 --image_height 1024 --image_width 1024 --output output

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

2.0 自助转换onnx

2.1.模型权重转换

git clone https://www.opencsg.com//models/AIWizards/stable-diffusion-xl-base-1.0.git
# 开源权重为pytorch格式,需要转换为onnx形式
nohup python3.10 /usr/local/lib/python3.10/dist-packages/stable_diffusion/scripts/stable_diffusion_xl/generate_onnx_engine.py --base_model stable-diffusion-xl-base-1.0 --vae_model sdxl-vae-fp16-fix --platform general --model_type sd_xl_base_1_0 --gcu 0 --refit_mode need_refit_engine --output_path stable-diffusion-xl-base-1.0_onnx --resolutions 1024x1024 --export_onnx > output.log 2>&1 &

2.2.SD_XL 推理测试

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

2.2.1. text2image 任务推理

python -m stable_diffusion.examples.stable_diffusion_xl.demo_text2image_topsinference --model stable-diffusion-xl-base-1.0_onnx/1024x1024/ --platform general --gcu 0 --image_num 1 --prompt "draw a dragon" --negative_prompt "not black" --seed 1000 --denoising_steps 20 --image_height 1024 --image_width 1024 --output output

2.2.2. image2Image 任务推理

python -m stable_diffusion.examples.stable_diffusion_xl.demo_image2image_topsinference --model stable-diffusion-xl-base-1.0_onnx/1024x1024/ --platform general --gcu 0 --image_num 1 --prompt "draw a dragon" --negative_prompt "not black" --seed 3000 --denoising_steps 20 --image_height 1024 --image_width 1024 --init_image text2image_out/1000.png --strength 1.0 --output image2image_out

2.2.3. 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_xl.demo_text2image_topsinference --model stable-diffusion-xl-base-1.0_onnx/1024x1024/ --platform general --gcu 0 --image_num 1 --prompt "draw a dragon" --negative_prompt "not black" --seed 1000 --denoising_steps 20 --image_height 1024 --image_width 1024 --output output --lora pokemon:1.0