智谱开源了文生图CogView4-6B模型,支持中文提示词之本地部署(Windows篇)

本文已首发于 秋码记录
微信公众号:你我杂志刊
在这里插入图片描述

如果你也想搭建一个与秋码记录一样的网站,可以浏览我的这篇 国内 gitee.com Pages 下线了,致使众多站长纷纷改用 github、gitlab Pages 托管平台

秋码记录网站使用的主题是开源的,目前只在github.com开源。
hugo-theme-kiwi开源地址:https://github.com/zhenqicai/hugo-theme-kiwi

文生图这个领域里,甭管是开源的Stable Diffusion 3.5,还是闭源的在线绘图平台Midjourney,一度都是不支持中文提示词。

prompt都不支持中文,就别提想要在图中写入中文

虽然SD3.5Midjourney等优秀绘画模型不支持中文提示词,但国内各大厂商一直致力于中文提示词。

CogView4-6B是智谱AI(Zhipu AI)推出的文生图模型,通过结合文本与图像的跨模态生成技术,在中文场景下展现出显著优势。

本地部署

那么,接下来,我们就在本地电脑部署下CogView4-6B这款开源的绘画模型,看看效果是否真有其官方宣传的那么好。

创建虚拟环境

首先,我们创建个python虚拟环境,你可以使用anacondaminiconda来创建虚拟环境。我还是使用python3自带的venv模块搭建的虚拟环境。

我电脑使用的python版本为python 3.10.9,当然你也可以使用python 3.11

python -m venv CogView4-env
cd CogView4-env\Scripts
activate

在这里插入图片描述

clone 推理代码及下载模型
git clone https://github.com/THUDM/CogView4
cd CogView4

# 根据自身网络条件 选择以下任一方式来下载模型。
# modelscope
git clone https://www.modelscope.cn/ZhipuAI/CogView4-6B.git
# Huggingface.co
git clone https://huggingface.co/THUDM/CogView4-6B

在这里插入图片描述

安装项目所需依赖

其实,如果按照官方的,也就是执行以下这行命令,是无法启动项目的。

pip install -r inference/requirements.txt

在这里插入图片描述

按照requirements.txt的依赖来安装torchCPU版本,并不支持GPU,所以我们需要uninstall这个不带GPU版本的torch以及torchao

在这里插入图片描述

如果你电脑的显存低于12G的话,那么需要设置set MODE=1

在这里插入图片描述

在这里插入图片描述

然而,在Terminal下载torchCUDA版本,下载速度总是那么不尽如人意。

在这里插入图片描述

那么,我们可以直接去https://download.pytorch.org/whl/torch 下载 对应的whl文件。

在这里插入图片描述

在这里插入图片描述

我们直接在Terminal直接pip install torch-xxx.whl

在这里插入图片描述

卸载CPU版的torchao,安装带有CUDA版本的torchao

在这里插入图片描述

运行 inference/gradio_web_demo.py

当我们安装好了CUDA版的torchtorchao后,再次执行python inference/gradio_web_demo.py

会为我们自动在默认浏览器打开一个页签,如下图。

我这里使用了官方的prompt,只是把Happy New Year改成了新春快乐,看看是不是能真正的写上中文字。

为了出图快点,我只修改了图片的widthheight,其他都是默认的,然而,生成的图片,图中的中文文字却了。

在这里插入图片描述

<think>好的,我现在需要回答用户关于使用CogView4-6B文生模型所需的配置以及完整的Python代码的问题。首先,我得确认自己对这个模型了解多少。CogView4-6B是清华大学开发的一个文本生成像的模型,参数量达到60亿,属于比较大的模型。用户可能需要知道硬件要求、环境配置以及具体的代码示例。 首先,硬件配置方面,6B的模型通常需要较大的显存。比如,像GPT-3这样的模型,但具体到CogView4-6B,可能因为模型结构的不同,显存需求会有所变化。一般来说,像这样的模型可能需要至少16GB以上的显存,可能需要使用A100这样的高端显卡。不过,可能用户可以使用一些技术,比如模型并行或者半精度推理来减少显存占用。我需要查证一下官方文档或相关资源,确认具体需要什么样的硬件。 然后是软件环境。用户需要安装Python,以及相关的深度学习框架,比如PyTorch。此外,可能还需要Hugging Face的Transformers库,或者清华自己发布的模型库。可能需要特定的版本,比如PyTorch 1.8以上,Transformers 4.18以上。另外,可能还需要安装其他依赖库,比如tqdm、numpy等。 接下来是代码部分。用户需要知道如何加载模型,进行推理。根据Hugging Face的常规做法,可能需要使用AutoModel和AutoTokenizer。但CogView可能有自己的处理方式,比如使用特定的generate方法,或者需要处理像生成的参数,比如生成的步数、温度等。另外,生成的像可能需要后处理,比如从张量转换为PIL像,并保存。 同时,需要注意模型的分发方式。CogView4-6B可能没有直接放在Hugging Face Hub上,而是需要通过GitHub或者其他途径获取。用户可能需要申请权限或者下载模型文件,然后从本地加载。这可能涉及到模型权重的下载以及正确路径的设置。 还有可能遇到的一些问题,比如显存不足时的处理,是否支持半精度(fp16)或者8位量化,或者使用模型并行。比如,将模型分布在多个GPU上运行,减少单个GPU的负担。不过对于普通用户来说,可能更倾向于单卡配置,所以需要给出最低配置建议。 此外,推理时间也是一个考虑因素。生成高分辨率像可能需要较长时间,用户可能需要调整参数,比如num_beams或者max_length,来平衡速度和质量。 现在,我需要整合这些信息,给出一个清晰的步骤。首先硬件需求,然后软件依赖,接着是代码示例,包括加载模型、生成像、保存结果。可能还需要处理访问权限的问题,比如使用Hugging Face的token或者申请模型访问。 另外,要检查代码的正确性,比如是否有拼写错误,是否正确调用模型的方法。例如,CogView可能有自己的generate方法,或者需要特定的预处理步骤,比如将文本转换为特定的token,或者添加特殊的标记。 可能还需要示例输入和输出,比如用户输入一个描述,模型生成对应的像,并保存为文件。同时,可能需要处理生成的像是多个的情况,如何选择并保存最佳的像。 最后,总结需要注意的事项,比如显存不足时的解决方案,或者建议的云服务选项,比如使用AWS、Google Cloud等平台的GPU实例。</think>以下是使用CogView4-6B文生模型的完整配置说明和Python代码实现: --- ### 一、硬件配置需求 1. **显存要求**:最低需 **24GB显存**(如NVIDIA RTX 3090/A5000),推荐使用 **A100 40GB** 2. **内存要求**:建议32GB以上系统内存 3. **存储空间**:模型文件约12GB,需预留至少20GB硬盘空间 --- ### 二、软件环境配置 ```python # 1. 基础环境 Python 3.8+ CUDA 11.3+ PyTorch 1.12.1+ # 2. 安装依赖库 pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu113 pip install transformers==4.25.1 icetk ftfy tqdm ``` --- ### 三、完整Python代码 ```python import torch from transformers import AutoModel, AutoTokenizer # 1. 初始化模型(需提前下载模型权重) model_path = "THUDM/cogview4-6B" # 或本地路径 tokenizer = AutoTokenizer.from_pretrained(model_path) model = AutoModel.from_pretrained(model_path, trust_remote_code=True).half().cuda() # 2. 像生成函数 def generate_image(prompt, max_tokens=256): with torch.no_grad(): # 文本编码 input_ids = tokenizer.encode(prompt, return_tensors="pt").cuda() # 生成配置 generate_config = { "max_length": max_tokens, "temperature": 0.9, "top_k": 60, "top_p": 0.7, "num_return_sequences": 1 } # 执行生成 outputs = model.generate( input_ids, **generate_config, use_cache=True ) # 解码像 images = model.show(outputs) return images[0] # 3. 使用示例 if __name__ == "__main__": prompt = "一只穿着宇航服的柴犬在月球表面行走" image = generate_image(prompt) image.save("output_image.png") print("像已保存至 output_image.png") ``` --- ### 四、关键注意事项 1. **模型下载**:需通过官方渠道申请模型权重(清华大学开源协议) 2. **显存优化**: ```python # 启用内存优化(A100可用) model = model.to_bettertransformer().half() # 8位量化(显存需求降至18GB) model = model.quantize(8).cuda() ``` 3. **多GPU支持**: ```python # 使用模型并行 model.parallelize(device_map="auto") ``` --- ### 五、性能参考(A100 40GB) | 参数 | 数值 | |--------------|---------------| | 生成分辨率 | 256x256 | | 单生成时间 | 15-25秒 | | 最大生成长度 | 256 tokens | 建议通过调整`temperature`(0.5~1.2)和`top_p`(0.5~0.9)控制生成多样性。若遇到显存不足问题,可尝试降低`num_return_sequences`或使用梯度检查点技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

甄齐才

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值