CogView4介绍和本地部署

1.简介

2025年3月4日由智谱发布的全网首个支持中文生成的开源模型CogView4开源地址https://github.com/THUDM/CogView4,CogView4遵循Apache 2.0协议,是首个以此协议开放的图像生成模型,为开发者提供了更灵活的使用空间,学生党做毕设再也不用跪求版权图。

image-20250311051849683

技术原理

  • 扩散模型结合 Transformer 架构:CogView4 采用扩散模型,这是一种通过逐步去除噪声来生成图像的方法。结合 Transformer 架构,它能够有效地处理文本和图像的联合表示。
  • 多阶段训练策略和显存优化技术:这些技术使得 CogView4 在生成图像时更加高效,特别是在处理高分辨率图像时。

功能特点

  • 双语支持:支持中英双语提示词输入,能根据中文或英文描述生成高质量图像。

  • 汉字生成:作为首个支持在画面中生成汉字的开源模型,特别适合中文创意需求。

  • 任意分辨率与长提示词处理:支持生成512×512到2048×2048之间的任意分辨率图像,同时能处理任意长度的提示词输入

技术优势

  • 复杂语义对齐与指令跟随:在DPG-Bench基准测试中综合评分排名第一,展现了强大的复杂语义对齐和指令跟随能力。
  • 高效推理与显存优化:通过模型CPU卸载和文本编码器量化等技术,降低了显存占用,提升了推理效率。

huggingface在线体验地址:https://huggingface.co/spaces/THUDM-HF-SPACE/CogView4

我在线体验了一下:

image-20250311052250306

输出:

image-20250311052342081

2.本地部署

创建虚环境:

conda create -n CogView4 python=3.12
conda activate CogView4 

安装Pytorch2.5:

conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.1 -c pytorch -c nvidia

克隆仓库:

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

模型文件直接从modelscope克隆:

git clone https://www.modelscope.cn/ZhipuAI/CogView4-6B.git

3月5日CogView4已经接入diffuser库,但官网要求源码安装

git clone https://github.com/huggingface/diffusers.git
cd diffusers
pip install -e ".[torch]"

安装其他依赖:

pip install -r inference/requirements.txt

3.测试

gradio方式测试

需要先修改inference/gradio_web_demo.py

将其中的49行指向实际下载模型文件的目录:

model_path = "/home/aic/CogView4/CogView4/CogView4-6B"

第329行代码修改,以便局域网能够访问:

demo.queue().launch(inbrowser=True)
改为:
demo.queue().launch(inbrowser=True, server_name="0.0.0.0", server_port=7860, share=True)

代码中附带调用ChatGLM进行提示词润色增强的功能,可以申请ChatGLM API KEY。

运行代码时候导入环境变量:

export OPENAI_API_KEY="填入你申请的KEY"
export OPENAI_BASE_URL="https://open.bigmodel.cn/api/paas/v4"
python inference/gradio_web_demo.py

不填写也没有关系,可以在ChatGLM官网白嫖,让它帮你润色后复制过来。

image-20250311081346671

试试看看,我输入的提示词:“写实风格,电影级画质,中国大学生努力学习AI技术,建设AI赋能强国。图片中有“努力学习AI技术”的文字”

ChatGLM润色后:

这幅图像以写实风格呈现,拥有电影级的画质,细腻而逼真。画面中心是一位中国大学生,他坐在现代化的图书馆内,专注地阅读着一本厚重的AI技术书籍。他的眼神坚定而充满求知欲,周围散落着各种编程教材和笔记本电脑,屏幕上显示着复杂的代码和AI算法图示。 背景中,透过巨大的落地窗,可以看到一座繁华的城市天际线,象征着科技与发展的融合。图书馆的墙壁上悬挂着“努力学习AI技术”的醒目标语,采用简洁现代的字体设计,激励着每一位学子。 画面色调温暖而明亮,光线从窗外洒入,照亮了学生的脸庞和书本,营造出一种积极向上的学习氛围。整个场景不仅展现了大学生对AI技术的热忱学习,更寓意着他们为建设AI赋能强国的坚定信念和不懈努力。
image-20250311083323577

从画写实风格,感觉没有Wan2.1真实,生成的中文有时候还会有错,像上图,当然这个模型的最大亮点是扩散模型生成中文!

代码输出方式

from diffusers import CogView4Pipeline
import torch

pipe = CogView4Pipeline.from_pretrained("CogView4-6B",torch_dtype=torch.bfloat16).to("cuda")

# Open it for reduce GPU memory usage
pipe.enable_model_cpu_offload()
pipe.vae.enable_slicing()
pipe.vae.enable_tiling()

prompt = "A vibrant cherry red sports car sits proudly under the gleaming sun, its polished exterior smooth and flawless, casting a mirror-like reflection. The car features a low, aerodynamic body, angular headlights that gaze forward like predatory eyes, and a set of black, high-gloss racing rims that contrast starkly with the red. A subtle hint of chrome embellishes the grille and exhaust, while the tinted windows suggest a luxurious and private interior. The scene conveys a sense of speed and elegance, the car appearing as if it's about to burst into a sprint along a coastal road, with the ocean's azure waves crashing in the background."
image = pipe(
    prompt=prompt,
    guidance_scale=3.5,
    num_images_per_prompt=1,
    num_inference_steps=50,
    width=1024,
    height=1024,
).images[0]

image.save("cogview4.png")