AI学习:生成图片/图片风格重绘/背景图生成 -通义万相

文本生成图片

根据用户输入的文字内容,生成符合语义描述的不同风格的图像,支持中英文双语输入。
当前模型支持的风格包括但不限于:

  • 水彩
  • 油画
  • 中国画
  • 素描
  • 扁平插
  • 二次元
  • 3D卡通

模型概览

模型名模型简介
wanx-v1通义万相-文本生成图像大模型,支持中英文双语输入,重点风格包括但不限于水彩、油画、中国画、素描、扁平插画、二次元、3D卡通

SDK使用

前提条件

设置API-KEY

export DASHSCOPE_API_KEY=YOUR_DASHSCOPE_API_KEY

同步调用

from http import HTTPStatus
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
import requests
from dashscope import ImageSynthesis


def simple_call():
    prompt = 'Mouse rides elephant'
    rsp = ImageSynthesis.call(model=ImageSynthesis.Models.wanx_v1,
                              prompt=prompt,
                              n=4,
                              size='1024*1024')
    if rsp.status_code == HTTPStatus.OK:
        print(rsp.output)
        print(rsp.usage)
        # save file to current directory
        for result in rsp.output.results:
            file_name = PurePosixPath(unquote(urlparse(result.url).path)).parts[-1]
            with open('./%s' % file_name, 'wb+') as f:
                f.write(requests.get(result.url).content)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))


if __name__ == '__main__':
    simple_call()
{"task_id": "5e91752a-69bb-42d5-9881-0e436936ecfa", "task_status": "SUCCEEDED", "results": [{"url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/1d/86/20231214/8d820c8d/cb25cb45-352d-4a47-a171-37e5d648ddcd-1.png?Expires=1702624876&OSSAccessKeyId=LTAI5tQZd8AEcZX6KZV4G8qL&Signature=vzikxqBcu8CZbnzaU8RMgsUVcTo%3D"}, {"url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/1d/c9/20231214/8d820c8d/da6237bd-31a0-4958-8d84-64015f3cf487-1.png?Expires=1702624876&OSSAccessKeyId=LTAI5tQZd8AEcZX6KZV4G8qL&Signature=XaKkftm6mTFD8QXthVL0UrzQfus%3D"}, {"url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/1d/8a/20231214/8d820c8d/c925ba50-6f1c-4830-8997-9b295120a371-1.png?Expires=1702624876&OSSAccessKeyId=LTAI5tQZd8AEcZX6KZV4G8qL&Signature=GaCHjAklGZwB7lbP66M%2FgdC2cSQ%3D"}, {"url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/1d/81/20231214/723609ee/af60f086-6067-4529-8caf-dd182811033a-1.png?Expires=1702624876&OSSAccessKeyId=LTAI5tQZd8AEcZX6KZV4G8qL&Signature=CICXRun%2FLsyaGCw6AAxMM4iRGF8%3D"}], "submit_time": "2023-12-14 15:20:49.516", "scheduled_time": "2023-12-14 15:20:49.536", "end_time": "2023-12-14 15:21:18.312", "task_metrics": {"TOTAL": 4, "SUCCEEDED": 4, "FAILED": 0}}
{"image_count": 4}

参数说明

参数类型默认值说明
modelstring指定模型名,目前仅支持 wanx-v1
promptstring用户当前输入的期望模型执行指令
nint期望生成的图片数量,目前限制最多生成4张
sizestring1024*1024生成的图片的规格

返回结果

{
    "status_code": 200,
    "request_id": "b54ffeb8-6212-9dac-808c-b3771cba3788",
    "code": null,
    "message": "",
    "output": {
        "task_id": "996523eb-034d-459b-ac88-b340b95007a4",
        "task_status": "SUCCEEDED",
        "results": [
            {
                "url": "RESULT_URL1"
            },
            {
                "url": "RESULT_URL2"
            },
            {
                "url": "RESULT_URL3"
            },
            {
                "url": "RESULT_URL4"
            }
        ],
        "task_metrics": {
            "TOTAL": 4,
            "SUCCEEDED": 4,
            "FAILED": 0
        }
    },
    "usage": {
        "image_count": 4
    }
}

返回参数说明

返回参数类型说明
status_codeint200(HTTPStatus.OK)表示请求成功,否则表示请求失败,可以通过code获取错误码,通过message字段获取错误详细信息。
request_Idstring系统生成的标志本次调用的id。
codestring表示请求失败,表示错误码,成功忽略。
messagestring失败,表示失败详细信息,成功忽略。
outputdict调用结果信息,对于千问模型,包含输出text。
task_idstring异步任务id。
task_statusstring任务状态SUCCESSED: 任务执行成功、FAILED: 任务执行失败、CANCELED: 任务被取消、PENDING:任务排队中、SUSPENDED:任务挂起、RUNNING:任务处理中
resultslist生成结果,每个元素为生成图片的url
task_metricsdict任务结果信息,TOTAL期望生成数量,SUCCEEDED成功生成数量,FAILED失败数量
usagedictimage_count用于计量的图片个数

异步调用

from http import HTTPStatus

from dashscope import ImageSynthesis


# 创建异步任务
def create_async_task():
    rsp = ImageSynthesis.async_call(model=ImageSynthesis.Models.wanx_v1,
                                    prompt='Eagle flying in blue sky',
                                    n=4,
                                    size='1024*1024')
    print(rsp)
    if rsp.status_code == HTTPStatus.OK:
        print(rsp.output)
        print(rsp.usage)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))
    return rsp


# 获取异步任务信息
def fetch_task_status(task):
    status = ImageSynthesis.fetch(task)
    print(status)
    if status.status_code == HTTPStatus.OK:
        print(status.output.task_status)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (status.status_code, status.code, status.message))


# 等待异步任务结束
def wait_task(task):
    rsp = ImageSynthesis.wait(task)
    print(rsp)
    if rsp.status_code == HTTPStatus.OK:
        print(rsp.output.task_status)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))


# 取消异步任务,只有处于PENDING状态的任务才可以取消
def cancel_task(task):
    rsp = ImageSynthesis.cancel(task)
    print(rsp)
    if rsp.status_code == HTTPStatus.OK:
        print(rsp.output.task_status)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))


if __name__ == '__main__':
    task_info = create_async_task()
    fetch_task_status(task_info)
    wait_task(task_info)

异步任务输出

{
    "status_code": 200,
    "request_id": "814762c1-6565-917d-9f6b-bcfa1cc26117",
    "code": "",
    "message": "",
    "output": {
        "task_id": "ea06d3c3-15fa-4487-aee5-348392f4fdcd", # 任务ID
        "task_status": "PENDING", # 任务状态
        "results": []
    },
    "usage": null
}

任务信息输出

{
    "status_code": 200,
    "request_id": "d8811fd1-fc33-9a64-90d8-69cd94051239",
    "code": null,
    "message": "",
    "output": {
        "task_id": "4257e084-30ce-46f1-8f59-5d4d8b3807ec",
        "task_status": "RUNNING",
        "results": [],
        "task_metrics": {
            "TOTAL": 4,
            "SUCCEEDED": 0,
            "FAILED": 0
        }
    },
    "usage": null
}

HTTP调用接口

具体参考

人像风格重绘API详情

通义万相-人像风格重绘 可以将输入的人物图像进行多种风格化的重绘生成,使新生成的图像在兼顾原始人物相貌的同时,带来不同风格的绘画效果。当前支持的风格有:复古漫画、3D童话、二次元、小清新、未来科技、3D写实等。

示意图

在这里插入图片描述

模型概述

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值