Grok Imagine 2 image editing API reference and live testing — upload 1-4 reference images plus an instruction for editing or fusion; requires multipart/form-data
POST
/
v1
/
images
/
edits
Image editing: edit a reference image or fuse several
curl --request POST \ --url https://api.apiyi.com/v1/images/edits \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: multipart/form-data' \ --form model=grok-imagine-image \ --form 'prompt=Change the scarf color to bright RED. Keep everything else exactly the same.' \ --form 'image=@example-file;type=image/png'
🔒 Not open by default: Grok Imagine 2 does not sit in the Default group. It lives in its own Grok_imagine_Reverse group, and access must be requested before you can call it (including the Playground on this page). Without it, every call returns 503.This family’s content-safety policy differs substantially from the other models on the platform and some categories are not filtered, so to limit compliance risk we grant access selectively: existing customers with $1,000+ cumulative spend can get it enabled by describing their use case to support; everyone else applies through WeCom support with a description of the use case and the content-moderation controls in place. Full process: Grok Imagine 2 Overview - Group Setup.
The interactive Playground on the right accepts local file uploads. Enter your API Key in Authorization (format: Bearer sk-xxx), choose an image file, fill in prompt and model, and send.
🔴 This endpoint requires multipart/form-data file uploadSending JSON to /v1/images/editsalways returns 400:
request Content-Type isn't multipart/form-data
This matters especially if you are integrating from xAI or the upstream vendor’s documentation: that doc describes a JSON body with a public image URL ({"image": {"type": "image_url", "url": "..."}}), and that form does not work through the APIYI gateway. Follow this page instead.The upside: file upload means no image hosting required — just send the local file, which is simpler than preparing a public URL.The file field must be named image or image[]; images / image_file return 415. prompt is required — omitting it returns 400.
When to use this page: editing one reference image, or fusing several. For prompt-only generation, use the Text-to-Image endpoint.
⚠️ Output dimensions follow the FIRST reference image and cannot be changedresolution and aspect_ratio are accepted here without error but have no effect — the edited output always matches the first reference image’s dimensions (1280x720 in gives 1280x720 out; 1024x1024 in gives 1024x1024 out).The same applies to fusion: reversing the order of 4 references flipped the output from 1280x720 to 1024x1024, following the new first image.To change the output size, crop or resize the first reference image before uploading.
Fusion order is meaningful: image[] accepts 1-4 reference images (measured ceiling is 4; a fifth returns 400), and the upload order is what “image 1 / image 2 / image 3” refers to in the prompt. State it explicitly, e.g. “put the subject from image 1 into the scene from image 2, keeping image 2’s art style”.Measured across 2 / 3 / 4 references: each additional image adds a corresponding subject to the output, with each one’s distinctive traits preserved — fusion genuinely works.
import requestsimport urllib.requestAPI_KEY = "sk-your-api-key"# Key point: use files= so requests sets multipart/form-data and the boundary for you.# Never use json= — that sends application/json and the gateway rejects it with 400.with open("fox.jpg", "rb") as fp: response = requests.post( "https://api.apiyi.com/v1/images/edits", headers={"Authorization": f"Bearer {API_KEY}"}, # do NOT set Content-Type manually data={ "model": "grok-imagine-image", "prompt": "Change the scarf to red, keep everything else exactly the same", "n": 1, "response_format": "url" }, files={"image": ("fox.jpg", fp, "image/jpeg")}, timeout=360 ).json()urllib.request.urlretrieve(response["data"][0]["url"], "edited.jpg")
import requestsAPI_KEY = "sk-your-api-key"# Repeat the image[] field for multiple references — order is "image 1 / image 2"files = [ ("image[]", ("character.jpg", open("character.jpg", "rb"), "image/jpeg")), ("image[]", ("scene.jpg", open("scene.jpg", "rb"), "image/jpeg")),]response = requests.post( "https://api.apiyi.com/v1/images/edits", headers={"Authorization": f"Bearer {API_KEY}"}, data={ "model": "grok-imagine-image", "prompt": "Put the character from image 1 into the scene from image 2, " "keeping image 2's art style and palette", "response_format": "url" }, files=files, timeout=360).json()print(response["data"][0]["url"])
# Single-image edit: -F means multipart/form-data, @ uploads a local filecurl -X POST "https://api.apiyi.com/v1/images/edits" \ -H "Authorization: Bearer sk-your-api-key" \ -F "model=grok-imagine-image" \ -F "prompt=Change the scarf to red, keep everything else exactly the same" \ -F "n=1" \ -F "response_format=url" \ -F "[email protected]"
# Multi-image fusion: repeat image[], order is "image 1 / image 2"curl -X POST "https://api.apiyi.com/v1/images/edits" \ -H "Authorization: Bearer sk-your-api-key" \ -F "model=grok-imagine-image-quality" \ -F "prompt=Put the character from image 1 into the scene from image 2, keep image 2's style" \ -F "image[][email protected]" \ -F "image[][email protected]"
import fs from 'node:fs';const form = new FormData();form.append('model', 'grok-imagine-image');form.append('prompt', 'Change the scarf to red, keep everything else exactly the same');form.append('n', '1');form.append('response_format', 'url');// Single image uses `image`; for fusion append `image[]` repeatedly (max 3)form.append('image', new Blob([fs.readFileSync('./fox.jpg')]), 'fox.jpg');const resp = await fetch('https://api.apiyi.com/v1/images/edits', { method: 'POST', // Do not set Content-Type manually — let FormData supply the boundary headers: { 'Authorization': 'Bearer sk-your-api-key' }, body: form, signal: AbortSignal.timeout(360000)});const data = await resp.json();const img = await fetch(data.data[0].url);fs.writeFileSync('edited.jpg', Buffer.from(await img.arrayBuffer()));
// ⚠️ Demo only: a front-end key is exposed — use a backend proxy in productionconst fileInput = document.querySelector('#file'); // an <input type="file"> elementconst form = new FormData();form.append('model', 'grok-imagine-image');form.append('prompt', 'Replace the background with a snowy pine forest at night, keep the subject');form.append('response_format', 'url');form.append('image', fileInput.files[0]);const resp = await fetch('https://api.apiyi.com/v1/images/edits', { method: 'POST', headers: { 'Authorization': 'Bearer sk-your-api-key' }, body: form});const data = await resp.json();document.querySelector('#preview').src = data.data[0].url;
grok-imagine-image ($0.02/image) or grok-imagine-image-quality ($0.045/image)
prompt
string
✅
—
Editing instruction. State what changes and that everything else stays put
image
file
✅
—
Reference image file. For fusion repeat image[], 1-4 files (a fifth returns 400). The first one sets output dimensions
n
integer
❌
1
Output images, 1-10, billed per image, independent of reference count
response_format
string
❌
url
url returns a direct link; b64_json returns raw base64 (nodata: prefix)
resolution
string
❌
—
No effect here — output follows the input image
aspect_ratio
string
❌
—
No effect here — output follows the input image
This family does not support mask inpainting. To limit the scope of a change, describe it precisely in the prompt — for example “change only the scarf to red, keep everything else exactly the same”. The model follows such constraints closely.
The editing endpoint preserves the input image’s art style, composition, palette and subject identity, changing only what the prompt specifies. For stable results:
Prompt style
Result
✅ Change the scarf to red, keep everything else exactly the same
Only the scarf changes; style, composition and background are preserved
✅ Add round black sunglasses to the cat, keep everything else unchanged
Only sunglasses are added; outline style and background colour stay put
✅ Put the character from image 1 into the scene from image 2, keep image 2's style
Fusion that retains characteristics of both inputs
⚠️ Make it look better
Too vague — the scope of change becomes unpredictable
Explicitly saying “keep everything else unchanged” is the single most effective technique with this model. For fusion, always refer to “image 1 / image 2” matching the image[] upload order.Also put your most important subject first: the first image not only sets output dimensions, but in testing a reversed order caused a secondary subject’s identity to blend into another.
Each data[] entry contains eitherurlorb64_json depending on response_format — never both.
revised_prompt is not returned — do not assume it exists.
b64_json is raw base64 with no data:image/...;base64, prefix — decode it directly.
created is always 0 and cannot be used as a timestamp.
Output dimensions are determined by the input image, so do not predict width/height from request parameters.
usage cannot be used for reconciliation: prompt_tokens is always 1000 x n, a placeholder. Editing costs the same as text-to-image at a flat rate per image; use the APIYI Console billing records for actual charges.
Editing instruction. State what to change and explicitly ask for everything else to stay put,
e.g. Change the scarf color to bright RED. Keep everything else exactly the same.
Example:
"Change the scarf color to bright RED. Keep everything else exactly the same."
Reference image file. For multi-image fusion repeat the image[] field (1-4 files);
upload order is what "image 1 / image 2 / image 3" refers to in the prompt, and
the first file also determines output dimensions. Each added image contributes
a subject in testing. Accepted formats: png / jpg / webp.
Placeholder values — do not use for billing reconciliation.prompt_tokens is always 1000 x n
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"API易文档中心","description":"企业级专业稳定的AI大模型API中转站,一个令牌、无限模型。支持OpenAI、Claude、Gemini、DeepSeek、Qwen等 200+ 精选 AI 模型。","colors":{"primary":"#2563eb","light":"#3b82f6","dark":"#1d4ed8"},"logo":{"light":"https://mintcdn.com/apiyillc/LjCT1O0GrSur6F2v/logo/light.svg?fit=max\u0026auto=format\u0026n=LjCT1O0GrSur6F2v\u0026q=85\u0026s=4119ef17a74cc54be127f34578d8b5fa","dark":"https://mintcdn.com/apiyillc/LjCT1O0GrSur6F2v/logo/dark.svg?fit=max\u0026auto=format\u0026n=LjCT1O0GrSur6F2v\u0026q=85\u0026s=1f046ae9580247d96549ade642b5ecc4"},"favicon":"https://mintcdn.com/apiyillc/OMY6ItCc2mC1yzgA/logo/logo.webp?fit=max\u0026auto=format\u0026n=OMY6ItCc2mC1yzgA\u0026q=85\u0026s=62a7977ef801070e689df2d0291b9d13","api":{"openapi":["api-reference/nano-banana-2-generate-openapi.yaml","api-reference/nano-banana-2-edit-openapi.yaml","api-reference/nano-banana-2-generate-openapi-en.yaml","api-reference/nano-banana-2-edit-openapi-en.yaml","api-reference/nano-banana-pro-generate-openapi.yaml","api-reference/nano-banana-pro-edit-openapi.yaml","api-reference/nano-banana-pro-generate-openapi-en.yaml","api-reference/nano-banana-pro-edit-openapi-en.yaml","api-reference/gpt-image-2-all-generate-openapi.yaml","api-reference/gpt-image-2-all-edit-openapi.yaml","api-reference/gpt-image-2-all-generate-openapi-en.yaml","api-reference/gpt-image-2-all-edit-openapi-en.yaml","api-reference/gpt-image-2-all-chat-openapi.yaml","api-reference/gpt-image-2-all-chat-openapi-en.yaml","api-reference/gpt-image-2-vip-generate-openapi.yaml","api-reference/gpt-image-2-vip-edit-openapi.yaml","api-reference/gpt-image-2-vip-chat-openapi.yaml","api-reference/gpt-image-2-vip-generate-openapi-en.yaml","api-reference/gpt-image-2-vip-edit-openapi-en.yaml","api-reference/gpt-image-2-vip-chat-openapi-en.yaml"],"playground":{"display":"interactive","proxy":true},"examples":{"defaults":"required"}},"navbar":{"links":[{"href":"https://api.apiyi.com","label":"首页"},{"href":"https://imagen.apiyi.com","label":"AI出图"},{"href":"https://icover.ai","label":"AI视频"}],"primary":{"type":"button","label":"控制台","href":"https://api.apiyi.com/account/profile"}},"footer":{"socials":{"website":"https://api.apiyi.com"},"links":[{"header":"AI 集成","items":[{"label":"skill.md","href":"https://docs.apiyi.com/skill.md"},{"label":"llms.txt","href":"https://docs.apiyi.com/llms.txt"},{"label":"llms-full.txt","href":"https://docs.apiyi.com/llms-full.txt"},{"label":"model-registry.json","href":"https://docs.apiyi.com/model-registry.json"},{"label":"AI 开发者套件(中文)","href":"/developer-kit"},{"label":"AI Developer Kit (EN)","href":"/en/developer-kit"}]},{"header":"用户口碑 / Wall of Love","items":[{"label":"用户口碑(中文)","href":"/wall-of-love"},{"label":"Wall of Love (EN)","href":"/en/wall-of-love"}]}]},"seo":{"indexing":"all"},"icons":{"library":"lucide"},"banner":{"content":"🚀 **GPT Image 2.6 Sunburst 和 Flare 均已上线,支持 GIF 输出,低至 83 折(17% off) | Now Live**:[详情 Details](https://docs.apiyi.com/api-capabilities/gpt-image-2/gpt-image-2-6)","dismissible":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","aistudio"],"display":"header"},"metadata":{"timestamp":false},"styling":{"latex":true},"navigation":{"global":{"anchors":[]},"languages":[{"language":"zh","href":""},{"language":"en","navbar":{"links":[{"href":"https://api.apiyi.com","label":"Home"},{"href":"https://imagen.apiyi.com","label":"AI Image"},{"href":"https://icover.ai","label":"AI Video"}],"primary":{"type":"button","label":"Console","href":"https://api.apiyi.com/account/profile"}},"href":"en"},{"language":"zh-Hant","banner":{"content":"本頁由程式自動轉換為繁體中文,用詞以台灣正體為準;如有歧義請以[簡體中文版](/)為準。","dismissible":true},"footer":{"socials":{"website":"https://api.apiyi.com"},"links":[{"header":"AI 整合","items":[{"label":"skill.md","href":"https://docs.apiyi.com/skill.md"},{"label":"llms.txt","href":"https://docs.apiyi.com/llms.txt"},{"label":"llms-full.txt","href":"https://docs.apiyi.com/llms-full.txt"},{"label":"model-registry.json","href":"https://docs.apiyi.com/model-registry.json"},{"label":"AI 開發者套件(中文)","href":"/developer-kit"},{"label":"AI Developer Kit (EN)","href":"/en/developer-kit"}]},{"header":"使用者口碑 / Wall of Love","items":[{"label":"使用者口碑(中文)","href":"/wall-of-love"},{"label":"Wall of Love (EN)","href":"/en/wall-of-love"}]}]},"navbar":{"links":[{"href":"https://api.apiyi.com","label":"首頁"},{"href":"https://imagen.apiyi.com","label":"AI出圖"},{"href":"https://icover.ai","label":"AI影片"}],"primary":{"type":"button","label":"控制台","href":"https://api.apiyi.com/account/profile"}},"href":"zh-Hant"},{"language":"ja","banner":{"content":"このページは AI により翻訳されています。内容に相違がある場合は[English 版](/en)を正としてください。","dismissible":true},"footer":{"socials":{"website":"https://api.apiyi.com"},"links":[{"header":"AI統合","items":[{"label":"skill.md","href":"https://docs.apiyi.com/skill.md"},{"label":"llms.txt","href":"https://docs.apiyi.com/llms.txt"},{"label":"llms-full.txt","href":"https://docs.apiyi.com/llms-full.txt"},{"label":"model-registry.json","href":"https://docs.apiyi.com/model-registry.json"},{"label":"AI開発者キット(中国語)","href":"/developer-kit"},{"label":"AI Developer Kit (EN)","href":"/en/developer-kit"}]},{"header":"ユーザーの声 / Wall of Love","items":[{"label":"ユーザーの声(中国語)","href":"/wall-of-love"},{"label":"Wall of Love(英語)","href":"/en/wall-of-love"}]}]},"navbar":{"links":[{"href":"https://api.apiyi.com","label":"ホーム"},{"href":"https://imagen.apiyi.com","label":"AI画像生成"},{"href":"https://icover.ai","label":"AI動画生成"}],"primary":{"type":"button","label":"コンソール","href":"https://api.apiyi.com/account/profile"}},"href":"ja"},{"language":"ko","banner":{"content":"이 페이지는 AI로 번역되었습니다. 내용이 다를 경우 [English 버전](/en)을 기준으로 하십시오.","dismissible":true},"footer":{"socials":{"website":"https://api.apiyi.com"},"links":[{"header":"AI 통합","items":[{"label":"skill.md","href":"https://docs.apiyi.com/skill.md"},{"label":"llms.txt","href":"https://docs.apiyi.com/llms.txt"},{"label":"llms-full.txt","href":"https://docs.apiyi.com/llms-full.txt"},{"label":"model-registry.json","href":"https://docs.apiyi.com/model-registry.json"},{"label":"AI 개발자 키트(중국어)","href":"/developer-kit"},{"label":"AI Developer Kit (EN)","href":"/en/developer-kit"}]},{"header":"사용자 후기 / Wall of Love","items":[{"label":"사용자 후기(중국어)","href":"/wall-of-love"},{"label":"Wall of Love (영문)","href":"/en/wall-of-love"}]}]},"navbar":{"links":[{"href":"https://api.apiyi.com","label":"홈"},{"href":"https://imagen.apiyi.com","label":"AI 이미지 생성"},{"href":"https://icover.ai","label":"AI 동영상 생성"}],"primary":{"type":"button","label":"콘솔","href":"https://api.apiyi.com/account/profile"}},"href":"ko"},{"language":"ru","banner":{"content":"Эта страница переведена с помощью ИИ. При расхождениях ориентируйтесь на [английскую версию](/en).","dismissible":true},"footer":{"socials":{"website":"https://api.apiyi.com"},"links":[{"header":"AI-интеграция","items":[{"label":"skill.md","href":"https://docs.apiyi.com/skill.md"},{"label":"llms.txt","href":"https://docs.apiyi.com/llms.txt"},{"label":"llms-full.txt","href":"https://docs.apiyi.com/llms-full.txt"},{"label":"model-registry.json","href":"https://docs.apiyi.com/model-registry.json"},{"label":"Набор AI-разработчика (кит.)","href":"/developer-kit"},{"label":"AI Developer Kit (EN)","href":"/en/developer-kit"}]},{"header":"Отзывы пользователей / Wall of Love","items":[{"label":"Отзывы пользователей (на китайском)","href":"/wall-of-love"},{"label":"Wall of Love (EN)","href":"/en/wall-of-love"}]}]},"navbar":{"links":[{"href":"https://api.apiyi.com","label":"Главная"},{"href":"https://imagen.apiyi.com","label":"Генерация изображений"},{"href":"https://icover.ai","label":"Генерация видео"}],"primary":{"type":"button","label":"Консоль","href":"https://api.apiyi.com/account/profile"}},"href":"ru"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"apiyillc","hasAudioNarration":false,"actualSubdomain":"apiyillc","customDomains":["docs.apiyi.com"],"gitSource":{"type":"github","owner":"pdmaker","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{},"buildId":"6af337d8a8d5ba2dc2ce6435","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"zh","tag":"首页","count":212},{"language":"en","tag":"Home","count":212},{"language":"ja","tag":"ホーム","count":212},{"language":"ko","tag":"홈","count":212},{"language":"ru","tag":"Главная","count":212},{"language":"zh-Hant","tag":"首頁","count":212},{"language":"zh","tag":"图片 API(官转)","count":83},{"language":"en","tag":"Image API (Official)","count":83},{"language":"ja","tag":"画像API(公式)","count":83},{"language":"ko","tag":"이미지 API (공식)","count":83},{"language":"ru","tag":"Image API (официальный)","count":83},{"language":"zh-Hant","tag":"圖片 API(官轉)","count":83},{"language":"zh","tag":"公告","count":79},{"language":"en","tag":"Announcements","count":79},{"language":"zh","tag":"AI风向标","count":76},{"language":"en","tag":"AI Radar","count":76},{"language":"zh","tag":"常见问题","count":63},{"language":"en","tag":"FAQ","count":63},{"language":"ja","tag":"FAQ","count":63},{"language":"ko","tag":"FAQ","count":63},{"language":"ru","tag":"FAQ","count":63},{"language":"zh-Hant","tag":"常見問題","count":63},{"language":"zh","tag":"使用场景","count":50},{"language":"en","tag":"Use Cases","count":50},{"language":"ja","tag":"活用例","count":50},{"language":"ko","tag":"활용 사례","count":50},{"language":"ru","tag":"Сценарии использования","count":50},{"language":"zh-Hant","tag":"使用場景","count":50},{"language":"zh","tag":"基础 API","count":47},{"language":"en","tag":"Basic API","count":47},{"language":"ja","tag":"基本API","count":47},{"language":"ko","tag":"기본 API","count":47},{"language":"ru","tag":"Базовый API","count":47},{"language":"zh-Hant","tag":"基礎 API","count":47},{"language":"zh","tag":"视频 API(官转)","count":35},{"language":"zh","tag":"模型价格","count":35},{"language":"en","tag":"Video API (Official)","count":35},{"language":"en","tag":"Model Pricing","count":35},{"language":"ja","tag":"動画API(公式)","count":35},{"language":"ja","tag":"モデル料金","count":35},{"language":"ko","tag":"동영상 API (공식)","count":35},{"language":"ko","tag":"모델 요금","count":35},{"language":"ru","tag":"Video API (официальный)","count":35},{"language":"ru","tag":"Цены на модели","count":35},{"language":"zh-Hant","tag":"影片 API(官轉)","count":35},{"language":"zh-Hant","tag":"模型價格","count":35},{"language":"zh","tag":"文本生成","count":27},{"language":"en","tag":"Text Generation","count":27},{"language":"ja","tag":"テキスト生成","count":27},{"language":"ko","tag":"텍스트 생성","count":27},{"language":"ru","tag":"Генерация текста","count":27},{"language":"zh-Hant","tag":"文本生成","count":27},{"language":"ja","tag":"課金とセキュリティ","count":17},{"language":"ko","tag":"결제 및 보안","count":17},{"language":"ru","tag":"Оплата и безопасность","count":17},{"language":"zh-Hant","tag":"充值與安全","count":17},{"language":"ja","tag":"NanoBananaベストプラクティス","count":15},{"language":"ko","tag":"NanoBanana 모범 사례","count":15},{"language":"ru","tag":"Лучшие практики NanoBanana","count":15},{"language":"zh-Hant","tag":"NanoBanana最佳實踐","count":15}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"models/models.css","content":".mp-layout{display:flex;gap:2.5rem;max-width:1400px;margin:0 auto;padding:2.5rem 1.5rem 4rem;font-size:15px;line-height:1.7;color:rgb(var(--gray-500, 113 115 119))}html.dark .mp-layout{color:rgb(var(--gray-400, 159 161 165))}.mp-rail{display:none}@media (min-width: 1024px){.mp-rail{display:block;width:13rem;flex-shrink:0}}.mp-rail-nav{position:sticky;top:9.25rem;font-size:0.875rem}.mp-rail-head{font-weight:600;margin:0 0 0.375rem;color:rgb(var(--gray-900, 23 25 29))}html.dark .mp-rail-head{color:rgb(var(--gray-200, 223 225 229))}.mp-rail-link{display:block;padding:0.22rem 0;color:rgb(var(--gray-500, 113 115 119));text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-rail-link:hover{color:rgb(var(--primary, 37 99 235))}html.dark .mp-rail-link{color:rgb(var(--gray-400, 159 161 165))}html.dark .mp-rail-link:hover{color:rgb(var(--primary-light, 59 130 246))}.mp-rail-vendors{max-height:45vh;overflow-y:auto}.mp-mt{margin-top:1rem}.mp-content{min-width:0;flex:1}.mp-title{font-size:2rem;font-weight:700;letter-spacing:-0.02em;margin:0 0 0.5rem;color:rgb(var(--gray-900, 23 25 29))}html.dark .mp-title{color:#fff}.mp-desc{color:rgb(var(--gray-500, 113 115 119));margin:0 0 1.5rem}html.dark .mp-desc{color:rgb(var(--gray-400, 159 161 165))}.mp-content h2{font-size:1.375rem;font-weight:600;margin:2.75rem 0 1rem;padding-bottom:0.45rem;border-bottom:1px solid rgb(var(--gray-200, 223 225 229) / 0.7);color:rgb(var(--gray-900, 23 25 29));scroll-margin-top:12rem}@media (min-width: 1024px){.mp-content h2{scroll-margin-top:16.5rem}}html.dark .mp-content h2{border-color:rgb(255 255 255 / 0.1);color:#fff}.mp-content p{margin:0.75rem 0}.mp-content ul{margin:0.75rem 0;padding-left:1.4rem}.mp-content li{margin:0.4rem 0}.mp-content strong{color:rgb(var(--gray-900, 23 25 29))}html.dark .mp-content strong{color:#fff}.mp-content a{color:rgb(var(--primary, 37 99 235));text-decoration:none}.mp-content a:hover{text-decoration:underline}html.dark .mp-content a{color:rgb(var(--primary-light, 59 130 246))}.mp-content code{font-size:0.85em;background:rgb(var(--gray-100, 239 241 245) / 0.8);border:1px solid rgb(var(--gray-200, 223 225 229) / 0.7);padding:0.1em 0.35em;border-radius:0.375rem}html.dark .mp-content code{background:rgb(255 255 255 / 0.06);border-color:rgb(255 255 255 / 0.1)}.mp-content code.mp-ep-rec{color:rgb(var(--primary, 37 99 235));background:rgb(var(--primary, 37 99 235) / 0.08);border-color:rgb(var(--primary, 37 99 235) / 0.45);font-weight:600}html.dark .mp-content code.mp-ep-rec{color:rgb(var(--primary-light, 59 130 246));background:rgb(var(--primary-light, 59 130 246) / 0.14);border-color:rgb(var(--primary-light, 59 130 246) / 0.5)}.mp-content table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:0.875rem;margin:1rem 0 1.5rem}.mp-content th{text-align:left;font-weight:500;color:rgb(var(--gray-500, 113 115 119));padding:0.55rem 1.25rem 0.55rem 0;border-bottom:1px solid rgb(var(--gray-200, 223 225 229) / 0.7);white-space:nowrap}.mp-content td{padding:0.55rem 1.25rem 0.55rem 0;border-bottom:1px solid rgb(var(--gray-200, 223 225 229) / 0.45);white-space:nowrap}html.dark .mp-content th{border-color:rgb(255 255 255 / 0.1);color:rgb(var(--gray-400, 159 161 165))}html.dark .mp-content td{border-color:rgb(255 255 255 / 0.07)}.mp-search{display:contents}.mp-search-bar{position:sticky;top:5rem;z-index:20;margin:0 0 1.75rem;background:rgb(var(--background-light, 255 255 255));padding:0.75rem 0 0.85rem;box-shadow:0 10px 14px -10px rgb(var(--gray-950, 11 13 17) / 0.28)}@media (min-width: 1024px){.mp-search-bar{top:9.25rem}}html.dark .mp-search-bar{background:rgb(var(--background-dark, 10 11 16));box-shadow:0 8px 12px -10px rgb(0 0 0 / 0.7)}.mp-search-label{margin:0 0 0.5rem;padding-left:0.6rem;border-left:3px solid rgb(var(--primary, 37 99 235));font-size:0.9rem;font-weight:600;line-height:1.4;color:rgb(var(--primary, 37 99 235))}html.dark .mp-search-label{border-left-color:rgb(var(--primary-light, 59 130 246));color:rgb(var(--primary-light, 59 130 246))}.mp-search-input{width:100%;box-sizing:border-box;border:1px solid rgb(var(--gray-400, 159 161 165) / 0.3);border-radius:0.75rem;padding:0.7rem 1rem 0.7rem 2.65rem;font-size:0.9rem;background-color:rgb(var(--background-light, 255 255 255));background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23717377' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:0.9rem center;color:rgb(var(--gray-900, 23 25 29));outline:none;transition:border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease}.mp-search-input::placeholder{color:rgb(var(--gray-500, 113 115 119))}.mp-search-input:hover{border-color:rgb(var(--gray-600, 81 83 87) / 0.3)}.mp-search-input:focus{border-color:rgb(var(--primary, 37 99 235));box-shadow:0 0 0 3px rgb(var(--primary, 37 99 235) / 0.16)}html.dark .mp-search-input{background-color:rgb(var(--background-dark, 10 11 16));background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%239fa1a5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E\");border-color:rgb(var(--gray-600, 81 83 87) / 0.3);color:rgb(var(--gray-100, 239 241 245))}html.dark .mp-search-input::placeholder{color:rgb(255 255 255 / 0.5)}html.dark .mp-search-input:hover{border-color:rgb(var(--gray-500, 113 115 119) / 0.35)}html.dark .mp-search-input:focus{border-color:rgb(var(--primary-light, 59 130 246));box-shadow:0 0 0 3px rgb(var(--primary-light, 59 130 246) / 0.22)}.mp-search-meta{font-size:0.75rem;color:rgb(var(--gray-500, 113 115 119));margin:0.75rem 0 0.25rem}.mp-search-empty{font-size:0.875rem;color:rgb(var(--gray-500, 113 115 119));margin-top:0.75rem}html.dark .mp-search-meta,html.dark .mp-search-empty{color:rgb(var(--gray-400, 159 161 165))}.mp-mono{font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-size:0.8125rem}@media (min-width: 1024px){.mp-jump{display:none}}"},{"filePath":"styles/agent-prompt.css","content":"div.prompt{border:1.5px solid rgb(var(--primary, 37 99 235) / 0.35);background:rgb(var(--primary, 37 99 235) / 0.035);padding:1.25rem 1.25rem 1rem;row-gap:0.75rem}html.dark div.prompt{border-color:rgb(var(--primary-light, 59 130 246) / 0.4);background:rgb(var(--primary-light, 59 130 246) / 0.06)}div.prompt [data-component-part=\"prompt-content-wrapper\"]{width:100%}div.prompt [data-component-part=\"prompt-actions-wrapper\"]{width:100%;justify-content:flex-end}div.prompt [data-component-part=\"prompt-description\"]{flex:1;font-size:14px;line-height:1.65}div.prompt [data-component-part=\"prompt-description\"]>div>*{margin:0}div.prompt [data-component-part=\"prompt-description\"]>div>*+*{margin-top:0.6rem}div.prompt [data-component-part=\"prompt-description\"] strong{font-size:15px;font-weight:650;color:rgb(var(--gray-900, 23 25 29))}html.dark div.prompt [data-component-part=\"prompt-description\"] strong{color:#fff}div.prompt [data-component-part=\"prompt-description\"]>div>*+p{color:rgb(var(--gray-600, 80 82 86))}html.dark div.prompt [data-component-part=\"prompt-description\"]>div>*+p{color:rgb(var(--gray-400, 159 161 165))}div.prompt [data-component-part=\"prompt-description\"] code{font-size:0.85em;background:rgb(var(--gray-100, 239 241 245) / 0.9);border:1px solid rgb(var(--gray-200, 223 225 229) / 0.7);padding:0.05em 0.35em;border-radius:0.375rem}html.dark div.prompt [data-component-part=\"prompt-description\"] code{background:rgb(255 255 255 / 0.06);border-color:rgb(255 255 255 / 0.1)}div.prompt [data-component-part=\"prompt-description\"] blockquote{margin:0;padding:0.75rem 0.9rem;font-style:normal;border:1px dashed rgb(var(--gray-300, 191 193 197));border-radius:0.6rem;background:rgb(var(--background-light, 255 255 255));font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-size:12.5px;line-height:1.6;color:rgb(var(--gray-600, 80 82 86));overflow-wrap:anywhere;-webkit-mask-image:linear-gradient(to bottom, #000 70%, transparent 100%);mask-image:linear-gradient(to bottom, #000 70%, transparent 100%)}div.prompt [data-component-part=\"prompt-description\"] blockquote p,div.prompt [data-component-part=\"prompt-description\"] blockquote ol{margin:0}div.prompt [data-component-part=\"prompt-description\"] blockquote li{padding:0}div.prompt [data-component-part=\"prompt-description\"] blockquote>*+*{margin-top:0.5rem}div.prompt [data-component-part=\"prompt-description\"] blockquote code{background:none;border:0;padding:0;font-size:1em}div.prompt [data-component-part=\"prompt-description\"] blockquote a{color:inherit;text-decoration:none;pointer-events:none}html.dark div.prompt [data-component-part=\"prompt-description\"] blockquote{border-color:rgb(255 255 255 / 0.15);background:rgb(var(--background-dark, 13 13 13));color:rgb(var(--gray-400, 159 161 165))}div.prompt [data-component-part=\"prompt-action-copy-button\"]{padding:0.6rem 1.25rem;font-size:14px;line-height:20px;font-weight:600;border-radius:0.65rem;gap:0.45rem;box-shadow:0 1px 2px rgb(0 0 0 / 0.08), 0 4px 12px rgb(var(--primary, 37 99 235) / 0.25)}div.prompt [data-component-part=\"prompt-action-copy-button\"]::before{content:\"\";width:16px;height:16px;flex-shrink:0;background:currentColor;-webkit-mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='14' height='14' x='8' y='8' rx='2' ry='2'/%3E%3Cpath d='M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2'/%3E%3C/svg%3E\") center / contain no-repeat;mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='14' height='14' x='8' y='8' rx='2' ry='2'/%3E%3Cpath d='M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2'/%3E%3C/svg%3E\") center / contain no-repeat}div.prompt [data-component-part=\"prompt-action-copy-button\"] svg{width:12px;height:12px}@media (max-width: 640px){div.prompt [data-component-part=\"prompt-actions-wrapper\"]>*{flex:1}}"}],"page":{"pagePath":"en/api-capabilities/grok-imagine-image/image-edit","slug":"/en/api-capabilities/grok-imagine-image/image-edit","pageMetadata":{"title":"Image Editing API Reference","description":"Grok Imagine 2 image editing API reference and live testing — upload 1-4 reference images plus an instruction for editing or fusion; requires multipart/form-data","openapi":"api-reference/grok-imagine-image-edit-openapi-en.yaml POST /v1/images/edits","icon":"image","href":"/en/api-capabilities/grok-imagine-image/image-edit"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Grok Imagine 2 image editing API reference and live testing — upload 1-4 reference images plus an instruction for editing or fusion; requires multipart/form-data\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,del:`del`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Info,Table,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(Warning,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`🔒 Not open by default`}),`: Grok Imagine 2 does not sit in the `,_jsx(_components.code,{children:`Default`}),` group. It lives in its own `,_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`Grok_imagine_Reverse`}),` group`]}),`, and access must be requested before you can call it (including the Playground on this page). Without it, every call returns `,_jsx(_components.code,{children:`503`}),`.`]}),_jsxs(_components.p,{children:[`This family’s content-safety policy differs substantially from the other models on the platform and some categories are not filtered, so to limit compliance risk we grant access selectively: existing customers with $1,000+ cumulative spend can get it enabled by describing their use case to support; everyone else applies through `,_jsx(_components.a,{href:`https://work.weixin.qq.com/kfid/kfc9adfd5810ece25ec`,children:`WeCom support`}),` with a description of the use case and the content-moderation controls in place. Full process: `,_jsx(_components.a,{href:`/en/api-capabilities/grok-imagine-image/overview#group-setup`,children:`Grok Imagine 2 Overview - Group Setup`}),`.`]})]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`The interactive Playground on the right accepts local file uploads. Enter your API Key in `,_jsx(_components.strong,{children:`Authorization`}),` (format: `,_jsx(_components.code,{children:`Bearer sk-xxx`}),`), choose an `,_jsx(_components.code,{children:`image`}),` file, fill in `,_jsx(_components.code,{children:`prompt`}),` and `,_jsx(_components.code,{children:`model`}),`, and send.`]})}),`\n`,_jsxs(Warning,{children:[_jsx(_components.p,{children:_jsxs(_components.strong,{children:[`🔴 This endpoint requires `,_jsx(_components.code,{children:`multipart/form-data`}),` file upload`]})}),_jsxs(_components.p,{children:[`Sending JSON to `,_jsx(_components.code,{children:`/v1/images/edits`}),` `,_jsx(_components.strong,{children:`always returns 400`}),`:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`request Content-Type isn't multipart/form-data`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`This matters especially if you are integrating from xAI or the upstream vendor’s documentation`}),`: that doc describes a JSON body with a public image URL (`,_jsx(_components.code,{children:`{\"image\": {\"type\": \"image_url\", \"url\": \"...\"}}`}),`), and that form does `,_jsx(_components.strong,{children:`not`}),` work through the APIYI gateway. Follow this page instead.`]}),_jsxs(_components.p,{children:[`The upside: file upload means `,_jsx(_components.strong,{children:`no image hosting required`}),` — just send the local file, which is simpler than preparing a public URL.`]}),_jsxs(_components.p,{children:[`The file field must be named `,_jsx(_components.strong,{children:_jsx(_components.code,{children:`image`})}),` or `,_jsx(_components.strong,{children:_jsx(_components.code,{children:`image[]`})}),`; `,_jsx(_components.code,{children:`images`}),` / `,_jsx(_components.code,{children:`image_file`}),` return `,_jsx(_components.strong,{children:`415`}),`. `,_jsx(_components.code,{children:`prompt`}),` is required — omitting it returns 400.`]})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`When to use this page`}),`: editing one reference image, or fusing several. For prompt-only generation, use the `,_jsx(_components.a,{href:`/en/api-capabilities/grok-imagine-image/text-to-image`,children:`Text-to-Image endpoint`}),`.`]})}),`\n`,_jsxs(Warning,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`⚠️ Output dimensions follow the FIRST reference image and cannot be changed`})}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`resolution`}),` and `,_jsx(_components.code,{children:`aspect_ratio`}),` are accepted here without error but have `,_jsx(_components.strong,{children:`no effect`}),` — the edited output always matches `,_jsx(_components.strong,{children:`the first reference image’s dimensions`}),` (1280x720 in gives 1280x720 out; 1024x1024 in gives 1024x1024 out).`]}),_jsxs(_components.p,{children:[`The same applies to fusion: reversing the order of 4 references flipped the output from 1280x720 to 1024x1024, `,_jsx(_components.strong,{children:`following the new first image`}),`.`]}),_jsxs(_components.p,{children:[`To change the output size, `,_jsx(_components.strong,{children:`crop or resize the first reference image before uploading`}),`.`]})]}),`\n`,_jsxs(Info,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Fusion order is meaningful`}),`: `,_jsx(_components.code,{children:`image[]`}),` accepts `,_jsx(_components.strong,{children:`1-4`}),` reference images (measured ceiling is 4; a fifth returns 400), and `,_jsx(_components.strong,{children:`the upload order is what “image 1 / image 2 / image 3” refers to in the prompt`}),`. State it explicitly, e.g. “put the subject from image 1 into the scene from image 2, keeping image 2’s art style”.`]}),_jsxs(_components.p,{children:[`Measured across 2 / 3 / 4 references: `,_jsx(_components.strong,{children:`each additional image adds a corresponding subject to the output`}),`, with each one’s distinctive traits preserved — fusion genuinely works.`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`code-examples`,children:`Code Examples`}),`\n`,_jsx(Heading,{level:`3`,id:`python-openai-sdk-single-image`,children:`Python (OpenAI SDK, single image)`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`18`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`18`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` openai `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` OpenAI`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` urllib.request`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client = OpenAI(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` api_key=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sk-your-api-key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` base_url=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.apiyi.com/v1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` timeout=360.0`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# The SDK's images.edit already performs a multipart upload — pass the file object directly`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`resp = client.images.edit(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` model=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"grok-imagine-image\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` image=open(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"fox.jpg\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"rb\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` prompt=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Change the scarf color to bright RED. Keep everything else exactly the same.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` n=1`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`urllib.request.urlretrieve(resp.data[0].url, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"edited.jpg\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`python-raw-requests-single-image`,children:`Python (raw requests, single image)`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`22`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`22`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` urllib.request`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`API_KEY = `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sk-your-api-key\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Key point: use files= so requests sets multipart/form-data and the boundary for you.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Never use json= — that sends application/json and the gateway rejects it with 400.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`with`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` open(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"fox.jpg\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"rb\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`as`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` fp:`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` response = requests.post(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://api.apiyi.com/v1/images/edits\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` headers={`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Authorization\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Bearer {API_KEY}\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# do NOT set Content-Type manually`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` data={`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"model\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"grok-imagine-image\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"prompt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Change the scarf to red, keep everything else exactly the same\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"n\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: 1,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"response_format\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"url\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` files={`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"image\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: (`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"fox.jpg\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, fp, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"image/jpeg\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)},`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` timeout=360`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ).json()`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`urllib.request.urlretrieve(response[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`][0][`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`], `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"edited.jpg\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`python-multi-image-fusion-1-4-files`,children:`Python (multi-image fusion, 1-4 files)`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`24`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`24`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`API_KEY = `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sk-your-api-key\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Repeat the image[] field for multiple references — order is \"image 1 / image 2\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`files = [`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"image[]\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, (`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"character.jpg\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, open(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"character.jpg\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"rb\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`), `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"image/jpeg\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"image[]\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, (`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"scene.jpg\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, open(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"scene.jpg\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"rb\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`), `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"image/jpeg\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)),`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`response = requests.post(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://api.apiyi.com/v1/images/edits\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` headers={`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Authorization\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Bearer {API_KEY}\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`},`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` data={`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"model\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"grok-imagine-image\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"prompt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Put the character from image 1 into the scene from image 2, \"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"keeping image 2's art style and palette\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"response_format\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"url\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` files=files,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` timeout=360`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).json()`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`print(response[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`][0][`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`curl`,children:`cURL`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Single-image edit: -F means multipart/form-data, @ uploads a local file`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` -X POST `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.apiyi.com/v1/images/edits\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` -H `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Authorization: Bearer sk-your-api-key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` -F `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"model=grok-imagine-image\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` -F `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"prompt=Change the scarf to red, keep everything else exactly the same\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` -F `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"n=1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` -F `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"response_format=url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` -F `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"[email protected]\"`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Multi-image fusion: repeat image[], order is \"image 1 / image 2\"`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` -X POST `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.apiyi.com/v1/images/edits\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` -H `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Authorization: Bearer sk-your-api-key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` -F `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"model=grok-imagine-image-quality\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` -F `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"prompt=Put the character from image 1 into the scene from image 2, keep image 2's style\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` -F `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"image[][email protected]\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` -F `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"image[][email protected]\"`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`node-js-native-fetch-+-formdata`,children:`Node.js (native fetch + FormData)`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`21`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`21`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` fs `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'node:fs'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` form = `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`new`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` FormData();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`form.append(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'model'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'grok-imagine-image'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`form.append(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'prompt'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Change the scarf to red, keep everything else exactly the same'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`form.append(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'n'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'1'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`form.append(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'response_format'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'url'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:\"// Single image uses `image`; for fusion append `image[]` repeatedly (max 3)\"})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`form.append(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'image'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`new`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Blob([fs.readFileSync(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'./fox.jpg'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)]), `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'fox.jpg'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` resp = `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` fetch(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'https://api.apiyi.com/v1/images/edits'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` method: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'POST'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Do not set Content-Type manually — let FormData supply the boundary`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` headers: { `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Authorization'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Bearer sk-your-api-key'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` body: form,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` signal: AbortSignal.timeout(360000)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` data = `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` resp.json();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` img = `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` fetch(data.data[0].url);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`fs.writeFileSync(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'edited.jpg'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, Buffer.`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` img.arrayBuffer()));`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`browser-javascript`,children:`Browser JavaScript`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`17`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`17`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// ⚠️ Demo only: a front-end key is exposed — use a backend proxy in production`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` fileInput = document.querySelector(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'#file'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`); `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// an \u003cinput type=\"file\"> element`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` form = `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`new`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` FormData();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`form.append(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'model'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'grok-imagine-image'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`form.append(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'prompt'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Replace the background with a snowy pine forest at night, keep the subject'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`form.append(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'response_format'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'url'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`form.append(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'image'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, fileInput.files[0]);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` resp = `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` fetch(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'https://api.apiyi.com/v1/images/edits'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` method: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'POST'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` headers: { `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Authorization'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Bearer sk-your-api-key'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` body: form`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` data = `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` resp.json();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`document.querySelector(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'#preview'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).src = data.data[0].url;`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`parameter-reference`,children:`Parameter Reference`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Default`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`model`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`✅`}),_jsx(_components.td,{children:`—`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`grok-imagine-image`}),` ($0.02/image) or `,_jsx(_components.code,{children:`grok-imagine-image-quality`}),` ($0.045/image)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`prompt`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`✅`}),_jsx(_components.td,{children:`—`}),_jsx(_components.td,{children:`Editing instruction. State what changes and that everything else stays put`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`image`})}),_jsx(_components.td,{children:`file`}),_jsx(_components.td,{children:`✅`}),_jsx(_components.td,{children:`—`}),_jsxs(_components.td,{children:[`Reference image file. For fusion repeat `,_jsx(_components.code,{children:`image[]`}),`, `,_jsx(_components.strong,{children:`1-4 files`}),` (a fifth returns 400). `,_jsx(_components.strong,{children:`The first one sets output dimensions`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`n`})}),_jsx(_components.td,{children:`integer`}),_jsx(_components.td,{children:`❌`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`1`})}),_jsxs(_components.td,{children:[`Output images, `,_jsx(_components.strong,{children:`1-10`}),`, billed per image, independent of reference count`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`response_format`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`❌`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`url`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`url`}),` returns a direct link; `,_jsx(_components.code,{children:`b64_json`}),` returns raw base64 (`,_jsx(_components.strong,{children:`no`}),` `,_jsx(_components.code,{children:`data:`}),` prefix)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.del,{children:_jsx(_components.code,{children:`resolution`})})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`❌`}),_jsx(_components.td,{children:`—`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`No effect here`}),` — output follows the input image`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.del,{children:_jsx(_components.code,{children:`aspect_ratio`})})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`❌`}),_jsx(_components.td,{children:`—`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`No effect here`}),` — output follows the input image`]})]})]})]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`This family does `,_jsx(_components.strong,{children:`not support mask inpainting`}),`. To limit the scope of a change, describe it precisely in the prompt — for example “change only the scarf to red, keep everything else exactly the same”. The model follows such constraints closely.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`editing-behaviour-and-prompt-style`,children:`Editing Behaviour and Prompt Style`}),`\n`,_jsxs(_components.p,{children:[`The editing endpoint `,_jsx(_components.strong,{children:`preserves the input image’s art style, composition, palette and subject identity`}),`, changing only what the prompt specifies. For stable results:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Prompt style`}),_jsx(_components.th,{children:`Result`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`✅ `,_jsx(_components.code,{children:`Change the scarf to red, keep everything else exactly the same`})]}),_jsx(_components.td,{children:`Only the scarf changes; style, composition and background are preserved`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`✅ `,_jsx(_components.code,{children:`Add round black sunglasses to the cat, keep everything else unchanged`})]}),_jsx(_components.td,{children:`Only sunglasses are added; outline style and background colour stay put`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`✅ `,_jsx(_components.code,{children:`Put the character from image 1 into the scene from image 2, keep image 2's style`})]}),_jsx(_components.td,{children:`Fusion that retains characteristics of both inputs`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`⚠️ `,_jsx(_components.code,{children:`Make it look better`})]}),_jsx(_components.td,{children:`Too vague — the scope of change becomes unpredictable`})]})]})]}),`\n`,_jsxs(Tip,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Explicitly saying “keep everything else unchanged”`}),` is the single most effective technique with this model. For fusion, always refer to “image 1 / image 2” matching the `,_jsx(_components.code,{children:`image[]`}),` upload order.`]}),_jsxs(_components.p,{children:[`Also `,_jsx(_components.strong,{children:`put your most important subject first`}),`: the first image not only sets output dimensions, but in testing a reversed order caused a secondary subject’s identity to blend into another.`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`response-format`,children:`Response Format`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`12`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`12`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"created\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://apac.ossforai.com/2026/08/12/09b026d5-3492-4678-907c-e25972e6c914.jpg\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"usage\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"prompt_tokens\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"total_tokens\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1000`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(Warning,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Response field pitfalls`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Each `,_jsx(_components.code,{children:`data[]`}),` entry contains `,_jsx(_components.strong,{children:`either`}),` `,_jsx(_components.code,{children:`url`}),` `,_jsx(_components.strong,{children:`or`}),` `,_jsx(_components.code,{children:`b64_json`}),` depending on `,_jsx(_components.code,{children:`response_format`}),` — never both.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`revised_prompt`}),` is not returned`]}),` — do not assume it exists.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`b64_json`}),` is `,_jsxs(_components.strong,{children:[`raw base64 with no `,_jsx(_components.code,{children:`data:image/...;base64,`}),` prefix`]}),` — decode it directly.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`created`}),` is always `,_jsx(_components.code,{children:`0`}),` and cannot be used as a timestamp.`]}),`\n`,_jsxs(_components.li,{children:[`Output dimensions are determined by `,_jsx(_components.strong,{children:`the input image`}),`, so do not predict width/height from request parameters.`]}),`\n`]})]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`usage`}),` cannot be used for reconciliation`]}),`: `,_jsx(_components.code,{children:`prompt_tokens`}),` is always `,_jsx(_components.code,{children:`1000 x n`}),`, a placeholder. Editing costs `,_jsx(_components.strong,{children:`the same`}),` as text-to-image at a flat rate per image; use the APIYI Console billing records for actual charges.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Image Editing API Reference","description":"Grok Imagine 2 image editing API reference and live testing — upload 1-4 reference images plus an instruction for editing or fusion; requires multipart/form-data","openapi":"api-reference/grok-imagine-image-edit-openapi-en.yaml POST /v1/images/edits","icon":"image","href":"/en/api-capabilities/grok-imagine-image/image-edit"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Code Examples","slug":"code-examples","depth":2,"children":[{"title":"Python (OpenAI SDK, single image)","slug":"python-openai-sdk-single-image","depth":3,"children":[]},{"title":"Python (raw requests, single image)","slug":"python-raw-requests-single-image","depth":3,"children":[]},{"title":"Python (multi-image fusion, 1-4 files)","slug":"python-multi-image-fusion-1-4-files","depth":3,"children":[]},{"title":"cURL","slug":"curl","depth":3,"children":[]},{"title":"Node.js (native fetch + FormData)","slug":"node-js-native-fetch-+-formdata","depth":3,"children":[]},{"title":"Browser JavaScript","slug":"browser-javascript","depth":3,"children":[]}]},{"title":"Parameter Reference","slug":"parameter-reference","depth":2,"children":[]},{"title":"Editing Behaviour and Prompt Style","slug":"editing-behaviour-and-prompt-style","depth":2,"children":[]},{"title":"Response Format","slug":"response-format","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"editGrokImagineImage","summary":"Image editing: edit a reference image or fuse several","description":"Grok Imagine 2 image editing API reference and live testing — upload 1-4 reference images plus an instruction for editing or fusion; requires multipart/form-data","tags":["Image Editing"],"security":["81d4bb5f-3fd1-4971-9120-fc573b4b5d56"],"requestBody":"0b2c7541-741a-4cfd-b26f-20a29591f388","responses":{"200":"5166e080-eb2c-470e-98d1-3b77c8187476","400":"7bb522f3-5b42-4072-9bd5-045815b3d981","401":"9e388a14-5cce-461f-a063-00721bd0964f","415":"716ab9f6-952d-4df1-a971-089b8d18aa5f","429":"1354c5f1-98c0-4373-b7fc-eef91b247eef"},"method":"post","type":"path","servers":["9793ce09-9e58-4005-93ed-3bfc7a2aaf58"],"path":"/v1/images/edits","baseUrlOptions":["https://api.apiyi.com"],"title":"Image editing: edit a reference image or fuse several","codeSamples":[],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["model","prompt","image"],"properties":{"model":{"type":"string","description":"Model ID","enum":["grok-imagine-image","grok-imagine-image-quality"],"default":"grok-imagine-image","isRequired":true,"uniqueKey":"model","typeLabel":"enum\u003cstring>"},"prompt":{"type":"string","description":"Editing instruction. State what to change and explicitly ask for everything else to stay put,\ne.g. `Change the scarf color to bright RED. Keep everything else exactly the same.`\n","example":"Change the scarf color to bright RED. Keep everything else exactly the same.","isRequired":true,"uniqueKey":"prompt","typeLabel":"string"},"image":{"type":"string","format":"binary","description":"Reference image file. For multi-image fusion repeat the `image[]` field (1-4 files);\nupload order is what \"image 1 / image 2 / image 3\" refers to in the prompt, and\n**the first file also determines output dimensions**. Each added image contributes\na subject in testing. Accepted formats: png / jpg / webp.\n","isRequired":true,"uniqueKey":"image","typeLabel":"file"},"n":{"type":"integer","description":"Number of output images, 1-10. Independent of the number of reference images","minimum":1,"maximum":10,"default":1,"example":1,"uniqueKey":"n","typeLabel":"integer"},"response_format":{"type":"string","description":"Response format. `url` returns a direct link; `b64_json` returns raw base64 (no data: prefix)","enum":["url","b64_json"],"default":"url","example":"url","uniqueKey":"response_format","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"encoding":{"image":{"contentType":"image/png, image/jpeg, image/webp"}},"examples":{"Example":{"title":"Example","value":{"model":"grok-imagine-image","prompt":"Change the scarf color to bright RED. Keep everything else exactly the same.","image":"\u003cstring>","n":1,"response_format":"url"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"5166e080-eb2c-470e-98d1-3b77c8187476":{"description":"Image generated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"created":{"type":"integer","description":"Creation timestamp. Always 0 for this model — do not use it for timing","example":0,"uniqueKey":"created","typeLabel":"integer"},"data":{"type":"array","description":"Array of image results, length equals the requested `n`","items":{"type":"object","properties":{"url":{"type":"string","description":"Direct image link, returned when `response_format=url`","example":"https://apac.ossforai.com/2026/08/12/09b026d5-3492-4678-907c-e25972e6c914.jpg","uniqueKey":"data.items.[INDEX].url","typeLabel":"string"},"b64_json":{"type":"string","description":"Raw base64 image data, returned when `response_format=b64_json` (no data: prefix)","uniqueKey":"data.items.[INDEX].b64_json","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data","typeLabel":"object[]"},"usage":{"type":"object","description":"**Placeholder values — do not use for billing reconciliation.** `prompt_tokens` is always `1000 x n`","properties":{"prompt_tokens":{"type":"integer","example":1000,"uniqueKey":"usage.prompt_tokens","typeLabel":"integer"},"total_tokens":{"type":"integer","example":1000,"uniqueKey":"usage.total_tokens","typeLabel":"integer"}},"uniqueKey":"usage","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"created":0,"data":[{"url":"https://apac.ossforai.com/2026/08/12/09b026d5-3492-4678-907c-e25972e6c914.jpg","b64_json":"\u003cstring>"}],"usage":{"prompt_tokens":1000,"total_tokens":1000}}}},"exampleType":"generated"}},"exampleType":"generated"},"7bb522f3-5b42-4072-9bd5-045815b3d981":{"description":"Request was not multipart/form-data, prompt missing, or content blocked by moderation","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"9e388a14-5cce-461f-a063-00721bd0964f":{"description":"Unauthorized - invalid API Key","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"716ab9f6-952d-4df1-a971-089b8d18aa5f":{"description":"Unsupported file field name (only `image` / `image[]` are accepted)","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"1354c5f1-98c0-4373-b7fc-eef91b247eef":{"description":"Rate limit exceeded or insufficient balance","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"81d4bb5f-3fd1-4971-9120-fc573b4b5d56":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API Key created in the APIYI Console","scopes":[]}}},"servers":{"9793ce09-9e58-4005-93ed-3bfc7a2aaf58":{"url":"https://api.apiyi.com","description":"Primary endpoint"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API Key created in the APIYI Console","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API Key created in the APIYI Console","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/grok-imagine-image-edit-openapi-en.yaml"},"subdomain":"apiyillc","siteName":"API易文档中心","title":"Image Editing API Reference - API易文档中心","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"zh":{"href":"/api-capabilities/grok-imagine-image/image-edit","matchLevel":1},"en":{"href":"/en/api-capabilities/grok-imagine-image/image-edit","matchLevel":0},"zh-Hant":{"href":"/zh-Hant/api-capabilities/grok-imagine-image/image-edit","matchLevel":1},"ja":{"href":"/ja/api-capabilities/grok-imagine-image/image-edit","matchLevel":1},"ko":{"href":"/ko/api-capabilities/grok-imagine-image/image-edit","matchLevel":1},"ru":{"href":"/ru/api-capabilities/grok-imagine-image/image-edit","matchLevel":1}}},"lastModified":"2026-10-20T16:50:03.267Z","originalFileLocation":"en/api-capabilities/grok-imagine-image/image-edit.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Grok Imagine 2 image editing API reference and live testing — upload 1-4 reference images plus an instruction for editing or fusion; requires multipart/form-data\">\u003cmeta data-mint-head name=\"application-name\" content=\"API易文档中心\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Image Editing API Reference - API易文档中心\">\u003cmeta data-mint-head property=\"og:description\" content=\"Grok Imagine 2 image editing API reference and live testing — upload 1-4 reference images plus an instruction for editing or fusion; requires multipart/form-data\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"API易文档中心\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.apiyi.com/en/api-capabilities/grok-imagine-image/image-edit\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://apiyillc.mintlify.site/_mintlify/api/og/v2?division=Grok+Imagine+Reverse+Image+Gen+%26+Editing\u0026amp;title=Image+Editing+API+Reference\u0026amp;description=Grok+Imagine+2+image+editing+API+reference+and+live+testing+%E2%80%94+upload+1-4+reference+images+plus+an+instruction+for+editing+or+fusion%3B+requires+multipart%2Fform-dat\u0026amp;theme=84509e4a5d1cb12fd162de92\u0026amp;signature=7679f4fed0ca44877e9e83bac084357763b7f85f7baaf91faf3342c2b21021ea\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Image Editing API Reference - API易文档中心\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Grok Imagine 2 image editing API reference and live testing — upload 1-4 reference images plus an instruction for editing or fusion; requires multipart/form-data\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://apiyillc.mintlify.site/_mintlify/api/og/v2?division=Grok+Imagine+Reverse+Image+Gen+%26+Editing\u0026amp;title=Image+Editing+API+Reference\u0026amp;description=Grok+Imagine+2+image+editing+API+reference+and+live+testing+%E2%80%94+upload+1-4+reference+images+plus+an+instruction+for+editing+or+fusion%3B+requires+multipart%2Fform-dat\u0026amp;theme=84509e4a5d1cb12fd162de92\u0026amp;signature=7679f4fed0ca44877e9e83bac084357763b7f85f7baaf91faf3342c2b21021ea\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/apiyillc/sQlsuRwD6o27XLvg/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"API易文档中心\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2563eb\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.apiyi.com/en/api-capabilities/grok-imagine-image/image-edit\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/en/api-capabilities/grok-imagine-image/image-edit.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.apiyi.com/en/api-capabilities/grok-imagine-image/image-edit\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.apiyi.com/api-capabilities/grok-imagine-image/image-edit\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh-Hant\" href=\"https://docs.apiyi.com/zh-Hant/api-capabilities/grok-imagine-image/image-edit\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.apiyi.com/ja/api-capabilities/grok-imagine-image/image-edit\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.apiyi.com/ko/api-capabilities/grok-imagine-image/image-edit\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ru\" href=\"https://docs.apiyi.com/ru/api-capabilities/grok-imagine-image/image-edit\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.apiyi.com/api-capabilities/grok-imagine-image/image-edit\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.apiyi.com/#organization\",\"name\":\"API易文档中心\",\"url\":\"https://docs.apiyi.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/apiyillc/LjCT1O0GrSur6F2v/logo/light.svg?fit=max\u0026auto=format\u0026n=LjCT1O0GrSur6F2v\u0026q=85\u0026s=4119ef17a74cc54be127f34578d8b5fa\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.apiyi.com#website\",\"name\":\"API易文档中心\",\"url\":\"https://docs.apiyi.com\",\"publisher\":{\"@id\":\"https://docs.apiyi.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.apiyi.com/en/api-capabilities/grok-imagine-image/image-edit#webpage\",\"url\":\"https://docs.apiyi.com/en/api-capabilities/grok-imagine-image/image-edit\",\"name\":\"Image Editing API Reference\",\"description\":\"Grok Imagine 2 image editing API reference and live testing — upload 1-4 reference images plus an instruction for editing or fusion; requires multipart/form-data\",\"dateModified\":\"2026-10-20T16:50:03.267Z\",\"isPartOf\":{\"@id\":\"https://docs.apiyi.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.apiyi.com/en/api-capabilities/grok-imagine-image/image-edit#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.apiyi.com/en/api-capabilities/grok-imagine-image/image-edit#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Image API (Official)\",\"item\":\"https://docs.apiyi.com/en/api-capabilities/image-api-best-practices\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Grok Imagine Reverse Image Gen \u0026 Editing\",\"item\":\"https://docs.apiyi.com/en/api-capabilities/grok-imagine-image/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Image Editing API Reference\",\"item\":\"https://docs.apiyi.com/en/api-capabilities/grok-imagine-image/image-edit\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.apiyi.com/en/api-capabilities/grok-imagine-image/image-edit#apireference\",\"headline\":\"Image Editing API Reference\",\"name\":\"Image Editing API Reference\",\"description\":\"Grok Imagine 2 image editing API reference and live testing — upload 1-4 reference images plus an instruction for editing or fusion; requires multipart/form-data\",\"url\":\"https://docs.apiyi.com/en/api-capabilities/grok-imagine-image/image-edit\",\"mainEntityOfPage\":{\"@id\":\"https://docs.apiyi.com/en/api-capabilities/grok-imagine-image/image-edit#webpage\"},\"dateModified\":\"2026-10-20T16:50:03.267Z\",\"publisher\":{\"@id\":\"https://docs.apiyi.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.apiyi.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"API易文档中心\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"API易文档中心\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/en/api-capabilities/grok-imagine-image/image-edit.md","siteName":"API易文档中心","nav":{"global":{"anchors":[]},"languages":[{"language":"zh","pages":[{"title":"zh","href":"/api-capabilities/grok-imagine-image/image-edit"}]},{"language":"en","navbar":{"links":[{"href":"https://api.apiyi.com","label":"Home"},{"href":"https://imagen.apiyi.com","label":"AI Image"},{"href":"https://icover.ai","label":"AI Video"}],"primary":{"type":"button","label":"Console","href":"https://api.apiyi.com/account/profile"}},"tabs":[{"tab":"Home","icon":"house","groups":[{"group":"Basics","pages":[{"title":"APIYI - AI Model API Hub","sidebarTitle":"Introduction","icon":"house","href":"/en"},{"title":"Quick Start","icon":"rocket","href":"/en/getting-started"},{"group":"AI Developer Kit","icon":"terminal","pages":[{"title":"AI Developer Kit","sidebarTitle":"AI Developer Kit","icon":"bot","href":"/en/developer-kit"},{"title":"Why Does My Terminal Say apiyi Command Not Found?","icon":"terminal","href":"/en/faq/apiyi-cli-command-not-found"}]},{"group":"API Manual","icon":"book","pages":[{"title":"API Manual","sidebarTitle":"Manual Overview","icon":"book","href":"/en/api-manual"},{"title":"Capturing API Error Details","sidebarTitle":"Error Capture","icon":"clipboard-list","href":"/en/api-manual/error-reporting"},{"group":"Integration FAQ","icon":"circle-question-mark","expanded":false,"pages":[{"title":"Does APIYI Support the Files API?","icon":"file-up","href":"/en/faq/files-api-not-supported"},{"title":"How to Configure Base URL? Differences Between /v1, Root Domain, and /v1beta","icon":"link","href":"/en/faq/base-url-config"},{"title":"How Can I Troubleshoot Model API Errors?","icon":"alert-triangle","href":"/en/faq/model-error-troubleshooting"},{"title":"What Are the API Concurrency Limits?","icon":"gauge","href":"/en/faq/api-concurrency"}]}]},{"title":"Pricing","icon":"badge-dollar-sign","href":"/en/pricing"}]},{"group":"Basic API","icon":"box","pages":[{"group":"Popular Models","icon":"cpu","root":{"title":"Popular Model Recommendations - APIYI, Always Up to Date","sidebarTitle":"Popular Models","icon":"database","href":"/en/api-capabilities/model-info"},"pages":[{"group":"Model FAQ","icon":"circle-question-mark","expanded":false,"pages":[{"title":"How to Choose the Right AI Model?","icon":"compass","href":"/en/faq/model-selection-guide"},{"title":"Why do official web apps and the API give different results?","icon":"layers","href":"/en/faq/webapp-vs-api-difference"},{"title":"Why Don't AI Models Know Their Own Version?","icon":"circle-question-mark","href":"/en/faq/model-version-identity"}]}]},{"title":"Image \u0026 Video Generation Models","icon":"palette","href":"/en/api-capabilities/image-video-models"},{"group":"OpenAI API Calls","icon":"sparkles","pages":[{"title":"OpenAI Responses API Native Guide","sidebarTitle":"Native Calls","icon":"zap","href":"/en/api-capabilities/openai/native"},{"title":"OpenAI Chat Completions Compatible Mode","sidebarTitle":"Compatible Mode","icon":"plug","href":"/en/api-capabilities/openai/compatible"},{"title":"Choosing an Endpoint: Migrating GPT-5.4+ to Responses","sidebarTitle":"Endpoint \u0026 Migration","icon":"route","href":"/en/api-capabilities/openai/responses-migration"},{"title":"OpenAI Compatible Mode: Handling Responses","sidebarTitle":"Handling Responses","icon":"braces","href":"/en/api-capabilities/openai/response-handling"},{"title":"OpenAI Compatible Mode: Reasoning Model Output","sidebarTitle":"Reasoning Model Output","icon":"brain","href":"/en/api-capabilities/openai/reasoning-models"},{"title":"OpenAI Prompt Caching Billing Guide","sidebarTitle":"Cache Billing","icon":"database","href":"/en/api-capabilities/openai/prompt-caching"},{"title":"OpenAI Function Calling Guide","sidebarTitle":"Function Calling","icon":"wrench","href":"/en/api-capabilities/openai/function-calling"},{"title":"OpenAI API Web Search Guide","sidebarTitle":"Web Search","icon":"globe","href":"/en/api-capabilities/openai/web-search"},{"group":"OpenAI FAQ","icon":"circle-question-mark","pages":[{"title":"Does APIYI Support OpenAI Fast / Ultrafast Mode?","icon":"gauge","href":"/en/faq/openai-service-tier-fast-mode"},{"title":"How Do Streaming and Non-Streaming Requests Differ When Content Is Filtered?","sidebarTitle":"Streaming \u0026 Content Filtering","icon":"shield-half","href":"/en/faq/streaming-content-filter"},{"title":"What Does an OpenAI Model Refusal Look Like?","icon":"message-square-x","href":"/en/faq/openai-content-safety-refusal"}]}]},{"group":"Claude Official","icon":"sparkles","pages":[{"title":"Claude API Calling Basics","sidebarTitle":"Claude API Basics","icon":"sparkles","href":"/en/api-capabilities/claude"},{"title":"Claude Native Format: Streaming \u0026 Non-Streaming Responses","sidebarTitle":"Streaming \u0026 Responses","icon":"braces","href":"/en/api-capabilities/claude-response-handling"},{"title":"Claude Prompt Caching Guide","sidebarTitle":"Prompt Caching","icon":"database","href":"/en/api-capabilities/claude-prompt-caching"},{"title":"Claude Effort and Thinking Guide","sidebarTitle":"Claude Thinking Guide","icon":"gauge","href":"/en/api-capabilities/claude-effort-thinking"},{"title":"Claude API Web Search Guide","sidebarTitle":"Claude Web Search","icon":"globe","href":"/en/api-capabilities/claude-web-search"},{"group":"Claude FAQ","icon":"circle-question-mark","pages":[{"title":"Why Does Claude Claim to Be Qwen or DeepSeek?","icon":"venetian-mask","href":"/en/faq/claude-identity-confusion"},{"title":"How Do I Fix Claude's Invalid Thinking Signature Error?","icon":"file-signature","href":"/en/faq/claude-thinking-signature-invalid"},{"title":"Why Does a Claude Refusal Return Empty Content?","icon":"message-square-x","href":"/en/faq/claude-content-safety-refusal"}]}]},{"group":"Gemini Native Calls","icon":"sparkles","pages":[{"title":"Gemini Native Format Guide","sidebarTitle":"Native Calls","icon":"zap","href":"/en/api-capabilities/gemini/native"},{"title":"Interactions API vs generateContent","sidebarTitle":"Interactions API Compared","icon":"git-compare","href":"/en/api-capabilities/gemini/interactions-api"},{"title":"Gemini Native Format: Streaming \u0026 Non-Streaming Responses","sidebarTitle":"Streaming \u0026 Responses","icon":"braces","href":"/en/api-capabilities/gemini/response-handling"},{"title":"Gemini Multimodal Input \u0026 Code Execution","sidebarTitle":"Multimodal \u0026 Code Exec","icon":"images","href":"/en/api-capabilities/gemini/multimodal"},{"title":"Gemini Implicit Caching Billing Guide","sidebarTitle":"Cache Billing","icon":"database","href":"/en/api-capabilities/gemini/prompt-caching"},{"title":"Gemini Function Calling Guide","sidebarTitle":"Function Calling","icon":"wrench","href":"/en/api-capabilities/gemini/function-calling"},{"title":"Gemini API Web Search Guide","sidebarTitle":"Web Search","icon":"globe","href":"/en/api-capabilities/gemini/web-search"},{"title":"How Do I Fix Gemini Thought Signature 400 Errors in Tool Calls?","icon":"file-signature","href":"/en/faq/gemini-thought-signature-missing"}]},{"group":"Grok API Calls","icon":"sparkles","pages":[{"title":"Grok Model Series Guide","sidebarTitle":"Grok Overview","icon":"rocket","href":"/en/api-capabilities/grok/overview"},{"title":"Grok Chat \u0026 Reasoning Guide","sidebarTitle":"Chat \u0026 Reasoning","icon":"message-square","href":"/en/api-capabilities/grok/chat"},{"title":"Grok Web Search \u0026 X Search Guide","sidebarTitle":"Web \u0026 X Search","icon":"globe","href":"/en/api-capabilities/grok/web-search"},{"title":"Grok Code Execution \u0026 Remote MCP Guide","sidebarTitle":"Code Execution \u0026 MCP","icon":"terminal","href":"/en/api-capabilities/grok/code-execution-mcp"},{"title":"Grok Multi-Agent Model Guide","sidebarTitle":"Multi-Agent Model","icon":"users","href":"/en/api-capabilities/grok/multi-agent"},{"title":"Grok Prompt Caching Billing Guide","sidebarTitle":"Cache Billing","icon":"database","href":"/en/api-capabilities/grok/prompt-caching"}]},{"group":"Text API Best Practices","icon":"book-check","pages":[{"title":"Long-form Output Practices","sidebarTitle":"Long-form Output","icon":"book-check","href":"/en/api-capabilities/long-form-output-practices"},{"title":"Multi-Turn Conversation Guide","sidebarTitle":"Multi-Turn Conversation","icon":"messages-square","href":"/en/api-capabilities/multi-turn-conversation"},{"group":"Text FAQ","icon":"circle-question-mark","expanded":false,"pages":[{"title":"Why does a reasoning model return empty content?","icon":"alert-circle","href":"/en/faq/reasoning-model-empty-response"},{"title":"What's the difference between streaming and non-streaming calls?","sidebarTitle":"Streaming vs Non-streaming","icon":"audio-lines","href":"/en/faq/streaming-vs-non-streaming"},{"title":"What is max_tokens? What Happens If Not Set?","icon":"sliders-horizontal","href":"/en/faq/max-tokens"},{"title":"Does the API Have Memory Like ChatGPT?","icon":"brain","href":"/en/faq/api-memory"}]}]},{"title":"Balance Query API","icon":"wallet","href":"/en/api-capabilities/balance-query"},{"title":"Log Query API","icon":"file-text","href":"/en/api-capabilities/log-query"},{"title":"Token Management API","icon":"key","href":"/en/api-capabilities/token-management"},{"title":"Deprecated Models","icon":"triangle-alert","href":"/en/api-capabilities/deprecated-models"}]},{"group":"Image API (Official)","icon":"image","pages":[{"group":"Image API Essentials","icon":"book-check","pages":[{"title":"Image API Essentials \u0026 Best Practices","sidebarTitle":"Must-Read \u0026 Best Practices","icon":"book-check","href":"/en/api-capabilities/image-api-best-practices"},{"title":"Troubleshooting Image API Connection Drops","sidebarTitle":"Connection Drops","icon":"unplug","href":"/en/api-capabilities/image-connection-drops"},{"title":"Image Requests That Hang After the Data Has Arrived","sidebarTitle":"Requests Hanging at the End","icon":"hourglass","href":"/en/api-capabilities/image-tail-stall"},{"title":"Image Compression \u0026 Output Resolution","sidebarTitle":"Compression \u0026 Resolution","icon":"scaling","href":"/en/api-capabilities/image-compression-resolution"},{"title":"How to Get Satisfying Images","sidebarTitle":"Getting Satisfying Images","icon":"target","href":"/en/api-capabilities/image-generation-success-tips"},{"title":"Troubleshooting Safety Rejections: Find the Trigger Word by Ablation","sidebarTitle":"Safety Rejections","icon":"shield-alert","href":"/en/api-capabilities/image-safety-troubleshooting"},{"title":"Long Prompts and Two-Stage Generation: Where the 32K Limit Comes From","sidebarTitle":"Long Prompts","icon":"text-quote","href":"/en/api-capabilities/image-long-prompt"},{"title":"Advanced Image Generation: Workflow and Realism","sidebarTitle":"Advanced Workflow","icon":"workflow","href":"/en/api-capabilities/image-advanced-workflow"},{"title":"Image Prompt Doctor Skill","sidebarTitle":"Prompt Doctor Skill","icon":"stethoscope","href":"/en/api-capabilities/image-prompt-doctor"},{"group":"Image FAQ","icon":"circle-question-mark","pages":[{"title":"Can an image be rejected after generation?","sidebarTitle":"Output-image review","icon":"shield-alert","href":"/en/faq/image-output-safety-review"},{"title":"Is there a conversational API that outputs both text and generated images?","sidebarTitle":"Text + image in one API","icon":"images","href":"/en/faq/text-and-image-in-one-api"},{"title":"Image Request Hangs With No Result, but the Log Shows a Write Failure?","icon":"hourglass","href":"/en/faq/image-direct-large-response-stall"},{"title":"Image Calls Drop After About 90 Seconds Behind a Proxy?","icon":"unplug","href":"/en/faq/proxy-idle-timeout-disconnect"},{"title":"Why Does the Generated Image Differ Greatly from the Reference?","icon":"image","href":"/en/faq/image-result-differs-from-reference"},{"title":"How to fix the image content does not match MIME type error?","icon":"image","href":"/en/faq/image-mime-type-mismatch-with-query"},{"title":"Is There an Async Image API? Can I Query Results by Task ID?","icon":"image","href":"/en/faq/image-async-api"}]}]},{"group":"GPT-Image-2.6 / 2.5 / 2 Image Gen","icon":"sparkles","pages":[{"title":"GPT-Image-2.6 / 2.5 / 2 Image Generation/Edit","sidebarTitle":"GPT-Image-2.6 / 2.5 / 2 Overview","icon":"sparkles","href":"/en/api-capabilities/gpt-image-2/overview"},{"title":"GPT Image 2.6 New Capabilities","sidebarTitle":"GPT Image 2.6 Capabilities","openapi":"api-reference/gpt-image-2-6-generate-openapi-en.yaml POST /v1/images/generations","icon":"sparkles","href":"/en/api-capabilities/gpt-image-2/gpt-image-2-6"},{"title":"Text-to-Image API Reference","openapi":"api-reference/gpt-image-2-generate-openapi-en.yaml POST /v1/images/generations","icon":"wand-sparkles","href":"/en/api-capabilities/gpt-image-2/text-to-image"},{"title":"Image Edit API Reference","openapi":"api-reference/gpt-image-2-edit-openapi-en.yaml POST /v1/images/edits","icon":"image","href":"/en/api-capabilities/gpt-image-2/image-edit"},{"title":"GPT-Image-2.5 / 2 Series Agent Skill","icon":"blocks","href":"/en/api-capabilities/gpt-image-2/skills"},{"title":"Mask Inpainting Guide","sidebarTitle":"Mask Inpainting","icon":"brush","href":"/en/api-capabilities/gpt-image-2/mask-editing"},{"title":"GPT-Image Legacy Versions","sidebarTitle":"GPT-Image Legacy","icon":"rotate-ccw-clock","href":"/en/api-capabilities/gpt-image-2/historical-versions"},{"group":"GPT-Image FAQ","icon":"circle-question-mark","expanded":false,"pages":[{"title":"Which reasoning effort values work for SVG generation?","icon":"sliders-horizontal","href":"/en/faq/gpt-image-svg-reasoning-effort"},{"title":"How do I generate images with a transparent background (PNG cutouts)?","icon":"layers","href":"/en/faq/image-transparent-background"},{"title":"Why Are GPT Image Output Tokens So High?","icon":"calculator","href":"/en/faq/gpt-image-output-token-calculation"},{"title":"Codex Integration for GPT-Image Fails with Incorrect API Key","sidebarTitle":"Image Key Rejected by OpenAI","icon":"key-round","href":"/en/faq/gpt-image-incorrect-api-key-openai"}]}]},{"title":"GPT-image-2.5 / 2 Official vs Reverse","sidebarTitle":"GPT-image-2.5 / 2 Official vs Reverse","icon":"scale","href":"/en/api-capabilities/gpt-image-2/vs-gpt-image-2-all"},{"group":"GPT-Image-2.5-All Image Gen","icon":"sparkles","pages":[{"title":"GPT-Image-2.5-All Image Gen/Editing","sidebarTitle":"GPT-Image-2.5-All Overview","icon":"sparkles","href":"/en/api-capabilities/gpt-image-2-all/overview"},{"title":"Text-to-Image API Reference","openapi":"api-reference/gpt-image-2-all-generate-openapi-en.yaml POST /v1/images/generations","icon":"wand-sparkles","href":"/en/api-capabilities/gpt-image-2-all/text-to-image"},{"title":"Image Editing API Reference","openapi":"api-reference/gpt-image-2-all-edit-openapi-en.yaml POST /v1/images/edits","icon":"image","href":"/en/api-capabilities/gpt-image-2-all/image-edit"},{"title":"GPT-Image-2.5-All Agent Skill","icon":"blocks","href":"/en/api-capabilities/gpt-image-2-all/skills"}]},{"group":"GPT-Image-2.5-VIP Image Gen","icon":"expand","pages":[{"title":"GPT-Image-2.5-VIP Image Gen/Editing","sidebarTitle":"GPT-Image-2.5-VIP Overview","icon":"expand","href":"/en/api-capabilities/gpt-image-2-vip/overview"},{"title":"Text-to-Image API Reference","openapi":"api-reference/gpt-image-2-vip-generate-openapi-en.yaml POST /v1/images/generations","icon":"wand-sparkles","href":"/en/api-capabilities/gpt-image-2-vip/text-to-image"},{"title":"Image Editing API Reference","openapi":"api-reference/gpt-image-2-vip-edit-openapi-en.yaml POST /v1/images/edits","icon":"image","href":"/en/api-capabilities/gpt-image-2-vip/image-edit"},{"title":"GPT-Image-2.5-VIP Agent Skill","icon":"blocks","href":"/en/api-capabilities/gpt-image-2-vip/skills"}]},{"title":"Nano Banana Series Pricing","icon":"tag","href":"/en/api-capabilities/nano-banana-pricing"},{"group":"NanoBanana Best Practices","icon":"lightbulb","pages":[{"title":"Nano Banana Series Developer Guide","icon":"compass","href":"/en/api-capabilities/nano-banana-dev-guide"},{"title":"Usage Fields \u0026 Output Explained","sidebarTitle":"Usage Fields \u0026 Output Explained","icon":"receipt-text","href":"/en/api-capabilities/nano-banana-usage-metadata"},{"title":"Gemini Image Generation API Error Handling Guide","icon":"triangle-alert","href":"/en/api-capabilities/gemini-image-error-handling"},{"title":"Multi-Image Fusion Testing Guide","sidebarTitle":"Multi-Image Fusion Testing","icon":"layers","href":"/en/api-capabilities/multi-image-fusion-testing"},{"title":"Nano Banana Pro Failed-Generation Credit Reimbursement Plan","icon":"shield-check","href":"/en/api-capabilities/nano-banana-pro-guarantee"},{"title":"Nano Banana OSS Group","icon":"link","href":"/en/api-capabilities/nano-banana-oss-group"},{"group":"NB FAQ","icon":"circle-question-mark","pages":[{"title":"Do Google Models Run on AI Studio or Vertex?","icon":"split","href":"/en/faq/google-upstream-aistudio-vertex"},{"title":"Image Edit Returns Unable to Process Input Image?","icon":"image-off","href":"/en/faq/gemini-empty-inlinedata"},{"title":"Why Does Gemini Image Return IMAGE_OTHER?","sidebarTitle":"IMAGE_OTHER","icon":"image-minus","href":"/en/faq/gemini-image-other"},{"title":"Why Does Gemini Image Return blockReason: OTHER?","sidebarTitle":"blockReason: OTHER","icon":"shield-alert","href":"/en/faq/gemini-image-input-blocked"},{"title":"Common Reasons for Nano Banana Image Generation Failures","icon":"image-off","href":"/en/faq/nano-banana-image-failure"},{"title":"Why Does the Gemini Image API Return NO_IMAGE?","icon":"image-off","href":"/en/faq/gemini-no-image"},{"title":"Why does my image turn reddish after editing with banana pro?","icon":"image","href":"/en/faq/banana-pro-edit-red-cast"},{"title":"How to fix distorted prints when changing outfits with Nano Banana Pro?","icon":"shirt","href":"/en/faq/nano-banana-pro-print-distortion"},{"title":"Why Does a White-Background Image Show Black Spots, Dirty Patches, or Blurry Color Blocks?","icon":"triangle-alert","href":"/en/faq/white-background-image-artifacts"}]}]},{"group":"Nano Banana 2.1 Image Gen","icon":"banana","pages":[{"title":"Nano Banana 2.1 Image Gen/Editing","icon":"banana","href":"/en/api-capabilities/gemini-nano-banana-2.1/overview"},{"title":"Text-to-Image API Reference","openapi":"api-reference/gemini-nano-banana-2.1-generate-openapi-en.yaml POST /v1beta/models/gemini-nano-banana-2.1:generateContent","icon":"wand-sparkles","href":"/en/api-capabilities/gemini-nano-banana-2.1/text-to-image"},{"title":"Image Editing API Reference","openapi":"api-reference/gemini-nano-banana-2.1-edit-openapi-en.yaml POST /v1beta/models/gemini-nano-banana-2.1:generateContent","icon":"image","href":"/en/api-capabilities/gemini-nano-banana-2.1/image-edit"},{"title":"Nano Banana 2.1 Agent Skill","icon":"blocks","href":"/en/api-capabilities/gemini-nano-banana-2.1/skills"}]},{"group":"Nano Banana Pro Image Gen","icon":"banana","pages":[{"title":"Nano Banana Pro Image Generation","icon":"banana","href":"/en/api-capabilities/nano-banana-image/overview"},{"title":"Text-to-Image API Reference","openapi":"api-reference/nano-banana-pro-generate-openapi-en.yaml POST /v1beta/models/gemini-3-pro-image:generateContent","icon":"wand-sparkles","href":"/en/api-capabilities/nano-banana-image/text-to-image"},{"title":"Image Editing API Reference","openapi":"api-reference/nano-banana-pro-edit-openapi-en.yaml POST /v1beta/models/gemini-3-pro-image:generateContent","icon":"image","href":"/en/api-capabilities/nano-banana-image/image-edit"},{"title":"Nano Banana Pro Agent Skill","icon":"blocks","href":"/en/api-capabilities/nano-banana-image/skills"}]},{"group":"Nano Banana 2 Image Gen","icon":"banana","pages":[{"title":"Nano Banana 2 Image Gen/Editing","icon":"banana","href":"/en/api-capabilities/nano-banana-2-image/overview"},{"title":"Text-to-Image API Reference","openapi":"api-reference/nano-banana-2-generate-openapi-en.yaml POST /v1beta/models/gemini-3.1-flash-image:generateContent","icon":"wand-sparkles","href":"/en/api-capabilities/nano-banana-2-image/text-to-image"},{"title":"Image Editing API Reference","openapi":"api-reference/nano-banana-2-edit-openapi-en.yaml POST /v1beta/models/gemini-3.1-flash-image:generateContent","icon":"image","href":"/en/api-capabilities/nano-banana-2-image/image-edit"},{"title":"Nano Banana 2 Agent Skill","icon":"blocks","href":"/en/api-capabilities/nano-banana-2-image/skills"}]},{"group":"Nano Banana Lite Image Gen","icon":"banana","pages":[{"title":"Nano Banana Lite Image Gen/Editing","icon":"banana","href":"/en/api-capabilities/nano-banana-lite-image/overview"},{"title":"Text-to-Image API Reference","openapi":"api-reference/nano-banana-lite-generate-openapi-en.yaml POST /v1beta/models/gemini-3.1-flash-lite-image:generateContent","icon":"wand-sparkles","href":"/en/api-capabilities/nano-banana-lite-image/text-to-image"},{"title":"Image Editing API Reference","openapi":"api-reference/nano-banana-lite-edit-openapi-en.yaml POST /v1beta/models/gemini-3.1-flash-lite-image:generateContent","icon":"image","href":"/en/api-capabilities/nano-banana-lite-image/image-edit"},{"title":"Nano Banana Lite Agent Skill","icon":"blocks","href":"/en/api-capabilities/nano-banana-lite-image/skills"}]},{"group":"FLUX Image Generation \u0026 Editing","icon":"sparkles","pages":[{"title":"FLUX Image Generation \u0026 Editing","sidebarTitle":"FLUX Overview","icon":"sparkles","href":"/en/api-capabilities/flux/overview"},{"title":"Text-to-Image API Reference","openapi":"api-reference/flux-generate-openapi-en.yaml POST /v1/images/generations","icon":"wand-sparkles","href":"/en/api-capabilities/flux/text-to-image"},{"title":"Image Editing API Reference","openapi":"api-reference/flux-edit-openapi-en.yaml POST /v1/images/generations","icon":"image","href":"/en/api-capabilities/flux/image-edit"},{"title":"FLUX Historical Versions","sidebarTitle":"Historical Versions","icon":"rotate-ccw-clock","href":"/en/api-capabilities/flux/historical-versions"}]},{"group":"Seedream 5.0 Series","icon":"sparkles","pages":[{"title":"Seedream Image Generation \u0026 Editing","sidebarTitle":"Seedream Overview","icon":"sparkles","href":"/en/api-capabilities/seedream-image/overview"},{"title":"Text-to-Image API Reference","openapi":"api-reference/seedream-image-generate-openapi-en.yaml POST /v1/images/generations","icon":"wand-sparkles","href":"/en/api-capabilities/seedream-image/text-to-image"},{"title":"Image Editing API Reference","openapi":"api-reference/seedream-image-edit-openapi-en.yaml POST /v1/images/generations","icon":"image","href":"/en/api-capabilities/seedream-image/image-edit"},{"title":"Seedream Historical Versions","sidebarTitle":"Historical Versions","icon":"rotate-ccw-clock","href":"/en/api-capabilities/seedream-image/historical-versions"}]},{"group":"Grok Imagine Official Image Gen","icon":"sparkles","pages":[{"title":"Grok Imagine Official Image Generation","sidebarTitle":"Grok Imagine Official Overview","icon":"sparkles","href":"/en/api-capabilities/grok-imagine-image-official/overview"},{"title":"Grok Imagine Official Text-to-Image API Reference","sidebarTitle":"Text-to-Image","openapi":"api-reference/grok-imagine-image-official-generate-openapi-en.yaml POST /v1/images/generations","icon":"wand-sparkles","href":"/en/api-capabilities/grok-imagine-image-official/text-to-image"}]},{"group":"Grok Imagine Reverse Image Gen \u0026 Editing","icon":"sparkles","pages":[{"title":"Grok Imagine Reverse Image Gen \u0026 Editing","sidebarTitle":"Grok Imagine Reverse Overview","icon":"sparkles","href":"/en/api-capabilities/grok-imagine-image/overview"},{"title":"Text-to-Image API Reference","description":"Grok Imagine 2 text-to-image API reference and live testing — prompt-only generation with 5 aspect ratios, 1K/2K tiers, up to 10 images per call","openapi":"api-reference/grok-imagine-image-generate-openapi-en.yaml POST /v1/images/generations","icon":"wand-sparkles","href":"/en/api-capabilities/grok-imagine-image/text-to-image"},{"title":"Image Editing API Reference","openapi":"api-reference/grok-imagine-image-edit-openapi-en.yaml POST /v1/images/edits","icon":"image","href":"/en/api-capabilities/grok-imagine-image/image-edit"}]},{"group":"MAI-Image 2.6 Image Gen \u0026 Editing","icon":"sparkles","pages":[{"title":"MAI-Image 2.6 Image Gen \u0026 Editing","sidebarTitle":"MAI-Image 2.6 Overview","description":"Complete guide to Microsoft MAI-Image 2.6 (MAI-Image-2.6 / MAI-Image-2.6-Flash): text-to-image and reference-image editing (1–5 images for fusion), custom width/height up to 1536×1536 area, strong Chinese text rendering, flat per-image pricing of $0.12 / $0.06 regardless of size.","icon":"sparkles","href":"/en/api-capabilities/mai-image/overview"},{"title":"Text-to-Image API Reference","openapi":"api-reference/mai-image-generate-openapi-en.yaml POST /v1/images/generations","icon":"wand-sparkles","href":"/en/api-capabilities/mai-image/text-to-image"},{"title":"Image Editing API Reference","openapi":"api-reference/mai-image-edit-openapi-en.yaml POST /v1/images/edits","icon":"image","href":"/en/api-capabilities/mai-image/image-edit"}]},{"title":"Image API Integration Practice: Build Your Own Async Queue","sidebarTitle":"Self-Hosted Async Queue","icon":"list-checks","href":"/en/api-capabilities/image-async-queue"}]},{"group":"Video API (Official)","icon":"video","pages":[{"group":"Seedance 2.0 / 2.5 (Volcengine)","icon":"film","pages":[{"title":"Seedance 2.0 / 2.5 Video Generation","sidebarTitle":"Seedance 2.0 / 2.5 Overview","icon":"film","href":"/en/api-capabilities/seedance2/overview"},{"title":"Seedance 2.0 / 2.5 Video Generation API Reference","sidebarTitle":"Video Generation","openapi":"api-reference/seedance2-video-openapi-en.yaml POST /seedance/api/v3/contents/generations/tasks","icon":"video","href":"/en/api-capabilities/seedance2/video-generation"},{"title":"Seedance 2.0 Video Agent Skill","icon":"blocks","href":"/en/api-capabilities/seedance2/skills"},{"title":"Seedance 2.0 Asset Library (Character-Consistent Video)","sidebarTitle":"Asset Library","icon":"images","href":"/en/api-capabilities/seedance2/asset-library"},{"title":"Asset-Referenced Video Generation in Code","sidebarTitle":"Asset Reference Guide","icon":"clapperboard","href":"/en/api-capabilities/seedance2/asset-reference"},{"title":"Asset-First: Faster, More Reliable Image and Video Inputs","sidebarTitle":"Asset-First Workflow","icon":"gauge","href":"/en/api-capabilities/seedance2/asset-first-workflow"},{"group":"SD FAQ","icon":"circle-question-mark","pages":[{"title":"Seedance Says First/Last Frame Cannot Be Mixed with Reference Media","sidebarTitle":"First Frame Mixed with Reference","icon":"layers","href":"/en/faq/seedance-first-frame-mixed-with-reference"},{"title":"Seedance Says invalid image format, but the Link Opens in a Browser","sidebarTitle":"Image Link Opens but Fails","icon":"link","href":"/en/faq/seedance-image-url-invalid-format"},{"title":"Seedance 2.5: Reference-to-Video vs. Video Editing","icon":"split","href":"/en/faq/seedance2-reference-vs-edit"},{"title":"Can I Cancel a Seedance Video Task After Submission?","icon":"video","href":"/en/faq/seedance-video-task-cancel"},{"title":"How do I look up a Seedance video's real cost by task_id?","icon":"receipt","href":"/en/faq/seedance-task-cost-lookup"},{"title":"Does Seedance 2.0 auto-upload face references to the asset library? Does it trigger the deepfake filter?","icon":"banana","href":"/en/faq/seedance2-asset-face-reference"},{"title":"Why Does Seedance 2.0 / 2.5 Block Face Assets?","icon":"scan-face","href":"/en/faq/seedance2-face-asset-whitelist"}]}]},{"group":"Wan3.0 Video Generation (Alibaba)","icon":"video","pages":[{"title":"Wan3.0 Video Generation (Alibaba Tongyi Wanxiang)","sidebarTitle":"Overview","icon":"video","href":"/en/api-capabilities/wan3/overview"},{"title":"Wan3.0 Video Generation API Reference","sidebarTitle":"Video Generation","openapi":"api-reference/wan3-video-openapi-en.yaml POST /wan/api/v1/services/aigc/video-generation/video-synthesis","icon":"wand-sparkles","href":"/en/api-capabilities/wan3/video-generation"},{"title":"Wan3.0 Failed to download: why the source media URL fails and how to fix it","sidebarTitle":"Media Download Failures","icon":"circle-question-mark","href":"/en/faq/wan3-media-download-failed"}]},{"group":"Wan2.7 Video Generation (Alibaba)","icon":"videotape","pages":[{"title":"Wan Video Generation (Alibaba Cloud Tongyi Wanxiang)","sidebarTitle":"Wan Overview","icon":"video","href":"/en/api-capabilities/wan/overview"},{"title":"Wan2.7 Text-to-Video API Reference","sidebarTitle":"Text-to-Video","openapi":"api-reference/wan-text-to-video-openapi-en.yaml POST /wan/api/v1/services/aigc/video-generation/video-synthesis","icon":"wand-sparkles","href":"/en/api-capabilities/wan/text-to-video"},{"title":"Wan2.7 Image-to-Video API Reference","sidebarTitle":"Image-to-Video","openapi":"api-reference/wan-image-to-video-openapi-en.yaml POST /wan/api/v1/services/aigc/video-generation/video-synthesis","icon":"image","href":"/en/api-capabilities/wan/image-to-video"},{"title":"Wan2.7 Reference-to-Video API Reference","sidebarTitle":"Reference-to-Video","openapi":"api-reference/wan-reference-to-video-openapi-en.yaml POST /wan/api/v1/services/aigc/video-generation/video-synthesis","icon":"users","href":"/en/api-capabilities/wan/reference-to-video"},{"title":"Wan2.7 Video Edit API Reference","sidebarTitle":"Video Edit","openapi":"api-reference/wan-video-edit-openapi-en.yaml POST /wan/api/v1/services/aigc/video-generation/video-synthesis","icon":"scissors","href":"/en/api-capabilities/wan/video-edit"},{"title":"Wan2.7 and HappyHorse Video Agent Skill","icon":"blocks","href":"/en/api-capabilities/wan/skills"},{"title":"Wan Historical Versions (Wan2.6)","sidebarTitle":"Historical Versions","icon":"rotate-ccw-clock","href":"/en/api-capabilities/wan/historical-versions"}]},{"group":"HappyHorse Video Generation (Alibaba)","icon":"monitor-play","pages":[{"title":"HappyHorse Video Generation (Alibaba Cloud)","sidebarTitle":"HappyHorse Overview","icon":"monitor-play","href":"/en/api-capabilities/happyhorse/overview"},{"title":"HappyHorse Text-to-Video API Reference","sidebarTitle":"Text-to-Video","openapi":"api-reference/happyhorse-text-to-video-openapi-en.yaml POST /wan/api/v1/services/aigc/video-generation/video-synthesis","icon":"wand-sparkles","href":"/en/api-capabilities/happyhorse/text-to-video"},{"title":"HappyHorse Image-to-Video API Reference","sidebarTitle":"Image-to-Video","openapi":"api-reference/happyhorse-image-to-video-openapi-en.yaml POST /wan/api/v1/services/aigc/video-generation/video-synthesis","icon":"image","href":"/en/api-capabilities/happyhorse/image-to-video"},{"title":"HappyHorse Reference-to-Video API Reference","sidebarTitle":"Reference-to-Video","openapi":"api-reference/happyhorse-reference-to-video-openapi-en.yaml POST /wan/api/v1/services/aigc/video-generation/video-synthesis","icon":"users","href":"/en/api-capabilities/happyhorse/reference-to-video"},{"title":"HappyHorse Video Edit API Reference","sidebarTitle":"Video Edit","openapi":"api-reference/happyhorse-video-edit-openapi-en.yaml POST /wan/api/v1/services/aigc/video-generation/video-synthesis","icon":"scissors","href":"/en/api-capabilities/happyhorse/video-edit"},{"title":"HappyHorse Video Agent Skill","icon":"blocks","href":"/en/api-capabilities/happyhorse/skills"}]},{"group":"Grok Imagine Video (xAI)","icon":"camera","pages":[{"title":"Grok Imagine Video Generation","sidebarTitle":"Grok Imagine Video Overview","icon":"video","href":"/en/api-capabilities/grok-imagine-video/overview"},{"title":"Grok Imagine Video Generation API Reference","sidebarTitle":"Video Generation","openapi":"api-reference/grok-imagine-video-openapi-en.yaml POST /v1/videos","icon":"wand-sparkles","href":"/en/api-capabilities/grok-imagine-video/video-generation"}]},{"group":"MiniMax H3 Video Generation (Self-hosted)","icon":"film","pages":[{"title":"MiniMax-H3 Video Generation","sidebarTitle":"MiniMax-H3 Overview","icon":"video","href":"/en/api-capabilities/minimax-h3/overview"},{"title":"MiniMax-H3 Video Generation API Reference","sidebarTitle":"Video Generation","openapi":"api-reference/minimax-h3-video-openapi-en.yaml POST /hailuo/v2/video_generation","icon":"video","href":"/en/api-capabilities/minimax-h3/video-generation"}]},{"group":"Oxygen Video Generation (AZ8)","icon":"clapperboard","pages":[{"title":"Oxygen Video Generation","sidebarTitle":"Oxygen Overview","icon":"video","href":"/en/api-capabilities/oxygen/overview"},{"title":"Oxygen Video Generation API Reference","sidebarTitle":"Video Generation","openapi":"api-reference/oxygen-video-openapi-en.yaml POST /videos","icon":"video","href":"/en/api-capabilities/oxygen/video-generation"}]}]},{"group":"Multimodal Understanding API","icon":"eye","pages":[{"group":"Image Understanding API","icon":"eye","root":{"title":"Vision Understanding (Image Recognition) API","icon":"eye","href":"/en/api-capabilities/vision-understanding"},"pages":[{"group":"Vision FAQ","icon":"circle-help","expanded":false,"pages":[{"title":"Image Understanding Requests Keep Timing Out — Is the Image Too Large?","icon":"image","href":"/en/faq/vision-image-too-large"}]}]},{"title":"Video Understanding API","icon":"video","href":"/en/api-capabilities/video-understanding"}]},{"group":"Text Generation","icon":"file-text","pages":[{"title":"Text Generation (Chat Completions)","icon":"message-square","href":"/en/api-capabilities/text-generation"},{"group":"Gemini 4 Argon","icon":"sparkles","pages":[{"title":"Gemini 4 Argon Text Generation","sidebarTitle":"Gemini 4 Argon Overview","icon":"sparkles","href":"/en/api-capabilities/gemini-4-argon/overview"}]},{"group":"GPT-6 Astra","icon":"sparkles","pages":[{"title":"GPT-6 Astra Text Generation","sidebarTitle":"GPT-6 Astra Overview","icon":"sparkles","href":"/en/api-capabilities/gpt-6-astra/overview"}]},{"group":"DeepSeek V4 Flash Vision","icon":"eye","pages":[{"title":"DeepSeek V4 Flash Vision","sidebarTitle":"Overview","icon":"eye","href":"/en/api-capabilities/deepseek-v4-flash-vision/overview"},{"title":"DeepSeek V4 Flash Vision Chat API Reference","sidebarTitle":"Chat Playground","openapi":"api-reference/deepseek-v4-flash-vision-chat-openapi-en.yaml POST /v1/chat/completions","icon":"terminal","href":"/en/api-capabilities/deepseek-v4-flash-vision/chat-completions"},{"title":"DeepSeek V4 Flash Vision Messages API Reference","sidebarTitle":"Messages Playground","openapi":"api-reference/deepseek-v4-flash-vision-messages-openapi-en.yaml POST /v1/messages","icon":"terminal","href":"/en/api-capabilities/deepseek-v4-flash-vision/messages"}]},{"group":"DeepSeek V4 Flash","icon":"zap","pages":[{"title":"DeepSeek V4 Flash Text Generation","sidebarTitle":"Overview","icon":"zap","href":"/en/api-capabilities/deepseek-v4-flash/overview"},{"title":"DeepSeek V4 Flash Chat API Reference","sidebarTitle":"Chat Playground","openapi":"api-reference/deepseek-v4-flash-chat-openapi-en.yaml POST /v1/chat/completions","icon":"terminal","href":"/en/api-capabilities/deepseek-v4-flash/chat-completions"},{"title":"DeepSeek V4 Flash Responses API Reference","sidebarTitle":"Responses Playground","openapi":"api-reference/deepseek-v4-flash-responses-openapi-en.yaml POST /v1/responses","icon":"git-fork","href":"/en/api-capabilities/deepseek-v4-flash/responses"}]},{"group":"DeepSeek Search \u0026 Fetch","icon":"search","pages":[{"title":"DeepSeek Web Search and Fetch API","sidebarTitle":"Overview","icon":"search","href":"/en/api-capabilities/deepseek-search-fetch/overview"},{"title":"DeepSeek Web Search API Reference","sidebarTitle":"Search Playground","openapi":"api-reference/deepseek-search-openapi-en.yaml POST /v1/tools/search","icon":"terminal","href":"/en/api-capabilities/deepseek-search-fetch/search-api"},{"title":"DeepSeek Web Fetch API Reference","sidebarTitle":"Fetch Playground","openapi":"api-reference/deepseek-fetch-openapi-en.yaml POST /v1/tools/fetch","icon":"terminal","href":"/en/api-capabilities/deepseek-search-fetch/fetch-api"}]},{"group":"Seed 2.1 Turbo","icon":"zap","pages":[{"title":"Seed 2.1 Turbo Text Generation","sidebarTitle":"Overview","icon":"message-square","href":"/en/api-capabilities/dola-seed-2-1-turbo/overview"},{"title":"Seed 2.1 Turbo Chat API Reference","sidebarTitle":"Chat Playground","openapi":"api-reference/dola-seed-2-1-turbo-chat-openapi-en.yaml POST /v1/chat/completions","icon":"terminal","href":"/en/api-capabilities/dola-seed-2-1-turbo/chat-completions"},{"title":"Seed 2.1 Turbo Responses API Reference","sidebarTitle":"Responses Playground","openapi":"api-reference/dola-seed-2-1-turbo-responses-openapi-en.yaml POST /v1/responses","icon":"messages-square","href":"/en/api-capabilities/dola-seed-2-1-turbo/responses"}]},{"group":"Gemini Flash Series","icon":"sparkles","pages":[{"title":"Gemini 3.8 Flash Text Generation","sidebarTitle":"Gemini 3.8 Flash Overview","icon":"sparkles","href":"/en/api-capabilities/gemini-3-8-flash/overview"},{"title":"Gemini 3.6 Flash Text Generation","sidebarTitle":"Gemini 3.6 Flash Overview","icon":"sparkles","href":"/en/api-capabilities/gemini-3-6-flash/overview"},{"title":"Gemini 3.6 Flash Native API Reference","sidebarTitle":"3.6 Native Playground","openapi":"api-reference/gemini-3-6-flash-native-openapi-en.yaml POST /v1beta/models/gemini-3.6-flash:generateContent","icon":"terminal","href":"/en/api-capabilities/gemini-3-6-flash/generate-content"},{"title":"Gemini 3.6 Flash Chat API Reference","sidebarTitle":"3.6 Chat Playground","openapi":"api-reference/gemini-3-6-flash-chat-openapi-en.yaml POST /v1/chat/completions","icon":"terminal","href":"/en/api-capabilities/gemini-3-6-flash/chat-completions"}]},{"group":"Gemini 3.5 Flash-Lite","icon":"feather","pages":[{"title":"Gemini 3.5 Flash-Lite Text Generation","sidebarTitle":"Overview","icon":"feather","href":"/en/api-capabilities/gemini-3-5-flash-lite/overview"},{"title":"Gemini 3.5 Flash-Lite Native API Reference","sidebarTitle":"Native Playground","openapi":"api-reference/gemini-3-5-flash-lite-native-openapi-en.yaml POST /v1beta/models/gemini-3.5-flash-lite:generateContent","icon":"terminal","href":"/en/api-capabilities/gemini-3-5-flash-lite/generate-content"},{"title":"Gemini 3.5 Flash-Lite Chat API Reference","sidebarTitle":"Chat Playground","openapi":"api-reference/gemini-3-5-flash-lite-chat-openapi-en.yaml POST /v1/chat/completions","icon":"terminal","href":"/en/api-capabilities/gemini-3-5-flash-lite/chat-completions"}]},{"group":"Qwen3 Series","icon":"puzzle","pages":[{"title":"Qwen3.8-Max Text Generation","sidebarTitle":"Overview","icon":"puzzle","href":"/en/api-capabilities/qwen-3-8/overview"},{"title":"Qwen3.8-Max Chat API Reference","sidebarTitle":"Chat Playground","openapi":"api-reference/qwen-3-8-max-chat-openapi-en.yaml POST /v1/chat/completions","icon":"terminal","href":"/en/api-capabilities/qwen-3-8/chat-completions"},{"title":"Qwen3.6 Text Model Series (Legacy)","sidebarTitle":"Qwen3.6 (Legacy)","icon":"puzzle","href":"/en/api-capabilities/qwen-3-6/overview"}]},{"group":"Kimi K3.1 Pro","icon":"moon","pages":[{"title":"Kimi K3.1 Pro Overview","sidebarTitle":"Overview","icon":"brain","href":"/en/api-capabilities/kimi-k3-1/overview"}]},{"title":"Kimi K2.5 Text Generation","sidebarTitle":"Kimi K2.5","icon":"bot","href":"/en/api-capabilities/kimi-k2-5"}]},{"group":"Audio API (Official)","icon":"audio-lines","pages":[{"title":"Realtime Voice (WebSocket)","sidebarTitle":"Realtime Voice Overview","icon":"audio-lines","href":"/en/api-capabilities/realtime/overview"}]},{"group":"Retrieval \u0026 Safety","icon":"search","pages":[{"title":"Text Embedding API","icon":"vector-square","href":"/en/api-capabilities/text-embedding"},{"title":"Embedding Tuning in Practice","sidebarTitle":"Embedding Tuning","icon":"sliders-horizontal","href":"/en/api-capabilities/embedding-best-practices"},{"group":"Rerank","icon":"list-ordered","pages":[{"title":"bge-reranker-v2-m3 Text Reranking","sidebarTitle":"Overview","icon":"list-ordered","href":"/en/api-capabilities/rerank/overview"},{"title":"Rerank API Reference","sidebarTitle":"Playground","openapi":"api-reference/bge-reranker-v2-m3-rerank-openapi-en.yaml POST /v1/rerank","icon":"terminal","href":"/en/api-capabilities/rerank/rerank-api"},{"title":"RAG Tuning in Practice","sidebarTitle":"RAG Tuning","icon":"sliders-horizontal","href":"/en/api-capabilities/rerank/rag-best-practices"}]},{"title":"Text Moderation","icon":"shield-check","href":"/en/api-capabilities/text-moderation"}]}]},{"tab":"Use Cases","icon":"layout-grid","pages":[{"title":"Use Cases","href":"/en/scenarios"}]},{"tab":"FAQ","icon":"circle-question-mark","pages":[{"title":"FAQ","href":"/en/faq"}]},{"tab":"Live Updates","icon":"activity","pages":[{"title":"Live Updates","href":"/en/live"}]},{"tab":"Announcements","icon":"megaphone","pages":[{"title":"Announcements","href":"/en/changelog"}]},{"tab":"Promotions","icon":"gift","pages":[{"title":"Promotions","href":"/en/faq/recharge-promotions"}]},{"tab":"Model Pricing","icon":"circle-dollar-sign","pages":[{"title":"Model Pricing","href":"/en/models"}]}]},{"language":"zh-Hant","banner":{"content":"本頁由程式自動轉換為繁體中文,用詞以台灣正體為準;如有歧義請以[簡體中文版](/)為準。","dismissible":true},"footer":{"socials":{"website":"https://api.apiyi.com"},"links":[{"header":"AI 整合","items":[{"label":"skill.md","href":"https://docs.apiyi.com/skill.md"},{"label":"llms.txt","href":"https://docs.apiyi.com/llms.txt"},{"label":"llms-full.txt","href":"https://docs.apiyi.com/llms-full.txt"},{"label":"model-registry.json","href":"https://docs.apiyi.com/model-registry.json"},{"label":"AI 開發者套件(中文)","href":"/developer-kit"},{"label":"AI Developer Kit (EN)","href":"/en/developer-kit"}]},{"header":"使用者口碑 / Wall of Love","items":[{"label":"使用者口碑(中文)","href":"/wall-of-love"},{"label":"Wall of Love (EN)","href":"/en/wall-of-love"}]}]},"navbar":{"links":[{"href":"https://api.apiyi.com","label":"首頁"},{"href":"https://imagen.apiyi.com","label":"AI出圖"},{"href":"https://icover.ai","label":"AI影片"}],"primary":{"type":"button","label":"控制台","href":"https://api.apiyi.com/account/profile"}},"pages":[{"title":"zh-Hant","href":"/zh-Hant/api-capabilities/grok-imagine-image/image-edit"}]},{"language":"ja","banner":{"content":"このページは AI により翻訳されています。内容に相違がある場合は[English 版](/en)を正としてください。","dismissible":true},"footer":{"socials":{"website":"https://api.apiyi.com"},"links":[{"header":"AI統合","items":[{"label":"skill.md","href":"https://docs.apiyi.com/skill.md"},{"label":"llms.txt","href":"https://docs.apiyi.com/llms.txt"},{"label":"llms-full.txt","href":"https://docs.apiyi.com/llms-full.txt"},{"label":"model-registry.json","href":"https://docs.apiyi.com/model-registry.json"},{"label":"AI開発者キット(中国語)","href":"/developer-kit"},{"label":"AI Developer Kit (EN)","href":"/en/developer-kit"}]},{"header":"ユーザーの声 / Wall of Love","items":[{"label":"ユーザーの声(中国語)","href":"/wall-of-love"},{"label":"Wall of Love(英語)","href":"/en/wall-of-love"}]}]},"navbar":{"links":[{"href":"https://api.apiyi.com","label":"ホーム"},{"href":"https://imagen.apiyi.com","label":"AI画像生成"},{"href":"https://icover.ai","label":"AI動画生成"}],"primary":{"type":"button","label":"コンソール","href":"https://api.apiyi.com/account/profile"}},"pages":[{"title":"ja","href":"/ja/api-capabilities/grok-imagine-image/image-edit"}]},{"language":"ko","banner":{"content":"이 페이지는 AI로 번역되었습니다. 내용이 다를 경우 [English 버전](/en)을 기준으로 하십시오.","dismissible":true},"footer":{"socials":{"website":"https://api.apiyi.com"},"links":[{"header":"AI 통합","items":[{"label":"skill.md","href":"https://docs.apiyi.com/skill.md"},{"label":"llms.txt","href":"https://docs.apiyi.com/llms.txt"},{"label":"llms-full.txt","href":"https://docs.apiyi.com/llms-full.txt"},{"label":"model-registry.json","href":"https://docs.apiyi.com/model-registry.json"},{"label":"AI 개발자 키트(중국어)","href":"/developer-kit"},{"label":"AI Developer Kit (EN)","href":"/en/developer-kit"}]},{"header":"사용자 후기 / Wall of Love","items":[{"label":"사용자 후기(중국어)","href":"/wall-of-love"},{"label":"Wall of Love (영문)","href":"/en/wall-of-love"}]}]},"navbar":{"links":[{"href":"https://api.apiyi.com","label":"홈"},{"href":"https://imagen.apiyi.com","label":"AI 이미지 생성"},{"href":"https://icover.ai","label":"AI 동영상 생성"}],"primary":{"type":"button","label":"콘솔","href":"https://api.apiyi.com/account/profile"}},"pages":[{"title":"ko","href":"/ko/api-capabilities/grok-imagine-image/image-edit"}]},{"language":"ru","banner":{"content":"Эта страница переведена с помощью ИИ. При расхождениях ориентируйтесь на [английскую версию](/en).","dismissible":true},"footer":{"socials":{"website":"https://api.apiyi.com"},"links":[{"header":"AI-интеграция","items":[{"label":"skill.md","href":"https://docs.apiyi.com/skill.md"},{"label":"llms.txt","href":"https://docs.apiyi.com/llms.txt"},{"label":"llms-full.txt","href":"https://docs.apiyi.com/llms-full.txt"},{"label":"model-registry.json","href":"https://docs.apiyi.com/model-registry.json"},{"label":"Набор AI-разработчика (кит.)","href":"/developer-kit"},{"label":"AI Developer Kit (EN)","href":"/en/developer-kit"}]},{"header":"Отзывы пользователей / Wall of Love","items":[{"label":"Отзывы пользователей (на китайском)","href":"/wall-of-love"},{"label":"Wall of Love (EN)","href":"/en/wall-of-love"}]}]},"navbar":{"links":[{"href":"https://api.apiyi.com","label":"Главная"},{"href":"https://imagen.apiyi.com","label":"Генерация изображений"},{"href":"https://icover.ai","label":"Генерация видео"}],"primary":{"type":"button","label":"Консоль","href":"https://api.apiyi.com/account/profile"}},"pages":[{"title":"ru","href":"/ru/api-capabilities/grok-imagine-image/image-edit"}]}]},"basePath":"","title":"Image Editing API Reference - API易文档中心","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["10e4515597","c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["BannerMarkdown-6DXXLlfN.js","dist-CmKHfscc.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-C3kuh_dz.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-C9Wu0MeN.js","utils-jWgu-6Qf.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DBD8f9qn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BGuX1ui5.js","snippetPresets-Evy63nQB.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BQHO1lnV.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-B6C8m-t_.js","shallow-BG4cT0fH.js","getApiPlaygroundDisplay-CgEPrE-D.js","CodeSnippet-CU8JyZ9N.js","CodeSnippets-BnxHU32T.js","Page-D6S0Yh6q.js","getPastedJson-CwiYOonh.js","icon-DYDpWmDf.js","MethodPill-C-J-l7_c.js","DuplicateIcon-B6ARwg9w.js","createIcon-Dsv4MtDq.js","DynamicMarkdown-CtasenyM.js","SectionHeading-YNcgYwjB.js","axios-vUo_bRtp.js","Markdown-CwLx6PAg.js","AssistantPageLink-U3mI6Ljh.js"]}