简介
欢迎加入A1的开发者平台,共同探索AIGC的无限可能!
A1平台已经推出了超过2200+款app,包括漫画、多巴胺、3D迪士尼等多种头像风格,“芭比”、“原神”主题等各种AI人像应用,以及种类繁多的表情包、艺术字体等,都等着你去探索!
通过调用我们的API,您可以快速将生图app集成到您的应用程序或服务中,满足不同业务需求,提升用户体验和产品价值。
我们的平台特点包括:
多样化的生图应用:提供多种图像生成应用,满足不同场景的需求。
易于集成:通过简单的API调用,即可将强大的图像生成功能集成到您的项目中。
高效的性能:优化的算法和服务器架构,确保快速响应和高质量的图像输出。
灵活的定制:支持多种参数设置,满足个性化的图像生成需求。
无论您是想为您的用户提供个性化的图像生成服务,还是需要在内部系统中自动生成图像,我们的平台都能为您提供强大的支持。
API收费规则
API接口将为您生成无水印图,便于您将图片应用于个人业务中。每生成1张无水印图,将从您的账户中扣1个点数。
您可以通过订阅Basic、Pro、Mega版本获取点数,或直接联系我们讨论设置自定义计划。
请注意保持账号点数余额充足,以免调用失败影响您的业务正常使用
更多订阅相关内容请参阅
API提供什么能力
API目前提供4个接口:
基础介绍
访问授权
Prefix
https://a1.art
注:中国境内遇到备案问题可以尝试使用域名https://a1art.xiaopiu.com
请求规范说明
响应结果:JSON
数据格式。API 的响应体结构包含code、msg、msg_cn、data
四个部分。code
为错误码,msg
为英文错误说明,msg_cn
为中文错误说明,data
为调用 API 后返回的结果;如果code
不为0
则认为请求失败,失败信息可参考msg
和msg_cn
。
响应体
数据结构
Application
export type APPInfo = {
id: string;
versionId: string;
name: string;
formArr: []Form;
styleArr: []Style;
updateDate: Date;
createDate: Date;
};
Form
// form中的type字段的类型,对应风格、图片、文本、尺寸
export type FormItemTypeFieldType = 'style' | 'cnet' | 'description' | 'size' ;
export type Form = {
id: string; // 生图接口需传的id(带有inputs的description除外)
type: FormItemTypeFieldType;
title: string;
inputs: []Input;
};
Input
export type Input = {
id: string; // 生图接口description表单需传的id
title: string;
tags: []string; // description表单提示词
};
Style
export type Style = {
id: string;
name: string;
image: string;
};
Size
// form中的sizeId字段的类型,1到5对分别对应的size 1:1 3:4 1:2 4:3 2:1
export type FormSizeIdType = '1' | '2' | '3' | '4' | '5' ;
Task
// task 执行状态,0—任务已提交 10-任务已完成 20-任务失败 30-任务进行中
export type TaskStateType = 0 |10 | 20 | 30 ;
export type Task = {
id: string;
startDate: Date;
finishDate: Date;
createDate: Date;
images: []string;
state: number;
};
API key
要以用户身份发出授权请求,您必须使用 API key。
您可以从网站右上角个人头像处,查找并管理您的 API key
Application
获取Application详情
/open-api/v1/a1/apps/{appId}
请求参数
参数限制
不可查询带有数字分身、wordart、group photo组件的application
请求示例
curl --location --request GET 'https://a1.art/open-api/v1/a1/apps/{appId}' \
--header 'apiKey: {apiKey}' \
--header 'Accept: */*' \
--header 'Host: a1.art' \
--header 'Connection: keep-alive'
import requests
url = "https://a1.art/open-api/v1/a1/apps/{appId}"
payload={}
headers = {
'apiKey': {apiKey}
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
var axios = require('axios');
var config = {
method: 'get',
url: 'https://a1.art/open-api/v1/a1/apps/{appId}',
headers: {
'apiKey': {apiKey},
'Accept': '*/*',
'Host': 'a1.art',
'Connection': 'keep-alive'
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
响应示例
{
"code": 0,
"msg": "success",
"msg_cn": "成功",
"data": {
"appInfo": {
"id": "1803632078862147586",
"versionId": "1803632078866341890",
"name": "Crazy Pet",
"formArr": [ // 生图待传的表单参数
{
"id": "1705408562085",
"type": "cnet",
"title": "Photo of your pet"
},
{
"id": "1705403286130",
"type": "description",
"title": "Description",
"inputs": [
{
"id": "description_1705463790428_variant1",
"title": "Color and breed, such as: black devon rex cat",
"tags": [
"Obsidian_black",
"Porcelain_white"
]
}
]
},
{
"id": "1705398050190",
"type": "style",
"title": "Style"
},
{
"id": "1705403291444",
"type": "size",
"title": "Size"
}
],
"styleArr": [
{
"id": "1766068889598496769",
"name": "High Quality Anmie",
"image": "https://cdn.a1.art/assets/style/cover_image/6d7358e9-ddae-4253-bcc9-d4f54ebc25d5.png"
}
],
"updateDate": "2024-06-20 19:51:55.0",
"createDate": "2024-06-20 11:32:52.0"
}
}
}
Image
上传图片
注:只有通过我们系统上传的图片才可用来做生图参数
请求参数
参数限制
请求示例
curl --location --request POST 'https://a1.art/open-api/v1/a1/images/upload' \
--header 'apiKey: {apiKey}' \
--header 'Accept: */*' \
--header 'Host: a1.art' \
--header 'Connection: keep-alive' \
--header 'Content-Type: multipart/form-data;' \
--form 'file=@"/Users/xxx/Downloads/imageName.png"'
import requests
url = "https://a1.art/open-api/v1/a1/images/upload"
payload={}
files=[
('file',('imageName.jpg',open('/Users/xxx/Downloads/imageName.jpg','rb'),'image/jpeg'))
]
headers = {
'apiKey': {apiKey}
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
var axios = require('axios');
var FormData = require('form-data');
var fs = require('fs');
var data = new FormData();
data.append('file', fs.createReadStream('/Users/xxx/Documents/iamgeName'));
var config = {
method: 'post',
url: 'https://a1.art/open-api/v1/a1/images/upload',
headers: {
'apiKey': {apiKey},
'Accept': '*/*',
'Host': 'a1.art',
'Connection': 'keep-alive',
...data.getHeaders()
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
响应示例
{
"code": 0,
"msg": "success",
"msg_cn": "成功",
"data": {
"imageUrl": "63fa41e7-e282-4582-a07b-8e5e73e8d388.jpg",
"path": "assets/application/apikey_5f6ccf7b983e499fb8ba4e5c4de8013f/form/"
}
}
生成图片
请求参数
参数限制
需要带上application最新的versionId
需要传图片生成数量(generateNum, 1~4)注:生成几张图片扣几个点积分
对于application formArr 里面的参数,每个type的参数至少传一个
在传form里面类型为description的参数时,如果form拥有inputs字段,description的id则应该传input的id
请求示例
curl --location --request POST 'https://a1.art/open-api/v1/a1/images/generate' \
--header 'apiKey: {apiKey}' \
--header 'Content-Type: application/json' \
--header 'Accept: */*' \
--header 'Host: a1.art' \
--header 'Connection: keep-alive' \
--data-raw '{
"cnet": [
{
"id": {cnetId},
"imageUrl": {imageUrl},
"path": {path}
}
],
"description": [
{
"id": {descriptionId/inputId}, # form如果没有inputs字段,则传description的id而非input的id
"value": {value}
}
],
"styleId": {styleId},
"size": {
"sizeId": {sizeId}
},
"appId": {appId},
"versionId": {versionId},
"generateNum": {generateNum}
}'
import requests
import json
url = "https://a1.art/open-api/v1/a1/images/generate"
payload = json.dumps({
"cnet": [
{
"id": {cnetId},
"imageUrl": {imageUrl},
"path": {path}
}
],
"description": [
{
"id": {descriptionId/inputId}, # form如果没有inputs字段,则传description的id而非input的id
"value": {value}
}
],
"styleId": {styleId},
"size": {
"sizeId": {sizeId}
},
"appId": {appId},
"versionId": {versionId},
"generateNum": {generateNum}
})
headers = {
'apiKey': {apiKey},
'Content-Type': 'application/json',
'Accept': '*/*',
'Host': 'a1.art',
'Connection': 'keep-alive'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
var axios = require('axios');
var data = JSON.stringify({
"cnet": [
{
"id": {cnetId},
"imageUrl": {imageUrl},
"path": {path}
}
],
"description": [
{
"id": {descriptionId/inputId}, // form如果没有inputs字段,则传description的id而非input的id
"value": {value}
}
],
"styleId": {styleId},
"size": {
"sizeId": {sizeId}
},
"appId": {appId},
"versionId": {versionId},
"generateNum": {generateNum}
});
var config = {
method: 'post',
url: 'https://a1.art/open-api/v1/a1/images/generate',
headers: {
'apiKey': {apiKey},
'Content-Type': 'application/json',
'Accept': '*/*',
'Host': 'a1.art',
'Connection': 'keep-alive'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
响应示例
{
"code": 0,
"msg": "success",
"msg_cn": "成功",
"data": {
"taskId": "507b080cfe17f7956e8690c4eba2b80f"
}
}
Task
查询任务执行结果
注:
task 的 state 状态枚举可见TaskStateType
请求参数
参数限制
请求示例
curl --location --request GET 'https://a1.art/open-api/v1/a1/tasks/{taskId}' \
--header 'apiKey: {apiKey}' \
--header 'Accept: */*' \
--header 'Host: a1.art' \
--header 'Connection: keep-alive'
import requests
url = "https://a1.art/open-api/v1/a1/tasks/{taskId}"
payload={}
headers = {
'apiKey': {apiKey}
}
response = requests.request("GET", url, headers=headers, data=payload)
var axios = require('axios');
var config = {
method: 'get',
url: 'https://a1.art/open-api/v1/a1/tasks/{taskId}',
headers: {
'apiKey': {apiKey},
'Accept': '*/*',
'Host': 'a1.art',
'Connection': 'keep-alive'
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
响应示例
{
"code": 0,
"msg": "success",
"msg_cn": "成功",
"data": {
"id": "1803970662304264194",
"state": 10,
"startDate": "2024-06-21 09:58:16.0",
"finishDate": "2024-06-21 09:58:28.0",
"createDate": "2024-06-21 09:58:16.0",
"images": [
"imageUrl"
]
}
}
错误码
联系我们