ERNIE-ViLG 文生图预测
更新时间:2022-10-18
任务简介
- 基于文心ERNIE-ViLG大模型,根据用户输入的文本,自动创作图像。
ERNIE预训练模型选择
文心提供的ERNIE预训练模型的参数文件和配置文件在 wenxin_appzoo/wenxin_appzoo/models_hub目录下,使用对应的sh脚本,即可拉取对应的模型文件。
目前支持ERNIE-ViLG文生图预测任务的模型为(图像分辨率:1024*1024、1536*1024、1024*1536):
模型名称 | 下载脚本 | 备注 |
---|---|---|
ERNIE-ViLG (1024*1024) | sh download_ernie_vilg_text2img_1024_1024_ch_infer.sh | 模型文件与字典与ernie的配置文件存放于ernie_vilg_text2img_ch_infer_dir目录 |
ERNIE-ViLG (1024*1536 or 1536*1024) |
sh download_ernie_vilg_text2img_rectangle_ch_infer.sh |
1.模型文件与字典与ernie的配置文件存放于ernie_vilg_text2img_ch_infer_dir目录,模型目录为rectangle_model 2.其中10241536 和 15361024都用该模型,所以做了软链接。若用户需要同时跑这两个分辨率,建议cp对应的目录,避免读写冲突。 |
快速开始
cd tasks/ernie_vilg
代码结构
ernie_vilg
├── data # 示例数据目录
│ └── predict_data
│ └── infer.txt
├── examples # 配置文件目录
│ └── ernie_vilg_text2img_infer.json
└── run_infer.py # 文生图预测入口文件
数据准备
- 待生成的图片的文本数据存放在./data目录下的predict_data文件夹下。
- 数据格式为一列文本,示例如下:
无限的水面,水星的海洋和木星的海岸,蒸汽波艺术
有一个机器人在四处游荡的森林,蒸汽波艺术
这是一幅中国画风格的画,画的是山上一个宁静的湖泊,头顶上有一片清澈的蓝天
3D中国风:拟人化的可爱兔子穿唐装在雪地,超高清
蓝色星体漂浮在破碎的红色城堡之上,概念艺术,吉姆·马霍德风格
海滩,落日,棕榈树,莫奈风格
中秋节的月光下 一簇绣球花开得茂盛 复古典雅 工笔画
穿着时尚潮牌的一只大熊猫,日出,大步向我们走来,赛博朋克,烟雾
超级逼真的未来世界,真实照片,虚幻引擎
开始文生图预测
- 环境配置
- python3.7、机器配置:至少为V100 32G及以上配置机型,单卡即可。
- 推荐使用ERNIEKit提供的paddle、cuda、cudnn环境,可执行下述命令获取:
# 下载paddle安装包
wget http://bj.bcebos.com/wenxin-models/paddlepaddle_gpu-0.0.0.post111-cp37-cp37m-linux_x86_64.whl
# 下载cuda包
wget http://bj.bcebos.com/wenxin-models/cuda-11.1.tgz
# 下载cudnn包
wget http://bj.bcebos.com/wenxin-models/cudnn_v8.1.1_cuda11.1.tgz
# 安装paddle
python -m pip install paddlepaddle_gpu-0.0.0.post111-cp37-cp37m-linux_x86_64.whl
- 下载后,解压cuda和cudnn的压缩包,export LD_LIBRARY_PATH变量:
export LD_LIBRARY_PATH=./cuda-11.1/lib64/:./cudnn_v8.1.1_cuda11.1/cuda/lib64/:$LD_LIBRARY_PATH
- 进入指定任务的目录(文生图任务的目录为wenxin_appzoo/wenxin_appzoo/tasks/ernie_vilg)
- 运行以下命令:
# 配置鉴权文件
export WENXIN_AUTH_PATH="auth.txt所在的文件夹目录,注意是文件夹"
# V100运行前建议添加下述环境变量防止显存OOM
export FLAGS_use_cuda_managed_memory=true
# 启动文生图预测任务
python run_infer.py --param_path ./examples/ernie_vilg_text2img_infer.json
- 通过上述脚本调用配置json文件启动文生图任务。
- 训练运行的日志会自动保存在./log/test.log文件中。
- 生成的图片默认保存于./output文件夹下,生成图片的文件命名为:{文本}_{生成图片的id}。
- 运行配置:
{
"inference": {
"data_path": "./data/predict_data", ## 待预测文本文件的文件夹目录
"output_img_num": 2, ## 每个文本生成的图片数
"output_img_size": [1024, 1024], ## 生成图片的分辨率,目前支持的分辨率为[1024, 1024]、[1536, 1024]、[1024, 1536]。
"vocab_path": "../../models_hub/ernie_vilg_text2img_ch_infer_dir/vocab.txt", ## 默认文本词表文件
"unconditional_guidance_scale": 8.0, ## 平衡文图相关性和图像质量,推荐8.0或8.5
"output_dir": "./output", ## 生成图片的保存路径
"inference_model_path": "../../models_hub/ernie_vilg_text2img_ch_infer_dir", ## 预测模型文件
"extra_param": {
"meta": {
"job_type": "ernie_vilg"
}
}
}
}