AI 太卷了吧!智能插画几秒出图,还又快又好?

科技   2024-12-11 17:04   江苏  

AI绘画如今已成为炙手可热的话题,受到了广泛关注,从公众号、朋友圈再到各类社交群,几乎都能看到关于AI绘画的讨论,热度不减。

近来,我注意到一些公众号在发布一些插画为主的内容,这些作品配有精美的图片,加上一句有趣的话,多篇文章的阅读量都突破了10万+,这收入不用多说了吧。

其实咱们普通人创作这样的账号,也真的不难,正巧我一直在用的智谱文生图模型又又迭代了,从cogview模型升级至cogview-3 Plus,这次绝对是一流水平。

先简单介绍下,CogView-3-Plus 是智谱新一代的图像生成模型,是 CogView 的升级版本,本次升级使用了 Transformer 架构训练扩散模型,化了效果并验证了参数量提升的效益。

升级后的CogView-3-Plus能够依据用户指令快速生成多种分辨率下的高质量图像,并以其接近行业顶尖模型如MJ-V6和FLUX的效果而闻名,具备将文本描述精准转换为图像的多模态能力,并提供API服务以便于集成使用,同时支持实时推理,确保了图像生成的高效率和快速响应。
所以,赶紧拿来试了一番,今天就用多线程 Flask + 智谱CogView-3-Plus快速搭建一个插画生成器
前台展示:

后端运行图:

一、安装依赖 

首先,你需要确保已经安装了运行此应用所需的所有依赖库。

安装Flask

Flask是Python的一个Web框架,我们首先需要安装它,你可以通过pip安装Flask:

pip install Flask
安装ZhipuAI SDK
这段代码调用了ZhipuAI的SDK,所以你需要安装相关的zhipuai库,可以通过以下命令来安装:
pip install zhipuai

安装图片库pillow

Pillow 库是 Python 中一个非常强大的图片处理库,它提供了丰富的功能,可以轻松地进行图片的读取、编辑、保存等操作。

pip install pillow

安装requests

Requests库提供了更简洁的API,使得开发者可以更容易地处理HTTP请求和响应。

pip install requests

二、设置 ZhipuAI API 密钥 

在代码中有一个地方需要你提供 ZhipuAI 的 API 密钥:

api_key = ""  # 替换为你的 ZhipuAI API 密钥

你需要提前从ZhipuAI获取一个有效的API密钥,并将它填入上述位置,获取地址:https://bigmodel.cn/usercenter/proj-mgmt/apikeys

三、设置IP白名单 

别忘记设置IP白名单管理,出现下面的错误就是没设置IP白名单的原因。

设置地址:https://bigmodel.cn/usercenter/safety-mgmt/ip-whitelist

四、代码详细说明 

1. 导入必要的库

Flask :  用于创建和运行 Web 应用的 Python 框架。    
ZhipuAI :  用于与 ZhipuAI API 进行交互的客户端库。   
threading :  用于异步处理图像生成任务,防止主线程被阻塞。   
uuid : 用于生成唯一的任务 ID。   
requests : 用于向 ZhipuAI API 发送 HTTP 请求,获取图像数据。   
io : 用于在内存中处理图像数据。   
PIL (Pillow) : 用于处理图像,如加载图像、绘制文字等。   
base64 : 用于将图像数据转换为 Base64 编码字符串,方便在 Web 中传输。

2. 初始化 Flask 应用和 ZhipuAI 客户端

Flask(app) : 创建一个 Flask 应用实例,用于运行 Web 服务器。    
ZhipuAI(api_key=api_key) : 初始化一个 ZhipuAI 客户端,使用提供的 API 密钥与 ZhipuAI 服务进行交互。
3. 创建共享数据结构

image_results : 用于存储每个任务的生成图像结果(以 Base64 编码的字符串形式)。    
task_status : 用于存储每个任务的状态(例如 "processing"、"completed"、"failed")。   
lock : 使用 threading.Lock() 创建一个锁对象,用于在多线程环境下保护共享数据的访问,确保线程安全。

4. 生成图像的函数

第一个函数的作用是生成图像,它接收多个参数:

prompt : 用户输入的文本描述,用于生成图像。
model : 使用的 AI 模型(如果未提供则使用默认的 cogview-3-plus)。 
size : 图像的尺寸(默认是 1024x1024)。
user_id : 可选的用户 ID,用于标识用户, imgtitle: 可选的文本,用户希望显示在生成图像上的文字。

通过 PIL.Image.open() 将返回的图像数据加载为 PIL 图像对象,方便进一步操作。

如果用户提供了标题文字(imgtitle),则使用 ImageDraw.Draw(img) 在图像上绘制文字,如果有指定字体(arial.ttf),使用它;如果找不到该字体,则使用系统默认字体。

最后将处理后的图像保存到内存中的字节流(img_byte_array),然后将图像数据转换为 Base64 编码的字符串,便于通过 Web 返回。

5. Flask 路由

首页路由 (/)

路由渲染一个名为 index.html 的页面。该页面允许用户输入文本描述并提交请求生成图像。

生成图像的路由 (/generate-image)

使用 threading.Thread 创建一个新线程来处理图像生成,防止图像生成阻塞主线程,线程完成后会更新任务的状态为 "completed" 或 "failed",返回一个包含任务 ID 的响应,表示图像生成已经开始。

查询任务状态的路由 (/image-result/<task_id>)

该路由用于查询图像生成的状态,根据任务 ID 检查状态:

"processing" : 图像正在生成中,返回 202 状态码。        
"completed" : 图像生成完成,返回 Base64 编码的图像。        
"failed" : 如果图像生成失败,返回错误信息。

6. 启动 Flask 应用

通过 app.run() 启动 Flask 应用,设置 threaded=True 表示应用支持多线程处理请求,可以并发处理多个用户请求。

五、运行Flask应用 

确保所有代码文件都已经就绪后,可以运行Flask应用,导航到包含Flask应用的目录,然后执行以下命令:

python app.py

这将启动Flask开发服务器,默认情况下它会监听:http://127.0.0.1:5000/。

六、访问应用及效果演示 

在浏览器中访问应用:

http://127.0.0.1:5000

你将看到一个简单的表单,用户可以输入嵌入文字以及文本描述(prompt),然后点击【发送】按钮。

效果如下:

当用户提交表单时,前端会通过AJAX发送一个POST请求到/generate-image,服务器接收到请求后,启动一个新的线程来生成图像,并返回一个task_id,用户可以通过task_id查询图像的生成状态,当图像生成完成后,前端会自动显示图像。

用户在表单中提交文本后,服务器开始生成图像,前端会定期请求/image-result/<task_id>来检查图像是否生成完毕,一旦图像生成完成,浏览器会展示生成的图像。

接下来,给大家分享几种这个赛道的变现方式:

  1. 公众号流量主变现:公众号达到 500 粉后开通流量主,一篇 10w+ 的爆文,就能获得可观的收入

  2. 平台流量分成:你还可以制作图片视频,上传到自媒体平台如视频号,并参与分成计划,只要满足一定条件,就能根据视频的播放量获得相应的流量分成。

  3. 小红薯接商单变现:通过分享有趣的图文,吸引粉丝关注,小红薯粉丝数量的增加可以帮你提高接商业广告的价格。

  4. 定制红包封面、手机壁纸。。。


其实说了那么多,在惊叹AI作品的精美之余,更多人开始表达对AI绘画的恐惧和焦虑,担心未来是否会被取代而失业。

根据我的亲身体验,我认为AI绘画技术并不会取代个人创作者,而是成为了一个提升工作效率的有力工具,我想那些尝试过AI绘画的人应该都能体会到这一点。
AI绘画作品的质量实际上还是由人来决定的,尽管AI能够创造出各种作品,但最终让这些作品精准呈现的,还是你深思熟虑后提供的描述词,这一点尤为重要,因为工作需要精确和实用性,艺术可能没有固定的标准,但设计必须满足实际应用的需求。
因此,我鼓励大家去尝试AI绘画,而不是对它感到害怕,尽早的尝试可以让AI更好的帮助我们完成工作。
智谱 AI 开放平台:https://bigmodel.cn?utm_source=%E8%8F%9C%E9%B8%9F%E6%95%99%E7%A8%8B&utm_campaign=yrgzh&_channel_track_key=aZO594fk
链接放在这里了,或者👇点击「阅读原文」,就可以体验了!

脚本之家
脚本之家(jb51.net)每天提供最新IT类资讯、原创内容、编程开发的教程与经验分享,送书福利天天在等你!
 最新文章