Dit document beschrijft hoe u de code kunt gebruiken om dezelfde resultaten te bereiken als op het web. Na het document geeft alleen het relatieve adres API, moet u samenvoegen met de hoofddomeinnaam: https://api.aitubo.ai.
Als u bijvoorbeeld een taak wilt maken, moet u bellen https://api.aitubo.ai/api/job/create
Het document is verdeeld in twee secties, de eerste voor voorbeelden en de tweede voor specifieke API.
Deze sectie beschrijft hoe u een taak kunt maken en een taak kunt verkrijgen. Onze API voor het maken van taken biedt drie kernfuncties: Text2Image, Image2Image, and ControlNet(ControlNet is een neurale netwerkstructuur om diffusiemodellen te besturen door extra voorwaarden toe te voegen).
Ongeacht welke van de drie functies u gebruikt, moet u eerst een lijst met de modellen krijgen die we ondersteunen, en vervolgens, wanneer u de taak maakt, moet u de id veld van de modelinformatie
curl --request GET \
--url 'https://api.aitubo.ai/api/model/list?type=platform' \
--header 'Authorization: Bearer ced695cfd83811eda5e286850d1dc848'
Het resultaat is zoiets als dit:
{
"code": 0,
"data": {
"domain": "https://file.aitubo.ai/",
"total": 10,
"models": [
{
"id": "6426f9c60ca4651b98b91a6d",
"name": "ConceptCanvas",
"username": "Aitubo",
"desc": "A model that creates concept scenes with a European thick paint or CG style.",
"cover": "assets/model/6426f9c60ca4651b98b91a6d/cover.jpg",
"isFavourite": false,
"controlNet": false
},
{
"id": "642b977d2f2842537c09fe41",
"name": "DreamShaper",
"username": "Aitubo",
"desc": "A model that can generate multiple styles of scenes, characters, and game assets.",
"cover": "assets/model/642b977d2f2842537c09fe41/cover.jpg",
"isFavourite": false,
"controlNet": true
},
...
]
}
}
curl --request POST \
--url https://api.aitubo.ai/api/job/create \
--header 'Authorization: Bearer ced695cfd83811eda5e286850d1dc848' \
--header 'content-type: application/json' \
--data '{
"prompt": "A cat sleeps on the plane",
"modelId": "642b977d2f2842537c09fe41"
}
Dan krijgt u een reactie als deze:
{
"code": 0,
"data": {
"consumedCredit": 40,
"credit": 120,
"id": "64351e4d567bcd86773dc841"
}
}
U kunt de status van het maken van taken controleren door te peilen. Elke foto duurt ongeveer 2 seconden om te voltooien, dus controleer uw queryfrequentie. Ten slotte krijgt u dit:
{
"code": 0,
"data": {
"id": "64351e4d567bcd86773dc841",
"args": {
"prompt": "A cat sleeps on the plane",
"negativePrompt": "lowres, bad anatomy, cropped, worst quality, low quality",
"strength": 0.8,
"width": 512,
"height": 512,
"count": 4,
"steps": 30,
"modelId": "642b977d2f2842537c09fe41"
},
"result": {
"info": "Warning: some images may contain NSFW content",
"data": {
"images": [
"images/art/640076a4661aa1c0f81ba2d7/cgqhsljj5mf00080001g.png",
"images/art/640076a4661aa1c0f81ba2d7/cgqhsljj5mf000800020.png",
"images/art/640076a4661aa1c0f81ba2d7/cgqhsljj5mf00080002g.png",
"images/art/640076a4661aa1c0f81ba2d7/cgqhsljj5mf000800030.png"
],
"artIds": [
"64351e56567bcd86773dc842",
"64351e56567bcd86773dc843",
"64351e56567bcd86773dc844",
"64351e56567bcd86773dc845"
],
"domain": "https://file.aitubo.ai/"
}
},
"status": 2,
"createAt": "2023-04-11T08:46:05.55Z"
}
}
Om Image2Image te gebruiken, kunt u onze Afbeelding uploaden API aanroepen om het relatieve adres van een afbeelding van OSS te krijgen, of u kunt een afbeelding met een absoluut adres geven.
curl --request POST \
--url https://api.aitubo.ai/api/job/create \
--header 'Authorization: Bearer ced695cfd83811eda5e286850d1dc848' \
--header 'content-type: application/json' \
--data '{
"imagePath": "images/tmp/cgqi1jntuq4000800040.png",
"modelId": "642b977d2f2842537c09fe41",
"prompt": "scene",
"guidanceScale": 0.7
}'
U kunt de status van het maken van taken controleren door te peilen, net als bij Text2Image.
Voordat u de ControlNet-functie gebruikt, moet u eerst de /job/model/list API aanroepen om de bijbehorende ControlNet-categorieën te verkrijgen:
{
"code": 0,
"data": {
"domain": "https://file.aitubo.ai/",
"models": [
{
"id": "canny",
"name": "canny",
"icon": "assets/template/control_canny.jpg"
},
{
"id": "scribble",
"name": "scribble",
"icon": "assets/template/control_scribble.jpg"
},
...
}
}
Roep dan /job/create API aan:
curl --request POST \
--url https://api.aitubo.ai/api/job/create \
--header 'Authorization: Bearer ced695cfd83811eda5e286850d1dc848' \
--header 'content-type: application/json' \
--data '{ "imagePath": "https://ichef.bbci.co.uk/news/976/cpsprodpb/17638/production/_124800859_gettyimages-817514614.jpg.webp",
"controlModel": "canny",
"prompt": "a little dog"
}'
U kunt ook doorgeven modelId veld(Zorg ervoor dat het model ControlNet ondersteunt):
curl --request POST \
--url https://api.aitubo.ai/api/job/create \
--header 'Authorization: Bearer ced695cfd83811eda5e286850d1dc848' \
--header 'content-type: application/json' \
--data '{
"imagePath": "https://ichef.bbci.co.uk/news/976/cpsprodpb/17638/production/_124800859_gettyimages-817514614.jpg.webp",
"controlModel": "canny",
"prompt": "a little dog",
"modelId": "642b977d2f2842537c09fe41"
}'
Pad: /api/job/upload-image
Methode: POST
Headers
Naam | Waarde | Vereist | Voorbeeld |
---|---|---|---|
Content-Type | multipart/form-data | ja | |
Authorization | Bearer {YOUR KEY} | ja | Bearer 37f333a2d5f811edb248acde48001122 |
Body
Naam | Waarde | Vereist |
---|---|---|
image | bestand | ja |
Naam | Type | Vereist | Standaard | Opmerking | Anderen |
---|---|---|---|---|---|
code | integer | ja | code=0 -> succes | ||
info | string | nee | foutinfo | ||
data | object | nee | |||
├─path | string | nee | afbeeldingspad van AliYun OSS |
Pad: /api/job/create
Methode: POST
Headers
Naam | Waarde | Vereist | Voorbeeld |
---|---|---|---|
Content-Type | application/json | ja | |
Authorization | Bearer {YOUR KEY} | ja | Bearer 37f333a2d5f811edb248acde48001122 |
Body
Naam | Type | Vereist | Standaard | Opmerking | Anderen |
---|---|---|---|---|---|
imagePath | string | nee | pad van de geüploade afbeelding (url/oss beide) | ||
maskImage | string | nee | AI Editor moet dit veld doorgeven | ||
modelId | string | nee | als controlModel null is, moet dit veld worden ingevuld | ||
prompt | string | ja | prompt | ||
negativePrompt | string | nee | negatieve prompt | ||
controlModel | string | nee | canny / scribble / openpose / mlsd / hed / seg / depth / normal | ||
controlStrength | number | nee | 1 | [0, 2] | |
controlFilter | string | nee | preprecessor van controleafbeelding, bijvoorbeeld: openpose / openpose_full / openpose_hand / openpose_face / openpose_faceonly | ||
strength | number | nee | 0.8 | [0.1, 1] | |
width | integer | nee | 512 | ||
height | integer | nee | 512 | ||
steps | integer | nee | 30 | 10 <= waarde <= 50 | |
guidanceScale | integer | nee | 7.5 | 0 < waarde <= 20 | |
count | integer | nee | 4 | gegenereerd aantal afbeeldingen |
Naam | Type | Vereist | Standaard | Opmerking | Anderen |
---|---|---|---|---|---|
code | number | ja | 0 -> succes;1000 -> niet genoeg tegoed | ||
info | string | nee | foutinfo | ||
data | object | ja | |||
├─id | string | ja | taak-ID | ||
├─credit | integer | ja | totaal tegoed van de gebruiker | ||
├─consumedCredit | integer | ja | verbruikt tegoed van de taak |
Pad: /api/job/get
Methode: GET
Query
Naam | Vereist | Voorbeeld | Opmerking |
---|---|---|---|
id | ja | 642ba091592245d79a645b39 | taak-ID |
Naam | Type | Vereist | Default | Opmerking | Others |
---|---|---|---|---|---|
code | integer | ja | 0 -> succes | ||
info | string | nee | foutinfo | ||
data | object | ja | |||
├─id | string | ja | taak-ID | ||
├─createAt | string | ja | aanmaaktijd van de taak | ||
├─status | integer | ja | status van de taak. 0 -> niet klaar; 1 -> verwerking; 2 -> succes; 3 -> mislukking | ||
├─result | object | nee | |||
├─├─info | string | nee | |||
├─├─data | object | nee | |||
├─├─├─images | string [] | nee | Het resulterende relatieve pad van de afbeelding (moet worden samengevoegd met het domeinveld) | item Type:string | |
├─├─├─artIds | string [] | nee | Afbeelding overeenkomstige artID | item Type:string | |
├─├─├─domain | string | nee | oss url, u moet het relatieve pad van de afbeelding samenvoegen | ||
├─args | object | nee | |||
├─├─prompt | string | nee | |||
├─├─negativePrompt | string | nee | |||
├─├─model | string | nee | |||
├─├─strength | integer | nee | |||
├─├─width | integer | nee | |||
├─├─height | integer | nee |
Pad: /api/job/models
Methode: GET
Naam | Type | Vereist | Standaard | Opmerking | Anderen |
---|---|---|---|---|---|
code | integer | ja | 0 -> succes | ||
info | string | nee | foutinfo | ||
data | object | ja | |||
├domain | string | ja | afbeelding oss domeinnaam, moet het pictogramveld hieronder samenvoegen | ||
├models | object [] | ja | item Type:object | ||
id | string | ja | model-id, De parameterwaarde controlModel is deze ID bij het maken van een taak | ||
name | string | ja | Engelse naam | ||
cname | string | ja | Chinese naam | ||
icon | string | ja | voorbeeld afbeelding. oss relatief pad, u moet domeinen samenvoegen |
Pad: /api/job/list
Methode: GET
Headers
Naam | Waarde | Vereist | Voorbeeld | Opmerking |
---|---|---|---|---|
Content-Type | application/json | ja | ||
Authorization | Bearer {YOUR KEY} | ja | Bearer 37f333a2d5f811edb248acde48001122 |
Query
Naam | Vereist | Voorbeeld | Opmerking |
---|---|---|---|
pageIndex | ja | begin vanaf 1 | |
pageSize | ja |
Naam | Type | Vereist | Standaard | Opmerking | Anderen |
---|---|---|---|---|---|
code | integer | ja | 0 -> succes | ||
info | string | nee | foutinfo | ||
data | object | ja | |||
├─jobs | object [] | ja | taakreeks | item Type:object | |
├─├─id | string | ja | taak-ID | ||
├─├─createdAt | string | ja | |||
├─├─args | object | ja | |||
├─├─├─prompt | string | ja | |||
├─├─├─negativePrompt | string | ja | |||
├─├─├─strength | integer | ja | |||
├─├─├─width | integer | ja | |||
├─├─├─height | integer | ja | |||
├─├─├─count | integer | ja | |||
├─├─├─steps | integer | ja | |||
├─├─arts | object [] | ja | de gegenereerde reeks afbeeldingen | item Type:object | |
├─├─├─id | string | ja | de id van de gegenereerde afbeelding | ||
├─├─├─images | object [] | ja | verscheidenheid aan afbeeldingen | item Type:object | |
├─├─├─├─spec | string | ja | varianttype. o -> origin; 2x/3x/4x -> 2/3/4 schaalafbeelding | ||
├─├─├─├─path | string | ja | afbeeldingspad. domein om samen te voegen | ||
├─├─├─├─size | integer | ja | afbeeldingsgrootte. eenheid: Byte | ||
├─domain | string | ja | oss afbeeldingsdomein |
Pad: /api/model/list
Methode: GET
Headers
Naam | Waarde | Vereist | Voorbeeld | Opmerking |
---|---|---|---|---|
Authorization | Bearer {YOUR KEY} | ja | Bearer 37f333a2d5f811edb248acde48001122 |
Query
Naam | Vereist | Voorbeeld | Opmerking |
---|---|---|---|
pageIndex | ja | begin vanaf 1 | |
pageSize | ja | ||
type | nee | platform/community |
Naam | Type | Vereist | Standaard | Opmerking | Anderen |
---|---|---|---|---|---|
code | integer | ja | 0 -> succes | ||
info | string | nee | foutinfo | ||
data | object | ja | |||
├─domain | string | ja | oss domein | ||
├─total | integer | ja | het totale aantal modellen dat is gefilterd voor paginering | ||
├─models | object [] | ja | item Type:object | ||
├─├─id | string | ja | model-ID | ||
├─├─name | string | ja | modelnaam | ||
├─├─username | string | ja | model’s author name | ||
├─├─desc | string | ja | modelbeschrijving | ||
├─├─cover | string | ja | modelcover | ||
├─├─isFavourite | boolean | ja | of de gebruiker het model favoriet maakt | ||
├─├─controlNet | boolean | ja | of het model ControlNet ondersteunt |
Pad: /api/job/upscale
Methode: POST
Headers
Naam | Waarde | Vereist | Voorbeeld | Opmerking |
---|---|---|---|---|
Content-Type | application/json | ja | ||
Authorization | Bearer {YOUR KEY} | ja | Bearer 37f333a2d5f811edb248acde48001122 |
Body
Naam | Type | Vereist | Standaard | Opmerking | Anderen |
---|---|---|---|---|---|
model | string | nee | upscale modelnaam | ||
RealESRGAN _x4plus / RealESRGAN_x4plus_anime_6B | |||||
imagePath | string | ja | afbeeldingspad. domein om samen te voegen | ||
upscaleFactor | integer | ja | 2 <= factor <= 4 | ||
beauty | boolean | nee | of gezichtsverbetering moet worden ingeschakeld | ||
artId | string | ja | Een superpuntafbeelding artID nodig |
Naam | Type | Vereist | Standaard | Opmerking | Anderen |
---|---|---|---|---|---|
code | number | ja | 0 -> succes;1000 -> niet genoeg tegoed | ||
info | string | nee | foutinfo | ||
data | object | ja | |||
├─id | string | nee | upscale taak-id | ||
├─credit | integer | ja | totaal tegoed van de gebruiker | ||
├─consumedCredit | integer | ja | verbruikt tegoed van de taak |
Pad: /api/art/segment
Methode: POST
Headers
Naam | Waarde | Vereist | Voorbeeld | Opmerking |
---|---|---|---|---|
Content-Type | application/json | ja | ||
Authorization | Bearer {YOUR KEY} | ja | Bearer 37f333a2d5f811edb248acde48001122 |
Body
Naam | Type | Vereist | Standaard | Opmerking | Anderen |
---|---|---|---|---|---|
image | string | ja | afbeeldingspad. absoluut/relatief pad |
Naam | Type | Vereist | Standaard | Opmerking | Anderen |
---|---|---|---|---|---|
code | number | ja | 0 -> succes | ||
info | string | nee | foutinfo | ||
data | object | ja | |||
├─image | string | ja | URL van de afbeelding na segmentatie |
Pad: /api/user/profile
Methode: GET
Headers
Naam | Waarde | Vereist | Voorbeeld | Opmerking |
---|---|---|---|---|
Content-Type | application/json | ja | ||
Authorization | Bearer {YOUR KEY} | ja | Bearer 37f333a2d5f811edb248acde48001122 |
Naam | Type | Vereist | Standaard | Opmerking | Anderen |
---|---|---|---|---|---|
code | number | ja | 0 -> succes | ||
info | string | nee | foutinfo | ||
data | object | ja | |||
├─name | string | ja | |||
string | ja | ||||
├─avatar | string | ja | |||
├─phone | string | ja | |||
├─credit | integer | ja | totaal tegoed van de gebruiker | ||
├─displayNSFW | boolean | ja | |||
├─discord | boolean | ja |
Pad: api/transform/list
Methode: GET
Naam | Type | Vereist | Standaard | Opmerking | Anderen |
---|---|---|---|---|---|
code | number | ja | 0 -> succes | ||
info | string | nee | foutinfo | ||
data | object | ja | |||
├─domain | string | ja | afbeelding oss domeinnaam, moet het pictogramveld hieronder samenvoegen | ||
├─tags | string[] | ja | sjabloontag | ||
├─transform | object | ja | |||
├─├─tag | object[] | ja | |||
├─├─├─id | string | ja | |||
├─├─├─name | string | ja | |||
├─├─├─image | string | ja | originele afbeelding | ||
├─├─├─art | string | ja | resultaat afbeelding | ||
├─├─├─cost | number | ja | tegoed verbruiken | ||
├─├─├─pro | boolean | ja | is pro | ||
├─├─├─tag | string | ja | tag |
Pad: api/transform/create-headshot
Methode: POST
Headers
Naam | Waarde | Vereist | Voorbeeld | Opmerking |
---|---|---|---|---|
Content-Type | application/json | ja | ||
Authorization | Bearer {YOUR KEY} | ja | Bearer 37f333a2d5f811edb248acde48001122 |
Body
Naam | Type | Vereist | Standaard | Opmerking | Anderen |
---|---|---|---|---|---|
imagePath | string | ja | afbeeldingspad geretourneerd bij aanroep upload-image api | ||
transformId | string | ja | |||
width | integer | nee | |||
height | integer | nee | |||
keepHair | boolean | nee | false | ||
keepPose | boolean | nee | true |
Naam | Type | Vereist | Standaard | Opmerking | Anderen |
---|---|---|---|---|---|
code | number | ja | 0 -> succes;1000 -> niet genoeg tegoed | ||
info | string | nee | foutinfo | ||
data | object | ja | |||
├─id | string | ja | taak-ID | ||
├─credit | integer | ja | totaal tegoed van de gebruiker | ||
├─consumedCredit | integer | ja | verbruikt tegoed van de taak |