gpt-image-1، وأحدث gpt-image-2، بالإضافة إلى نماذج سلسلة nano-banana / nano-banana-2-lite / nano-banana-2 / nano-banana-pro المتصلة من خلال نفس الواجهة.
تتناول هذه الوثيقة بشكل رئيسي عملية استخدام OpenAI Images Edits API، مما يتيح لنا استخدام وظيفة تحرير الصور الرسمية من OpenAI بسهولة.
申请流程
لاستخدام OpenAI Images Edits API، يجب أولاً الذهاب إلى لوحة تحكم Ace Data Cloud للحصول على رمز API الخاص بك، احتفظ به للاستخدام لاحقًا.
إذا لم تكن قد قمت بتسجيل الدخول أو التسجيل بعد، سيتم تحويلك تلقائيًا إلى صفحة تسجيل الدخول لدعوتك للتسجيل وتسجيل الدخول، وبعد الانتهاء، سيتم العودة تلقائيًا إلى الصفحة الحالية.
رمز API واحد يكفي لاستدعاء جميع خدمات المنصة، ولا حاجة لتقديم طلب منفصل لكل خدمة. عند التقديم لأول مرة، ستحصل على رصيد مجاني لتجربته مجانًا؛ عند نفاد الرصيد، يمكنك إعادة شحن الرصيد العام في لوحة التحكم.
📘 الوثيقة الكاملة: OpenAI Images Edits API →
GPT-Image-2 模型
gpt-image-2 في سيناريو تحرير الصور مقارنة بـ gpt-image-1 لديه تحسينات واضحة جدًا:
- الحفاظ على الهيكل أكثر استقرارًا: عند تغيير الجلد، تغيير الألوان، أو تغيير الخلفية، لن يتم تدمير تنسيق الصورة الأصلية وتكوينها تقريبًا.
- احتفاظ النص بدقة أكبر: الصور التي تحتوي على نصوص مثل المعلومات الرسومية، الملصقات، القوائم، وغيرها، تظل النصوص واضحة وقابلة للقراءة بعد التحرير.
- دعم نقل URL مباشرة: بالإضافة إلى تحميل الملفات التقليدي
multipart/form-data،gpt-image-2يدعم أيضًا إدخال URL الصورة بطريقة JSON، دون الحاجة إلى تنزيل الصورة محليًا أولاً، مما يجعله مناسبًا جدًا للاتصال بخطوط الخدمة. - دعم نقل base64 مباشرة: كما هو متفق عليه رسميًا، يمكن أيضًا تمرير حقل
imageمباشرة كـ base64 (data:image/png;base64,...أو base64 عاري)، دون الحاجة إلى تحميل الصورة المحلية إلى موقع تخزين الصور أولاً لتحريرها. - دعم إعادة رسم بدقة عالية: يمكن إدخال صورة أصلية بدقة 1K، من خلال معلمة
sizeطلب إخراج بدقة 2K / 4K، سيقوم النموذج بإكمال التكبير أثناء عملية التحرير.
线路变体(:official / :reverse)
gpt-image-2 يسير بشكل افتراضي عبر الخط القياسي. من خلال لاحقة اسم النموذج، يمكن اختيار الخط بشكل صريح:
gpt-image-2:official: قناة رسمية، مستقرة ومتوافقة. يتم تحديد التكلفة من خلال رموز إدخال النص، ورموز إدخال الصورة أثناء التحرير ورموز إخراج الصورة، ويتم التسوية النهائية وفقًا للاستخدام الفعلي في الاستجابة؛ الأسعار المعروضة للجودة/الحجم على الصفحة هي للتقدير فقط؛ يتم احتساب الأسعار للعملاء بحوالي 80% من السعر الرسمي لـ OpenAI وفقًا لأقصى حزمة استخدام. ستقوم الخدمة تلقائيًا بتجاوز الأخطاء بين القنوات المتاحة، والقدرة والتكلفة تعتمد على النتائج الفعلية المستلمة.gpt-image-2:reverse: يعادل تمامًاgpt-image-2الافتراضي، مع قيمة أفضل، والسعر يبقى كما هو.
:official计费公式 التكلفة النهائية = رموز إدخال النص + رموز إدخال الصورة (فقط للتحرير) + رموز إخراج الصورة. السعر المعروض على الصفحة لـquality × sizeهو تقدير قبل الطلب، ويتم خصم التكلفة الفعلية وفقًا لـusageفي الاستجابة الناجحة. على سبيل المثال، عادةً ما تكون تكلفة إخراج الصورة لـlow،1024x1024حوالي 0.0505 Credits، بالإضافة إلى عدد قليل من رموز الإدخال؛ عند استخدامauto، قد يختار النموذج جودة أعلى، وسيتم فحص الحد المسبق وفقًا لمستوى أعلى.
支持的 size 取值
تتوافق واجهة التحرير مع تنسيق التحقق من size مع واجهة التوليد - gpt-image-2 يحتاج فقط إلى أن يكون size إما auto، فارغ، أو يتوافق مع تنسيق WIDTHxHEIGHT، أي شكل آخر سيعيد 400. يتم خصم gpt-image-2 الافتراضي و:reverse بشكل موحد لكل صورة؛ :official سيحسب رموز إدخال النص، ورموز إدخال الصورة المرجعية ورموز إخراج الصورة، حيث قد تؤثر الصورة الأصلية، الحجم والجودة على التكلفة النهائية.
قيود الحجم: يجب أن تلبي الأبعاد المخصصة أن تكون الأبعاد مضاعفات 16، وألا يتجاوز الطول 3840، وإجمالي عدد البكسلات ≤ 8,294,400، وإذا تجاوزت ذلك ستعيد 4xx.
على سبيل المثال: إذا كانت الصورة الأصليةفيما يلي مثالان حقيقيان من زوايا مختلفة لتجربة قدرة تحرير1024x1024، وعند تمريرsizeكـ2048x2048، سيقوم النموذج بإعادة رسم الصورة وإخراج صورة بدقة 2K؛ إذا تم تمريرsizeكـ3840x2160، سيتم إخراج صورة بدقة 4K. يتم خصم تكاليف الأبعاد الثلاثة لـgpt-image-2الافتراضي و:reverseبشكل متساوٍ؛ بينما يتم احتساب:officialوفقًا للاستخدام الفعلي للرموز. إغفال حقلsizeوتمريره كـautoمتساوي تمامًا: سيقومgpt-image-2بقراءة نية الحجم المحددة في الكلمات الدلالية، بما في ذلك البكسلات، النسبة، الاتجاه الأفقي أو العمودي، مستوى الدقة (مثل 4K / high-res) أو اسم القماش. عند التعرف على نية الحجم، سيتم استخدام الأبعاد المحددة المخططة؛ إذا لم يكن هناك متطلبات حجم في الكلمات الدلالية أو لم يكن من الممكن الحكم تلقائيًا، سيتم الرجوع إلى حجم الصورة المرجعية الأولى. سيتم تطبيع الأبعاد النهائية المحددة قبل تقديم الطلب إلى مضاعفات 16، مع قيود على الطول وإجمالي عدد البكسلات؛ إذا كنت بحاجة إلى تحكم مطلق، يرجى تمريرWIDTHxHEIGHTمباشرة. بعد الانتهاء من التوليد، لن يتم إعادة المحاولة تلقائيًا بسبب اختلاف بكسلات الإخراج، لتجنب تكاليف التوليد المكررة. حول معلمةnتدعم واجهة تحريرgpt-image-2n > 1: يمكن أن تعيد طلب واحد العدد المقابل من نتائج التحرير. بشكل افتراضي، يتم احتسابgpt-image-2و:reverseبناءً على عدد الصور الناجحة؛ بينما يتم احتساب:officialبناءً على الاستخدام الفعلي للتوكن في الاستجابة الكاملة (تتراوح قيمnمن 1 إلى 10). ينطبق نفس الشيء علىgpt-image-1/gpt-image-1.5، وكذلك سلسلةnano-banana/nano-banana-2-lite/nano-banana-2/nano-banana-pro. لاحظ أنresponse_format=b64_jsonيدعم فقطn=1، وعند استخدامn>1يرجى استخدام الإرجاع الافتراضي عبر URL. إذا فشلت بعض الصور في التوليد، فسيتم إرجاع واحتساب الجزء الناجح فقط.
gpt-image-2.
طريقة الاستدعاء الأولى: JSON + URL الصورة (موصى بها)
أرسل الطلب مباشرة بطريقةapplication/json، مع ملء حقل image برابط صورة واحدة، سيقوم النموذج بتحميل تلك الصورة وتحريرها وفقًا لـ prompt.
على سبيل المثال، الصورة الأصلية أدناه تم إنشاؤها باستخدام gpt-image-2 كدليل علمي:


تلميح: حقلimageيدعم أيضًا تمرير مصفوفة، مثل"image": ["url1", "url2", "url3"]، يمكن تمرير ما يصل إلى 16 صورة مرجعية في وقت واحد، مما يسمح للنموذج بالرجوع إلى عدة صور لإجراء التحرير.
إرسال base64 مباشرة: يمكن أن يكونimage(وكل عنصر في المصفوفة) أيضًا base64 —data:image/png;base64,...أو base64 عاري، مناسب للصور المحلية التي لا ترغب في تحميلها على موقع رفع الصور أولاً. على سبيل المثال:
طريقة الاستدعاء الثانية: JSON + عدة صور مرجعية
يدعمgpt-image-2 الرجوع إلى عدة صور في وقت واحد لتوليد النتيجة النهائية، مثل دمج عدة صور للمنتجات في سلة هدايا واحدة:
مثال على السيناريو: تغيير النمط + الحفاظ على الهيكل
إليك مثال آخر، استبدال رف كتب خشبي برف عائم حديث، مع الحفاظ بدقة على عدد وترتيب الكتب في كل طبقة. الصورة الأصلية (رف الكتب الخشبي الذي تم إنشاؤه باستخدامgpt-image-2):

task_id: e9544dba-727e-44a2-81e1-223d49869380):

طريقة الاستدعاء الثالثة: multipart/form-data (متوافقة مع OpenAI SDK)
إذا كنت قد بدأت بالفعل في استخدام SDK الرسمي لـ OpenAI Python، فإن طريقة التحميل الأصليةmultipart/form-data تنطبق أيضًا، فقط قم بتغيير model إلى gpt-image-2:
OPENAI_BASE_URL يجب أن يكون https://api.acedata.cloud/openai، و OPENAI_API_KEY يجب أن يكون الرمز المميز الذي حصلت عليه:
نماذج Nano Banana
سلسلةnano-banana تتصل أيضًا بـ /openai/images/edits في سيناريوهات التحرير، فقط قم بتغيير model إلى أي واحد من الجدول أدناه.
مهم: نطاق دعم المعلمات تتصل Nano Banana ببروتوكول OpenAI من خلال طبقة التكيف، وتدعم فقط المعلمات التالية:model،prompt،image،n.
- يمكن تحميل
imageإما عبرmultipart/form-data(سيتم تحويل الملفات المحلية تلقائيًا إلى base64)، أو يمكن تمرير سلسلة URL الصورة مباشرة عبر حقل النموذج.- لا تدعم المعلمات مثل
mask،size،response_format؛ إذا تم ملؤها، سيتم تجاهلها.n > 1مدعوم (1–10)، وسيتم إرجاع عدد نتائج التحرير المقابلة مع احتساب التكلفة.- تتبع بنية الإرجاع تنسيق OpenAI (
data[].url)، لكنcreatedثابت عند0، ولن يتم إرجاعb64_json، وrevised_promptدائمًا يساويpromptالأصلي.
استدعاء عبر النموذج + URL الصورة

استدعاء عبر النموذج + ملف محلي
ردود غير متزامنة
آلية ردودcallback_url غير المتزامنة فعالة أيضًا مع nano-banana، وتدفق الاستدعاء متطابق تمامًا مع النماذج الأخرى، انظر القسم التالي ردود غير متزامنة.
الاستخدام الأساسي
الآن يمكنك استخدام الكود لإجراء الاستدعاء، أدناه هو استدعاء عبر CURL:authorization، يمكنك اختياره مباشرة من القائمة المنسدلة. المعلمة الأخرى هي model، model هو نوع النموذج الذي نختار استخدامه من موقع OpenAI، هنا لدينا نموذج واحد رئيسي، يمكنك الاطلاع على التفاصيل في النماذج المقدمة. المعلمة الأخرى هي prompt، prompt هو النص الذي ندخله لتوليد الصورة. وأخيرًا، المعلمة هي image، هذه المعلمة تحتاج إلى مسار الصورة التي تحتاج إلى التحرير، والصورة التي تحتاج إلى التحرير موضحة في الصورة أدناه:
تلميح: يمكن أن تظهرimage[]عدة مرات لتحميل صور مرجعية متعددة، مثل-F "image[]=@a.png" -F "image[]=@b.png"، تدعم نماذج GPT Image ما يصل إلى 16 صورة (كل صورة لا تتجاوز 50 ميجابايت، بصيغة png/webp/jpg). إذا تجاوزت العدد، ستعود 400.

OPENAI_BASE_URL، يمكن تعيينه إلى https://api.acedata.cloud/openai، والآخر هو متغير الاعتماد OPENAI_API_KEY، هذه القيمة يتم الحصول عليها من authorization، في نظام Mac OS يمكنك تعيين المتغيرات البيئية باستخدام الأمر التالي:
gift-basket.png، والنتيجة المحددة كما يلي:

gpt-image-1 和 gpt-image-2 两种模型,其中 gpt-image-2 是当前推荐使用的模型,详见上文 GPT-Image-2 模型 一节。
异步回调
由于 OpenAI Images Edits API 编辑图片的时间可能相对较长,如果 API 长时间无响应,HTTP 请求会一直保持连接,导致额外的系统资源消耗,所以本 API 也提供了异步回调的支持。 整体流程是:客户端发起请求的时候,额外指定一个callback_url 字段,客户端发起 API 请求之后,API 会立马返回一个结果,包含一个 task_id 的字段信息,代表当前的任务 ID。当任务完成之后,编辑图片的结果会通过 POST JSON 的形式发送到客户端指定的 callback_url,其中也包括了 task_id 字段,这样任务结果就可以通过 ID 关联起来了。
下面我们通过示例来了解下具体怎样操作。
首先,Webhook 回调是一个可以接收 HTTP 请求的服务,开发者应该替换为自己搭建的 HTTP 服务器的 URL。此处为了方便演示,使用一个公开的 Webhook 样例网站 https://webhook.site/,打开该网站即可得到一个 Webhook URL,如图所示:
将此 URL 复制下来,就可以作为 Webhook 来使用,此处的样例为 https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab。
接下来,我们可以设置字段 callback_url 为上述 Webhook URL,同时填入相应的参数,如以下代码所示:
task_id 字段,data 字段包含了和同步调用一样的图片编辑结果,通过 task_id 字段即可实现任务的关联。
错误处理
在调用 API 时,如果遇到错误,API 会返回相应的错误代码和信息。例如:400 token_mismatched:请求错误,可能是由于缺少或无效的参数。400 api_not_implemented:请求错误,可能是由于缺少或无效的参数。401 invalid_token:未授权,授权令牌无效或缺失。429 too_many_requests:请求过多,您已超出速率限制。500 api_error:内部服务器错误,服务器出现问题。

