表 1 版本配套表
| 配套 | 版本 | 环境准备指导 |
|---|---|---|
| Python | 3.10 / 3.11 | - |
| torch | 2.1.0 | - |
# 增加软件包可执行权限,{version}表示软件版本号,{arch}表示CPU架构,{soc}表示昇腾AI处理器的版本。
chmod +x ./Ascend-cann-toolkit_{version}_linux-{arch}.run
chmod +x ./Ascend-cann-kernels-{soc}_{version}_linux.run
# 校验软件包安装文件的一致性和完整性
./Ascend-cann-toolkit_{version}_linux-{arch}.run --check
./Ascend-cann-kernels-{soc}_{version}_linux.run --check
# 安装
./Ascend-cann-toolkit_{version}_linux-{arch}.run --install
./Ascend-cann-kernels-{soc}_{version}_linux.run --install
# 设置环境变量
source /usr/local/Ascend/ascend-toolkit/set_env.sh# 增加软件包可执行权限,{version}表示软件版本号,{arch}表示CPU架构。
chmod +x ./Ascend-mindie_${version}_linux-${arch}.run
./Ascend-mindie_${version}_linux-${arch}.run --check
# 方式一:默认路径安装
./Ascend-mindie_${version}_linux-${arch}.run --install
# 设置环境变量
cd /usr/local/Ascend/mindie && source set_env.sh
# 方式二:指定路径安装
./Ascend-mindie_${version}_linux-${arch}.run --install --install-path=${AieInstallPath}
# 设置环境变量
cd ${AieInstallPath}/mindie && source set_env.sh安装pytorch框架 版本2.1.0 安装包下载
使用pip安装
# {version}表示软件版本号,{arch}表示CPU架构。
pip install torch-${version}-cp310-cp310-linux_${arch}.whl下载 pytorch_v{pytorchversion}_py{pythonversion}.tar.gz
tar -xzvf pytorch_v{pytorchversion}_py{pythonversion}.tar.gz
# 解压后,会有whl包
pip install torch_npu-{pytorchversion}.xxxx.{arch}.whlgit clone https://modelers.cn/MindIE/HiDream-I1.gitpip install -r requirements.txthttps://huggingface.co/HiDream-ai/HiDream-I1-Full/tree/main
https://huggingface.co/meta-llama/Llama-3.1-8B-Instruct/tree/main|----main
| |---- model_index.json
| |---- scheduler
| |---- text_encoder
| |---- text_encoder_2
| |---- text_encoder_3
| |---- tokenizer
| |---- tokenizer_2
| |---- tokenizer_3
| |---- transformer
| | |---- config.json
| | |---- 模型权重
| |---- vaecd HiDream-I1path="/data/HiDream-I1-Full"
extra_path="/data/Llama-3.1-8B-Instruct"python inference.py \
--model_path ${path} \
--model_path_extra ${extra_path} \
--resolution "1024 x 1024" \
--num_inference_steps 50 \
--device_id 0参数说明:
注意:本仓库模型,是对开源模型进行优化。用户在使用时,应对开源代码函数的变量范围,类型进行校验,避免出现变量超出范围、除零等操作。
python inference.py \
--model_path ${path} \
--model_path_extra ${extra_path} \
--resolution "1024 x 1024" \
--num_inference_steps 4 \
--infer_type Profiling \
--device_id 0参数说明:
cd HiDream-I1path="/data/HiDream-I1-Full"
extra_path="/data/Llama-3.1-8B-Instruct"ASCEND_RT_VISIBLE_DEVICES=0,1,2,3 torchrun --nproc_per_node=4 inference.py \
--enable_parallelism True \
--tp_size 4 \
--ep_size 4 \
--model_path ${path} \
--model_path_extra ${extra_path} \
--resolution "1024 x 1024" \
--num_inference_steps 50参数说明:
注意:本仓库模型,是对开源模型进行优化。用户在使用时,应对开源代码函数的变量范围,类型进行校验,避免出现变量超出范围、除零等操作。
ASCEND_RT_VISIBLE_DEVICES=0,1,2,3 torchrun --nproc_per_node=4 inference.py \
--enable_parallelism True \
--tp_size 4 \
--ep_size 4 \
--model_path ${path} \
--model_path_extra ${extra_path} \
--resolution "1024 x 1024" \
--num_inference_steps 4 \
--infer_type Profiling参数说明:
注意,由于要生成的图片数量较多,进行完整的精度验证需要耗费很长的时间。
所有数据集放到HiDream-I1/prompts目录下
# 下载Parti数据集
wget https://raw.githubusercontent.com/google-research/parti/main/PartiPrompts.tsv --no-check-certificatepath="/data/HiDream-I1-Full"
extra_path="/data/Llama-3.1-8B-Instruct"python3 inference.py \
--model_path ${path} \
--model_path_extra ${extra_path} \
--prompt_file ./prompts/PartiPrompts.tsv \
--prompt_file_type parti \
--info_file_save_path ./image_info_PartiPrompts.json \
--save_dir ./results_PartiPrompts \
--num_images_per_prompt 4 \
--resolution "1024 x 1024" \
--num_inference_steps 50 \
--batch_size 1 \
--seed 42 \
--infer_type Accuracy \
--device_id 0参数说明:
执行完成后在./results_PartiPrompts目录下生成推理图片,在当前目录生成一个image_info_PartiPrompts.json文件,记录着图片和prompt的对应关系,并在终端显示推理时间。
python3 inference.py \
--model_path ${path} \
--model_path_extra ${extra_path} \
--prompt_file ./prompts/hpsv2_benchmark_prompts.json \
--prompt_file_type hpsv2 \
--info_file_save_path ./image_info_hpsv2.json \
--save_dir ./results_hpsv2 \
--num_images_per_prompt 1 \
--resolution "1024 x 1024" \
--num_inference_steps 50 \
--batch_size 1 \
--seed 42 \
--infer_type Accuracy \
--device_id 0参数说明:
执行完成后在./results_hpsv2目录下生成推理图片,在当前目录生成一个image_info_hpsv2.json文件,记录着图片和prompt的对应关系,并在终端显示推理时间。
所有权重下载到HiDream-I1/目录下
# Clip Score和HPSv2均需要使用的权重
# 安装git-lfs
apt install git-lfs
git lfs install
# Clip Score权重
git clone https://huggingface.co/laion/CLIP-ViT-H-14-laion2B-s32B-b79K
# HPSv2权重
wget https://huggingface.co/spaces/xswu/HPSv2/resolve/main/HPS_v2_compressed.pt --no-check-certificate也可手动下载CLIP权重将权重放到CLIP-ViT-H-14-laion2B-s32B-b79K目录下,手动下载HPSv2权重放到当前路径
python3 clip_score.py \
--device=cuda \
--image_info="./image_info_PartiPrompts.json" \
--model_name="ViT-H-14" \
--model_weights_path="./CLIP-ViT-H-14-laion2B-s32B-b79K/open_clip_pytorch_model.bin"参数说明:
image_info_PartiPrompts.json文件。执行完成后会在屏幕打印出精度计算结果。
python3 hpsv2_score.py \
--image_info="image_info_hpsv2.json" \
--HPSv2_checkpoint="./HPS_v2_compressed.pt" \
--clip_checkpoint="./CLIP-ViT-H-14-laion2B-s32B-b79K/open_clip_pytorch_model.bin"参数说明:
image_info_hpsv2.json文件。执行完成后会在屏幕打印出精度计算结果。
| 硬件形态 | 迭代次数 | 加速算法 | 平均耗时 | CLIP_score | HPSV2_score |
|---|
本模型使用的优化手段如下: