Ascend-SACT/GLM-Image
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

GLM-Image部署指导

引言

GLM-Image 是一种采用混合自回归(autoregressive)+ 扩散(diffusion)解码器架构的图像生成模型,本文记录了该模型的开箱适配过程。在整体图像生成质量方面,GLM-Image 与主流的潜在扩散方法相当,但在文本渲染和知识密集型生成场景中展现出显著优势。它在需要精确语义理解和复杂信息表达的任务中表现尤为出色,同时在高保真度和细粒度细节生成方面也保持了强大的能力。除了文生图(text-to-image)生成外,GLM-Image 还支持丰富的图生图(image-to-image)任务,包括图像编辑、风格迁移、身份保持生成以及多主体一致性等。

一、运行环境准备

1、版本配套表

配套版本环境准备指导
PythonPython 3.11.14-
torch2.9.0-
torch_npu2.9.0-
vLLM- Ascend0.14.0rc1
CANN8.5.0

2、环境准备

整机:Atlas 800T A2

NPU:910B昇腾

部署方式:单卡部署

操作系统:openEuler 22.03 (LTS-SP2), ARM

二、推理服务部署

1、镜像下载

docker pull quay.io/ascend/vllm-ascend:v0.14.0rc1

2、模型下载

mkdir -p /opt/data/models/ZhipuAI/GLM-Image
modelscope download --model ZhipuAI/GLM-Image --local_dir /opt/data/models/ZhipuAI/GLM-Image

3、启动容器

export IMAGE=quay.io/ascend/vllm-ascend:v0.14.0rc1
docker run --rm \
--name vllm-omni-npu-v14 \
--shm-size=1g \
--device /dev/davinci0 \
--device /dev/davinci_manager \
--device /dev/devmm_svm \
--device /dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
-v /etc/ascend_install.info:/etc/ascend_install.info \
-v /root/.cache:/root/.cache \
-v /opt/data/models:/opt/data/models \
-v /home/workDir:/home/workDir \
-it $IMAGE bash

4、vllm-omni下载与安装

第3步已经进入了容器,下面的操作是在容器中完成

cd /vllm-workspace
git clone -b v0.14.0 https://github.com/vllm-project/vllm-omni.git
cd vllm-omni

对于npu不需要安装fa3-fwd,需要注释掉pyproject.toml文件中对fa3-fwd依赖的声明,否则在执行npu pip install -v -e .时会报错 本地图

VLLM_OMNI_TARGET_DEVICE=npu 
pip install -v -e .
# OR pip install -v -e . --no-build-isolation
export VLLM_WORKER_MULTIPROC_METHOD=spawn

5、安装diffusers和transformers

cd /vllm-workspace
git clone https://atomgit.com/atomgit-cast/zai-org-GLM-Image.git

cd /vllm-workspace/zai-org-GLM-Image/diffusers
pip install -e .

cd /vllm-workspace/zai-org-GLM-Image/transformers
pip install -e .

当使用的diffusers或者transformers版本过高,可能造成版本不兼容,确认安装的版本如下: 本地图

6、启动服务

vllm serve /opt/data/models/ZhipuAI/GLM-Image --omni --port 8091

启动成功后如下图所示: 本地图

7、接口调用验证

curl http://localhost:8091/v1/images/generations \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ZhipuAI/GLM-Image",
    "prompt": "a beautiful girl with glasses.",
    "n": 1,
    "response_format": "b64_json",
    "size": "1024x1024"
  }' |  python3 -c "import sys, json, base64; open('output_t2i.png', 'wb').write(base64.b64decode(json.load(sys.stdin)['data'][0]['b64_json']))"

该调用过程共花费2分钟左右,最终会得到一个名为output_t2i.png的图片,如下图所示: 本地图