宠物写真(猫狗换装)API 技术解析:接入流程、参数设计与异步轮询实践

简介: 本文介绍宠物写真(猫狗换装)接口的接入方法。该接口基于人工智能图像生成,接收宠物原图后套用指定风格输出拟人化写真,采用「创建任务 + 轮询查询」的异步调用模式。文章覆盖接口能力、请求与查询参数、多语言调用示例、返回结构、调用限制、能力边界、错误码排查与常见问题,适用于宠物内容创作、社交素材生成与批量视觉生产等场景。频率、配额与返回字段以控制台实时配置为准。

宠物写真(猫狗换装)API 接入技术教程

1. 技术简介

宠物写真(猫狗换装)是一项基于人工智能图像生成的接口能力。接口接收一张宠物原图,通过视觉特征提取、提示词构建与图生图渲染,输出保留宠物本体特征、并套用指定服饰风格的拟人化高清写真图片。接口采用「创建任务 + 轮询查询」的异步调用模式:先提交生成任务拿到任务标识,再周期性查询任务状态,任务完成后从返回结构中获取写真图片地址。该能力适用于宠物内容创作、社交分享素材生成、宠物周边与 IP 视觉生产等需要批量、可控产出宠物写真的技术场景。

2. 能力概览

能力 说明 适用情形
特征保持生成 识别宠物种类、毛色与神态,在换装同时尽量保留本体特征 需要「认得出是同一只宠物」的写真产出
多风格套用 内置古风汉服、凤冠霞帔、西式婚纱、西装礼服、新中式国潮、日系清新、复古港风、可爱童趣、暗黑高级、森系治愈等风格 单张原图衍生多种人格设定与视觉
宽高比适配 支持 1:1、3:4、4:3、16:9、9:16 多种比例 头像、朋友圈、海报等不同版式直接使用
异步任务 提交后不阻塞,轮询获取结果 批量提交、内容生产流水线对接

3. 适用场景

  • 宠物 IP 与周边视觉:为宠物形象统一生成特定风格的视觉素材,用于头像、表情包、周边设计。
  • 社交分享素材:将日常宠物照片转为特定主题写真,作为社媒内容素材。
  • 内容生产流水线:在需要周期性产出宠物主题图片的业务中,以原图批量提交、轮询回收的方式接入。
  • 技术验证与联调:在接入业务系统前,通过在线调试模块验证参数与返回结构。

图1:应用场景示意

上述场景仅描述技术用途与数据流向,不涉及业务收益或量化指标。

4. 接入流程

图2:风格与能力概览

接入分为三步:

  1. 准备原图:提供一张清晰、正脸/半身、无遮挡的宠物图片,可为公网可访问的 URL 或 Base64 编码字符串。
  2. 创建任务:以 POST 调用创建接口,在请求体中传入风格、宽高比与原图,接口返回任务标识 task_id
  3. 轮询查询:以 GET 调用查询接口并携带 task_id,周期性查询直到任务完成,从返回结构中取回写真图片地址。

图3:接入调用流程

创建任务请求参数

参数 类型 必填 说明
style_type string 写真风格,可选:古风汉服、凤冠霞帔、西式婚纱、西装礼服、新中式国潮、日系清新、复古港风、可爱童趣、暗黑高级、森系治愈
pet_image string 待处理宠物原图,支持 URL 或 Base64 编码,建议正脸/半身清晰无遮挡
aspect_ratio string 生图宽高比,可选 1:1、3:4、4:3、16:9、9:16,默认 1:1

查询任务请求参数

参数 类型 必填 说明
task_id string 创建任务返回的任务标识

5. 调用示例与返回结构

以下示例中的接入地址来自云市场商品页给出的网关地址,鉴权统一使用 APPCODE

创建任务(POST)

POST /skills_petportrait/create HTTP/1.1
Host: petphoto.market.alicloudapi.com
Authorization: APPCODE <appcode>
Content-Type: application/json

{
  "style_type": "古风汉服",
  "aspect_ratio": "1:1",
  "pet_image": "https://example.com/pet.jpg"
}

查询任务(GET)

GET /skills_petportrait/query?task_id=pp_20260903_a1b2c3d4 HTTP/1.1
Host: petphoto.market.alicloudapi.com
Authorization: APPCODE <appcode>

返回结构示例(JSON)

创建任务返回:

{
   
  "ret_code": 0,
  "task_id": "pp_20260903_a1b2c3d4",
  "msg": "任务创建成功"
}

查询任务返回(任务完成时):

{
   
  "ret_code": 0,
  "task_status": "done",
  "flow_result": {
   
    "output": {
   
      "image_url": "https://example.com/result/portrait_pp_20260903_a1b2c3d4.png"
    }
  }
}

字段取值以云市场商品页接口文档与控制台实时配置为准;不同资源包下返回字段可能存在差异。

图4:返回结构字段示意

Python 示例

import requests

APPCODE = "<appcode>"
HOST = "https://petphoto.market.alicloudapi.com"

# 1. 创建任务
create = requests.post(
    f"{HOST}/skills_petportrait/create",
    headers={
   "Authorization": f"APPCODE {APPCODE}", "Content-Type": "application/json"},
    json={
   
        "style_type": "古风汉服",
        "aspect_ratio": "1:1",
        "pet_image": "https://example.com/pet.jpg",
    },
    timeout=30,
)
task_id = create.json().get("task_id")

# 2. 轮询查询
import time
for _ in range(30):
    q = requests.get(
        f"{HOST}/skills_petportrait/query",
        headers={
   "Authorization": f"APPCODE {APPCODE}"},
        params={
   "task_id": task_id},
        timeout=30,
    ).json()
    if q.get("task_status") == "done":
        print(q["flow_result"]["output"]["image_url"])
        break
    time.sleep(3)

Java 示例

import java.net.http.*;
import java.net.URI;
import java.time.Duration;

public class PetPortrait {
   
    static final String APPCODE = "<appcode>";
    static final String HOST = "https://petphoto.market.alicloudapi.com";

    public static void main(String[] args) throws Exception {
   
        HttpClient client = HttpClient.newHttpClient();
        // 创建任务
        String body = "{\"style_type\":\"古风汉服\",\"aspect_ratio\":\"1:1\",\"pet_image\":\"https://example.com/pet.jpg\"}";
        HttpRequest create = HttpRequest.newBuilder()
                .uri(URI.create(HOST + "/skills_petportrait/create"))
                .header("Authorization", "APPCODE " + APPCODE)
                .header("Content-Type", "application/json")
                .POST(HttpRequest.BodyPublishers.ofString(body))
                .build();
        HttpResponse<String> r1 = client.send(create, HttpResponse.BodyHandlers.ofString());
        String taskId = extractTaskId(r1.body());
        // 轮询查询(省略循环细节)
    }

    static String extractTaskId(String json) {
    return ""; }
}

PHP 示例

<?php
$appcode = "<appcode>";
$host = "https://petphoto.market.alicloudapi.com";

// 创建任务
$ch = curl_init("$host/skills_petportrait/create");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => ["Authorization: APPCODE $appcode", "Content-Type: application/json"],
    CURLOPT_POSTFIELDS => json_encode([
        "style_type" => "古风汉服",
        "aspect_ratio" => "1:1",
        "pet_image" => "https://example.com/pet.jpg",
    ]),
    CURLOPT_RETURNTRANSFER => true,
]);
$create = json_decode(curl_exec($ch), true);
$taskId = $create["task_id"];

// 轮询查询
do {
   
    sleep(3);
    $q = curl_init("$host/skills_petportrait/query?task_id=" . urlencode($taskId));
    curl_setopt_array($q, [CURLOPT_HTTPHEADER => ["Authorization: APPCODE $appcode"], CURLOPT_RETURNTRANSFER => true]);
    $resp = json_decode(curl_exec($q), true);
} while (($resp["task_status"] ?? "") !== "done");
echo $resp["flow_result"]["output"]["image_url"];

Node.js 示例

const APPCODE = "<appcode>";
const HOST = "https://petphoto.market.alicloudapi.com";

// 创建任务
const createRes = await fetch(`${
     HOST}/skills_petportrait/create`, {
   
  method: "POST",
  headers: {
    Authorization: `APPCODE ${
     APPCODE}`, "Content-Type": "application/json" },
  body: JSON.stringify({
   
    style_type: "古风汉服",
    aspect_ratio: "1:1",
    pet_image: "https://example.com/pet.jpg",
  }),
});
const {
    task_id } = await createRes.json();

// 轮询查询
let url;
for (let i = 0; i < 30; i++) {
   
  const q = await fetch(`${
     HOST}/skills_petportrait/query?task_id=${
     task_id}`, {
   
    headers: {
    Authorization: `APPCODE ${
     APPCODE}` },
  }).then((r) => r.json());
  if (q.task_status === "done") {
    url = q.flow_result.output.image_url; break; }
  await new Promise((r) => setTimeout(r, 3000));
}
console.log(url);

6. 在线调试实录

图5:在线调试走查

在云市场商品页的 API 调试模块中,可按以下步骤完成一次联调:

  1. 选择操作「创建任务」,请求方式显示为 POST,调用地址为 /skills_petportrait/create
  2. 在请求体(Body)中填写 style_typeaspect_ratiopet_image 三个字段,其中 pet_image 填入一张公网可访问的宠物图片地址。
  3. 发起请求,接口返回 task_id
  4. 切换操作「查询结果」,请求方式显示为 GET,在查询参数中填入上一步的 task_id
  5. 发起查询,待 task_status 变为 done 后,从 flow_result.output.image_url 取回写真图片地址。

该走查用于确认参数格式与返回结构,与业务系统接入逻辑一致。调试中建议使用清晰、正脸、无遮挡的原图,以减少因原图不可解析导致的失败。

7. 接口调用限制与规范

  • 请求频率:建议单账户请求频率参考控制台实时配置;高频提交可能触发限流,返回 403。
  • 配额:每日可调用次数随账户资源包而定,以控制台实时配置为准;配额用尽后调用会被拒绝。
  • 批量规则:单次请求生成一张写真。需要批量产出时,建议串行或受限并发提交,并在每次创建后等待轮询完成,避免短时间内大量并发导致限流。
  • 原图要求:清晰、正脸/半身、无遮挡;支持 URL 与 Base64 两种传入方式。
  • 合规要求:传入的宠物图像须用于已获授权的用途,不得处理未授权的人像或隐私内容;上传图像按服务商声明处理,不应依赖其长期留存。

上述频率与配额为参考性描述,精确数值以控制台实时配置为准。

8. 能力边界与免责声明

支持

  • 面向猫狗宠物的原图换装写真生成。
  • 十余种内置风格的套用与多宽高比输出。
  • 异步任务模式,便于批量与流水线接入。

不支持

  • 直接以人像或非猫狗宠物作为换装主体。
  • 保证生成结果与某张指定参考图在构图、姿态上完全一致。
  • 实时流式返回;本接口采用异步轮询,需等待任务完成。

免责声明
生成结果由算法产出,仅供参考,不对生成内容的版权归属、与本体相似度及任何业务决策承担责任。接入方应确保传入图像与生成用途符合相关规范。

9. 错误码与排查指南

状态码 / ret_code 含义 排查办法
401 APPCODE 缺失或无效 检查 Authorization 请求头格式与 APPCODE 取值
400 参数错误 核对 style_typepet_imageaspect_ratio 的取值与格式
403 限流或配额不足 降低请求频率,确认账户资源余量
404 任务不存在 核对 task_id 是否正确、是否已超过留存期限
500 服务内部错误 稍后重试;持续出现以控制台说明为准
图片为空 / 解析超时 原图无法解析 更换清晰、正脸、无遮挡的原图后重试

图6:参数与错误码速查

10. 常见问题 FAQ

Q1:接口支持哪些宠物?
当前面向猫狗宠物。其他物种的换装效果不在支持范围内。

Q2:原图有什么要求?
建议提供清晰、正脸或半身、无遮挡的照片,支持公网 URL 与 Base64 编码两种传入方式。

Q3:怎么拿到生成的写真?
先调用创建接口拿到 task_id,再调用查询接口轮询,待 task_statusdone 时从 flow_result.output.image_url 取回图片地址。

Q4:宽高比怎么选?
按使用版式选择:头像用 1:1,朋友圈用 3:4,海报用 16:9,横版内容用 4:3 或 9:16。

Q5:一次能出几张?
单次请求生成一张写真。批量场景请循环提交并控制频率,避免限流。

Q6:返回的图片地址有效期?
以返回 URL 的有效期为准,建议及时下载保存到自有存储。

11. 内容小结

宠物写真(猫狗换装)接口以「创建任务 + 轮询查询」的异步模式工作:创建接口提交风格、宽高比与原图并返回 task_id,查询接口携带 task_id 轮询至完成并取回写真图片地址。接入时注意原图质量、请求频率与配额,并以控制台实时配置核对频率、配额与返回字段。生成结果由算法产出,仅供参考,接入方应自行确保图像授权与用途合规。

相关文章
|
20天前
|
人工智能 缓存 前端开发
DeepSeek Harness 首发实测 + 入门教程,夯爆了!梁神我错了
DeepSeek Harness + DeepSeek V4 Pro 项目实战保姆级教程!手把手带你从零安装开源 AI 编程工具,开发架构图、知识讲解网站、3D 网页游戏、全栈 AI 应用 4 个项目,覆盖运行模式选择、插件安装与开发,看看能不能对标 Claude。
13231 90
DeepSeek Harness 首发实测 + 入门教程,夯爆了!梁神我错了
|
8天前
|
人工智能 自然语言处理 安全
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
本文聚焦阿里云2026年推出的三款自研AI办公产品,清晰拆解千问办公、Qoder Teams、Qoder CN的差异化定位与能力边界:千问办公主打职场全场景提效,支持自然语言指令一键完成PPT生成、数据分析等高频办公任务;Qoder Teams面向程序员团队,深度整合AI代码生成、团队协同与企业知识库能力;Qoder CN则专为金融、政务等强合规场景打造,实现数据不出境与VPC私有化部署。文章同步给出分场景选型指南与最新活动定价,帮助不同类型的企业按需组合产品,实现业务岗、研发岗与强合规场景的AI能力全覆盖。
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
|
3天前
|
缓存 人工智能 API
阿里云Qwen3.8‑Flash完整能力解析:模型特性、API调用实操与计费规则深度拆解
在AI应用快速落地的当下,开发者与企业选型大模型API,不再只单纯关注评测榜单分数,推理速度、上下文长度、多模态能力、工具调用稳定性以及实际调用成本,共同决定项目能否平稳上线。Qwen3.8‑Flash作为新一代多模态混合专家模型,主打高性能推理与低成本开销,面向编程开发、智能Agent工作流、超长文档解析、图文混合理解等高频场景,提供托管API服务,权重同时开放可供本地部署,兼容主流接口协议,能够无缝接入各类开发工具链。很多开发者在接入过程中,容易混淆普通按量Token计费、缓存计费、各类订阅计划之间的差异,造成实际账单超出预估。本文从模型底层架构、核心功能能力、适用场景、API调用实操、完
801 0
|
13天前
|
Web App开发 人工智能 API
16 个超火的 DeepSeek Harness 插件,大肥鱼已经落后 N 个版本了。。。
DeepSeek Harness 精选插件推荐合集,从图片识别、浏览器操控、多 Agent 协作到手机远程控制,一口气带你看完 DSH 社区热门的十几个插件,覆盖技能扩展、UI 界面增强、整活玩法三大类,让你的鲸鱼变得更强。
1792 4
|
14天前
|
人工智能 Java BI
【AI】DeepSeek Harness 安装、运行、管理插件
本文介绍了如何运行DeepSeek开源的Agent框架DeepSeek Harness(dsh)。主要内容包括:使用nvm安装适配的Node版本;通过代理加速克隆GitHub源码;使用pnpm安装依赖并启动项目;配置DeepSeek API Token;安装扩展功能的插件。该框架自带Web界面,支持模型适配、文件编辑等插件化功能
1969 1
|
人工智能 JavaScript 开发工具
DeepSeek Harness 本地安装与使用指南
DeepSeek Harness(DSH)是DeepSeek AI开源的Agent运行框架,支持本地文件操作、命令执行与工具调用。基于Cordis插件架构,具备高扩展性与强可控性,适合开发者搭建可控Agent环境或开展模型基准测试。当前为开发者预览版,需Node.js环境,推荐先用`npx @deepseek-ai/dsh web`快速体验。
5230 0
|
9天前
|
人工智能 Linux iOS开发
Ollama使用教程:Ollama官网下载、Ollama本地部署大模型(2026最新)
Ollama 是一款免费开源的本地大模型运行工具,支持在 Windows/macOS/Linux 上离线运行 Qwen、DeepSeek、Llama 等主流开源模型,数据不出本机、隐私安全。提供 OpenAI 兼容 API,命令行一键拉取/运行/管理模型,无需联网,无调用限制,是开发者与 AI 爱好者部署本地 AI 助手的理想选择。(239 字)
|
16天前
|
人工智能 JavaScript 测试技术
保姆级教程:DeepSeek Harness从安装到跑通测试,30分钟上手
DeepSeek Harness是DeepSeek开源的AI Agent运行时,主打“一行命令安装、5分钟跑通”。它让模型真正动手干活——读代码、跑测试、分析失败、生成修复方案。本文手把手教你30分钟从零上手,覆盖安装、配置、实测及避坑指南,助你快速掌握下一代AI编程范式。
|
6天前
|
人工智能 监控 测试技术
Qwen3.8-Flash 来了,100万上下文、Agent、Coding 都加强了
8月26日,通义千问发布Qwen3.8-Flash-Next:125B参数、每Token仅激活6B,原生支持26万Token、可扩展至100万上下文;Coding、Agent与工具调用能力显著增强,面向真实软件工程任务,推动大模型从“回答问题”迈向“完成工作”。