
DeepSeek Janus-Pro 應用代碼與圖片鏈接實踐
文心 AI 作畫的最終目的是通過 AI 技術便捷地為人類創造美的作品,激發人的想象力和創作力。其在藝術創作、虛擬現實、圖像編輯、AI 輔助設計、虛擬數字人等領域有著廣泛的應用前景,也為這些領域未來的發展提供了無限的創意和可能。
文心AI作畫API基于 ERNIE-ViLG 大模型,可根據用戶輸入的中文文本自動創作圖片。該 API 涉及兩個主要接口:提交請求和查詢結果。提交請求接口允許用戶傳入文本、分辨率、風格參數來創建作畫任務,并返回任務 ID。查詢結果接口用于查看圖片生成狀態,并在任務完成后獲取生成圖片的地址鏈接。
要使用文心AI作畫API,首先需要注冊一個百度智能云賬號。在注冊完成并登錄后,進入“控制臺”模塊,然后選擇“產品服務”中的“人工智能”模塊,找到“智能創作平臺”項目,點擊領取免費的接口資源。
在“應用列表”中,創建一個新的應用以獲取個人的 API Key 和 Secret Key。這些密鑰將用于在代碼中進行 API 訪問的身份驗證。
下面的代碼展示了如何創建“提交請求”接口文件,并根據申請的 API Key 和 Secret Key,以及自定義輸入的文本和參數信息,獲取圖片生成任務 ID。
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#輸入要生成的圖片數量,可選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()
在獲取任務 ID 后,可以通過以下代碼查詢生成圖片的結果。
import requests
import json
from io import BytesIO#BytesIO實現了在內存中讀寫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()
#發送請求獲取網頁內容
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)
#獲得圖片網址并將圖片保存到本地
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 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()
百度 ERNIE-ViLG 2.0 的參數量為 24B,包括 1.3B 的文本編碼器和 10 個 2.2B 的混合降噪專家(U-Net)。訓練數據包括 1.70 億對圖片-文本數據。對于英文的文本,使用百度翻譯 API 直接翻譯成中文。
實驗結果顯示,ERNIE-ViLG 2.0 模型在 MS-COCO 數據集上的表現優于 DALL-E 2 和 Stable Diffusion。人為評估同樣顯示,ERNIE-ViLG 2.0 的生成效果更好。通過逐漸增加混合降噪專家的數量,模型在 10 個專家時效果最佳。
文心 AI 作畫能夠通過輸入的文本生成多種風格的圖像,這在藝術創作領域具有巨大潛力。藝術家可以借助這一技術工具,快速生成創意作品,實現從文本到圖像的高效轉化。
在虛擬現實領域,文心 AI 作畫提供了一種便捷的圖像生成方式。通過輸入描述性文本,開發者可以快速生成逼真的虛擬場景,提升虛擬現實的沉浸感和交互性。
問:如何使用百度文心 ERNIE-ViLG API 生成圖像?
問:生成的圖像是否可以商用?
問:文心 AI 作畫支持哪些風格的圖像生成?
問:生成的圖像質量如何?
問:如何獲取更多的接口調用次數?