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 |