
DeepSeek Janus-Pro 应用代码与图片链接实践
百度文心 ERNIE-ViLG 是一款强大的跨模态 AI 绘画大模型,能够通过输入的文本生成多种风格的图像。本文将详细介绍百度文心 ERNIE-ViLG API 的功能、实现及其在 AI 绘画领域的应用。我们将深入探讨该技术的技术背景、接口使用方法、注册步骤、代码实现、实验结果以及应用前景,并提供一系列常见问题解答。
ERNIE-ViLG 是一个大规模的中文跨模态生成模型,其参数规模达到 100 亿。该模型首次通过自回归算法将图像生成和文本生成统一建模,增强模型的跨模态语义对齐能力,显著提升图文生成效果。这种统一建模的方式不仅提高了图像生成的质量,还实现了文本与图像之间的无缝转换。
文心 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 作画支持哪些风格的图像生成?
问:生成的图像质量如何?
问:如何获取更多的接口调用次数?