dall-e-2، 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، وطلب إخراج 2K / 4K من خلال معلمة
size، سيقوم النموذج بإكمال التكبير أثناء عملية التعديل.
تحويل رسمي / متغير عكسي (:official / :reverse)
gpt-image-2 يسير بشكل افتراضي على الخط العكسي. يمكن اختيار الخط بشكل صريح من خلال لاحقة اسم النموذج:
gpt-image-2:official: خط التحويل الرسمي. يدعمn > 1(إرجاع عدة صور في مرة واحدة) و 2K / 4K حقيقية، يتم احتساب التكلفة لكل صورة، والسعر هو ضعف السعر الافتراضي لـgpt-image-2. حاليًا، متاح فقط من خلال قناة openai-hk، وعند عدم توفر الخط، سيتم إرجاع خطأ مباشرة، ولن يتم التراجع إلى الخط العكسي.gpt-image-2:reverse: يعادل تمامًاgpt-image-2الافتراضي (الخط العكسي)، السعر يبقى كما هو.
القيود المتعلقة بمعلمةnالمذكورة أدناه تنطبق فقط على الخط الافتراضي / العكسي؛gpt-image-2:officialيدعمn > 1ويتم احتساب التكلفة حسب الصورة.
قيم size المدعومة
تتطابق قيود واجهة التحرير على size تمامًا مع واجهة التوليد - gpt-image-2 يحتاج فقط إلى أن تكون size إما auto، فارغ، أو يتوافق مع تنسيق WIDTHxHEIGHT، أي شكل آخر سيعيد 400. جميع الأحجام (1K / 2K / 4K / مخصص) يتم خصمها بشكل موحد لكل صورة، ولا تتعلق بدقة الصورة الأصلية أو قيمة طلب size.
تطبق القيود الصارمة على الأحجام المخصصة أيضًا: يجب أن تكون الأبعاد مضاعفات 16، والجانب الأطول ≤ 3840، وإجمالي عدد البكسلات ≤ 8,294,400.
على سبيل المثال: إذا كانت الصورة الأصلية1024x1024، وتم تمريرsizeكـ2048x2048، سيقوم النموذج بإعادة رسم الصورة وفقًا لتعليمات التعديل وإخراج صورة بدقة 2K؛ إذا تم تمريرsizeكـ3840x2160، سيتم إخراج صورة بدقة 4K أفقية؛ إذا تم تمريرautoأو تم إغفاله، سيختار النموذج بنفسه. الثلاثة يتم احتساب تكلفتها بشكل متساوٍ.
حول معلمةفيما يلي مثالان حقيقيان من زوايا مختلفة لتجربة قدرة تعديلnواجهة تحريرgpt-image-2حاليًا لا تدعمn > 1: سيتم تجاهل هذه المعلمة بصمت، سواء تم تمريرn=1أوn=10، ستعيد الطلبات مرة واحدة صورة واحدة فقط، وسيتم احتساب التكلفة على صورة واحدة فقط. إذا كنت بحاجة للحصول على عدة نتائج تحرير مرشحة في مرة واحدة، يرجى إجراء طلبات متعددة بشكل متزامن بنفسك. تنطبق هذه القيود أيضًا علىgpt-image-1/gpt-image-1.5، وكذلك سلسلةnano-banana/nano-banana-2-lite/nano-banana-2/nano-banana-pro.dall-e-2هو النموذج الوحيد الذي يدعم حاليًاn > 1بشكل أصلي.
gpt-image-2.
طريقة الاستدعاء الأولى: JSON + URL الصورة (موصى به)
أرسل الطلب مباشرة بطريقةapplication/json، مع ملء حقل image بعنوان URL لصورة واحدة، سيقوم النموذج بجلب تلك الصورة وتعديلها وفقًا لـ prompt.
على سبيل المثال، الصورة الأصلية أدناه تم إنشاؤها باستخدام gpt-image-2 كصورة توضيحية علمية:


提示:image字段也支持传入一个数组,例如"image": ["url1", "url2", "url3"],最多可同时传入 16 张参考图,让模型综合参考多张图片进行编辑。
base64 直传:image(及数组里的每一项)除了 URL,也可以是 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)
如果你已经在使用官方 OpenAI Python SDK,原有的multipart/form-data 上传方式同样适用,只需把 model 改为 gpt-image-2:
OPENAI_BASE_URL 设为 https://api.acedata.cloud/openai,OPENAI_API_KEY 设为申请到的 token:
Nano Banana 系列模型
nano-banana 系列在编辑场景下同样接入了 /openai/images/edits,把 model 改为下表中的任意一个即可。
مهم: نطاق دعم المعلمات يتصل Nano Banana عبر طبقة التكيف ببروتوكول OpenAI، ويدعم فقط المعلمات التالية:model،prompt،image.
- يمكن رفع
imageإما عبرmultipart/form-data(سيتم تحويله داخليًا إلىdata:<mime>;base64,...وإرساله إلى المصدر)، أو يمكن تمرير سلسلة URL الصورة مباشرة عبر حقل النموذج.- لا تدعم المعلمات
mask،n،size،response_format، وما إلى ذلك؛ سيتم تجاهلها إذا تم ملؤها.- يتبع هيكل الإرجاع تنسيق OpenAI (
data[].url)، لكنcreatedثابت عند0، ولن يتم إرجاعb64_json، وrevised_promptدائمًا يساويpromptالأصلي.
استدعاء عبر النموذج + URL الصورة

استدعاء عبر النموذج + ملف محلي
ردود غير متزامنة
آلية ردودcallback_url غير المتزامنة فعالة أيضًا لـ nano-banana، وتدفق الاستدعاء متطابق تمامًا مع النماذج الأخرى، انظر القسم التالي ردود غير متزامنة.
الاستخدام الأساسي
يمكنك الآن استخدام الكود لإجراء الاستدعاء، فيما يلي استدعاء عبر CURL:authorization، يمكن اختيارها مباشرة من القائمة المنسدلة. المعلمة الأخرى هي model، حيث أن model هو نوع النموذج الذي نختار استخدامه من موقع OpenAI، هنا لدينا نموذج واحد رئيسي، يمكن الاطلاع على التفاصيل في النماذج المقدمة. المعلمة الأخرى هي prompt، حيث أن prompt هو النص الذي ندخله لتوليد الصورة. وأخيرًا، المعلمة هي image، حيث تحتاج إلى مسار الصورة التي سيتم تحريرها، والصورة التي تحتاج إلى التحرير موضحة في الصورة أدناه:

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

dall-e-2، gpt-image-1 و gpt-image-2، حيث أن gpt-image-2 هو النموذج الموصى به حاليًا، انظر القسم السابق نموذج GPT-Image-2.
ردود غير متزامنة
نظرًا لأن وقت تحرير الصور عبر OpenAI Images Edits API قد يكون طويلًا نسبيًا، إذا لم يكن هناك استجابة من API لفترة طويلة، ستظل طلبات HTTP متصلة، مما يؤدي إلى استهلاك موارد النظام الإضافية، لذا توفر هذه الواجهة أيضًا دعمًا للردود غير المتزامنة. تتضمن العملية العامة: عندما يقوم العميل بإرسال الطلب، يحدد حقلcallback_url إضافي، بعد أن يقوم العميل بإرسال طلب API، ستقوم API على الفور بإرجاع نتيجة تحتوي على معلومات حقل task_id، تمثل معرف المهمة الحالية. عند اكتمال المهمة، سيتم إرسال نتيجة تحرير الصورة إلى callback_url المحدد من قبل العميل عبر POST JSON، والتي تتضمن أيضًا حقل task_id، بحيث يمكن ربط نتيجة المهمة عبر المعرف.
دعونا نفهم كيفية القيام بذلك من خلال مثال.
أولاً، ردود Webhook هي خدمة يمكنها استقبال طلبات HTTP، يجب على المطورين استبدالها بعنوان URL الخاص بخادم HTTP الذي قاموا بإنشائه. هنا، لتسهيل العرض، نستخدم موقع Webhook عام https://webhook.site/، افتح هذا الموقع للحصول على عنوان URL لـ Webhook، كما هو موضح في الصورة:
将此 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:内部服务器错误,服务器出现问题。

