model

grok-imagine-image-2.0

Markdown · JSON

grok-imagine-image-2.0

Grok Imagine Image 2.0 menghasilkan imej berdasarkan penerangan dengan pilihan nisbah, resolusi dan kualiti. Model itu sendiri turut menyokong penyuntingan imej dan pemindahan gaya visual.

Tentang model

Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.

Penjanaan dan pemurnian imej

Grok Imagine Image 2.0 menerima penerangan adegan dan menghasilkan imej. Model xAI ini turut boleh mengendalikan bahan visual asal: membuat perubahan berdasarkan arahan teks dan meneruskan penyuntingan dengan menggunakan hasil sebelumnya sebagai input baharu. Ailoot menerbitkan kaedah penjanaan berdasarkan teks.

Gaya visual

Untuk Image 2.0, xAI menerangkan fotografi realistik, anime, lukisan minyak dan lakaran pensel. Gaya ditetapkan dengan perkataan; semasa mengendalikan imej asal, arahan menentukan estetika yang dikehendaki. Perubahan berurutan membolehkan butiran ditambah dan hasil diperhalus langkah demi langkah.

Nisbah, saiz dan bilangan

  • n menetapkan antara 1 hingga 10 imej berdasarkan satu penerangan; secara lalai satu imej.
  • aspect_ratio memilih bentuk bingkai; auto menyerahkan pilihan kepada model.
  • resolution menetapkan 1K atau 2K; nilai lalai ialah 1K.

Format segi empat sama, mendatar dan menegak disediakan: 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 2:1, 1:2. Format skrin memanjang 19.5:9, 9:19.5, 20:9, 9:20 serta format lebar 21:9 dan 5:2 turut tersedia.

Pemilihan kualiti

Image 2.0 menyokong low, medium dan auto. Parameter ini khusus untuk versi tersebut; auto digunakan jika kualiti tidak dinyatakan. Pada tarikh semakan, mod automatik memilih low untuk penjanaan dan medium untuk penyuntingan.

Menurut xAI, mod medium memperuntukkan lebih banyak pengkomputeran untuk memperincikan imej. Pemilihan jelas low atau medium menetapkan mod yang dikehendaki, manakala tingkah laku auto ditentukan oleh tetapan semasa pengeluar.

Input dan hasil

Model mempunyai input teks dan visual, manakala hasilnya berupa imej. Dalam mod penyuntingan xAI sendiri, Image 2.0 menerima sehingga lima imej asal; kaedah penjanaan Ailoot semasa menggunakan input teks. Hasil boleh dihantar sebagai fail melalui pautan atau dalam base64.

Ailoot · Imej POST /v1/images/generations grok-imagine-image-2.0

grok-imagine-image-2.0

xAI /grok-imagine-image-2.0

Pengenalan

Grok Imagine Image 2.0 menghasilkan imej berdasarkan penerangan dengan pilihan nisbah, resolusi dan kualiti. Model itu sendiri turut menyokong penyuntingan imej dan pemindahan gaya visual.

Input yang diterima
Teks
Hasil
Imej

Tersedia di Ailoot · input & kaedah

Ailoot · Imej POST /v1/images/generations
Input
text
Output
image
Format output
Fail imej
MedanJenisKeperluanNilai & hadLalai
MedanmodelJenisstringKeperluanDiperlukanNilai & had
grok-imagine-image-2.0
Lalai—
MedanpromptJenisstringKeperluanDiperlukanNilai & hadLalai—
MedannJenisintegerKeperluanPilihanNilai & had
Minimum: 1
Maksimum: 10
Lalai1
Medanresponse_formatJenisstringKeperluanPilihanNilai & had
url, b64_json
Lalaiurl
MedanresolutionJenisstringKeperluanPilihanNilai & had
1k, 2k
Lalai1k
Medanaspect_ratioJenisstringKeperluanPilihanNilai & had
auto, 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 2:1, 1:2, 19.5:9, 9:19.5, 20:9, 9:20, 21:9, 5:2
Lalaiauto
MedanqualityJenisstringKeperluanPilihanNilai & had
low, medium, auto
Lalai—
Gabungan bahan input

Teks kepada imej · Diperlukan: prompt

Parameter kaedah dan kitar hayat
ParameterKontrak
Parametermaterial_typesKontraktext
ParameterrequiredKontrakmodel, prompt
Parameteroptional_controlsKontraknull
Parametercontent_typeKontrakapplication/json

Kitar hayat: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · task_id sebenar yang dikembalikan atau rekod pustaka media

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

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Struktur kaedah dan ID adalah tepat; keupayaan pembekal berasingan daripada penerimaan permintaan.

Pelan harga

Kadar kaedah Ailoot

Ailoot ImejPOST /v1/images/generations
Input
USD 0.01 bagi setiap imej masukan
Output
USD 0.05 bagi setiap imej 1.5K, kualiti rendah
Output
USD 0.07 bagi setiap imej 1.5K, kualiti sederhana
Output
USD 0.04 bagi setiap imej 1K, kualiti rendah
Output
USD 0.06 bagi setiap imej 1K, kualiti sederhana
Output
USD 0.06 bagi setiap imej 2K, kualiti rendah
Output
USD 0.08 bagi setiap imej 2K, kualiti sederhana

Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. Cara rizab dan penyelesaian caj berfungsi →

Contoh permintaan

Ailoot · Imej

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": "grok-imagine-image-2.0", "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': 'grok-imagine-image-2.0', '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": "grok-imagine-image-2.0", "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");

Terima dan simpan hasil

Ailoot · Imej

Muat turun setiap imej yang dikembalikan atau simpan kandungan Base64-nya

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Simpan semua hasil yang selesai

Simpan setiap imej yang selesai; dapatkan setiap URL yang dikembalikan atau nyahkod kandungan Base64-nya.

Simpan setiap item data. Nyahkod setiap b64_json atau dapatkan setiap URL bertandatangan yang dikembalikan. Pilih sambungan nama fail berdasarkan MIME/bait sebenar.

Jika respons asal perlu disemak

Jika hasil penjanaan atau penyuntingan imej memerlukan semakan, simpan operation_id/X-Client-Request-ID asal serta maklumat hasil yang dikembalikan. Pulihkan hasil sedia ada milik anda melalui pustaka media menggunakan nilai task_id atau asset_id sebenar. Jangan hantar semula permintaan penjanaan/penyuntingan atau bina URL tinjauan status daripada operation_id.

Medan respons
MedanJenis
MedancreatedJenisinteger
Medandata[].urlJenisstring
Medandata[].b64_jsonJenisbase64 string
MedanusageJenisobject
Ralat dan langkah seterusnya
ResponsSyaratLangkah seterusnya
Respons400 · invalid_request_errorSyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sahLangkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu.
Responsserver_errorSyaratRespons yang dikembalikan menyatakan bahawa operasi atau hasil memerlukan semakanLangkah seterusnyaSimpan ID operasi/tugas asal yang dikembalikan, pengepala permintaan dan respons; teruskan pembacaan yang disokong bagi operasi asal tersebut. Jangan hantar semula permintaan penciptaan.

Alias

Alias model

Ailoot grok-imagine-image-2.0

Alias laluan kaedah

Gunakan laluan kaedah yang dipaparkan di atas.

ID pemanggil berkaitan

grok-imagine-image-2.0

FAQ · grok-imagine-image-2.0
Apakah input dan hasil yang tersedia?

POST /v1/images/generations · grok-imagine-image-2.0: text → image

Apakah medan yang digunakan oleh permintaan?

POST /v1/images/generations · grok-imagine-image-2.0: model, prompt, n, response_format, resolution, aspect_ratio, quality

Apakah had yang terpakai?

POST /v1/images/generations · grok-imagine-image-2.0: n.minimum: 1; n.maximum: 10

Butiran lanjut

Sambungkan Ailoot kepada Claude Code, OpenCode, Hermes atau aplikasi anda.

Syarikat dan portfolio projeknya

Syarikat dan portfolio projeknya: jutaan pelanggan; jualan bernilai berbilion setiap bulan.

Beli token dengan diskaun.

Diskaun langganan untuk penggunaan berkala. Kod promosi — sehingga 50% bagi pembelian token.

Langganan
Pilih pelan berdiskaun untuk permintaan berkala anda.
Kod promosi sehingga 50%
Masukkan kod semasa pembelian. Harga dikira semula mengikut promosi semasa.
Perbelanjaan dalam sejarah
Model, token dan jumlah disimpan bagi setiap permintaan.

Pilih langganan · Lihat harga model

Sambungkan API kepada produk yang anda jual.

SaaS, aplikasi dan bot — di bawah tawaran rasmi serta perjanjian lesen Ailoot. Untuk jualan semula, mohon lesen penjual semula.

Aplikasi komersial
Tambahkan penjanaan teks, imej, video dan audio pada ciri berbayar perkhidmatan anda.
Lesen penjual semula
Hantar keterangan projek dan susunan akses. Minta terma penggunaan serta jualan semula secara bertulis.
Dokumen pada laman
Tawaran, perjanjian lesen dan dasar pemprosesan data tersedia sebelum sambungan.

Mohon lesen penjual semula · Tawaran dan perjanjian lesen