阅读本文,您可以获取 Node.js SDK 文生图的接口调用示例,实现快速开发。
说明
本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。
调用接口前,请先完成 Node.js 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",
// [文生图系列模型](#使用说明)的接口的请求 JSON 字符串。
// 例如,使用[动漫 1.3.X-文生图/图生图](https://www.volcengine.com/docs/6791/1213131),则 ReqJson 需要取值为:
// {
// "req_key": "high_aes",
// "prompt": "千军万马",
// "model_version": "anime_v1",
// }
// note:您可忽略 return_url,该参数的取值并不会影响最终返回的结果图地址的类型。
ReqJson: {
"req_key": "high_aes",
"prompt": "千军万马",
"model_version": "anime_v1.3"
},
};
const res = await Client.GetCVAnimeGenerateImage(requestParam);
console.log("res", res);
} catch (err) {
console.error(err);
}
}