所有文章 > 日积月累 > 百度文心 ERNIE-ViLG API 文生图的深度解析
百度文心 ERNIE-ViLG API 文生图的深度解析

百度文心 ERNIE-ViLG API 文生图的深度解析

百度文心 ERNIE-ViLG 是一款强大的跨模态 AI 绘画大模型,能够通过输入的文本生成多种风格的图像。本文将详细介绍百度文心 ERNIE-ViLG API 的功能、实现及其在 AI 绘画领域的应用。我们将深入探讨该技术的技术背景、接口使用方法、注册步骤、代码实现、实验结果以及应用前景,并提供一系列常见问题解答。

文心AI作画API的工作原理

文心AI作画的核心技术

ERNIE-ViLG 是一个大规模的中文跨模态生成模型,其参数规模达到 100 亿。该模型首次通过自回归算法将图像生成和文本生成统一建模,增强模型的跨模态语义对齐能力,显著提升图文生成效果。这种统一建模的方式不仅提高了图像生成的质量,还实现了文本与图像之间的无缝转换。

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

文心 AI 作画的最终目的是通过 AI 技术便捷地为人类创造美的作品,激发人的想象力和创作力。其在艺术创作、虚拟现实、图像编辑、AI 辅助设计、虚拟数字人等领域有着广泛的应用前景,也为这些领域未来的发展提供了无限的创意和可能。

文心AI作画API的接口说明

文心AI作画API基于 ERNIE-ViLG 大模型,可根据用户输入的中文文本自动创作图片。该 API 涉及两个主要接口:提交请求和查询结果。提交请求接口允许用户传入文本、分辨率、风格参数来创建作画任务,并返回任务 ID。查询结果接口用于查看图片生成状态,并在任务完成后获取生成图片的地址链接。

如何注册并获取API Key

注册百度智能云账号

要使用文心AI作画API,首先需要注册一个百度智能云账号。在注册完成并登录后,进入“控制台”模块,然后选择“产品服务”中的“人工智能”模块,找到“智能创作平台”项目,点击领取免费的接口资源。

在这里插入图片描述

获取API Key和Secret Key

在“应用列表”中,创建一个新的应用以获取个人的 API Key 和 Secret Key。这些密钥将用于在代码中进行 API 访问的身份验证。

在这里插入图片描述

实现文心AI作画的代码示例

提交请求的代码实现

下面的代码展示了如何创建“提交请求”接口文件,并根据申请的 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()

文心AI作画的实验与效果展示

实验环境与实施细节

百度 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 作画能够通过输入的文本生成多种风格的图像,这在艺术创作领域具有巨大潜力。艺术家可以借助这一技术工具,快速生成创意作品,实现从文本到图像的高效转化。

在虚拟现实中的应用

在虚拟现实领域,文心 AI 作画提供了一种便捷的图像生成方式。通过输入描述性文本,开发者可以快速生成逼真的虚拟场景,提升虚拟现实的沉浸感和交互性。

FAQ

  1. 问:如何使用百度文心 ERNIE-ViLG API 生成图像?

    • 答:首先需要注册百度智能云账号,获取 API Key 和 Secret Key,然后通过提交请求接口传入描述性文本、分辨率和风格参数,最后使用查询结果接口获取生成的图像链接。
  2. 问:生成的图像是否可以商用?

    • 答:是否可以商用需要根据百度智能云的服务条款和相关法律法规进行评估,建议在使用前咨询法律意见。
  3. 问:文心 AI 作画支持哪些风格的图像生成?

    • 答:文心 AI 作画支持多种风格的图像生成,包括古风、二次元、写实风格、浮世绘、未来主义、赛博朋克等。
  4. 问:生成的图像质量如何?

    • 答:文心 AI 作画生成的图像质量在 MS-COCO 数据集上的表现优于 DALL-E 2 和 Stable Diffusion,实验和人为评估均显示其效果出色。
  5. 问:如何获取更多的接口调用次数?

    • 答:可以通过百度智能云官网申请更高的服务套餐,增加接口调用次数。
#你可能也喜欢这些API文章!