综合介绍
CogView4 是由清华大学 KEG 实验室(THUDM)开发的一款开源文生图模型,专注于将文本描述转化为高质量图像。它支持中英双语提示词输入,尤其擅长理解中文提示并生成带有汉字的图像,非常适合广告设计、短视频创作等场景。作为首个支持在画面中生成汉字的开源模型,CogView4 在复杂语义对齐和指令跟随能力上表现出色。它基于 GLM-4-9B 文本编码器,支持任意长度的提示词输入,并能生成高达 2048 分辨率的图像。项目托管在 GitHub 上,提供详细代码和使用文档,吸引了大量开发者与创作者关注与参与。
最新的 CogView4 模型将于3月13日上线 智谱清言 官网。
在线体验:https://huggingface.co/spaces/THUDM-HF-SPACE/CogView4
功能列表
- 中英双语提示词生成图像:支持中文和英文描述,能精准理解并生成符合提示的图像,中文场景表现尤为突出。
- 画面生成汉字:可在图像中生成清晰的中文文字,适合制作海报、广告等需要文字内容的创意作品。
- 任意分辨率输出:支持生成从低分辨率到 2048x2048 的任意尺寸图像,满足多样化需求。
- 超长提示词支持:接受任意长度的文本输入,最多可处理 1024 个 token,便于描述复杂场景。
- 复杂语义对齐:能准确捕捉提示词中的细节,生成符合语义的高质量图像。
- 开源模型定制:提供完整代码和预训练模型,开发者可根据需求进行二次开发或优化。
使用帮助
安装流程
CogView4 是一个基于 Python 的开源项目,需要在本地配置环境才能运行。以下是详细的安装步骤:
1. 环境准备
- 操作系统:支持 Windows、Linux 或 macOS。
- 硬件要求:建议配备 NVIDIA GPU(至少 16GB 显存)以加速推理,CPU 也可运行但速度较慢。
- 软件依赖:
- Python 3.8 或更高版本
- PyTorch(推荐安装 GPU 版本,torch>=2.0)
- Git(用于克隆仓库)
2. 克隆仓库
打开终端,输入以下命令下载 CogView4 项目源码:
git clone https://github.com/THUDM/CogView4.git
cd CogView4
3. 安装依赖
项目提供 requirements.txt 文件,运行以下命令安装所需库:
pip install -r requirements.txt
若需使用 GPU 加速,确保安装正确的 PyTorch 版本,可参考 PyTorch 官网安装命令,例如:
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118
4. 下载预训练模型
CogView4-6B 模型需从 Hugging Face 或官方链接手动下载。访问 THUDM 的 GitHub 页面,找到模型下载地址(如 THUDM/CogView4-6B
),将其解压到项目根目录的 checkpoints
文件夹中。或通过代码自动下载:
from diffusers import CogView4Pipeline
pipe = CogView4Pipeline.from_pretrained("THUDM/CogView4-6B")
5. 配置环境
若显存有限,可启用内存优化选项(如 enable_model_cpu_offload
),具体见下文使用说明。
如何使用 CogView4
安装完成后,用户可通过 Python 脚本调用 CogView4 生成图像。以下是详细操作流程:
1. 基础图像生成
创建一个 Python 文件(例如 generate.py
),输入以下代码:
from diffusers import CogView4Pipeline
import torch
# 加载模型到 GPU
pipe = CogView4Pipeline.from_pretrained("THUDM/CogView4-6B", torch_dtype=torch.bfloat16).to("cuda")
# 优化显存使用
pipe.enable_model_cpu_offload() # 将部分计算移至 CPU
pipe.vae.enable_slicing() # 分片处理 VAE
pipe.vae.enable_tiling() # 分块处理 VAE
# 输入提示词
prompt = "一辆红色跑车停在阳光下的海边公路,背景是蔚蓝的海浪"
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("output.png")
运行脚本:
python generate.py
结果将生成一张 1024x1024 的图像并保存为 output.png
。
2. 生成带汉字的图像
CogView4 支持在图像中生成中文文字,例如:
prompt = "一张写有‘欢迎体验 CogView4’的广告海报,背景是蓝天白云"
image = pipe(prompt=prompt, width=1024, height=1024).images[0]
image.save("poster.png")
运行后,图像中会清晰显示“欢迎体验 CogView4”字样,适合制作宣传材料。
3. 调整分辨率
CogView4 支持任意分辨率输出,例如生成 2048x2048 图像:
image = pipe(prompt=prompt, width=2048, height=2048).images[0]
image.save("high_res.png")
注意:高分辨率需要更多显存,建议使用 24GB 或更高显存的 GPU。
4. 处理超长提示词
CogView4 可处理复杂描述,例如:
prompt = "一个热闹的古代中国集市,摊位上摆满陶瓷和丝绸,远处有山峦和夕阳,人们穿着传统汉服在购物"
image = pipe(prompt=prompt, num_inference_steps=50).images[0]
image.save("market.png")
最多支持 1024 个 token,能完整解析长文本并生成细节丰富的图像。
5. 优化性能
若显存不足,可调整参数:
- 降低
torch_dtype
为torch.float16
- 增加
num_inference_steps
以提升质量(默认 50,建议 50-100) - 使用
pipe.enable_model_cpu_offload()
将部分模型移至 CPU 计算
特色功能操作详解
生成中英双语图像
CogView4 的双语支持是其最大亮点。例如,输入混合提示词:
prompt = "A futuristic city with neon lights and flying cars, 写着‘未来之城’的标志"
image = pipe(prompt=prompt).images[0]
image.save("future_city.png")
生成的图像会同时包含英文描述的未来城市和中文“未来之城”标志,展现强大的语义理解能力。
高质量细节控制
通过调整 guidance_scale
(范围 1-10,默认 3.5),可控制图像与提示的贴合度。值越高,细节越贴近提示,但可能牺牲创意性:
image = pipe(prompt=prompt, guidance_scale=7.0).images[0]
批量生成
一次性生成多张图像:
images = pipe(prompt=prompt, num_images_per_prompt=3).images
for i, img in enumerate(images):
img.save(f"output_{i}.png")
注意事项
- 显存需求:生成 1024x1024 图像需约 16GB 显存,2048x2048 需 24GB+。
- 推理时间:50 步推理约需 1-2 分钟(视硬件而定)。
- 社区支持:如遇问题,可在 GitHub Issues 页面寻求帮助,或参考官方 README。
通过以上步骤,用户可快速上手 CogView4,生成高质量图像并应用于创意项目!