文心大模型之我们一起来玩谐音梗
文心大模型之我们一起来玩谐音梗,欢迎评论区一起挑战,请大家尽情发挥自己的创意哦
文心大模型之谐音梗挑战
文心大模型可以玩啦,这么久,大家有没有什么有趣的idea呢,在此我想发起一个文心创作挑战之
谐音梗挑战!!!
1.首先我的谐音梗表情包申请出战,下面是我做的
2. 接下来我就为大家分步讲解表情包图片创作流程
- 根据文字生成图片
- 再给生成的图片添加文字
这里讲解两种方式文字生成图片
2.1 首先是直接调用文心API的方式生成图片
参考文心大模型文档
2.1.1 第一步pip安装
#运行一次就行
!pip install --upgrade wenxin-api
2.1.2 获取独属于你的AK和SK(API Key和Secrect Key)
-
点击https://wenxin.baidu.com/moduleApi/key
-
登录你的百度账号,然后点击右上角创建API key
3.分别复制你的API Key和Secrect Key替换下方代码块的第4行和第5行中的your api key和your Secrect Key。
2.1.3 表情包主体图片生成
下方代码块中第6行代码为文心大模型ERNIE-ViLG文字生成图片中你需要输入的文字,第7行为你需要的图片风格可以在 水彩 油画 粉笔画 卡通 蜡笔画 儿童画 中选择。
图片会保存在 input_text加img_style这个文件夹下
运行下方代码块需要50秒左右
每张图片大小为1024*1024
import requests
import wenxin_api
from wenxin_api.tasks.text_to_image import TextToImage
wenxin_api.ak = 'your api key' # 输入您的API Key
wenxin_api.sk = 'your Secrect Key' # 输入您的Secrect Key
input_text = "绿色的香蕉"
img_style = "油画"
input_dict = {
"text": input_text, # 输入图片描述
"style": img_style, # 输入图片风格
}
rst = TextToImage.create(**input_dict)
print(rst)
# 生成存图的目录
import os
def init_mkdir(data_path):
if not os.path.exists(data_path): # 判断文件夹是否存在
os.makedirs(data_path) # 不存在则新建文件夹
init_mkdir(input_text+img_style)
method2 = 'get'
for i in range(len(rst["imgUrls"])):
res2 = requests.request(url=rst["imgUrls"][i], method=method2)
print(res2.cookies)
content=res2.content
with open(input_text+img_style+"/"+input_text+str(i)+'.jpg','wb') as f:
f.write(content)
2.2 下方为使用paddlehub生成图片
2.2.1. 模型参数说明
-
def __init__(ak: Optional[str]=None, sk: Optional[str]=None)
-
初始化模块,可自定义用于申请访问文心API的ak和sk。
-
参数
- ak:(Optional[str]): 用于申请文心api使用token的ak,可不填。
- sk:(Optional[str]): 用于申请文心api使用token的sk,可不填。
-
-
def generate_image( text_prompts:str, style: Optional[str] = "油画", topk: Optional[int] = 10, output_dir: Optional[str] = 'ernievilg_output')
-
文图生成API,生成文本描述内容的图像。
-
参数
- text_prompts(str): 输入的语句,描述想要生成的图像的内容。
- style(Optional[str]): 生成图像的风格,当前支持’油画’,‘水彩’,‘粉笔画’,‘卡通’,‘儿童画’,‘蜡笔画’。
- topk(Optional[int]): 保存前多少张图,最多保存10张。
- output_dir(Optional[str]): 保存输出图像的目录,默认为"ernievilg_output"。
-
返回
- images(List(PIL.Image)): 返回生成的所有图像列表,PIL的Image格式。
-
2.2.2 模型推理
推理时间:
该模块将会访问文心大模型API进行推理,返回时间大概30s左右,会有相应的进度条提示。
使用方式
调用上述generate_image接口,输入您想要的内容和风格,即可生成相应内容的图像。
!pip install --upgrade paddlehub
#下面我们安装并导入ernie_vilg模块
import paddlehub as hub
ernie_vilg_module = hub.Module(name='ernie_vilg')
results = ernie_vilg_module.generate_image(text_prompts="鲨鱼 蜜蜂", style="油画", output_dir='./ernievilg_output')
HBox(children=(IntProgress(value=0), HTML(value='')))
Saving Images...
Done
2.3 表情包的文字添加
核心代码为下方代码块的第5行代码和第11行代码,这两行代码的函数的具体应用我已经拿来了,方便大家自行调整
truetype 为字体设置
用法: PIL.ImageFont.truetype(font=None, size=10, index=0, encoding=”)
参数:
- font-TrueType字体文件。在Windows下,如果在该文件名中找不到该文件,则加载程序还会在Windows fonts /目录中查找。
- size-请求的大小(以磅为单位)。
- index-要加载的字体(默认为第一个可用的字体)。
- encoding-使用哪种字体编码(默认为Unicode)。
返回:字体对象。
异常:IOError-如果无法读取文件。
ImageDraw.Draw.text()在给定位置绘制字符串。
用法:
ImageDraw.Draw.text(xy, text, fill=None, font=None, anchor=None, spacing=0, align=”left”)
参数:
- xy-文字的左上角。
- text-要绘制的文本。如果包含任何换行符,则文本将传递到multiline_text()
- fill-用于文本的颜色。
- font-一个ImageFont实例。
- spacing-如果文本传递到multiline_text(),则行之间的像素数。
- align-如果文本已传递到multiline_text(),“left”,“center”或“right”。
返回类型:
返回带有文本的图像。
from PIL import ImageFont
from PIL import Image
from PIL import ImageDraw
font = ImageFont.truetype("simhei.ttf",250)#设置字体和字体大小
imageFile = "绿色的香蕉油画/绿色的香蕉9.jpg"#设置需要添加文字的图片路径
tp=Image.open(imageFile)
print(tp.size)
# 在图片上添加文字 1
draw = ImageDraw.Draw(tp)
draw.text((0, 512+150),"我蕉绿了",(255,255,255),font=font) #分别设置文字的xy坐标,文字内容,文字颜色,字体
draw = ImageDraw.Draw(tp)
# 保存
tp.save("jiaolv.png") #图片保存路径
(1024, 1024)
2.4 把上面代码块中第15行图片保存路径位置的表情包图片下载就行
I pick you!!!
大家一起来玩吧,一个独属于你的谐音梗表情包,你值得拥有
此文章为搬运
原项目链接
更多推荐
所有评论(0)