首页 > 其他分享 >部署cogview图片生成模型

部署cogview图片生成模型

时间:2024-10-08 15:17:43浏览次数:10  
标签:cogview3 cogview 模型 mnt 生成 CogView3 base workspace

      CogView3 是一种新颖的文本生成图像系统,采用了接力扩散的方式,将生成高分辨率图像的过程分解为多个阶段。通过接力的超分辨率过程,对低分辨率生成结果添加高斯噪声,并从这些带噪声的图像开始扩散。我们的结果显示,CogView3 的表现优于 SDXL,获胜率达到 77.0%。此外,通过对扩散模型的逐步蒸馏,CogView3 能够在推理时间仅为 SDXL 1/10 的情况下,生成可比的结果。

     CogView-3-Plus 在 CogView3(ECCV'24) 的基础上引入了最新的 DiT 框架,以实现整体性能的进一步提升。CogView-3-Plus 采用了 Zero-SNR 扩散噪声调度,并引入了文本-图像联合注意力机制。与常用的 MMDiT 结构相比,它在保持模型基本能力的同时,有效降低了训练和推理成本。CogView-3Plus 使用潜在维度为 16 的 VAE。

下表显示了我们目前提供的文本生成图像模型列表及其基础信息。 目前,所有模型都仅有 SAT 版本,但是我们会参与到 diffusers 版本的制作。

模型名称

CogView3-Base-3B

CogView3-Base-3B-distill

CogView3-Plus-3B

模型描述

CogView3 的基础阶段和接力阶段模型,支持 512x512 文本生成图像以及 2x 超分辨率生成。

CogView3 的蒸馏版本,分别在两个阶段采样 4 和 1 步(或 8 和 2 步)。

DIT 版本的图像生成模型 ,支持从 512 到 2048 范围内的图像生成。

分辨率

512 * 512

512 <= H, W <= 2048
H * W <= 2^{21}
H, W \mod 32 = 0

推理精度

FP16(推荐), BF16, FP32

BF16*(推荐), FP16, FP32

显存占用 (bs = 4)

17G

64G

30G(2048 * 2048)
20G(1024 * 1024)

提示词语言

English*

提示词长度上限

225 Tokens

224 Tokens

下载链接 (SAT)

SAT

查看显存

nvidia-smi

在线创建Python虚拟环境

工作目录

# cd /mnt/workspace

 python3.10 -m venv cogview

激活Python虚拟环境

 #source /mnt/workspace/cogview/bin/activate

拉取CogView代码

#cd /mnt/workspace

git clone https://github.com/THUDM/CogView3.git

安装CogView依赖

#cd /CogView3/sat

pip install -r requirements.txt

modelscope下载模型(单个文件下载)

pip install modelscope

modelscope download --model cjc1887415157/CogView3  cogview3-base/transformer/1/mp_rank_00_model_states.pt   --local_dir /mnt/workspace/cogview3-base

modelscope download --model cjc1887415157/CogView3  cogview3-base/transformer/latest   --local_dir /mnt/workspace/cogview3-base

modelscope download --model cjc1887415157/CogView3  cogview3-base/vae/sdxl_vae.safetensors  --local_dir /mnt/workspace/cogview3-base

克隆T5模型

克隆 T5 模型,该模型不用做训练和微调,但是必须使用。这里,您可以单独下载T5模型,必须是`safetensors`类型,不能是`bin`类型(否则可能出现错误)。

由于我们在`CogVideoX`中上传过 `safetensors` 格式的T5模型,一个简单的办法是从`CogVideX-2B`模型中克隆模型,然后将其拷贝到对应的文件夹中。

#从modelscope下载模型到指定目录

modelscope download --model ZhipuAI/CogVideoX-2b --local_dir /mnt/workspace/

#mkdir t5-v1_1-xxl

cp /mnt/workspace/text_encoder/* /mnt/workspace/tokenizer/* /mnt/workspace/t5-v1_1-xxl

修改`configs`中的文件。

文件路径

#cd /mnt/workspace/CogView3/sat/configs/cogview3_base.yaml

这里以`CogView3-Base`为例,提供部分参数的讲解和介绍:

```yaml

args:

  mode: inference

  relay_model: False # 当模型类型为 CogView-3-Relay 时,需要将该参数设置为 True

  load: "/mnt/workspace/cogview3-base/transformer" # 这里填写到transformer文件夹

  batch_size: 8 # 每次推理图像数

  grid_num_columns: 2 # 推理结束后,每个提示词文件夹下会有 grid.png 图片,该数字代表列数。

  input_type: txt # 可以选择命令行输入,或者TXT文件输入

  input_file: configs/test.txt # 如果使用命令行,不需要这个参数

  fp16: True # CogView-3-Plus 模型 需要更换为 bf16 推理

  # bf16: True

  sampling_image_size: 512 # 固定大小,支持512 * 512 分辨率图像

  # CogView-3-Plus 模型可以使用以下两个参数。

  # sampling_image_size_x: 1024 宽

  # sampling_image_size_y: 1024 高

  output_dir: "outputs/cogview3_base-512x512"

  # # 这个部分是给 CogView-3-Relay 模型使用的,需要将该参数设置为推理模型的输入文件夹,提示词建议与 base 模型生成图片时的提示词的一致。

  # input_dir: "outputs/cogview3_base-512x512"

  deepspeed_config: { }

model:

  conditioner_config:

  target: sgm.modules.GeneralConditioner

  params:

    emb_models:

      - is_trainable: False

        input_key: txt

        target: sgm.modules.encoders.modules.FrozenT5Embedder

        params:

          model_dir: "/mnt/workspace/t5-v1_1-xxl" # T5 safetensors的绝对路径

          max_length: 225 # 支持输入的提示词的最大长度

  first_stage_config:

    target: sgm.models.autoencoder.AutoencodingEngine

    params:

      ckpt_path: "/mnt/workspace/CogView3_Model/CogView3/cogview3-base/vae/sdxl_vae.safetensors" # VAE PT文件绝对路径

      monitor: val/rec_loss

```

推理模型

文件路径

#cd /mnt/workspace/CogView3/sat

# python sample_unet.py --base configs/cogview3_base.yaml

标签:cogview3,cogview,模型,mnt,生成,CogView3,base,workspace
From: https://blog.csdn.net/xinvictory/article/details/142760883

相关文章