Platform for AI (PAI) は、AI ポートレートサービスのアルゴリズムサービスオペレーションを呼び出してモデルをトレーニングし、ポートレートを生成するための AI ポートレート SDK for Python を提供します。この SDK を使用して、カスタム LoRA モデルを設定し、テンプレートイメージに基づいてポートレートを生成できます。このトピックでは、AI ポートレート SDK for Python を使用して関連するオペレーションを呼び出す前に完了する必要がある準備について説明します。また、オペレーションの呼び出し方法に関する例も提供します。
前提条件
-
Python 環境が準備されていること。Python 3.4 以降がサポートされています。
-
モデルトレーニングとポートレート生成のために、5〜20 枚のトレーニングイメージと 1 枚のテンプレートイメージが準備されていること。サポートされているイメージフォーマットは、
.jpg、.jpeg、.pngです。各イメージのサイズが 512 x 512 ピクセル以上であることを確認してください。-
単独ポートレート:テンプレートイメージには 1 人の顔が含まれている必要があります。複数のトレーニングイメージの顔は、同じ人物のものである必要があります。
-
複数人ポートレート:テンプレートイメージには複数の顔が含まれている必要があり、顔の数はモデルトレーニングで指定された `model_id` パラメーターの値と同じである必要があります。
-
事前準備
-
次のコマンドを実行して Python SDK をインストールします:
wget https://ai-service-data.oss-cn-beijing.aliyuncs.com/python-sdk/ai_service_python_sdk-1.1.3-py3-none-any.whl pip install ai_service_python_sdk-1.1.3-py3-none-any.whl -
クライアントを初期化します。
次のコマンドを実行して環境を初期化します:
from ai_service_python_sdk.client.api_client import ApiClient client = ApiClient('<HOST>', '<YOUR-APPID>', '<YOUR-TOKEN>')ビジネス要件に基づいて、次のパラメーターを変更します。
パラメーター
説明
<HOST>
サーバーアドレス。例:
http://ai-service.ce8cc13b6421545749e7b4605f3d02607.cn-hangzhou.alicontainer.com。<YOUR-APPID>
アプリケーション ID。AI ポートレートをアクティブ化した後、[AI ポートレート] ページでアプリケーション ID を表示できます。
<YOUR-TOKEN>
トークン。AI ポートレートをアクティブ化した後、[AI ポートレート] ページでトークンを表示できます。
サンプルコード
AI ポートレートはリソースを大量に消費するサービスであり、モデルトレーニングとポートレート生成のプロセスが含まれます。モデルトレーニングには通常数分かかりますが、ポートレート生成には数十秒しかかかりません。次の図は、API オペレーションを呼び出して AI ポートレートを生成するプロセスを示しています。
以下のセクションでは、関連する API オペレーションのリクエストのサンプルとレスポンスのサンプル、およびエンドツーエンドプロセスのサンプルコードを提供します。
リクエストのチェック (aigc_images_check)
-
リクエストのサンプル:
from ai_service_python_sdk.client.api_client import ApiClient from ai_service_python_sdk.client.api.ai_service_aigc_images_api import AIGCImagesApi host = 'http://ai-service.ce8cc13b6421545749e7b4605f3d02607.cn-hangzhou.alicontainer.com' appId = 'YOUR-APPID' token = 'YOUR-TOKEN' client = ApiClient(host, appId, token) api = AIGCImagesApi(client) # noqa: E501 # URL 形式のトレーニングイメージ images = [ 'https://xxx/0.jpg', 'https://xxx/1.jpg' ] response = api.aigc_images_check(images, <model_name>, <configure>) # リクエストの ID request_id = response.request_id # リクエストの状態 code = response.code # リクエスト状態の詳細 message = response.message # モデルサービスから返されたコンテンツ data = response.data # 戻り値を表示 print(response)次の表に、主要なパラメーターを示します。
パラメーター
説明
appId
アプリケーション ID。AI ポートレートサービスをアクティブ化した後、[AI ポートレート] ページでアプリケーション ID を表示できます。
token
トークン。AI ポートレートサービスをアクティブ化した後、[AI ポートレート] ページでトークンを表示できます。
images
チェックしたいイメージの URL。複数の URL はコンマ (,) で区切ります。
response
response パラメーターには、次のフィールドが含まれています:
-
<model_name>:モデルの名前。デフォルトでは、空の文字列が使用されます。例:
''。 -
<configure>:返される設定項目。デフォルト値:
None。追加の設定項目は指定されません。
-
-
レスポンスのサンプル:
{ "request_id":"07988c97-caa4-4512-a2b2-e9173c1a03c6", "code":"OK", "message":"success", "data":{ "check_results":[ { "code":1, "frontal":true, "message":"success", "url":"https://xxx/0.jpg" },{ "code":1, "frontal":false, "message":"success", "url":"https://xxx/1.jpg" } ], "cost_time":0.47095775604248047, "images":["https://xxx/0.jpg","https://xxx/1.jpg"], "request_id":"07988c97-caa4-4512-a2b2-e9173c1a03c6"}}次の表に、レスポンスパラメーターを示します。
パラメーター
説明
request_id
リクエスト ID。STRING 型です。
code
リクエストの状態コード。STRING 型です。有効な値:
-
OK:リクエストは成功しました。
-
error:リクエストは失敗しました。
message
リクエスト状態の詳細。リクエストが成功した場合、success が返されます。その他のシナリオでは、別のメッセージが返されます。
data
返されたデータの詳細。JSON オブジェクト型です。パラメーター:
-
check_results:各入力イメージの検出結果。各イメージは、url、message、frontal のキーを含む辞書に対応します。
-
url:イメージの URL。
-
message:イメージの検出詳細。指定できる値の詳細については、「check_results の message フィールドの有効な値」をご参照ください。
-
frontal:イメージ内の顔が正面向きかどうかを示します。
-
-
cost_time:サーバーが API を呼び出すのに要した時間。
-
images:チェックされたイメージの URL。LIST 型です。
-
request_id:リクエストの ID。STRING 型です。
-
モデルトレーニングの開始 (aigc_images_train)
-
リクエストのサンプル:
from ai_service_python_sdk.client.api_client import ApiClient from ai_service_python_sdk.client.api.ai_service_aigc_images_api import AIGCImagesApi host = 'http://ai-service.ce8cc13b6421545749e7b4605f3d02607.cn-hangzhou.alicontainer.com' appId = 'YOUR-APPID' token = 'YOUR-TOKEN' client = ApiClient(host, appId, token) api = AIGCImagesApi(client) # noqa: E501 # URL 形式のトレーニングイメージ images = [ 'https://xxx/0.jpg', 'https://xxx/1.jpg', 'https://xxx/2.jpg', 'https://xxx/3.jpg', 'https://xxx/4.jpg', 'https://xxx/5.jpg' ] response = api.aigc_images_train(images, <model_name>, <configure>) # リクエストの ID request_id = response.request_id # リクエストの状態 code = response.code # リクエスト状態の詳細 message = response.message # モデルサービスから返されたコンテンツ data = response.data # job id job_id = response.data['job_id'] # model_id model_id = response.data['model_id'] # 戻り値を表示 print(response)次の表に、主要なパラメーターを示します。
パラメーター
説明
appId
アプリケーション ID。AI ポートレートサービスをアクティブ化した後、[AI ポートレート] ページでアプリケーション ID を表示できます。
token
トークン。AI ポートレートサービスをアクティブ化した後、[AI ポートレート] ページでトークンを表示できます。
images
トレーニングイメージの URL。複数の URL はコンマ (,) で区切ります。
response
response パラメーターには、次のフィールドが含まれています:
-
<model_name>:モデルの名前。デフォルトでは、空の文字列が使用されます。例:
''。 -
<configure>:返される設定項目。デフォルト値:
None。追加の設定項目は指定されません。
-
-
レスポンスのサンプル:
{'code': 'OK', 'data': {'job_id': 11***, 'model_id': 'fa4ba43a-df55-45a4-9c31-bb0dc1e5****'}, 'message': 'success', 'request_id': 'de314ef5-114d-4db1-b54a-332d5300780b'}次の表に、パラメーターを示します。
パラメーター
説明
request_id
リクエスト ID。STRING 型です。
code
リクエストの状態コード。STRING 型です。有効な値:
-
OK:リクエストは成功しました。
-
error:リクエストは失敗しました。
message
リクエスト状態の詳細。リクエストが成功した場合、success が返されます。その他のシナリオでは、別のメッセージが返されます。
data
返されたデータの詳細。JSON オブジェクト型です。パラメーター:
-
job_id:タスクの ID。INT 型です。
-
model_id:トレーニングで使用されるモデルの ID。ID は 36 文字の文字列です。
レスポンスで返された job_id と model_id パラメーターをオンプレミスデバイスに保存します。job_id はトレーニング結果のクエリに、model_id はポートレート生成リクエストの送信に使用します。
-
トレーニング結果のクエリ (get_async_job)
-
リクエストのサンプル:
from ai_service_python_sdk.client.api_client import ApiClient from ai_service_python_sdk.client.api.ai_service_job_api import AiServiceJobApi host = 'http://ai-service.ce8cc13b6421545749e7b4605f3d02607.cn-hangzhou.alicontainer.com' appId = 'YOUR-APPID' token = 'YOUR-TOKEN' client = ApiClient(host, appId, token) ai_service_job_api = AiServiceJobApi(client) # 結果をクエリ result = ai_service_job_api.get_async_job(<YOUR-JOB-ID>) # 戻り値を表示 print(result)次の表に、主要なパラメーターを示します。
パラメーター
説明
appId
アプリケーション ID。AI ポートレートサービスをアクティブ化した後、[AI ポートレート] ページでアプリケーション ID を表示できます。
token
トークン。AI ポートレートサービスをアクティブ化した後、[AI ポートレート] ページでトークンを表示できます。
result
<YOUR-JOB-ID> パラメーターを、aigc_images_train オペレーションによって返された job_id に置き換えます。
-
レスポンスのサンプル:
-
次のコードブロックは、モデルトレーニングが未完了の場合のレスポンスのサンプルを示しています:
{'code': 'OK', 'data': {'job': {'Result': '', 'app_id': '2******6', 'create_time': '2023-08-22T16:43:35.36+08:00', 'id': 11***, 'message': 'model requesting', 'state': 1, 'type': 'Image'}}, 'message': 'success', 'request_id': '8639143a-e147-4107-8e25-fcdeae24b0c5'} -
次のコードブロックは、モデルトレーニングが完了した場合のレスポンスのサンプルを示しています:
{'code': 'OK', 'data': {'job': {'Result': '{"cost_time":1589.0886301994324, "states": [{"code":1,"frontal":false,"message":"success","url":"xxx.jpg"}],"model_id":"fa4ba43a-df55-45a4-9c31-bb0dc1e5****"}', 'app_id': '2******6', 'create_time': '2023-08-22T15:54:41.046+08:00', 'id': 11***, 'message': 'success', 'state': 2, 'type': 'Image'}}, 'message': 'success', 'request_id': '93b77f4b-56cb-4120-b45b-f5c88941bff5'}
次の表に、レスポンスパラメーターを示します。
パラメーター
説明
request_id
リクエスト ID。STRING 型です。
code
リクエストの状態コード。STRING 型です。有効な値:
-
OK:リクエストは成功しました。
-
error:リクエストは失敗しました。
message
リクエスト状態の詳細。リクエストが成功した場合、success が返されます。その他のシナリオでは、別のメッセージが返されます。
data
返されたデータの詳細。JSON オブジェクト型です。内部フィールドの詳細については、このトピックの次のセクションをご参照ください:
-
-
関連するエラーコードの説明
-
リクエストエラーコード
HTTP ステータスコード
code
message
説明
400
PARAMETER_ERROR
not found appid
アプリケーション ID が無効です。
EXCEEDED_QUOTA_ERROR
exceeded quota
アカウントのサービス呼び出しのクォータが使い果たされました。
401
PARAMETER_ERROR
sign error
トークンが無効です。
404
PARAMETER_ERROR
model not found
リクエストされたモデルサービスはデプロイされていません。
-
レスポンスエラーコード
HTTP ステータスコード
code
message
説明
462
error
Invalid input data
入力データの解析中にエラーが発生しました。
Image not provided
トレーニング用のイメージが提供されていません。
Make dir in oss Error
Object Storage Service (OSS) フォルダの作成に失敗しました。OSS がマウントされているか確認してください。
Image process error
イメージの前処理中にエラーが発生しました。
469
error
Training - Not get best template image
トレーニングがクラッシュし、テンプレートイメージが生成されませんでした。
Training - Not get lora weight
トレーニングがクラッシュし、LoRA の重みが生成されませんでした。
-
ポートレート生成
-
リクエストのサンプル:
単独ポートレートの生成 (aigc_images_create)
import base64 import cv2 import numpy as np from ai_service_python_sdk.client.api.ai_service_aigc_images_api import \ AIGCImagesApi # noqa: E501 from ai_service_python_sdk.client.api_client import ApiClient def decode_image_from_base64jpeg(base64_image): image_bytes = base64.b64decode(base64_image) np_arr = np.frombuffer(image_bytes, np.uint8) image = cv2.imdecode(np_arr, cv2.IMREAD_COLOR) return image host = "http://ai-service.ce8cc13b6421545749e7b4605f3d02607.cn-hangzhou.alicontainer.com" appId = 'YOUR-APPID' token = 'YOUR-TOKEN' client = ApiClient(host, appId, token) api = AIGCImagesApi(client) # noqa: E501 response = api.aigc_images_create( '<Your-Model-ID>', '<url>', '<model_name>', <configure> ) # リクエストの ID request_id = response.request_id # リクエストの状態 code = response.code # リクエスト状態の詳細 message = response.message # モデルサービスから返されたコンテンツ data = response.data print(response) image = data['image'] image = decode_image_from_base64jpeg(image) cv2.imwrite("1.jpg", image) print(data['cost_time'])次の表に、パラメーターを示します。
パラメーター
説明
appId
アプリケーション ID。AI ポートレートサービスをアクティブ化した後、[AI ポートレート] ページでアプリケーション ID を表示できます。
token
トークン。AI ポートレートサービスをアクティブ化した後、[AI ポートレート] ページでトークンを表示できます。
response
response パラメーターには、次のフィールドが含まれています:
-
<Your-Model-ID>:値を aigc_images_train オペレーションによって返されたモデル ID に置き換えます。
-
<url>:値を単一の顔を含むテンプレートイメージの URL に置き換えます。例:
https://xxx/single_template.jpg。 -
<model_name>:モデルの名前。デフォルトでは、空の文字列が使用されます。例:
''。 -
<configure>:返される設定項目。デフォルト値:
None。内部フィールドの詳細については、「configure フィールドのパラメーター」をご参照ください。
複数人ポートレートの生成 (aigc_images_create_by_multi_model_ids)
import base64 import cv2 import numpy as np from ai_service_python_sdk.client.api.ai_service_aigc_images_api import \ AIGCImagesApi # noqa: E501 from ai_service_python_sdk.client.api_client import ApiClient def decode_image_from_base64jpeg(base64_image): image_bytes = base64.b64decode(base64_image) np_arr = np.frombuffer(image_bytes, np.uint8) image = cv2.imdecode(np_arr, cv2.IMREAD_COLOR) return image host = "http://ai-service.ce8cc13b6421545749e7b4605f3d02607.cn-hangzhou.alicontainer.com" appId = 'YOUR-APPID' token = 'YOUR-TOKEN' client = ApiClient(host, appId, token) api = AIGCImagesApi(client) # noqa: E501 response = api.aigc_images_create_by_multi_model_ids( ['<Your-Model-ID1>', '<Your-Model-ID2>'], '<url>', '<model_name>', <configure> ) # リクエストの ID request_id = response.request_id # リクエストの状態 code = response.code # リクエスト状態の詳細 message = response.message # モデルサービスから返されたコンテンツ data = response.data print(response) image = data['image'] image = decode_image_from_base64jpeg(image) cv2.imwrite("1.jpg", image) print(data['cost_time'])次の表に、パラメーターを示します。
パラメーター
説明
appId
アプリケーション ID。AI ポートレートサービスをアクティブ化した後、[AI ポートレート] ページでアプリケーション ID を表示できます。
token
トークン。AI ポートレートサービスをアクティブ化した後、[AI ポートレート] ページでトークンを表示できます。
response
response パラメーターには、次のフィールドが含まれています:
-
<Your-Model-ID1> および <Your-Model-ID2>:値を aigc_images_train オペレーションによって返されたモデル ID に置き換えます。
-
<url>:値を複数の顔を含むテンプレートイメージの URL に置き換えます。イメージ内の顔の数は、モデルトレーニングで指定された `model_id` パラメーターの値と同じである必要があります。例:
http://xxx/multi_template.jpg。 -
<model_name>:モデルの名前。デフォルトでは、空の文字列が使用されます。例:
''。 -
<configure>:返される設定項目。デフォルト値:
None。内部フィールドの詳細については、「configure フィールドのパラメーター」をご参照ください。
-
-
レスポンスのサンプル:
{ 'code': 'OK', 'data': { 'cost_time': 21.705406427383423, 'image': '/9j/4AAQSkZJRgABAQAAAQABAAD/.............2wBDAAgGBgcGBQgHBwcJCQgK', 'model_id': 'fa4ba43a-df55-45a4-9c31-bb0dc1e5****' }, 'message': 'success', 'request_id': 'df5454ca-07ec-4a15-be50-7beaba42f36b' }次の表に、パラメーターを示します。
パラメーター
説明
request_id
リクエスト ID。STRING 型です。
code
リクエストの状態コード。有効な値:
-
OK:リクエストは成功しました。
-
error:リクエストは失敗しました。
message
リクエスト状態の詳細。リクエストが成功した場合、success が返されます。その他のシナリオでは、別のメッセージが返されます。
data
返されたデータの詳細。JSON オブジェクト型です。パラメーター:
-
model_id:ユーザーのモデル ID。
-
image:AI ポートレートの生成に使用されるテンプレートイメージ。Base64 エンコードされています。
-
cost_time:ポートレート生成に必要な時間。FLOAT 型です。
-
-
エラーコード
-
リクエストエラーコード
HTTP ステータスコード
code
message
説明
400
PARAMETER_ERROR
not found appid
アプリケーション ID が無効です。
EXCEEDED_QUOTA_ERROR
exceeded quota
アカウントのサービス呼び出しのクォータが使い果たされました。
401
PARAMETER_ERROR
sign error
トークンが無効です。
404
PARAMETER_ERROR
model not found
リクエストされたモデルサービスはデプロイされていません。
-
レスポンスエラーコード
HTTP ステータスコード
code
message
説明
462
error
Invalid input data. Please check the input dict.
入力データの解析中にエラーが発生しました。
mage not provided. Please check the template_image.
ポートレート生成に使用されるテンプレートイメージが提供されていません。
Prompts get error. Please check the model_id.
モデル ID のフォーマットが無効です。
Roop image decord error. Pleace check the user's lora is trained or not.
Roop イメージが存在しません。モデルがトレーニングされているか確認してください。
Template image decord error. Please Give a new template.
テンプレートイメージのデコード中にエラーが発生しました。新しいテンプレートイメージを提供してください。
There is not face in template. Please Give a new template.
テンプレートイメージに顔が存在しません。新しいテンプレートイメージを提供してください。
Template image process error. Please Give a new template.
テンプレートイメージの前処理中にエラーが発生しました。新しいテンプレートイメージを提供してください。
469
error
First Face Fusion Error, Can't get face in template image.
最初のポートレート合成中にエラーが発生しました。
First Stable Diffusion Process error. Check the webui status.
Stable Diffusion を使用した最初のイメージ生成中にエラーが発生しました。
Second Face Fusion Error, Can't get face in template image.
2 番目のポートレート合成中にエラーが発生しました。
Second Stable Diffusion Process error. Check the webui status.
Stable Diffusion を使用した 2 番目のイメージ生成中にエラーが発生しました。
Please confirm if the number of faces in the template corresponds to the user ID.
提供されたユーザー ID の数と顔の数が一致しません。
Third Stable Diffusion Process error. Check the webui status.
バックグラウンドの前処理中にエラーが発生しました。新しいテンプレートイメージを提供してください。
500
error
Face id image decord error. Pleace check the user's lora is trained or not.
アップロードされたイメージのデコード中にエラーが発生しました。モデルがトレーニングされているか確認してください。
-
エンドツーエンドのポートレート生成プロセスのサンプルコード
次のコードブロックは、エンドツーエンドのポートレート生成プロセスのサンプルを示しています。コードを実行すると、現在のディレクトリに AI ポートレートが生成されます。
from ai_service_python_sdk.client.api_client import ApiClient
from ai_service_python_sdk.client.api.ai_service_aigc_images_api import AIGCImagesApi
from ai_service_python_sdk.client.api.ai_service_job_api import AiServiceJobApi
import logging
import sys
import time
import base64
import cv2
import numpy as np
host = "http://ai-service.ce8cc13b6421545749e7b4605f3d02607.cn-hangzhou.alicontainer.com"
appId = 'YOUR-APPID'
token = 'YOUR-TOKEN'
def decode_image_from_base64jpeg(base64_image):
image_bytes = base64.b64decode(base64_image)
np_arr = np.frombuffer(image_bytes, np.uint8)
image = cv2.imdecode(np_arr, cv2.IMREAD_COLOR)
return image
def Check(client, images):
# リクエストをチェック
response = api.aigc_images_check(images, '', None)
# リクエストの ID
request_id = response.request_id
# リクエストの状態
code = response.code
# リクエスト状態の詳細
message = response.message
# モデルサービスから返されたコンテンツ
data = response.data
# 戻り値を表示
if code != "OK":
logging.error(f"aigc_images_check failed,request id is {request_id}")
logging.error(message)
sys.exit(-1)
else:
for check_result in data['check_results']:
if check_result['code'] != 1:
logging.error(f"check {check_result['url']} failed, message is {check_result['message']}")
sys.exit(-1)
logging.info("check images done")
def Train(client, images):
# トレーニングリクエスト
response = api.aigc_images_train(images, '', None)
request_id = response.request_id
code = response.code
message = response.message
data = response.data
# 戻り値を表示
if code != "OK":
logging.error(f"aigc_images_train failed, request id is {request_id}")
logging.error(message)
sys.exit(-1)
else:
# job id
job_id = response.data['job_id']
# model_id
model_id = response.data['model_id']
logging.info(f"train job_id is {job_id}")
logging.info(f"train moded_id is {model_id}")
if isinstance(job_id, int):
while True:
ai_service_job_api = AiServiceJobApi(client)
response = ai_service_job_api.get_async_job(job_id)
request_id = response.request_id
code = response.code
message = response.message
data = response.data
if code != "OK":
logging.error(f"get_async_job failed, request id is {request_id}")
logging.error(message)
sys.exit(-1)
else:
state = data["job"]["state"]
if state == 2:
logging.info(f"model {model_id} trained successfully")
break
elif state != 3:
logging.info(f"training model {model_id}")
time.sleep(10)
else:
logging.error(f"model {model_id} trained failed")
logging.error(f"message: {message}")
break
if state != 2:
sys.exit(-1)
return model_id
def Create(model_id, template_image):
# イメージを生成
response = api.aigc_images_create(model_id, template_image,'', None)
# リクエストの ID
request_id = response.request_id
# リクエストの状態
code = response.code
# リクエスト状態の詳細
message = response.message
# モデルサービスから返されたコンテンツ
data = response.data
if code != "OK":
logging.error(f"aigc_images_create failed, model_id is {model_id}")
sys.exit(-1)
else:
image = data['image']
image = decode_image_from_base64jpeg(image)
cv2.imwrite("single_out.jpg", image)
logging.info(f"single create {data['cost_time']}")
def CreateMulti(model_ids, template_image):
response = api.aigc_images_create_by_multi_model_ids(
model_ids,
template_image,
'', None
)
# リクエストの ID
request_id = response.request_id
# リクエストの状態
code = response.code
# リクエスト状態の詳細
message = response.message
# モデルサービスから返されたコンテンツ
data = response.data
if code != "OK":
logging.error(f"aigc_images_create_by_multi_model_ids failed, model_id is {model_id}")
sys.exit(-1)
else:
image = data['image']
image = decode_image_from_base64jpeg(image)
cv2.imwrite("multi_out.jpg", image)
logging.info(f"multi create cost time {data['cost_time']}")
if __name__ == "__main__":
client = ApiClient(host, appId, token)
api = AIGCImagesApi(client) # noqa: E501
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
# URL 形式のトレーニングイメージ
images = [
'https://xxx/0.jpg',
'https://xxx/1.jpg',
'https://xxx/2.jpeg',
'https://xxx/3.jpeg',
]
#check
Check(client, images)
model_id = Train(client, images)
template_image = 'https://xxx/single_template.jpg'
Create(model_id, template_image)
#read the image single_out.jpg
model_ids = [model_id, model_id]
multi_template_image = 'https://xxx/multi_template.jpg'
CreateMulti(model_ids, multi_template_image)
#read the image multi_out.jpg
次の表に、パラメーターを示します。
|
パラメーター |
説明 |
|
appId |
アプリケーション ID。AI ポートレートサービスをアクティブ化した後、[AI ポートレート] ページでアプリケーション ID を表示できます。 |
|
token |
トークン。AI ポートレートサービスをアクティブ化した後、[AI ポートレート] ページでトークンを表示できます。 |
|
images |
トレーニングイメージの URL。複数の URL はコンマ (,) で区切ります。 |
|
template_image |
単一の顔を含むテンプレートイメージの URL。このテンプレートイメージは、単独ポートレートの生成に使用されます。 |
|
multi_template_image |
複数の顔を含むテンプレートイメージの URL。顔の数は、指定したモデル ID の数と同じである必要があります。このテンプレートイメージは、複数人ポートレートの生成に使用されます。 |