所有文章 > 日积月累 > 如何调用通义万相的 API
如何调用通义万相的 API

如何调用通义万相的 API

模型概览

通义万相 V2 版模型是一个广泛应用于图像生成的人工智能模型。该模型提供了多种版本,以满足不同的生成需求,包括速度和细节的平衡。通义万相官网提供了丰富的示例和使用体验。模型效果示意

模型版本概括:

  • wanx2.1-t2i-turbo:生成速度更快,适用于通用场景。
  • wanx2.1-t2i-plus:生成图像细节更丰富,适用于需要高度细节的场景。
  • wanx2.0-t2i-turbo:擅长质感人像与创意设计,性价比高。

前提条件

在开始调用通义万相的 API 之前,必须完成一些前期准备工作:

  1. API Key 获取:您需要访问阿里云控制台获取 API Key,并将其配置到环境变量中。
  2. SDK 安装:如需通过 SDK 进行调用,请先安装 DashScope SDK,支持 Python 和 Java 语言。

HTTP 调用简介

调用通义万相 API 可以通过 HTTP 协议进行异步操作,以下是调用过程的基本步骤。

创建任务

使用 HTTP POST 方法创建任务,发送请求并获取任务 ID。

curl -X POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis 
    -H 'X-DashScope-Async: enable' 
    -H "Authorization: Bearer $DASHSCOPE_API_KEY" 
    -H 'Content-Type: application/json' 
    -d '{
    "model": "wanx2.1-t2i-turbo",
    "input": {
        "prompt": "一间有着精致窗户的花店,漂亮的木质门,摆放着花朵"
    },
    "parameters": {
        "size": "1024*1024",
        "n": 1
    }
}'

查询任务结果

一旦任务创建成功,您可以通过任务 ID 查询生成的图像结果。

curl -X GET 
--header "Authorization: Bearer $DASHSCOPE_API_KEY" 
https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}

使用 SDK 调用

DashScope SDK 提供了更高层次的封装,支持同步和异步两种方式调用。

Python SDK 调用

Python SDK 提供了便捷的接口,以下是一个简单的同步调用示例:

from dashscope import ImageSynthesis
import os

prompt = "一间有着精致窗户的花店,漂亮的木质门,摆放着花朵"

rsp = ImageSynthesis.call(api_key=os.getenv("DASHSCOPE_API_KEY"),
                          model="wanx2.1-t2i-turbo",
                          prompt=prompt,
                          n=1,
                          size='1024*1024')

for result in rsp.output.results:
    print('Image URL:', result.url)

Java SDK 调用

Java SDK 提供了类似的功能,以下是一个异步调用示例:

import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisParam;

public class Main {
    public void asyncCall() {
        ImageSynthesisParam param = ImageSynthesisParam.builder()
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("wanx2.1-t2i-turbo")
                .prompt("一间有着精致窗户的花店,漂亮的木质门,摆放着花朵")
                .n(1)
                .size("1024*1024")
                .build();

        ImageSynthesis imageSynthesis = new ImageSynthesis();
        imageSynthesis.asyncCall(param);
    }
}

常见问题 (FAQ)

FAQ

  1. 问:如何获取 API Key?

    • 答:请访问阿里云控制台,按照文档说明创建并获取 API Key。
  2. 问:通义万相 API 支持同步调用吗?

    • 答:HTTP 调用仅支持异步获取结果,但通过 SDK 可以实现同步调用。
  3. 问:调用 API 时出现超时错误怎么办?

    • 答:由于图像生成时间较长,建议使用异步调用方式,并检查网络连接稳定性。
  4. 问:如何解决“Invalid API-key provided”错误?

    • 答:请确保 API Key 配置正确,且在请求头中正确传递。
  5. 问:生成的图像链接如何访问?

    • 答:生成的图像存储在阿里云 OSS 中,OSS 链接允许公开访问,您可以通过链接查看或下载图像。

通过本文的详细介绍,您现在应该对如何使用通义万相的 API 有了清晰的理解,并能够在您的项目中有效地集成和调用这些功能。

#你可能也喜欢这些API文章!