curl --request POST \
--url https://secureai.hiperai.ai/api/external/images/edits \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'prompt=Add dramatic sunset colors to the sky and enhance the overall atmosphere' \
--form image='@example-file' \
--form smltp_policy=internal \
--form response_format=urlimport requests
url = "https://secureai.hiperai.ai/api/external/images/edits"
files = { "image": ("example-file", open("example-file", "rb")) }
payload = {
"prompt": "Add dramatic sunset colors to the sky and enhance the overall atmosphere",
"smltp_policy": "internal",
"response_format": "url"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('prompt', 'Add dramatic sunset colors to the sky and enhance the overall atmosphere');
form.append('image', '<string>');
form.append('smltp_policy', 'internal');
form.append('response_format', 'url');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://secureai.hiperai.ai/api/external/images/edits', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"id": "f55bb4aa-ad9a-4b5a-9c94-511bf6fce806",
"object": "image.edit",
"created": 1705312200,
"data": [
{
"url": "http://localhost:5173/uploads/secureai_image_api_edit_68c5c6d2d57c85b102eb05e2_f55bb4aa_0.png",
"revised_prompt": "Add dramatic sunset colors to the sky and enhance the overall atmosphere"
}
],
"metadata": {
"model": "google/gemini-2.5-flash-image-preview",
"provider": "Google",
"total_images": 1,
"is_image_to_image": true,
"text_response": null,
"smltp_trace_id": "trx-6caec994-73af-4f2c-9e13-572d53262f2a",
"smltp_bundle_id": "jti-26464307-d455-4a3d-9ca4-8ec144cb601c",
"smltp_policy": "internal"
}
}{
"success": false,
"error": "Missing image",
"message": "An image file is required for image-to-image editing",
"request_id": "f55bb4aa-ad9a-4b5a-9c94-511bf6fce806"
}{
"success": false,
"error": "Invalid API key",
"message": "The provided API key is invalid or has been revoked",
"request_id": "req-abc123"
}{
"success": false,
"error": "Invalid API key",
"message": "The provided API key is invalid or has been revoked",
"request_id": "req-abc123"
}{
"success": false,
"error": "File too large",
"message": "Maximum image size is 10MB",
"request_id": "f55bb4aa-ad9a-4b5a-9c94-511bf6fce806"
}{
"success": false,
"error": "Invalid API key",
"message": "The provided API key is invalid or has been revoked",
"request_id": "req-abc123"
}{
"success": false,
"error": "Service unavailable",
"message": "Image generation service is not configured",
"request_id": "f55bb4aa-ad9a-4b5a-9c94-511bf6fce806"
}画像の編集
Edit existing images using Google Gemini 2.5 Flash Image with text instructions. All requests and responses are processed through SMLTP for security and compliance.
This endpoint is specifically designed for image-to-image editing where:
- An image file is required (unlike
/images/generationswhere it’s optional) - A text prompt describes how to edit or transform the image
- The edited image is returned with the same quality and format options
All prompts and responses are automatically processed through SMLTP for audit logging and compliance.
curl --request POST \
--url https://secureai.hiperai.ai/api/external/images/edits \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'prompt=Add dramatic sunset colors to the sky and enhance the overall atmosphere' \
--form image='@example-file' \
--form smltp_policy=internal \
--form response_format=urlimport requests
url = "https://secureai.hiperai.ai/api/external/images/edits"
files = { "image": ("example-file", open("example-file", "rb")) }
payload = {
"prompt": "Add dramatic sunset colors to the sky and enhance the overall atmosphere",
"smltp_policy": "internal",
"response_format": "url"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('prompt', 'Add dramatic sunset colors to the sky and enhance the overall atmosphere');
form.append('image', '<string>');
form.append('smltp_policy', 'internal');
form.append('response_format', 'url');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://secureai.hiperai.ai/api/external/images/edits', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"id": "f55bb4aa-ad9a-4b5a-9c94-511bf6fce806",
"object": "image.edit",
"created": 1705312200,
"data": [
{
"url": "http://localhost:5173/uploads/secureai_image_api_edit_68c5c6d2d57c85b102eb05e2_f55bb4aa_0.png",
"revised_prompt": "Add dramatic sunset colors to the sky and enhance the overall atmosphere"
}
],
"metadata": {
"model": "google/gemini-2.5-flash-image-preview",
"provider": "Google",
"total_images": 1,
"is_image_to_image": true,
"text_response": null,
"smltp_trace_id": "trx-6caec994-73af-4f2c-9e13-572d53262f2a",
"smltp_bundle_id": "jti-26464307-d455-4a3d-9ca4-8ec144cb601c",
"smltp_policy": "internal"
}
}{
"success": false,
"error": "Missing image",
"message": "An image file is required for image-to-image editing",
"request_id": "f55bb4aa-ad9a-4b5a-9c94-511bf6fce806"
}{
"success": false,
"error": "Invalid API key",
"message": "The provided API key is invalid or has been revoked",
"request_id": "req-abc123"
}{
"success": false,
"error": "Invalid API key",
"message": "The provided API key is invalid or has been revoked",
"request_id": "req-abc123"
}{
"success": false,
"error": "File too large",
"message": "Maximum image size is 10MB",
"request_id": "f55bb4aa-ad9a-4b5a-9c94-511bf6fce806"
}{
"success": false,
"error": "Invalid API key",
"message": "The provided API key is invalid or has been revoked",
"request_id": "req-abc123"
}{
"success": false,
"error": "Service unavailable",
"message": "Image generation service is not configured",
"request_id": "f55bb4aa-ad9a-4b5a-9c94-511bf6fce806"
}画像の編集
Google Gemini 2.5 Flash Image とテキスト指示を使用して、既存の画像を編集します。エンドポイント
POST /images/edits
説明
Google Gemini 2.5 Flash Image とテキスト指示を使用して、既存の画像を編集します。このエンドポイントは、画像間の編集用に特別に設計されています。- 画像ファイルは 必須 (オプションである
/images/generationsとは異なります) - 画像の編集または変換方法を説明するテキスト プロンプト
- 編集された画像は同じ品質と形式のオプションで返されます
認証
必須: API キーAuthorization: Bearer sk-your-api-key-here
リクエスト本文
このエンドポイントはmultipart/form-data 形式を受け入れます。
パラメータ
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
prompt | 文字列 | はい | アップロードされた画像を編集または変換する方法を説明するテキスト手順 (1 ~ 4000 文字) |
image | バイナリ | はい | 編集する画像ファイル (JPEG、PNG、WEBP、または GIF、最大 10MB) |
smltp_policy | 文字列 | いいえ | SMLTP セキュリティ ポリシー (デフォルト: “内部”) |
response_format | 文字列 | いいえ | 応答形式: “url” または “b64_json” (デフォルト: “url”) |
リクエストの例
cURL
curl -X POST "https://{customer.name}.hiperai.ai/api/external/images/edits" \
-H "Authorization: Bearer sk-your-api-key-here" \
-F "prompt=Add dramatic sunset colors to the sky and enhance the overall atmosphere" \
-F "image=@/path/to/image.jpg" \
-F "smltp_policy=internal" \
-F "response_format=url"
JavaScript/Node.js
const formData = new FormData();
formData.append('prompt', 'Add dramatic sunset colors to the sky and enhance the overall atmosphere');
formData.append('image', fileInput.files[0]);
formData.append('smltp_policy', 'internal');
formData.append('response_format', 'url');
const response = await fetch('https://{customer.name}.hiperai.ai/api/external/images/edits', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk-your-api-key-here'
},
body: formData
});
const data = await response.json();
console.log('Edited image URL:', data.data[0].url);
パイソン
import requests
url = "https://{customer.name}.hiperai.ai/api/external/images/edits"
headers = {
"Authorization": "Bearer sk-your-api-key-here"
}
with open('image.jpg', 'rb') as f:
files = {'image': f}
data = {
'prompt': 'Add dramatic sunset colors to the sky and enhance the overall atmosphere',
'smltp_policy': 'internal',
'response_format': 'url'
}
response = requests.post(url, headers=headers, files=files, data=data)
result = response.json()
print('Edited image URL:', result['data'][0]['url'])
応答
成功の応答 (200)
{
"success": true,
"id": "f55bb4aa-ad9a-4b5a-9c94-511bf6fce806",
"object": "image.edit",
"created": 1705312200,
"data": [
{
"url": "http://localhost:5173/uploads/secureai_image_api_edit_68c5c6d2d57c85b102eb05e2_f55bb4aa_0.png",
"revised_prompt": "Add dramatic sunset colors to the sky and enhance the overall atmosphere"
}
],
"metadata": {
"model": "google/gemini-2.5-flash-image-preview",
"provider": "Google",
"total_images": 1,
"is_image_to_image": true,
"text_response": null,
"smltp_trace_id": "trx-6caec994-73af-4f2c-9e13-572d53262f2a",
"smltp_bundle_id": "jti-26464307-d455-4a3d-9ca4-8ec144cb601c",
"smltp_policy": "internal"
}
}
応答フィールド
| フィールド | タイプ | 説明 |
|---|---|---|
success | ブール値 | リクエストが成功した場合は常に true |
id | 文字列 | 一意のリクエスト識別子 |
object | 文字列 | オブジェクトタイプ: “image.edit” |
created | 整数 | 画像が編集されたときの Unix タイムスタンプ |
data | 配列 | 編集された画像の配列 |
metadata | オブジェクト | SMLTP 追跡を含む追加のメタデータ |
画像オブジェクト
| フィールド | タイプ | 説明 |
|---|---|---|
url | 文字列 | 編集画像にアクセスするためのURL(response_formatが「url」の場合) |
b64_json | 文字列 | Base64でエンコードされた画像データ(response_formatが「b64_json」の場合) |
revised_prompt | 文字列 | 実際に編集に使用されるプロンプト (入力とは異なる場合があります) |
メタデータ オブジェクト
| フィールド | タイプ | 説明 |
|---|---|---|
model | 文字列 | 使用したモデル: “google/gemini-2.5-flash-image-preview” |
provider | 文字列 | プロバイダー: 「Google」 |
total_images | 整数 | 画像の総数 (編集の場合は常に 1) |
is_image_to_image | ブール値 | このエンドポイントでは常に true |
text_response | 文字列|null | モデルからのオプションのテキスト応答 |
smltp_trace_id | 文字列 | 監査追跡用の SMLTP トレース ID |
smltp_bundle_id | 文字列 | 監査追跡用の SMLTP バンドル ID |
smltp_policy | 文字列 | 適用された SMLTP ポリシー |
エラー応答
400 不正なリクエスト
{
"success": false,
"error": "Missing image",
"message": "An image file is required for image-to-image editing",
"request_id": "f55bb4aa-ad9a-4b5a-9c94-511bf6fce806"
}
401 不正
{
"success": false,
"error": "Invalid API key",
"message": "The provided API key is invalid or has been revoked"
}
403 禁止
{
"success": false,
"error": "Access denied",
"message": "SMLTP policy not allowed"
}
413 ペイロードが大きすぎます
{
"success": false,
"error": "File too large",
"message": "Maximum image size is 10MB",
"request_id": "f55bb4aa-ad9a-4b5a-9c94-511bf6fce806"
}
500 内部サーバーエラー
{
"success": false,
"error": "Internal server error",
"message": "Image editing failed"
}
503 サービスは利用できません
{
"success": false,
"error": "Service unavailable",
"message": "Image generation service is not configured",
"request_id": "f55bb4aa-ad9a-4b5a-9c94-511bf6fce806"
}
注意事項
- サポートされている画像形式: JPEG、PNG、WEBP、GIF
- 最大ファイルサイズ: 画像あたり 10MB
- このエンドポイントにはイメージ ファイルが 必須 (
/images/generationsとは異なります) - プロンプトには、アップロードされた画像を編集または変換する方法が説明されています
- セキュリティとコンプライアンスのために、すべてのリクエストは SMLTP を通じて処理されます
- URL の代わりに
response_format: "b64_json"を使用して、base64 でエンコードされた画像データを受信します
承認
API key authentication using Bearer token format.
Example: Authorization: Bearer sk-your-api-key-here
ボディ
Text instructions describing how to edit or transform the uploaded image
1 - 4000"Add dramatic sunset colors to the sky and enhance the overall atmosphere"
Image file to edit (required, JPEG, PNG, WEBP, or GIF, max 10MB)
SMLTP security policy to apply (e.g., 'internal', 'public', 'confidential', 'hipaa', 'gdpr')
"internal"
The format of the response images
url, b64_json "url"
レスポンス
Image edited successfully

