【2022 CCF BDCI 文心大模型创意项目】没见过雪的我们

★★★ 本文源自AI Studio社区精品项目,【点击此处】查看更多精品内容 >>>


没见过雪的我们

ERNIE-VILG文生图生成专属冬天雪景图,ERNIE 3.0 文本理解与创作生成专属文案,你想要的场景,你想要的文案,它都可以生成!

一、前言

呜呜呜有多少南方的孩子还没见过雪呢?反正我是没见过。

真的好想看看诗中“千里冰封,万里雪飘”“忽如一夜春风来,千树万树梨花开”“大雪压青松,青松挺且直”的景象,想和好朋友一起堆雪人,想和喜欢的人一起去看雪。

二、项目介绍

本项目以自定义文字描述为例,通过调用ERNIE-VILG的文心大模型来实现文生图及文案的生成。对于很多南方的朋友来说,雪是很少见的,很多人都盼望着能去看一场雪,然后拍下美丽的照片留着做纪念,然而因为自身的情况这个愿望未能实现。我们这个项目让这样的一群人能够通过文生图的方式定制属于自己的雪景照以及视频,同时也不用担心发朋友圈没有文案。

1、图片效果展示(部分)

下图中的图片是由文心大模型ERNIE-VILG文生图生成的,这个项目生成的图片风格是水彩(也可以把“style”图片风格修改一下,就会生成其它风格的图片哦!)。





为新用户进行简单指引

1、要先Fork才可以运行哦

2、Fork之后等待片刻,点击启动环境,选择运行环境,点击确定即可

三、代码实现

1、生成图片列表(文生图 ERNIE-ViLG)和保存图片

(1)点击以下网址获取你的专属API key

https://wenxin.baidu.com/moduleApi/key

(2)通过"pip install wenxin-api"命令安装wenxin_api

(3)text_list生成图片列表

大家可根据自己的需要列写描述文本,文本内容简洁明了即可,如:红墙外白雪纷飞,表明是红墙的外面大雪纷飞。当前的文生图在文生人图方面效果还不是很好(我觉得古风风格还不错),大家可自行尝试,生成没有人的风景图效果更佳。

(4)style: 生成图像的风格

当前支持“水彩”“油画”“卡通”“古风”等

(5)将生成的图片记录在train.txt中

! pip install wenxin-api # 通过"pip install wenxin-api"命令安装wenxin_api

# -*- coding: utf-8 -*
import random

! mkdir Image

count = 0 #初始化变量
# 最大图片数(可改)
max_count = 40 

# 生成的图片列表(可自定义)
text_list = [
    '雪人',
    '漫天飞舞的雪花',
    '空旷的街道飘着的雪花',
    '湖边飘着的雪花',
    '江南小镇飘着的雪花',
    '红墙外白雪纷飞',
    '两个小朋友在雪中玩耍的背影',
    '在雪中有一座村庄,家家户户炊烟袅袅',
    '一个人在雪中的背影',
    '两个人在雪中撑伞的背影',
    '一群小朋友在雪中玩耍的背影',
    '一对恋人在夕阳下看雪的背影',
    '森林里下雪了',
    '在雪中开放的梅花'
]

while(1):
    import wenxin_api 
    from wenxin_api.tasks.text_to_image import TextToImage
    wenxin_api.ak = "****************" #输入您的API Key
    wenxin_api.sk = "****************" #输入您的Secret Key
    input_dict = {
        "text": random.choice(text_list),
        "style": "水彩" #图片风格(可改)
    }
    rst = TextToImage.create(**input_dict)
    # print(rst)

    import requests
    import os
    from PIL import Image
    import matplotlib.pyplot as plt
    %matplotlib inline

    for i in rst['imgUrls']:
        #使用requests直接get 下载图片使用
        r = requests.get(i)
        ii = i.split('/')[-1]+'.png'
        out_ii = 'Image/' + ii
        with open(out_ii, 'wb') as f:
            f.write(r.content)
        f.close()

        count = count+1

    if count>=40:
        break

    print(count)

# 将这些图片记录在train.txt中
import os
with open('train.txt','w') as f:
    for item in os.listdir('Image'):
        if 'check' not in item:
            f.write('Image/'+item+'\n')
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: wenxin-api in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (0.0.5.1)
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: tqdm in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from wenxin-api) (4.27.0)
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)
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: 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: idna<3,>=2.5 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests>=2.20->wenxin-api) (2.8)

[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[0m
[1m[[0m[34;49mnotice[0m[1;39;49m][0m[39;49m To update, run: [0m[32;49mpip install --upgrade pip[0m
mkdir: 无法创建目录"Image": 文件已存在
2022-10-27 19:47:40,572 - model is painting now!, taskId: 7098943, waiting: 30s
2022-10-27 19:48:00,904 - model is painting now!, taskId: 7098943, waiting: 30s
6
2022-10-27 19:48:26,468 - model is painting now!, taskId: 7098992, waiting: 30s
2022-10-27 19:48:46,893 - model is painting now!, taskId: 7098992, waiting: 30s
12
2022-10-27 19:49:11,629 - model is painting now!, taskId: 7099046, waiting: 30s
2022-10-27 19:49:31,847 - model is painting now!, taskId: 7099046, waiting: 30s
18
2022-10-27 19:49:56,439 - model is painting now!, taskId: 7099090, waiting: 30s
2022-10-27 19:50:16,670 - model is painting now!, taskId: 7099090, waiting: 30s
24
2022-10-27 19:50:41,149 - model is painting now!, taskId: 7099133, waiting: 30s
2022-10-27 19:51:01,501 - model is painting now!, taskId: 7099133, waiting: 30s
30
2022-10-27 19:51:26,761 - model is painting now!, taskId: 7099177, waiting: 30s
2022-10-27 19:51:47,095 - model is painting now!, taskId: 7099177, waiting: 30s
36
2022-10-27 19:52:11,835 - model is painting now!, taskId: 7099214, waiting: 30s
2022-10-27 19:52:32,119 - model is painting now!, taskId: 7099214, waiting: 30s

2、图片转视频

嘿嘿,生成的图片比较多,有时候大家觉得一张一张滑着看很麻烦,那把图片转成视频就解决这个问题啦!

参考

https://blog.csdn.net/qq_35896136/article/details/105819529

import cv2

img_txt = 'train.txt' #图片路径
with open(img_txt) as f:
    img_list = f.readlines()

# 可以随意调整视频的帧速率
fps = 24  #设置所需的帧率(可自定义)
#可以用(*'DVIX')或(*'X264'),如果都不行则先安装ffmepg
fourcc = cv2.VideoWriter_fourcc(*'XVID') #视频格式名称
# 输出的视频保存在TestVideo.avi
videoWriter = cv2.VideoWriter('TestVideo.avi',fourcc,fps,(1024,1024),True) #(1024,1024)是保存图片的大小

for img_dir in img_list:
    frame = cv2.imread(img_dir[:-1]) #得到当前路径的所有的文件的列表
    # 图片播放的速度(可自定义)
    for i in range(40):
        videoWriter.write(frame)

videoWriter.release()
cv2.destroyAllWindows()

3、定制你的专属文案(ERNIE 3.0 文本理解与创作)

写下你的文案主题,自动生成专属文案,再也不用担心发朋友圈没有文案啦!(文本描述简洁明了即可,要是生成的文案不理想,可尝试多次)

(1)参数说明

import wenxin_api # 可以通过"pip install wenxin-api"命令安装
from wenxin_api.tasks.official_documents import OfficialDocuments
wenxin_api.ak = "*****************" #输入您的API Key
wenxin_api.sk = "*****************" #输入您的Secret Key
input_dict = {"text": "标题:没见过雪的我们\n文案:", 
              "seq_len": 512, #最大生成长度  
              "topp": 0.9, #多样性
              "penalty_score": 1, #重复惩罚
              "min_dec_len": 8, #最小生成长度
              "is_unidirectional": 0, #单双向控制开关
              "task_prompt": "adtext" #任务类型(adtext为生成文案类型)
             }
rst = OfficialDocuments.create(**input_dict)
print(rst)
2022-10-27 20:16:06,515 - model 1: starts writing
{'result': '流动的空气中,雪在慢慢融化,就像我们的心在渐渐融化,当一切归零,希望,从未消失。\n曾经以为一切不过是花开花落,曾经以为一切不过是寒暑交替,曾经以为一切不过是光阴似水,曾经以为一切不过是年华似水。\n'}

,曾经以为一切不过是光阴似水,曾经以为一切不过是年华似水。\n’}

(2)参考

以下网址为ERNIE 3.0 文本理解与创作使用说明

https://wenxin.baidu.com/wenxin/docs#2l6tgx5rc

大模型API文档地址:
https://wenxin.baidu.com/wenxin/docs

4、运行

项目代码如上,只需点击运行即可。可根据自己的要求修改文本和代码参数哦

四、项目总结

1、这个项目借助文心大模型,生成了雪景图和主题文案,在文生图的人物生成方面效果不是很理想,可以进行改进。

2、视频效果单调,如果可以加上音乐和文案会更好,读者可以自行去探索。

3、文心大模型的更多创意功能,欢迎大家来体验https://wenxin.baidu.com/younger/

五、结束语

咱们的内容就这么多啦,大家感兴趣的话就快来试试吧!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值