מודלים

GPT Image 1.5

Markdown · JSON

GPT Image 1.5

GPT Image 1.5 יוצר תמונות ממשימה טקסטואלית עם דגש על ציות להוראות מפורטות. זמינים שלושה סוגי פריים, כמה רמות איכות ופורמטים של תוצאה.

על המודל

התיאור הזה מציג את יכולות המודל. הקלט, הפלט והאפשרויות הזמינים ב-Ailoot מפורטים בהמשך לפי השיטה שנבחרה.

תמונה ממשימה מפורטת

GPT Image 1.5 הוא מודל של OpenAI ליצירת תמונות מתיאור טקסטואלי. היצרן מדגיש ציות להוראות ועיבוד משימה מפורטת: אפשר לקבוע בה את תוכן הסצנה, הקומפוזיציה, מראה העצמים והסגנון הרצוי. התוצאה של שיטת התמונות היא תמונה מוכנה.

ב־Ailoot כרטיס זה מתייחס ליצירה עם קלט טקסטואלי. OpenAI מתארת גם את עבודת המודל עם תמונות מקור, עריכה ושינוי אזורים נפרדים. היכולות האלה דורשות תמיכה נפרדת בקלט חזותי ואינן כלולות בדרך היצירה הטקסטואלית שמוצגת כאן.

בפעולת העריכה הנפרדת שמספקת OpenAI המסכה משמשת מקור מנחה: לא מובטחת התאמה מדויקת של התוצאה לקווי המתאר שלה. לפעולה כזו דרושה תמיכה במסירת תמונת מקור; כרטיס Ailoot הנוכחי עדיין מתייחס ליצירה עם קלט טקסטואלי.

שלוש צורות פריים וכוונון איכות

זמינים גודל ריבועי 1024x1024, אופקי 1536x1024 ואנכי 1024x1536, וכן בחירה אוטומטית. אין להחיל על גרסה זו ממדים שרירותיים של מודלים אחרים.

רמות האיכות הן low, medium, high ו־auto. בחירת האיכות משפיעה על היקף העיבוד ועל פירוט התוצאה. איכות וגודל הם הגדרות שונות: כיוון הפריים קובע את מרחב הקומפוזיציה, ורמת האיכות את מצב יצירתה. הרמות xhigh ו־max לא הוצהרו ל־GPT Image 1.5.

פורמט קובץ ורקע

כברירת מחדל התוצאה נוצרת ב־PNG; זמינים גם JPEG ו־WebP. ל־JPEG ול־WebP אפשר לקבוע את מידת הדחיסה. זו הגדרה של קובץ התוצאה, ששונה מאיכות היצירה.

אצל היצרן זמינים רקע שקוף ואטום, וכן בחירה אוטומטית. לשקיפות צריך PNG או WebP: JPEG אינו שומר ערוץ אלפא. רקע שקוף נוח כשהתמונה צריכה לשמש אובייקט נפרד בקומפוזיציה בהמשך. צריך להתאים את התמיכה בפרמטרים מסוימים לשיטה שנבחרה.

הטקסט והקומפוזיציה דורשים בדיקה

המודל יכול לכלול כיתובים בתמונה ולהרכיב סצנה מכמה אלמנטים, אך לא מובטח מיקום מדויק של הטקסט והעצמים. גם שחזור המראה של אותה דמות או של העיצוב בין יצירות נפרדות דורש בקרה.

יצירת תמונה מורכבת עשויה לקחת יותר זמן מפשוטה; לפי OpenAI, משימות מורכבות מסוימות עשויות לקחת עד שתי דקות. לתוצאה חשובים גם שלמות התיאור המקורי וגם בדיקת התמונה המוכנה: קריאות הכיתובים, מיקום הפרטים וההתאמה לסצנה שנקבעה מוערכים לפי הקובץ עצמו.

Ailoot · תמונות POST /v1/images/generations gpt-image-1.5

gpt-image-1.5

OpenAI /gpt-image-1.5

התחלה

GPT Image 1.5 יוצר תמונות ממשימה טקסטואלית עם דגש על ציות להוראות מפורטות. זמינים שלושה סוגי פריים, כמה רמות איכות ופורמטים של תוצאה.

סוגי קלט נתמכים
טקסט
תוצאות
תמונות

זמין ב-Ailoot · קלט ושיטות

Ailoot · תמונות POST /v1/images/generations
סוגי קלט
text
סוגי פלט
image
פורמט פלט
קובץ תמונה
שדהסוגדרישהערכים ומגבלותברירת מחדל
שדהmodelסוגstringדרישהחובהערכים ומגבלות
gpt-image-1.5
ברירת מחדל—
שדהpromptסוגstringדרישהחובהערכים ומגבלות
אורך מזערי: ⁦1⁩
ברירת מחדל—
שדהnסוגintegerדרישהרשותערכים ומגבלות
מינימום: ⁦1⁩
ברירת מחדל⁦1⁩
שדהresponse_formatסוגstringדרישהרשותערכים ומגבלות
url, b64_json
ברירת מחדל—
שדהstreamסוגbooleanדרישהרשותערכים ומגבלותברירת מחדלfalse
שדהsizeסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהqualityסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהbackgroundסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהoutput_formatסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהoutput_compressionסוגintegerדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהmoderationסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהinput_fidelityסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהstyleסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהpartial_imagesסוגintegerדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שילובים של חומרי קלט

מטקסט לתמונה · נדרש: prompt

פרמטרים ומחזור חיים של השיטה
פרמטרמפרט
פרמטרmaterial_typesמפרטtext
פרמטרrequiredמפרטmodel, prompt
פרמטרoptional_controlsמפרטnull
פרמטרcontent_typeמפרטapplication/json

מחזור חיים: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · ערך task_id שהוחזר בפועל או רשומה בספריית המדיה

GET /v1/media/assets/{asset_id}/content

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

מבני המתודות והמזהים מדויקים; יכולת הספק נפרדת מקבלת הבקשה לביצוע.

תעריפים

תעריפי שיטות Ailoot

Ailoot תמונותPOST /v1/images/generations
קלט טקסט
⁦‏0.005 ‏$⁩ / 1K
פלט טקסט
⁦‏0.01 ‏$⁩ / 1K
קלט, תמונה
⁦‏0.008 ‏$⁩ / 1K tokens
פלט, תמונה
⁦‏0.032 ‏$⁩ / 1K tokens

לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. איך פועלים שריון הסכום והסדרת החיוב →

דוגמאות לבקשות

Ailoot · תמונות

curlPython SDKNode.js SDK
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
export AILOOT_API_KEY
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 image brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gpt-image-1.5", "prompt": ""}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
from openai import OpenAI
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")

f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Set your actual UTF-8 image brief file")
request={'model': 'gpt-image-1.5', 'prompt': ''}
request["prompt"]=f.read_text(encoding="utf-8")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.images.generate(**request)
Path("sdk-result.txt").write_text(str(result),encoding="utf-8")
save_images([{"b64_json":getattr(item,"b64_json",None),"url":getattr(item,"url",None)} for item in result.data])
import OpenAI from "openai";
import { readFileSync, writeFileSync } from "node:fs";
const key=process.env.AILOOT_API_KEY;
if(!key) throw new Error("Set your actual Ailoot API key");
const client=new OpenAI({baseURL:"https://api.ailoot.ai/v1",apiKey:key,maxRetries:0});
const request={"model": "gpt-image-1.5", "prompt": ""};
if(!process.env.AILOOT_PROMPT_FILE)throw new Error("Set your actual UTF-8 image brief file");
request.prompt=readFileSync(process.env.AILOOT_PROMPT_FILE,"utf8");
const result=await client.images.generate(request);
writeFileSync("sdk-result.json",JSON.stringify(result,null,2));
if(!result.data?.length) throw new Error("No completed images");
for(let index=0;index<result.data.length;index++) {
  const item=result.data[index];let encoded=item.b64_json,uri=item.url||"",raw;
  if(!encoded && uri.startsWith("data:image/")) {
    const comma=uri.indexOf(",");if(comma<0 || !uri.slice(0,comma).includes(";base64")) throw new Error("Unsupported image data URI");
    encoded=uri.slice(comma+1);
  }
  if(encoded) {
    if(encoded.length%4!==0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(encoded)) throw new Error("Invalid Base64");
    raw=Buffer.from(encoded,"base64");
  } else if(uri) {
    const u=new URL(uri,"https://api.ailoot.ai");
    if(u.protocol!=="https:" || u.username || u.password) throw new Error("Invalid returned URL");
    const owned=u.origin==="https://api.ailoot.ai" && u.pathname.startsWith("/v1/media/assets/") && u.pathname.endsWith("/content");
    const response=await fetch(u,{headers:owned?{Authorization:"Bearer "+key}:{},redirect:"manual"});
    if(!response.ok) throw new Error("Image content download failed: "+response.status);
    raw=Buffer.from(await response.arrayBuffer());
  } else throw new Error("Image has neither bytes nor URL");
  if(!raw.length) throw new Error("Empty image result");
  const ext=raw.subarray(0,4).equals(Buffer.from([137,80,78,71]))?"png":raw[0]===255&&raw[1]===216?"jpg":raw.toString("ascii",0,4)==="RIFF"&&raw.toString("ascii",8,12)==="WEBP"?"webp":raw.toString("utf8").trimStart().startsWith("<svg")||raw.toString("utf8").trimStart().startsWith("<?xml")?"svg":"bin";
  writeFileSync(`image-${index}.${ext}`,raw);
}
console.log("Every returned image saved; sdk-result.json retains complete metadata");

קבלה ושמירה של תוצאות

Ailoot · תמונות

הורידו כל תמונה שהוחזרה או שמרו את תוכן ה-Base64 שלה

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
שמירת כל התוצאות שהושלמו

שמרו כל תמונה שהושלמה; אחזרו אותה מכל URL שהוחזר או פענחו את תוכן ה-Base64 שלה.

שמרו כל פריט נתונים. פענחו כל b64_json או הורידו את התוכן מכל URL חתום שהוחזר. בחרו סיומת קובץ לפי סוג ה־MIME/הבתים בפועל.

כשצריך לבדוק את התגובה המקורית

אם תוצאה של יצירת תמונה או עריכתה דורשת בדיקה, שמרו את operation_id/X-Client-Request-ID המקורי ואת פרטי התוצאה שהוחזרו. שחזרו תוצאות קיימות שבבעלותכם דרך ספריית המדיה באמצעות ערכי task_id או asset_id בפועל. אל תשלחו שוב את בקשת היצירה/העריכה ואל תבנו URL לתשאול סטטוס מתוך operation_id.

שדות התגובה
שדהסוג
שדהcreatedסוגinteger
שדהdata[].urlסוגstring
שדהdata[].b64_jsonסוגbase64 string
שדהusageסוגobject
שגיאות והשלבים הבאים
תגובהתנאיהשלב הבא
תגובה⁦400⁩ · invalid_request_errorתנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקיניםהשלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה.
תגובהserver_errorתנאיהתשובה שהוחזרה מציינת שהפעולה או התוצאה דורשת בדיקההשלב הבאשמרו את מזהה הפעולה/המשימה המקורי שהוחזר, את כותרות הבקשה ואת התשובה; המשיכו לבצע פעולות קריאה נתמכות של אותה פעולה מקורית. אל תשלחו שוב את בקשת היצירה.

כינויים

כינויים למודל

Ailoot gpt-image-1.5
Ailoot Ultra gpt-image-1.5

כינויים לנתיבי שיטות

השתמשו בנתיבי השיטות המוצגים למעלה.

מזהי מודלים קשורים IDs

gpt-image-1.5, gpt-image-1.5

Ailoot Ultra · תמונות POST /v1/images/generations gpt-image-1.5

gpt-image-1.5

OpenAI /gpt-image-1.5

התחלה

GPT Image 1.5 יוצר תמונות ממשימה טקסטואלית עם דגש על ציות להוראות מפורטות. זמינים שלושה סוגי פריים, כמה רמות איכות ופורמטים של תוצאה.

סוגי קלט נתמכים
טקסט
תוצאות
תמונות

זמין ב-Ailoot · קלט ושיטות

Ailoot Ultra · תמונות POST /v1/images/generations
סוגי קלט
text
סוגי פלט
image
שדהסוגדרישהערכים ומגבלותברירת מחדל
שדהmodelסוגstringדרישהחובהערכים ומגבלות
gpt-image-1.5
ברירת מחדל—
שדהpromptסוגstringדרישהחובהערכים ומגבלות
אורך מרבי: ⁦32,000⁩
ברירת מחדל—
שדהsizeסוגstringדרישהרשותערכים ומגבלות
1024x1024, 1536x1024, 1024x1536, auto
ברירת מחדלauto
שדהbackgroundסוגstringדרישהרשותערכים ומגבלות
transparent, opaque, auto
ברירת מחדלauto
שדהmoderationסוגstringדרישהרשותערכים ומגבלות
low, auto
תנאים: יש להשתמש ב־auto לבדיקת תוכן רגילה.
ברירת מחדל—
שדהnסוגintegerדרישהרשותערכים ומגבלות
מינימום: ⁦1⁩
מקסימום: ⁦10⁩
ברירת מחדל⁦1⁩
שדהqualityסוגstringדרישהרשותערכים ומגבלות
auto, high, medium, low
ברירת מחדלauto
שדהoutput_compressionסוגintegerדרישהרשותערכים ומגבלות
מינימום: ⁦0⁩
מקסימום: ⁦100⁩
תנאים: חל על פלט JPEG ו־WebP; יש לשלוח את הערך השלם המתועד.
ברירת מחדל⁦100⁩
שדהoutput_formatסוגstringדרישהרשותערכים ומגבלות
webp, png, jpeg
ברירת מחדלpng
שדהstreamסוגbooleanדרישהרשותערכים ומגבלות
false
תנאים: הנתיב הזה מחזיר תגובת JSON שלמה אחת.
ברירת מחדלfalse
פרמטרים ומחזור חיים של השיטה
פרמטרמפרט
פרמטרcontent_typeמפרטapplication/json
פרמטרrequiredמפרטprompt, model
פרמטרmaterial_typesמפרטtext
פרמטרoptionalמפרטsize, background, moderation, n, quality, output_compression, output_format, stream
פרמטרconditionsמפרטרקע שקוף מחייב PNG או WebP., דחיסת הפלט חלה על JPEG או WebP., השיטה שנבחרה יוצרת מטקסט. אפשרויות העריכה וההזרמה המתוארות אצל היצרן הן יכולות נפרדות.

מחזור חיים: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · ערך task_id שהוחזר בפועל או רשומה בספריית המדיה

GET /v1/media/assets/{asset_id}/content

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

תעריפים

אופן חישוב החיוב הסופי

התעריפים המוצגים מספקים אומדן לעלות לפני היצירה. החיוב הסופי מחושב לפי העלות שנרשמה עבור היצירה המקורית. משך הפלט שנמדד והכמויות החזויות אינם הכמות הסופית לחיוב.

מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.

מצב מהיר
לא צוין כאשר נבחר מצב מהיר
מצב Flex
לא צוין כאשר נבחר מצב flex
מאמץ חשיבה מרבי
לא צוין כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)

תעריפים משוערים להשוואה

מחירים לפי תצורה

התאימו כל חיוב לתנאים המוצגים. השתמשו בתעריף אחד לכל קבוצה של תצורות חלופיות.

תצורהטבלת תעריפיםכמות חזויהחיוב
תצורהתעריפי בסיס לטוקניםטבלת תעריפיםתעריף בסיסכמות חזויה—חיוב
קלט · טוקני קלט · אומדן להשוואה בלבד — / 1K טוקנים
פלט · טוקני פלט · אומדן להשוואה בלבד — / 1K טוקנים
קלט · קריאה מהמטמון · אומדן להשוואה בלבד — / 1K טוקנים
קלט · כתיבה למטמון · אומדן להשוואה בלבד — / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה · אומדן להשוואה בלבד — / 1K טוקנים
תצורהעלות יצירה משוערתטבלת תעריפים—כמות חזויהאומדן ליצירה אחתחיוב
פלט · עלות יצירה משוערת · אומדן להשוואה בלבד $0.32768 אומדן לפני היצירה

אומדן זה אינו חיוב נוסף או תעריף קבוע עבור היצירה שהושלמה.

לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. איך פועלים שריון הסכום והסדרת החיוב →

דוגמאות לבקשות

Ailoot Ultra · תמונות

curl
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p={'prompt': 'A cute baby sea otter', 'model': 'gpt-image-1.5', 'size': '1024x1024', 'n': 1, 'background': 'auto', 'moderation': 'auto', 'output_format': 'png'}

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT

קבלה ושמירה של תוצאות

Ailoot Ultra · תמונות

הורידו כל תמונה שהוחזרה או שמרו את תוכן ה-Base64 שלה

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
קריאות תוכן נוספות
קריאת נכסים קיימים שבבעלותכם
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o owned-assets.json
# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.
שמירת כל התוצאות שהושלמו

שמרו כל תמונה שהושלמה; אחזרו אותה מכל URL שהוחזר או פענחו את תוכן ה-Base64 שלה.

שמרו את התשובה המלאה ואת הכותרות, כל פלט שהתקבל בפועל, את המזהים המקוריים שהוחזרו ואת כל שדות השימוש. שחזרו את הפעולה המקורית בלי לשלוח שוב בקשת יצירה.

כשצריך לבדוק את התגובה המקורית

שמרו את X-Client-Request-ID שהוחזר לצורך התאמת רישומים. קראו רק ערכי task_id/asset_id שהוחזרו בפועל או את ספריית המדיה שבבעלותכם; לעולם אל תבנו URL של משימה ממזהה הפעולה ואל תשלחו שוב בקשת יצירה.

שדות התגובה
שדהסוג
שדהcreatedסוג
שדהdata[].urlסוג
שדהdata[].b64_jsonסוג
שדהusageסוג

כינויים

כינויים למודל

Ailoot gpt-image-1.5
Ailoot Ultra gpt-image-1.5

כינויים לנתיבי שיטות

השתמשו בנתיבי השיטות המוצגים למעלה.

מזהי מודלים קשורים IDs

gpt-image-1.5, gpt-image-1.5

FAQ · GPT Image 1.5
אילו קלטים ותוצאות זמינים?

POST /v1/images/generations · gpt-image-1.5: text → image

POST /v1/images/generations · gpt-image-1.5: text → image

באילו שדות הבקשה משתמשת?

POST /v1/images/generations · gpt-image-1.5: model, prompt, n, response_format, stream

POST /v1/images/generations · gpt-image-1.5: model, prompt, size, background, moderation, n, quality, output_compression, output_format, stream

אילו מגבלות חלות?

POST /v1/images/generations · gpt-image-1.5: n.minimum: 1

POST /v1/images/generations · gpt-image-1.5: prompt.maximum_length: 32000; n.minimum: 1; n.maximum: 10; output_compression.minimum: 0; output_compression.maximum: 100

פרטים נוספים

חברו Ailoot ל- Claude Code, OpenCode, Hermes או ליישום שלכם.

החברה ופורטפוליו הפרויקטים שלה

החברה ופורטפוליו הפרויקטים שלה: מיליוני לקוחות; מכירות בהיקף של מיליארדים מדי חודש.

קנו אסימונים בהנחה.

הנחת מנוי לעבודה קבועה. קודי הנחה עד 50% על רכישת אסימונים.

מנוי
בחרו מסלול עם הנחה לבקשות הקבועות שלכם.
קוד הנחה עד 50%
הזינו קוד ברכישה. המחיר יחושב מחדש לפי המבצע הפעיל.
הוצאות בהיסטוריה
המודל, האסימונים והסכום נשמרים לכל בקשה.

בחירת מנוי · מחירי מודלים

חברו API למוצר שאתם מוכרים.

SaaS, יישומים ובוטים לפי ההצעה והסכם הרישוי של Ailoot. למכירה מחדש בקשו רישיון משווק.

יישום מסחרי
שלבו יצירת טקסט, תמונות, וידאו ושמע בתכונות בתשלום של השירות שלכם.
רישיון למכירה מחדש
שלחו תיאור פרויקט ואופן מתן גישה. בקשו תנאי שימוש ומכירה מחדש בכתב.
מסמכים באתר
ההצעה, הסכם הרישוי ומדיניות עיבוד הנתונים זמינים לפני החיבור.

בקשת רישיון למכירה מחדש · ההצעה והסכם הרישוי