このドキュメントでは、Web上と同じ結果を達成するためにコードを使用する方法について説明します。ドキュメントの後には、相対アドレスAPIのみが表示されます。メインドメイン名を組み合わせる必要があります。 https://api.aitubo.ai.
たとえば、ジョブを作成する場合は、以下を呼び出す必要があります。 https://api.aitubo.ai/api/job/create
このドキュメントは2つのセクションに分かれており、1つ目は例、2つ目は特定のAPIです。
このセクションでは、ジョブの作成方法とジョブの取得方法について説明します。ジョブを作成するためのAPIは、3つのコア機能を提供します。 Text2Image, Image2Image, and ControlNet(ControlNetは、追加の条件を追加することにより、拡散モデルを制御するためのニューラルネットワーク構造です。)
3つの機能のいずれを使用する場合でも、最初にサポートされているモデルのリストを取得する必要があります。次に、ジョブを作成するときに、 id モデル情報のフィールド
curl --request GET \
--url 'https://api.aitubo.ai/api/model/list?type=platform' \
--header 'Authorization: Bearer ced695cfd83811eda5e286850d1dc848'
結果は次のようになります。
{
"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"
}
次に、次のような応答が得られます。
{
"code": 0,
"data": {
"consumedCredit": 40,
"credit": 120,
"id": "64351e4d567bcd86773dc841"
}
}
ポーリングによってタスク作成のステータスを確認できます。各写真は完了までに約2秒かかるため、クエリの頻度を制御してください。最後に、次のようになります。
{
"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"
}
}
Image2Imageを使用するには、 画像をアップロード APIを呼び出して画像のOSS相対アドレスを取得するか、絶対アドレスを持つ画像を与えることができます。
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
}'
Text2Imageと同様に、ポーリングによってタスク作成のステータスを確認できます。
ControlNet機能を使用する前に、まず/job/model/list APIを呼び出して、対応するControlNetカテゴリを取得する必要があります。
{
"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"
},
...
}
}
次に、/job/create APIを呼び出します。
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 フィールド(モデルがControlNetをサポートしていることを確認してください):
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"
}'
パス: /api/job/upload-image
メソッド: POST
ヘッダー
| 名前 | 値 | 必須 | 例 |
|---|---|---|---|
| Content-Type | multipart/form-data | はい | |
| Authorization | Bearer {YOUR KEY} | はい | Bearer 37f333a2d5f811edb248acde48001122 |
本文
| 名前 | 値 | 必須 |
|---|---|---|
| image | ファイル | はい |
| 名前 | タイプ | 必須 | デフォルト | 注記 | その他 |
|---|---|---|---|---|---|
| code | integer | はい | code=0 -> 成功 | ||
| info | string | いいえ | エラー情報 | ||
| data | object | いいえ | |||
| ├─path | string | いいえ | AliYun OSSの画像パス |
パス: /api/job/create
メソッド: POST
ヘッダー
| 名前 | 値 | 必須 | 例 |
|---|---|---|---|
| Content-Type | application/json | はい | |
| Authorization | Bearer {YOUR KEY} | はい | Bearer 37f333a2d5f811edb248acde48001122 |
本文
| 名前 | タイプ | 必須 | デフォルト | 注記 | その他 |
|---|---|---|---|---|---|
| imagePath | string | いいえ | アップロードされた画像のパス(url/ossの両方) | ||
| maskImage | string | いいえ | AIエディターはこのフィールドを渡す必要があります | ||
| modelId | string | いいえ | controlModelがnullの場合、このフィールドを埋める必要があります | ||
| prompt | string | はい | プロンプト | ||
| negativePrompt | string | いいえ | ネガティブプロンプト | ||
| controlModel | string | いいえ | canny / scribble / openpose / mlsd / hed / seg / depth / normal | ||
| controlStrength | number | いいえ | 1 | [0, 2] | |
| controlFilter | string | いいえ | control画像のプリプロセッサ、例:openpose / openpose_full / openpose_hand / openpose_face / openpose_faceonly | ||
| strength | number | いいえ | 0.8 | [0.1, 1] | |
| width | integer | いいえ | 512 | ||
| height | integer | いいえ | 512 | ||
| steps | integer | いいえ | 30 | 10 <= value <= 50 | |
| guidanceScale | integer | いいえ | 7.5 | 0 < value <= 20 | |
| count | integer | いいえ | 4 | 生成された画像の数 |
| 名前 | タイプ | 必須 | デフォルト | 注記 | その他 |
|---|---|---|---|---|---|
| code | number | はい | 0 -> 成功;1000 -> クレジットが足りません | ||
| info | string | いいえ | エラー情報 | ||
| data | object | はい | |||
| ├─id | string | はい | ジョブID | ||
| ├─credit | integer | はい | ユーザーの総クレジット | ||
| ├─consumedCredit | integer | はい | ジョブの消費クレジット |
パス: /api/job/get
メソッド: GET
クエリ
| 名前 | 必須 | 例 | 注記 |
|---|---|---|---|
| id | はい | 642ba091592245d79a645b39 | ジョブID |
| 名前 | Type | 必須 | Default | 注記 | Others |
|---|---|---|---|---|---|
| code | integer | はい | 0 -> 成功 | ||
| info | string | いいえ | エラー情報 | ||
| data | object | はい | |||
| ├─id | string | はい | ジョブID | ||
| ├─createAt | string | はい | ジョブの作成時間 | ||
| ├─status | integer | はい | ジョブのステータス。0 -> 準備完了ではありません。1 -> 処理中; 2 -> 成功; 3 -> 失敗 | ||
| ├─result | object | いいえ | |||
| ├─├─info | string | いいえ | |||
| ├─├─data | object | いいえ | |||
| ├─├─├─images | string [] | いいえ | 画像の相対パス(ドメインフィールドと連結する必要があります) | item Type:string | |
| ├─├─├─artIds | string [] | いいえ | 画像に対応するartID | item Type:string | |
| ├─├─├─domain | string | いいえ | oss url、画像の相対パスを連結する必要があります | ||
| ├─args | object | いいえ | |||
| ├─├─prompt | string | いいえ | |||
| ├─├─negativePrompt | string | いいえ | |||
| ├─├─model | string | いいえ | |||
| ├─├─strength | integer | いいえ | |||
| ├─├─width | integer | いいえ | |||
| ├─├─height | integer | いいえ |
パス: /api/job/models
メソッド: GET
| 名前 | タイプ | 必須 | デフォルト | 注記 | その他 |
|---|---|---|---|---|---|
| code | integer | はい | 0 -> 成功 | ||
| info | string | いいえ | エラー情報 | ||
| data | object | はい | |||
| ├domain | string | はい | 画像のossドメイン名、下のアイコンフィールドを連結する必要があります | ||
| ├models | object [] | はい | item Type:object | ||
| id | string | はい | モデルID。ジョブの作成時にcontrolModelパラメータの値はこのIDです | ||
| name | string | はい | 英語名 | ||
| cname | string | はい | 中国語名 | ||
| icon | string | はい | サンプル画像。ossの相対パス、ドメインを連結する必要があります |
パス: /api/job/list
メソッド: GET
ヘッダー
| 名前 | 値 | 必須 | 例 | 注記 |
|---|---|---|---|---|
| Content-Type | application/json | はい | ||
| Authorization | Bearer {YOUR KEY} | はい | Bearer 37f333a2d5f811edb248acde48001122 |
Query
| 名前 | 必須 | 例 | 注記 |
|---|---|---|---|
| pageIndex | はい | 1から開始 | |
| pageSize | はい |
| 名前 | タイプ | 必須 | デフォルト | 注記 | その他 |
|---|---|---|---|---|---|
| code | integer | はい | 0 -> 成功 | ||
| info | string | いいえ | エラー情報 | ||
| data | object | はい | |||
| ├─jobs | object [] | はい | ジョブ配列 | item Type:object | |
| ├─├─id | string | はい | ジョブID | ||
| ├─├─createdAt | string | はい | |||
| ├─├─args | object | はい | |||
| ├─├─├─prompt | string | はい | |||
| ├─├─├─negativePrompt | string | はい | |||
| ├─├─├─strength | integer | はい | |||
| ├─├─├─width | integer | はい | |||
| ├─├─├─height | integer | はい | |||
| ├─├─├─count | integer | はい | |||
| ├─├─├─steps | integer | はい | |||
| ├─├─arts | object [] | はい | 生成された画像の配列 | item Type:object | |
| ├─├─├─id | string | はい | 生成された画像のID | ||
| ├─├─├─images | object [] | はい | さまざまな画像の配列 | item Type:object | |
| ├─├─├─├─spec | string | はい | バリアントタイプ。o -> origin; 2x/3x/4x -> 2/3/4スケール画像 | ||
| ├─├─├─├─path | string | はい | 画像パス。連結するドメイン | ||
| ├─├─├─├─size | integer | はい | 画像サイズ。単位:バイト | ||
| ├─domain | string | はい | oss画像ドメイン |
パス: /api/model/list
メソッド: GET
ヘッダー
| 名前 | 値 | 必須 | 例 | 注記 |
|---|---|---|---|---|
| Authorization | Bearer {YOUR KEY} | はい | Bearer 37f333a2d5f811edb248acde48001122 |
クエリ
| 名前 | 必須 | 例 | 注記 |
|---|---|---|---|
| pageIndex | はい | 1から開始 | |
| pageSize | はい | ||
| type | いいえ | platform/community |
| 名前 | タイプ | 必須 | デフォルト | 注記 | その他 |
|---|---|---|---|---|---|
| code | integer | はい | 0 -> 成功 | ||
| info | string | いいえ | エラー情報 | ||
| data | object | はい | |||
| ├─domain | string | はい | ossドメイン | ||
| ├─total | integer | はい | ページング用にフィルタリングされたモデルの総数 | ||
| ├─models | object [] | はい | item Type:object | ||
| ├─├─id | string | はい | モデルID | ||
| ├─├─name | string | はい | モデル名 | ||
| ├─├─username | string | はい | model’s author name | ||
| ├─├─desc | string | はい | モデルの説明 | ||
| ├─├─cover | string | はい | モデルカバー | ||
| ├─├─isFavourite | boolean | はい | ユーザーがモデルをお気に入りに入れているかどうか | ||
| ├─├─controlNet | boolean | はい | モデルがControlNetをサポートしているかどうか |
パス: /api/job/upscale
メソッド: POST
ヘッダー
| 名前 | 値 | 必須 | 例 | 注記 |
|---|---|---|---|---|
| Content-Type | application/json | はい | ||
| Authorization | Bearer {YOUR KEY} | はい | Bearer 37f333a2d5f811edb248acde48001122 |
本文
| 名前 | タイプ | 必須 | デフォルト | 注記 | その他 |
|---|---|---|---|---|---|
| model | string | いいえ | アップスケールモデル名 | ||
| RealESRGAN _x4plus / RealESRGAN_x4plus_anime_6B | |||||
| imagePath | string | はい | 画像パス。連結するドメイン | ||
| upscaleFactor | integer | はい | 2 <= factor <= 4 | ||
| beauty | boolean | いいえ | 顔のエンハンスメントを有効にするかどうか | ||
| artId | string | はい | スーパーポイント画像artIDが必要です |
| 名前 | タイプ | 必須 | デフォルト | 注記 | その他 |
|---|---|---|---|---|---|
| code | number | はい | 0 -> 成功;1000 -> クレジットが足りません | ||
| info | string | いいえ | エラー情報 | ||
| data | object | はい | |||
| ├─id | string | いいえ | アップスケールジョブID | ||
| ├─credit | integer | はい | ユーザーの総クレジット | ||
| ├─consumedCredit | integer | はい | ジョブの消費クレジット |
パス: /api/art/segment
メソッド: POST
ヘッダー
| 名前 | 値 | 必須 | 例 | 注記 |
|---|---|---|---|---|
| Content-Type | application/json | はい | ||
| Authorization | Bearer {YOUR KEY} | はい | Bearer 37f333a2d5f811edb248acde48001122 |
本文
| 名前 | タイプ | 必須 | デフォルト | 注記 | その他 |
|---|---|---|---|---|---|
| image | string | はい | 画像パス。絶対/相対パス |
| 名前 | タイプ | 必須 | デフォルト | 注記 | その他 |
|---|---|---|---|---|---|
| code | number | はい | 0 -> 成功 | ||
| info | string | いいえ | エラー情報 | ||
| data | object | はい | |||
| ├─image | string | はい | セグメンテーション後の画像のURL |
パス: /api/user/profile
メソッド: GET
ヘッダー
| 名前 | 値 | 必須 | 例 | 注記 |
|---|---|---|---|---|
| Content-Type | application/json | はい | ||
| Authorization | Bearer {YOUR KEY} | はい | Bearer 37f333a2d5f811edb248acde48001122 |
| 名前 | タイプ | 必須 | デフォルト | 注記 | その他 |
|---|---|---|---|---|---|
| code | number | はい | 0 -> 成功 | ||
| info | string | いいえ | エラー情報 | ||
| data | object | はい | |||
| ├─name | string | はい | |||
| string | はい | ||||
| ├─avatar | string | はい | |||
| ├─phone | string | はい | |||
| ├─credit | integer | はい | ユーザーの総クレジット | ||
| ├─displayNSFW | boolean | はい | |||
| ├─discord | boolean | はい |
パス: api/transform/list
メソッド: GET
| 名前 | タイプ | 必須 | デフォルト | 注記 | その他 |
|---|---|---|---|---|---|
| code | number | はい | 0 -> 成功 | ||
| info | string | いいえ | エラー情報 | ||
| data | object | はい | |||
| ├─domain | string | はい | 画像のossドメイン名、下のアイコンフィールドを連結する必要があります | ||
| ├─tags | string[] | はい | テンプレートタグ | ||
| ├─transform | object | はい | |||
| ├─├─tag | object[] | はい | |||
| ├─├─├─id | string | はい | |||
| ├─├─├─name | string | はい | |||
| ├─├─├─image | string | はい | 元の画像 | ||
| ├─├─├─art | string | はい | 結果の画像 | ||
| ├─├─├─cost | number | はい | クレジット消費 | ||
| ├─├─├─pro | boolean | はい | プロであるかどうか | ||
| ├─├─├─tag | string | はい | タグ |
パス: api/transform/create-headshot
メソッド: POST
ヘッダー
| 名前 | 値 | 必須 | 例 | 注記 |
|---|---|---|---|---|
| Content-Type | application/json | はい | ||
| Authorization | Bearer {YOUR KEY} | はい | Bearer 37f333a2d5f811edb248acde48001122 |
本文
| 名前 | タイプ | 必須 | デフォルト | 注記 | その他 |
|---|---|---|---|---|---|
| imagePath | string | はい | 呼び出し時に返される画像パス upload-image api | ||
| transformId | string | はい | |||
| width | integer | いいえ | |||
| height | integer | いいえ | |||
| keepHair | boolean | いいえ | false | ||
| keepPose | boolean | いいえ | true |
| 名前 | タイプ | 必須 | デフォルト | 注記 | その他 |
|---|---|---|---|---|---|
| code | number | はい | 0 -> 成功;1000 -> クレジットが足りません | ||
| info | string | いいえ | エラー情報 | ||
| data | object | はい | |||
| ├─id | string | はい | ジョブID | ||
| ├─credit | integer | はい | ユーザーの総クレジット | ||
| ├─consumedCredit | integer | はい | ジョブの消費クレジット |