笔精墨妙,妙手丹青,微软可视化的ChatGPT:Visual ChatGPT,人工智能AI聊天发图片,Python3.10实现

说时迟那时快,微软第一时间发布开源库Visual ChatGPT,把 ChatGPT 的人工智能AI能力和Stable Diffusion[1]以及ControlNet[2]进行了整合。常常被互联网人挂在嘴边的“赋能”一词,几乎已经变成了笑话,但这回,微软玩了一次真真正正的AI“赋能”,彻底打通了人工智能“闭环”。
配置Visual ChatGPT环境
老规矩,运行Git命令拉取Visual ChatGPT项目:
进入项目目录:
确保本机的Python版本不低于Python3.10.9[3]
随后安装依赖文件:
这里有几个问题,一个是官方的Pytorch版本不是最新的,这里推荐1.13.1:
另外langchain的版本也推荐最新的107版本。
安装好依赖之后,官方要求运行项目中的download.sh文件:
这个shell脚本主要就是构建子项目ControlNet,同时下载所有的ControlNet模型,如果之前已经下载过相关模型,直接将模型文件拷贝到项目目录即可:
关于ControlNet,请移玉步至:登峰造极,师出造化,Pytorch人工智能AI图像增强框架ControlNet绘画实践,基于Python3.10[4], 这里不再赘述。
接着配置Openai的环境变量:
如果是Windows用户,遵循下列步骤,配置好OPENAI_API_KEY:
至此,大体上环境就配置好了。
Visual ChatGPT部分代码修改:
和ControlNet一样,Visual ChatGPT将运行方式写死为cuda,这对于不支持cuda模式的电脑不太友好,比如苹果M系列芯片的Mac系统,如果我们直接运行程序:
就会报这个错误:
这里需要将visual-chatgpt.py文件中写死的cuda模式改写为mps模式:
关于MPS模式,请参照:闻其声而知雅意,M1 Mac基于PyTorch(mps/cpu/cuda)的人工智能AI本地语音识别库Whisper(Python3.10)[5] ,这里不再赘述。
接着创建训练图片的文件夹:
随后还可能触发langchain库的内存溢出问题,需要将这行代码屏蔽:
接着将内存缓冲区替换为保存上下文逻辑:
当我们以为万事俱备只欠东风的时候,发现每次运行都会内存溢出,对此,官方给出了解释:
这就是加载了所有模型之后的显存占用,整整70个G的显存占用,这是给人玩的吗?人们不禁要问。
没办法,只能另辟蹊径,将非必要的模型加载代码进行屏蔽操作,一顿修改,修改后的完整代码:
Thought: Do I need to use a tool? Yes
Action: the action to take, should be one of []
Action Input: the input to the action
Observation: the result of the action
Thought: Do I need to use a tool? No
: [your response here]
注意,以上代码是修改了MPS模式、langchain库bug以及屏蔽了多个模型后的修改版本。
运行Visual ChatGPT
折腾了大半天,终于可以无错误运行了:
程序返回:
编程的乐趣就在于,当你为了运行某个程序经历了千难万险,甚至濒临绝望的时候,突然,程序调通了,此时大脑皮层会大量分泌多巴胺(dopamine),那感觉,就像突然领悟了人生妙谛,又像是终于明白了天人化生、万物滋长的要道,简而言之,白日飞升,快乐加倍,那种精神上的享受,绝对比玩电子游戏或者享受美食更加的高级。
随后访问http://localhost:7860:
直接用中文开聊即可,不需要ControlNet那些令人厌烦的引导词。
后台程序逻辑:
通过观察,我们可以得知,虽然是中文聊天,但其实ChatGPT会把中文翻译为英文,将“给我一只大金毛”翻译为:“a golden retriever”。
随后通过模型训练生成图片,再将聊天记录添加到上下文列表中,关于ChatGPT的聊天上下文,请参照:重新定义性价比!人工智能AI聊天ChatGPT新接口模型gpt-3.5-turbo闪电更新,成本降90%,Python3.10接入[6]
当然,为了可以线下单机环境将Visual ChatGPT成功跑起来,所以屏蔽了多个ControlNet图像模型,因此有些图片场景并不那么尽如人意:
结语
有的时候,当我们称赞一项技术的时候,我们会称其为这样或者那样的行业标杆、教科书之类,但是对于ChatGPT来说,它已经超越了所谓的什么标杆,或者说得更准确一些,它是标杆中的标杆,其他的所谓的类ChatGPT产品,别说望其项背了,就连ChatGPT的尾气也闻不到,说白了,想碰瓷都不知道该怎么碰,因为神明早已在ChatGPT的命格中写下八个大字:前无古人,后无来者!最后,奉上修改后的项目代码,与众乡亲同飨:github.com/zcxey2911/visual_chatgpt_mps_cut
引用链接
 Stable Diffusion: https://v3u.cn/a_id_283
 ControlNet: https://v3u.cn/a_id_282
 Python3.10.9: https://v3u.cn/a_id_200
 登峰造极,师出造化,Pytorch人工智能AI图像增强框架ControlNet绘画实践,基于Python3.10: https://v3u.cn/a_id_282
 闻其声而知雅意,M1 Mac基于PyTorch(mps/cpu/cuda)的人工智能AI本地语音识别库Whisper(Python3.10): https://v3u.cn/a_id_272
 重新定义性价比!人工智能AI聊天ChatGPT新接口模型gpt-3.5-turbo闪电更新,成本降90%,Python3.10接入: https://v3u.cn/a_id_284