文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

调用百度文心AI作画API实现中文-图像跨模态生成

2023-09-13 20:55

关注

作者介绍

乔冠华,女,西安工程大学电子信息学院,2020级硕士研究生,张宏伟人工智能课题组。
研究方向:机器视觉与人工智能。
电子邮件:1078914066@qq.com

一.文心AI作画API介绍

1. 文心AI作画

文心ERNIE-ViLG,一款适合中文的跨模态AI绘画大模型。
论文地址:https://arxiv.org/pdf/2112.15283.pdf
体验连接:https://wenxin.baidu.com/ernie-vilg

文心ERNIE-ViLG是一个大规模的中文跨模态生成模型,其参数规模达到100亿。该模型首次通过自回归算法将图像生成和文本生成统一建模,增强模型的跨模态语义对齐能力,显著提升图文生成效果。

ERNIE-ViLG生成的不同风格的图像如下:

ERNIE-ViLG生成的不同风格的图像

利用AI技术生成图片的最终目的是要便捷地为人类创造美的作品,激发人的想象力和创作力。在艺术创作、虚拟现实、图像编辑、AI 辅助设计、虚拟数字人等领域,文心 ERNIE-ViLG 这类跨模态大模型有着广泛的应用前景,也为这些领域未来的发展提供了无限的创意和可能。作为百度“文心”大模型全景图中的重要一员,文心 ERNIE-ViLG 也代表着百度文心在跨模态大模型领域迈出坚实步伐,从技术自主创新和加速产业应用方面持续推动中国 AI 发展。

2.接口介绍

文心AI作画API基于文心ERNIE-ViLG大模型,可根据用户输入的中文文本,自动创作图片。

文心AI作画涉及2个接口,分别为:提交请求、查询结果。

该接口通过自定义丰富的修饰词,生成不同风格、不同构图、不同流派的图片(每次可自定义生成1张至6张图片)。

二.注册账号并获取API Key

进入:百度智能云并创建应用获取API Key,Secret Key

1. 注册百度智能云账号

免费注册登录百度智能云账号进入下图界面,选择右上角 “控制台”模块:

在这里插入图片描述

选择“产品服务”中“人工之智能”模块的“智能创作平台”项目:

在这里插入图片描述

点击领取免费的接口资源(根据要求实名认证后可获取):

在这里插入图片描述

在这里插入图片描述

2. 获取API

在“应用列表”中点击“创建应用”,免费创建个人文本-图像生成应用模块:

在这里插入图片描述

创建成功的应用模块如下,从中可以获取个人应用模块的API Key和Secret Key:

在这里插入图片描述

三.代码实现

完整代码

import requestsimport jsonAPI_KEY = "自己申请的API Key"SECRET_KEY = "自己申请的Secret Key"def main():            url = "https://aip.baidubce.com/rpc/2.0/ernievilg/v1/txt2img?access_token=" + get_access_token()        payload = json.dumps({        "text": "中国山水画",#输入中文描述        "resolution": "1024*1024",#选择图片分辨率,可支持1024*1024、1024*1536、1536*1024        "style": "古风",#选择图像风格,古风、二次元、写实风格、浮世绘、未来主义、赛博朋克等等        "num": 2#输入要生成的图片数量,可选1~6张    })    headers = {        'Content-Type': 'application/json',        'Accept': 'application/json'    }        response = requests.request("POST", url, headers=headers, data=payload)        print(response.text)    #获取Access Tokendef get_access_token():    """    使用 AK,SK 生成鉴权签名(Access Token)    :return: access_token,或是None(如果错误)    """    url = "https://aip.baidubce.com/oauth/2.0/token"    params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}    return str(requests.post(url, params=params).json().get("access_token"))if __name__ == '__main__':    main()
import requestsimport jsonfrom io import BytesIO#BytesIO实现了在内存中读写bytesfrom PIL import Imageimport osAPI_KEY = "自己申请的API Key"SECRET_KEY = "自己申请的Secret Key"def main():    #API接口的url     url = "https://aip.baidubce.com/rpc/2.0/ernievilg/v1/getImg?access_token=" + get_access_token()   #发送请求获取网页内容     payload = json.dumps({        "taskId": "提交请求代码返回的 'taskId' 的值"    })    headers = {        'Content-Type': 'application/json',        'Accept': 'application/json'    }        response = requests.request("POST", url, headers=headers, data=payload)    print('请求的返回值:',response.text)    json_result = json.loads(response.text)    imgUrls=json_result['data']['imgUrls']#返回imgUrls的结果    print("imgUrls的返回值:", imgUrls)#imgUrls":[{"image":"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/4a90992981919xxxxxx"},{"image":"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/4a90992981919a74f0b4xxxxx"}]    print("imgUrls类型:",type(imgUrls))#查看imgUrls类型,是列表    print("imgUrls数量:",len(imgUrls))    #获得图片网址并将图片保存到本地    for i in range(0,len(imgUrls)):        img_url=imgUrls[i]        print('imges_url:',img_url)        img_url=img_url['image']        print('image_url:',img_url)        #保存图片到本地        req=requests.get(img_url)#获取图片网址        image = Image.open(BytesIO(req.content))#在内存中打开图片        image.save(os.path.join('图片保存路径','{}.jpg'.format(i)), 'JPEG')        #获取Access Tokendef get_access_token():    """    使用 AK,SK 生成鉴权签名(Access Token)    :return: access_token,或是None(如果错误)    """    url = "https://aip.baidubce.com/oauth/2.0/token"    params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}    return str(requests.post(url, params=params).json().get("access_token"))if __name__ == '__main__':    main()

四.效果展示

在这里插入图片描述

在这里插入图片描述
参考链接:
https://zhuanlan.zhihu.com/p/600247099
https://zhuanlan.zhihu.com/p/455523289

来源地址:https://blog.csdn.net/m0_37758063/article/details/130565737

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯