You need to enable JavaScript to run this app.
导航
ImageX-豆包 AIGC(智能生图)
最近更新时间:2024.11.15 11:10:16首次发布时间:2024.11.15 11:10:16

阅读本文,您可以获取 NodeJs SDK 文生图的接口调用示例,实现快速开发。

说明

本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。

调用说明

  • 本文提供的接口调用示例均通过 AK 和 SK 初始化实例。

  • 接口的参数说明和错误码等信息可通过接口文档查看。

前提条件

调用接口前,请先完成 NodeJs SDK 的安装及初始化操作。

调用示例

本节为您介绍文生图相关接口的功能和调用示例。

文生图

您可以调用 GetCVTextGenerateImage 接口文生图。详细的参数说明可参见 GetCVTextGenerateImage 接口文档。

接口调用示例如下所示。

import { imagex } from "@volcengine/openapi";

export async function GetCVTextGenerateImageDemo() {
  try {
    const Client = new imagex.ImageXService({
      // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
      // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
      accessKeyId: process.env.VOLC_ACCESSKEY,
      secretKey: process.env.VOLC_SECRETKEY,
    });

    const requestParam = {
      // 指定存储结果图并计量计费的服务 ID。
      // <li> 您可以在 veImageX 控制台 [服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取服务 ID。 </li>
      // <li> 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考[获取所有服务信息](https://www.volcengine.com/docs/508/9360)。 </li>
      ServiceId: "serviceid",
      // 服务下绑定的域名,域名状态需正常可用。
      // <li> 您可以在 veImageX 控制台 [服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取绑定的域名信息。 </li>
      // <li> 您也可以通过 OpenAPI 的方式获取域名,具体请参考[获取服务下全部域名](https://www.volcengine.com/docs/508/9379)。 </li>
      Domain: "test.example.com",
      // 服务下创建的图片处理模板名称,指定后,将按照模板中的处理配置对豆包大模型生成的图片进行图片处理。
      // 您可在 veImageX 控制台的处理配置页面,参考[新建模板](https://www.volcengine.com/docs/508/8087)配置模板并获取模版名称,例如 tplv-f0****5k-test。
      Template: "tplv-serviceid-test",
      // 是否覆盖服务下同名文件,取值如下所示:
      // <li> false:(默认)不覆盖 </li>
      // <li> true:覆盖 </li>
      // note:
      // 请确保您已开启[重名覆盖上传](https://www.volcengine.com/docs/508/1119912)功能,否则,此处配置无效。
      Overwrite: true,
      // 在[文生图系列模型](#使用说明)中选择一个本次调用的智能生图模型,并并传入该模型对应接口的 Version 名称。
      // 例如,使用[通用 2.0S-文生图异步](https://www.volcengine.com/docs/6791/1347773),则 ModelVersion 需要取值为 2022-08-31。
      ModelVersion: "2022-08-31",
      // 在[文生图系列模型](#使用说明)中选择一个本次调用的智能生图模型,并并传入该模型对应接口的 Action 名称。
      // 例如,使用[通用 2.0S-文生图异步](https://www.volcengine.com/docs/6791/1347773),则 ModelAction 需要取值为 CVSync2AsyncSubmitTask。
      ModelAction: "CVProcess",
      // 指定输出图片的文件名,输入限制如下所示:
      // <li> 数组长度为 1,若指定多个文件名,仅第一个取值生效。 </li>
      // <li> 不支持空格。 </li>
      // <li> 不支持以/开头或结尾,不支持/连续出现,最大长度限制为 180 个字节。 </li>
      Outputs: ["AI/demo.png"],
    };

    const res = await Client.GetCVTextGenerateImage(requestParam);
    console.log("res", res);
  } catch (err) {
    console.error(err);
  }
}

文生图(异步)

创建文生图异步任务

您可以调用 CreateCVImageGenerateTask 接口创建文生图异步任务。详细的参数说明可参见 CreateCVImageGenerateTask 接口文档。

接口调用示例如下所示。

import { imagex } from "@volcengine/openapi";

export async function CreateCVImageGenerateTaskDemo() {
  try {
    const Client = new imagex.ImageXService({
      // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
      // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
      accessKeyId: process.env.VOLC_ACCESSKEY,
      secretKey: process.env.VOLC_SECRETKEY,
    });

    const requestParam = {
      // 指定存储结果图并计量计费的服务 ID。
      // <li> 您可以在 veImageX 控制台 [服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取服务 ID。 </li>
      // <li> 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考[获取所有服务信息](https://www.volcengine.com/docs/508/9360)。 </li>
      ServiceId: "serviceid",
      // 服务下绑定的域名,域名状态需正常可用。
      // <li> 您可以在 veImageX 控制台 [服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取绑定的域名信息。 </li>
      // <li> 您也可以通过 OpenAPI 的方式获取域名,具体请参考[获取服务下全部域名](https://www.volcengine.com/docs/508/9379)。 </li>
      Domain: "domain.test.com",
      // 服务下创建的图片处理模板名称,指定后,将按照模板中的处理配置对生成的原始图片进行图片处理。
      // 您可在 veImageX 控制台的处理配置页面,参考[新建模板](https://www.volcengine.com/docs/508/8087)配置模板并获取模版名称,例如 tplv-f0****5k-test。
      Template: "tplv-serviceid-test",
      // 是否覆盖服务下同名文件,取值如下所示:
      // <li> false:(默认)不覆盖 </li>
      // <li> true:覆盖 </li>
      // note:
      // 请确保您已开启[重名覆盖上传](https://www.volcengine.com/docs/508/1119912)功能,否则,此处配置无效。
      Overwrite: true,
      // [文生图系列模型](#使用说明)的接口 Action 名称。
      // 例如,使用[通用 2.0S-文生图异步](https://www.volcengine.com/docs/6791/1347773),则 ModelAction 需要取值为 CVSync2AsyncSubmitTask。
      ModelAction: "CVSync2AsyncSubmitTask",
      // [文生图系列模型](#使用说明)的接口 Version 名称。
      // 例如,使用[通用 2.0S-文生图异步](https://www.volcengine.com/docs/6791/1347773),则 ModelVersion 需要取值为 2022-08-31。
      ModelVersion: "2022-08-31",
    };

    const res = await Client.CreateCVImageGenerateTask(requestParam);
    console.log("res", res);
  } catch (err) {
    console.error(err);
  }
}

查询文生图异步任务

您可以调用 GetCVImageGenerateTask 接口查询文生图异步任务。详细的参数说明可参见 GetCVImageGenerateTask 接口文档。

接口调用示例如下所示。

import { imagex } from "@volcengine/openapi";

export async function GetCVImageGenerateTaskDemo() {
  try {
    const Client = new imagex.ImageXService({
      // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
      // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
      accessKeyId: process.env.VOLC_ACCESSKEY,
      secretKey: process.env.VOLC_SECRETKEY,
    });

    const requestParam = {
      // 指定要查询的服务 ID。
      ServiceId: "serviceid",
      // 指定文生图异步任务的任务 ID。
      TaskId: "7418048504813240370",
      // 创建文生图任务时,使用的[文生图系列模型](#使用说明)的接口 Action 名称。
      // 例如,使用[查询通用 2.0L-文生图异步任务](https://www.volcengine.com/docs/6791/1359424#%E6%9F%A5%E8%AF%A2%E4%BB%BB%E5%8A%A1),则 ModelAction 需要取值为 CVSync2AsyncGetResult。
      ModelAction: "CVSync2AsyncSubmitTask",
      // 创建文生图任务时,使用的[文生图系列模型](#使用说明)的接口 Version 名称。
      // 例如,使用[查询通用 2.0L-文生图异步任务](https://www.volcengine.com/docs/6791/1359424#%E6%9F%A5%E8%AF%A2%E4%BB%BB%E5%8A%A1),则 ModelVersion 需要取值为 2022-08-31。
      ModelVersion: "2022-08-31",
    };

    const res = await Client.GetCVImageGenerateTask(requestParam);
    console.log("res", res);
  } catch (err) {
    console.error(err);
  }
}

图生图

您可以调用 GetCVImageGenerateResult 接口图生图。详细的参数说明可参见 GetCVImageGenerateResult 接口文档。

接口调用示例如下所示。

import { imagex } from "@volcengine/openapi";

export async function GetCVImageGenerateResultDemo() {
  try {
    const Client = new imagex.ImageXService({
      // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
      // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
      accessKeyId: process.env.VOLC_ACCESSKEY,
      secretKey: process.env.VOLC_SECRETKEY,
    });

    const requestParam = {
      // 指定存储结果图并计量计费的服务 ID。
      // <li> 您可以在 veImageX 控制台 [服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取服务 ID。 </li>
      // <li> 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考[获取所有服务信息](https://www.volcengine.com/docs/508/9360)。 </li>
      ServiceId: "serviceid",
      // 服务下绑定的域名,域名状态需正常可用。
      // <li> 您可以在 veImageX 控制台 [服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取绑定的域名信息。 </li>
      // <li> 您也可以通过 OpenAPI 的方式获取域名,具体请参考[获取服务下全部域名](https://www.volcengine.com/docs/508/9379)。 </li>
      Domain: "test.example.com",
      // 服务下创建的图片处理模板名称,指定后,将按照模板中的处理配置对豆包大模型生成的图片进行图片处理。
      // 您可在 veImageX 控制台的处理配置页面,参考[新建模板](https://www.volcengine.com/docs/508/8087)配置模板并获取模版名称,例如 tplv-f0****5k-test。
      Template: "tplv-serviceid-test",
      // 指定输出图片的文件名,输入限制如下所示:
      // <li> 数组长度为 1,若指定多个文件名,仅第一个取值生效。 </li>
      // <li> 不支持空格。 </li>
      // <li> 不支持以/开头或结尾,不支持/连续出现,最大长度限制为 180 个字节。 </li>
      Outputs: ["AI/demo.png"],
      // 是否覆盖服务下同名文件,取值如下所示:
      // <li> true:覆盖 </li>
      // <li> false:(默认)不覆盖 </li>
      // note:
      // 请确保您已开启[重名覆盖上传](https://www.volcengine.com/docs/508/1119912)功能,否则,此处配置无效。
      Overwrite: true,
      // [通用 XL pro-图生图](https://www.volcengine.com/docs/6791/1330203)模型接口的 Action 名称,即 Img2ImgXLSft。
      ModelAction: "Img2ImgXLSft",
      // [通用 XL pro-图生图](https://www.volcengine.com/docs/6791/1330203)模型接口的 Version 名称,即 2022-08-31。
      ModelVersion: "2022-08-31",
      // 基于该图片智能生图,支持传入该服务下的图片存储 URI 或公网访问 URL。图片输入限制如下所示:
      // 1. 图片格式:JPG(JPEG)、PNG、BMP 等常见格式,建议使用 JPG 格式。
      // 2. 图片要求:图片体积小于 5MB,分辨率小于 4096*4096,宽高均尽可能在 1024 左右。宽高比例不建议过于极端,否则出图效果不佳,且延迟过长的概率也会显著增加。输出图片宽高与输入图一致。
      // note:
      // 指定 ImageUrl 后,ReqJson 中指定的图片地址无效。
      ImageUrl: "http://app1.cpm/example.jpg",
    };

    const res = await Client.GetCVImageGenerateResult(requestParam);
    console.log("res", res);
  } catch (err) {
    console.error(err);
  }
}

漫画版-文生图/图生图

您可以调用 GetCVAnimeGenerateImage 接口漫画版。详细的参数说明可参见 GetCVAnimeGenerateImage 接口文档。

接口调用示例如下所示。

import { imagex } from "@volcengine/openapi";

export async function GetCVAnimeGenerateImageDemo() {
  try {
    const Client = new imagex.ImageXService({
      // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
      // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
      accessKeyId: process.env.VOLC_ACCESSKEY,
      secretKey: process.env.VOLC_SECRETKEY,
    });

    const requestParam = {
      // 指定存储结果图并计量计费的服务 ID。
      // <li> 您可以在 veImageX 控制台 [服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取服务 ID。 </li>
      // <li> 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考[获取所有服务信息](https://www.volcengine.com/docs/508/9360)。 </li>
      ServiceId: "serviceid",
      // 服务下绑定的域名,域名状态需正常可用。
      // <li> 您可以在 veImageX 控制台 [服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取绑定的域名信息。 </li>
      // <li> 您也可以通过 OpenAPI 的方式获取域名,具体请参考[获取服务下全部域名](https://www.volcengine.com/docs/508/9379)。 </li>
      Domain: "test.example.com",
      // 服务下创建的图片处理模板名称,指定后,将按照模板中的处理配置对豆包大模型生成的图片进行图片处理。
      // 您可在 veImageX 控制台的处理配置页面,参考[新建模板](https://www.volcengine.com/docs/508/8087)配置模板并获取模版名称,例如 tplv-f0****5k-test。
      Template: "tplv-serviceid-test",
      // 指定输出图片的文件名,输入限制如下所示:
      // <li> 数组长度为 1,若指定多个文件名,仅第一个取值生效。 </li>
      // <li> 不支持空格。 </li>
      // <li> 不支持以/开头或结尾,不支持/连续出现,最大长度限制为 180 个字节。 </li>
      Outputs: ["AI/demo.png"],
      // 是否覆盖服务下同名文件,取值如下所示:
      // <li> false:(默认)不覆盖 </li>
      // <li> true:覆盖 </li>
      // note:
      // 请确保您已开启[重名覆盖上传](https://www.volcengine.com/docs/508/1119912)功能,否则,此处配置无效。
      Overwrite: true,
      // [文生图系列模型](#使用说明)的接口 Action 名称。
      // 例如,使用[动漫 1.3.X-文生图/图生图](https://www.volcengine.com/docs/6791/1213131),则 ModelAction 需要取值为 CVProcess。
      ModelAction: "CVProcess",
      // [文生图系列模型](#使用说明)的接口 Version 名称。
      // 例如,使用[动漫 1.3.X-文生图/图生图](https://www.volcengine.com/docs/6791/1213131),则 ModelVersion 需要取值为 2022-08-31。
      ModelVersion: "2022-08-31",
    };

    const res = await Client.GetCVAnimeGenerateImage(requestParam);
    console.log("res", res);
  } catch (err) {
    console.error(err);
  }
}