作者介紹
喬冠華,女,西安工程大學電子信息學院,2020級碩士研究生,張宏偉人工智能課題組。
研究方向:機器視覺與人工智能。
電子郵件:1078914066@qq.com
一.文心AI作畫API介紹
1. 文心AI作畫
文心ERNIE-ViLG,一款適合中文的跨模態(tài)AI繪畫大模型。
論文地址:https://arxiv.org/pdf/2112.15283.pdf
體驗連接:https://wenxin.baidu.com/ernie-vilg
文心ERNIE-ViLG是一個大規(guī)模的中文跨模態(tài)生成模型,其參數(shù)規(guī)模達到100億。該模型首次通過自回歸算法將圖像生成和文本生成統(tǒng)一建模,增強模型的跨模態(tài)語義對齊能力,顯著提升圖文生成效果。
ERNIE-ViLG生成的不同風格的圖像如下:
利用AI技術生成圖片的最終目的是要便捷地為人類創(chuàng)造美的作品,激發(fā)人的想象力和創(chuàng)作力。在藝術創(chuàng)作、虛擬現(xiàn)實、圖像編輯、AI 輔助設計、虛擬數(shù)字人等領域,文心 ERNIE-ViLG 這類跨模態(tài)大模型有著廣泛的應用前景,也為這些領域未來的發(fā)展提供了無限的創(chuàng)意和可能。作為百度“文心”大模型全景圖中的重要一員,文心 ERNIE-ViLG 也代表著百度文心在跨模態(tài)大模型領域邁出堅實步伐,從技術自主創(chuàng)新和加速產(chǎn)業(yè)應用方面持續(xù)推動中國 AI 發(fā)展。
2.接口介紹
文心AI作畫API基于文心ERNIE-ViLG大模型,可根據(jù)用戶輸入的中文文本,自動創(chuàng)作圖片。
文心AI作畫涉及2個接口,分別為:提交請求、查詢結果。
- 提交請求:傳入文本、分辨率、風格參數(shù),創(chuàng)建ERNIE-ViLG AI作畫任務,獲得任務ID。
- 查詢結果:用于在任務創(chuàng)建后,查看圖片生成狀態(tài)。待圖片生成完畢,通過查詢接口即可查看生成圖片的地址鏈接。
該接口通過自定義豐富的修飾詞,生成不同風格、不同構圖、不同流派的圖片(每次可自定義生成1張至6張圖片)。
二.注冊賬號并獲取API Key
進入:百度智能云并創(chuàng)建應用獲取API Key,Secret Key
1. 注冊百度智能云賬號
免費注冊登錄百度智能云賬號進入下圖界面,選擇右上角 “控制臺”模塊:
選擇“產(chǎn)品服務”中“人工之智能”模塊的“智能創(chuàng)作平臺”項目:
點擊領取免費的接口資源(根據(jù)要求實名認證后可獲?。?/p>
2. 獲取API
在“應用列表”中點擊“創(chuàng)建應用”,免費創(chuàng)建個人文本-圖像生成應用模塊:
創(chuàng)建成功的應用模塊如下,從中可以獲取個人應用模塊的API Key和Secret Key:
三.代碼實現(xiàn)
完整代碼
- 提交請求代碼
創(chuàng)建“提交請求”接口文件,并根據(jù)申請的個人API Key和Secret Key,以及自定義輸入的文本和參數(shù)信息,修改并運行以下代碼。(該代碼可得到圖片生成任務ID——“taskId”)
import requests
import json
API_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#輸入要生成的圖片數(shù)量,可選1~6張
})
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
#獲取Access Token
def 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()
- 查詢結果代碼
創(chuàng)建“查詢結果”接口文件,根據(jù)申請的個人API Key和Secret Key,以及“提交請求”代碼得到的圖片生成任務ID——“taskId”(有效期一個月),修改并運行以下代碼。(該代碼可得到最終生成的圖片)
import requests
import json
from io import BytesIO#BytesIO實現(xiàn)了在內(nèi)存中讀寫bytes
from PIL import Image
import os
API_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()
#發(fā)送請求獲取網(wǎng)頁內(nèi)容
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數(shù)量:",len(imgUrls))
#獲得圖片網(wǎng)址并將圖片保存到本地
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)#獲取圖片網(wǎng)址
image = Image.open(BytesIO(req.content))#在內(nèi)存中打開圖片
image.save(os.path.join('圖片保存路徑','{}.jpg'.format(i)), 'JPEG')
#獲取Access Token
def 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()
四.效果展示
- 運行“提交請求”代碼后,可以得到獲得任務ID——“taskId”:
文章來源:http://www.zghlxwxcb.cn/news/detail-438925.html
- 根據(jù)獲得的任務ID運行“查詢結果”代碼后即可得到最終生成的.jpg圖片:
參考鏈接:
https://zhuanlan.zhihu.com/p/600247099
https://zhuanlan.zhihu.com/p/455523289文章來源地址http://www.zghlxwxcb.cn/news/detail-438925.html
到了這里,關于調(diào)用百度文心AI作畫API實現(xiàn)中文-圖像跨模態(tài)生成的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!