(5-3-02)常用的文生图预训练模型:基于VQGAN+CLIP的文生图系统(1)项目介绍+部署配置+模型和资源管理

实例5-3基于VQGAN+CLIP的文生图系统(源码路径:codes/5/VQGAN-CLIP-main

1. 项目介绍

项目基于 VQGAN 和 CLIP 模型,实现了文本到图像的生成能力,同时支持视频风格化和图像优化。用户可以通过多种优化器和学习率配置生成艺术作品,并灵活使用随机文本生成脚本来扩展创意。项目中包含了多个脚本,如 generate.py 用于图像生成,opt_tester.sh 用于优化器测试,video_styler.sh 用于视频帧的风格化处理,以及 random.sh 用于生成随机文本提示,展示了强大的多媒体生成能力。这使得用户能够创建丰富多样的艺术作品,适用于创作、设计和研究等多个领域。

2. 部署配置

文件cog.yaml用于配置 Cog 框架,以便在云环境中构建和部署模型。在该文件中定义了构建环境的详细信息,包括使用的 GPU 和 CUDA 版本、Python 版本以及所需的系统和 Python 包。具体而言,它列出了如 torch、torchvision 和 numpy 等深度学习和图像处理库,以及其他实用工具,如 tqdm 和 imageio。此外,predict 字段指定了预测功能的实现文件及类,即 predict.py 中的 Predictor 类,用于处理输入并生成输出。通过这个配置文件,用户可以轻松地在支持的环境中运行模型,简化了部署和使用的过程。

build:
  gpu: true
  cuda: 11.0
  python_version: "3.8"
  system_packages:
    - "libgl1-mesa-glx"
    - "libglib2.0-0"
  python_packages:
    - "torchvision==0.10.0"
    - "torch==1.9.0"
    - "torchaudio==0.9.0"
    - "numpy==1.19.4"
    - "tqdm==4.62.2"
    - "Pillow==8.3.2"
    - "einops==0.3.2"
    - "ftfy==6.0.3"
    - "regex==2021.10.8"
    - "imageio==2.10.3"
    - "ipython==7.21.0"
    - "torch-optimizer==0.3.0"
    - "imageio-ffmpeg==0.4.5"
    - "kornia==0.6.1"
    - "pytorch-lightning==1.5.0"
    - "omegaconf==2.1.1"

predict: "predict.py:Predictor"

3. 模型和资源管理

文件download_models.sh是一个用于下载预训练模型的 Bash 脚本。它会在指定的 checkpoints 目录中创建文件夹(如果尚不存在),并根据脚本中设置的选项自动下载相应的模型文件。用户可以通过修改脚本中的布尔变量来选择下载哪些模型,例如 IMAGENET_1024、IMAGENET_16384、GUMBEL 等。对于每个模型,脚本会检查相应的配置文件和检查点文件是否已存在,以避免重复下载。这使得用户在运行其他程序之前,能够方便地获取所需的模型资源。

#!/bin/bash
LOC=checkpoints  # 指定模型下载目录
mkdir -p "$LOC"  # 创建目录,如果已存在则不做任何操作

# 设置要下载的模型
IMAGENET_1024=false
IMAGENET_16384=true
GUMBEL=false
#WIKIART_1024=false
WIKIART_16384=false
COCO=false
FACESHQ=false
SFLCKR=false

# 下载 ImageNet 1024 模型
if [ "$IMAGENET_1024" = true ] ; then
  # imagenet_1024 - 958 MB:
  if [ ! -f "$LOC"/vqgan_imagenet_f16_1024.yaml ]; then
    curl -L -o "$LOC"/vqgan_imagenet_f16_1024.yaml -C - 'https://heibox.uni-heidelberg.de/d/8088892a516d4e3baf92/files/?p=%2Fconfigs%2Fmodel.yaml&dl=1' #下载配置文件
  fi
  if [ ! -f "$LOC"/vqgan_imagenet_f16_1024.ckpt ]; then
    curl -L -o "$LOC"/vqgan_imagenet_f16_1024.ckpt -C - 'https://heibox.uni-heidelberg.de/d/8088892a516d4e3baf92/files/?p=%2Fckpts%2Flast.ckpt&dl=1' #下载检查点文件
  fi
fi

# 下载 ImageNet 16384 模型
if [ "$IMAGENET_16384" = true ] ; then
  # imagenet_16384 - 980 MB:
  if [ ! -f "$LOC"/vqgan_imagenet_f16_16384.yaml ]; then
    curl -L -o "$LOC"/vqgan_imagenet_f16_16384.yaml -C - 'https://heibox.uni-heidelberg.de/d/a7530b09fed84f80a887/files/?p=%2Fconfigs%2Fmodel.yaml&dl=1' #下载配置文件
  fi
  if [ ! -f "$LOC"/vqgan_imagenet_f16_16384.ckpt ]; then
    curl -L -o "$LOC"/vqgan_imagenet_f16_16384.ckpt -C - 'https://heibox.uni-heidelberg.de/d/a7530b09fed84f80a887/files/?p=%2Fckpts%2Flast.ckpt&dl=1' #下载检查点文件
  fi
fi

# 下载 Gumbel 模型
if [ "$GUMBEL" = true ] ; then
  # vqgan_gumbel_f8_8192 (was openimages_f16_8192) - 376 MB:
  if [ ! -f "$LOC"/vqgan_gumbel_f8_8192.yaml ]; then
    curl -L -o "$LOC"/vqgan_gumbel_f8_8192.yaml -C - 'https://heibox.uni-heidelberg.de/d/2e5662443a6b4307b470/files/?p=%2Fconfigs%2Fmodel.yaml&dl=1' 
  fi
  if [ ! -f "$LOC"/vqgan_gumbel_f8_8192.ckpt ]; then
    curl -L -o "$LOC"/vqgan_gumbel_f8_8192.ckpt -C - 'https://heibox.uni-heidelberg.de/d/2e5662443a6b4307b470/files/?p=%2Fckpts%2Flast.ckpt&dl=1'    
  fi
fi

# 下载 COCO 模型
if [ "$COCO" = true ] ; then
  # coco - 8.4 GB:
  if [ ! -f "$LOC"/coco.yaml ]; then
    curl -L -o "$LOC"/coco.yaml -C - 'https://dl.nmkd.de/ai/clip/coco/coco.yaml' #下载配置文件
  fi
  if [ ! -f "$LOC"/coco.ckpt ]; then
    curl -L -o "$LOC"/coco.ckpt -C - 'https://dl.nmkd.de/ai/clip/coco/coco.ckpt' #下载检查点文件
  fi
fi
  
# 下载 FacesHQ 模型
if [ "$FACESHQ" = true ] ; then
  # faceshq:
  if [ ! -f "$LOC"/faceshq.yaml ]; then
    curl -L -o "$LOC"/faceshq.yaml -C - 'https://drive.google.com/uc?export=download&id=1fHwGx_hnBtC8nsq7hesJvs-Klv-P0gzT' #下载配置文件
  fi
  if [ ! -f "$LOC"/faceshq.ckpt ]; then
    curl -L -o "$LOC"/faceshq.ckpt -C - 'https://app.koofr.net/content/links/a04deec9-0c59-4673-8b37-3d696fe63a5d/files/get/last.ckpt?path=%2F2020-11-13T21-41-45_faceshq_transformer%2Fcheckpoints%2Flast.ckpt' #下载检查点文件
  fi
fi

# 下载 WikiArt 16384 模型
if [ "$WIKIART_16384" = true ] ; then
  # wikiart_16384 - 1 GB: 
  if [ ! -f "$LOC"/wikiart_16384.yaml ]; then
    curl -L -o "$LOC"/wikiart_16384.yaml -C - 'http://eaidata.bmk.sh/data/Wikiart_16384/wikiart_f16_16384_8145600.yaml' #下载配置文件
  fi
  if [ ! -f "$LOC"/wikiart_16384.ckpt ]; then
    curl -L -o "$LOC"/wikiart_16384.ckpt -C - 'http://eaidata.bmk.sh/data/Wikiart_16384/wikiart_f16_16384_8145600.ckpt' #下载检查点文件
  fi
fi

# 其他模型(已注释)
#ade20k:
#  curl -L -o ade20k.yaml -C - 'https://static.miraheze.org/intercriaturaswiki/b/bf/Ade20k.txt' #下载配置文件
#  curl -L -o ade20k.ckpt -C - 'https://app.koofr.net/content/links/0f65c2cd-7102-4550-a2bd-07fd383aac9e/files/get/last.ckpt?path=%2F2020-11-20T21-45-44_ade20k_transformer%2Fcheckpoints%2Flast.ckpt' #下载检查点文件

#ffhq:
#  curl -L -o ffhq.yaml -C - 'https://app.koofr.net/content/links/0fc005bf-3dca-4079-9d40-cdf38d42cd7a/files/get/2021-04-23T18-19-01-project.yaml?path=%2F2021-04-23T18-19-01_ffhq_transformer%2Fconfigs%2F2021-04-23T18-19-01-project.yaml&force' #下载配置文件
#  curl -L -o ffhq.ckpt -C - 'https://app.koofr.net/content/links/0fc005bf-3dca-4079-9d40-cdf38d42cd7a/files/get/last.ckpt?path=%2F2021-04-23T18-19-01_ffhq_transformer%2Fcheckpoints%2Flast.ckpt&force' #下载检查点文件

#celebahq:
#  curl -L -o celebahq.yaml -C - 'https://app.koofr.net/content/links/6dddf083-40c8-470a-9360-a9dab2a94e96/files/get/2021-04-23T18-11-19-project.yaml?path=%2F2021-04-23T18-11-19_celebahq_transformer%2Fconfigs%2F2021-04-23T18-11-19-project.yaml&force' #下载配置文件
#  curl -L -o celebahq.ckpt -C - 'https://app.koofr.net/content/links/6dddf083-40c8-470a-9360-a9dab2a94e96/files/get/last.ckpt?path=%2F2021-04-23T18-11-19_celebahq_transformer%2Fcheckpoints%2Flast.ckpt&force' #下载检查点文件

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农三叔

感谢鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值