★★★ 本文源自AI Studio社区精品项目,【点击此处】查看更多精品内容 >>>
让过年的对联“活”过来!
该项目旨在让过年家家户户所贴的对联以图像或视频的形式“活”的展现出来,为此我借用了百度强大的文心大模型,通过超大量级的训练,让AI负责作画与理解对联的意思,并且我们还添加了自动对联生成模块,帮助不会写对联的你也能写出一对平仄工整的对联。
如:五湖四海迎财神,万紫千红福气到
那么,具体到底该怎么操作呢
获取API Key
您可以登录大模型开放API获取您的专属获取您的专属 API Key(AK)和Secret Key(SK),点击链接查看您的AK和SK。请注意保护您的密钥信息,避免泄露。您可以通过删除已泄露的密钥来保护您的账户安全。
调用方式
在本地Python环境调用接口
安装wenxin-api工具包
pip install --upgrade wenxin-api
*注意:建议python版本在python 3.7及以上版本
pip install --upgrade wenxin-api #安装所需要的包
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting wenxin-api
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/23/c0/b2c63ca634c30d204f2c6bf2c183f70eeaa985db1a30b5d78380b40f34dd/wenxin_api-0.0.5.1-py3-none-any.whl (24 kB)
Requirement already satisfied: tqdm in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from wenxin-api) (4.27.0)
Requirement already satisfied: requests>=2.20 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from wenxin-api) (2.24.0)
Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests>=2.20->wenxin-api) (2019.9.11)
Requirement already satisfied: idna<3,>=2.5 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests>=2.20->wenxin-api) (2.8)
Requirement already satisfied: chardet<4,>=3.0.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests>=2.20->wenxin-api) (3.0.4)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests>=2.20->wenxin-api) (1.25.6)
Installing collected packages: wenxin-api
Successfully installed wenxin-api-0.0.5.1
[1m[[0m[34;49mnotice[0m[1;39;49m][0m[39;49m A new release of pip available: [0m[31;49m22.1.2[0m[39;49m -> [0m[32;49m22.3.1[0m
[1m[[0m[34;49mnotice[0m[1;39;49m][0m[39;49m To update, run: [0m[32;49mpip install --upgrade pip[0m
Note: you may need to restart the kernel to use updated packages.
#然后调用我们文心的文生图接口模块
# -*- coding: utf-8 -*
import wenxin_api # 可以通过"pip install wenxin-api"命令安装
from wenxin_api.tasks.text_to_image import TextToImage
wenxin_api.ak = #这两段需要你自己申请的ak和sk
wenxin_api.sk =
input_dict = {
"text": "五湖四海财神到,万紫千红福气来",#这里是填写你需要使用的对联
"style": "概念艺术",
"resolution": "1024*1024"
}
rst = TextToImage.create(**input_dict)
print(rst)
File "/tmp/ipykernel_398/1445405948.py", line 5
wenxin_api.ak = #这两段需要你自己申请的ak和sk
^
SyntaxError: invalid syntax
如果你不会写对联,文心还可以为你创作对联
# -*- coding: utf-8 -*
import wenxin_api # 可以通过"pip install wenxin-api"命令安装
from wenxin_api.tasks.couplet import Couplet
wenxin_api.ak = #这两段需要你自己申请的ak和sk
wenxin_api.sk =
input_dict = {
"text": "上联:五湖四海皆春色\n下联:",#这里填入你想到的上联
"seq_len": 512,
"topp": 0.9,
"penalty_score": 1.0,
"min_dec_len": 2,
"is_unidirectional": 0,
"task_prompt": "couplet"
}
rst = Couplet.create(**input_dict)
print(rst)
下面我们还可以将生成的图片转为视频形式,配上合适的音乐,比如好日子,财神到等等等等,让喜庆的氛围更上一层
# Step1:添加字幕
import cv2
from PIL import ImageFont
from PIL import Image
from PIL import ImageDraw
from moviepy import *
from moviepy.editor import *
# 该字体使用时需要获取授权,此处也可以更换其他字体
font = ImageFont.truetype("siyuanheiti.otf", 50)#设置字体和字体大小
final_img_paths = dict()
for step_id in img_paths:
for img_path in img_paths[step_id]:
im = Image.open(img_path)
# 在图片上添加文字
draw = ImageDraw.Draw(im)
draw.text((100, 900), words[step_id] ,(255, 180, 0), font=font) #分别设置文字的xy坐标,文字内容,文字颜色,字体
path = img_path.replace("temp_img", "img")
im.save(path)
if step_id in final_img_paths:
final_img_paths[step_id].append(path)
else:
final_img_paths[step_id] = [path]
# Step2:合成视频 - FPS为1
video = cv2.VideoWriter('test.mp4',cv2.VideoWriter_fourcc(*'mp4v'), 1, (1024, 1024))
end_time = times[-1]
step = 0
for t in range(end_time):
if step + 1 == len(times) and t == end_time:
break
img_id = t % 12 # 两秒一张图(6张存货 * 2)
if times[step] < t <= times[step + 1]:
img = cv2.imread(final_img_paths[step][img_id // 2])
video.write(img)
if t == times[step + 1]:
step += 1
video.release()
# Step3:添加声音
video_path = 'test.mp4'
audio_path = 'PPDE.mp3'
# 提取音轨
audio = AudioFileClip(audio_path)
# 读入视频
video = VideoFileClip(video_path)
# 将音轨合并到视频中
video = video.set_audio(audio)
# 输出
video.write_videofile("output.mp4", audio_codec="aac")
print("-------生成完毕-------")
生成完毕后在左侧文件列表中找到output.mp4并右键下载即可
总结一下:该项目调用了文心大模型的文生图接口和文本接口,实现了抽象概念的图像生成,就是有些细节还需要更加精雕细琢,比如元宝和锦鲤还有人物模型还可以更好,更细节。感受到了文心大模型给我们带来的便利和傻瓜式操作,大数据的美展现的淋漓尽致