modeller

grok-imagine-image-2.0

Markdown · JSON

grok-imagine-image-2.0

Grok Imagine Image 2.0 lager bilder fra beskrivelser, med valg av sideforhold, oppløsning og kvalitet. Selve modellen støtter også bilderedigering og overføring av visuell stil.

Om modellen

Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.

Generering og presisering av bilder

Grok Imagine Image 2.0 mottar en scenebeskrivelse og lager et bilde. xAI-modellen kan også arbeide med visuelt kildemateriale: gjøre endringer etter en tekstinstruksjon og fortsette redigeringen med det forrige resultatet som nye inndata. Ailoot har publisert en tekstbasert genereringsmetode.

Visuelle stiler

For Image 2.0 beskriver xAI realistiske fotografier, anime, oljemaleri og blyanttegning. Stilen angis med ord; ved arbeid med et kildebilde bestemmer instruksjonen ønsket estetikk. Endringer i rekkefølge gjør det mulig å legge til detaljer og presisere resultatet trinnvis.

Sideforhold, størrelse og antall

  • n angir fra 1 til 10 bilder fra én beskrivelse; standarden er ett.
  • aspect_ratio velger bildeformen; auto overlater valget til modellen.
  • resolution angir 1K eller 2K; standardverdien er 1K.

Kvadratiske, liggende og stående formater er tilgjengelige: 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 2:1, 1:2. Formatene for avlange skjermer er 19.5:9, 9:19.5, 20:9 og 9:20, og de brede formatene 21:9 og 5:2.

Valg av kvalitet

Image 2.0 støtter low, medium og auto. Parameteren gjelder nettopp denne versjonen; auto brukes hvis kvalitet ikke angis. På kontrolltidspunktet velger automatisk modus low ved generering og medium ved redigering.

Ifølge xAI setter medium av mer beregning til detaljert utforming av bildet. Et uttrykkelig valg av low eller medium fastsetter ønsket modus, mens atferden til auto bestemmes av produsentens gjeldende innstilling.

Inndata og resultat

Modellen har tekst og bilder som inndata, og bilder som resultat. I xAIs egen redigeringsmodus tar Image 2.0 imot opptil fem kildebilder; den gjeldende genereringsmetoden i Ailoot bruker tekst som inndata. Resultatet kan overføres som en fil via lenke eller i base64.

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

grok-imagine-image-2.0

xAI /grok-imagine-image-2.0

Start

Grok Imagine Image 2.0 lager bilder fra beskrivelser, med valg av sideforhold, oppløsning og kvalitet. Selve modellen støtter også bilderedigering og overføring av visuell stil.

Godkjente inndata
Tekst
Resultater
Bilder

Tilgjengelig i Ailoot · inndata & metoder

Ailoot · Bilder POST /v1/images/generations
Inndatatyper
text
Utdatatyper
image
Utdataformat
Bildefil
FeltTypeKravVerdier & grenserStandard
FeltmodelTypestringKravPåkrevdVerdier & grenser
grok-imagine-image-2.0
Standard—
FeltpromptTypestringKravPåkrevdVerdier & grenserStandard—
FeltnTypeintegerKravValgfrittVerdier & grenser
Minimum: 1
Maksimum: 10
Standard1
Feltresponse_formatTypestringKravValgfrittVerdier & grenser
url, b64_json
Standardurl
FeltresolutionTypestringKravValgfrittVerdier & grenser
1k, 2k
Standard1k
Feltaspect_ratioTypestringKravValgfrittVerdier & grenser
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
Standardauto
FeltqualityTypestringKravValgfrittVerdier & grenser
low, medium, auto
Standard—
Kombinasjoner av inngående materialer

Tekst til bilde · Påkrevd: prompt

Metodeparametere og livssyklus
ParameterAvtale
Parametermaterial_typesAvtaletext
ParameterrequiredAvtalemodel, prompt
Parameteroptional_controlsAvtalenull
Parametercontent_typeAvtaleapplication/json

Livssyklus: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · faktisk returnert task_id eller oppføring i mediebiblioteket

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

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Metodestrukturer og ID-er er eksakte; leverandørens evne er adskilt fra godkjenning av forespørselen.

Priser

Satser for Ailoot-metoder

Ailoot BilderPOST /v1/images/generations
Inndata
0,01 USD per inndatabilde
Utdata
0,05 USD per bilde i 1.5K, lav kvalitet
Utdata
0,07 USD per bilde i 1.5K, middels kvalitet
Utdata
0,04 USD per bilde i 1K, lav kvalitet
Utdata
0,06 USD per bilde i 1K, middels kvalitet
Utdata
0,06 USD per bilde i 2K, lav kvalitet
Utdata
0,08 USD per bilde i 2K, middels kvalitet

Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. Slik fungerer reservasjon og oppgjør →

Eksempelforespørsler

Ailoot · Bilder

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");

Motta og lagre resultater

Ailoot · Bilder

Last ned hvert returnerte bilde eller lagre Base64-innholdet

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Behold alle ferdige resultater

Lagre hvert ferdige bilde; hent hver returnerte URL eller dekod Base64-innholdet.

Lagre hvert dataelement. Dekod hver b64_json, eller hent hver returnerte signerte URL. Velg filendelse ut fra faktisk MIME-type/byteinnhold.

Hvis det opprinnelige svaret må kontrolleres

Hvis et resultat fra bildegenerering eller bilderedigering må kontrolleres, bevar opprinnelig operation_id/X-Client-Request-ID og den returnerte resultatinformasjonen. Hent eksisterende resultater du eier via mediebiblioteket, ved hjelp av faktiske task_id- eller asset_id-verdier. Ikke send genererings-/redigeringsforespørselen på nytt, og ikke konstruer en URL for statusavlesning fra operation_id.

Svarfelter
FeltType
FeltcreatedTypeinteger
Feltdata[].urlTypestring
Feltdata[].b64_jsonTypebase64 string
FeltusageTypeobject
Feil og neste trinn
SvarVilkårNeste trinn
Svar400 · invalid_request_errorVilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdiNeste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel.
Svarserver_errorVilkårDet returnerte svaret angir at operasjonen eller resultatet må kontrolleresNeste trinnBevar den opprinnelige returnerte operasjons-/oppgave-ID-en, forespørselshodene og svaret; fortsett å lese den opprinnelige operasjonen på de støttede måtene. Ikke send opprettelsesforespørselen på nytt.

Aliaser

Modellaliaser

Ailoot grok-imagine-image-2.0

Aliaser for metodestier

Bruk metodestiene som vises ovenfor.

Tilknyttede anroper-ID-er

grok-imagine-image-2.0

FAQ · grok-imagine-image-2.0
Hvilke inndata og resultater er tilgjengelige?

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

Hvilke felt bruker forespørselen?

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

Hvilke grenser gjelder?

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

Flere detaljer

Koble Ailoot til Claude Code, OpenCode, Hermes eller egen applikasjon.

Selskapet og dets prosjektportefølje

Selskapet og dets prosjektportefølje: millioner av kunder; månedlig salg for milliarder.

Kjøp tokener med rabatt.

Abonnementsrabatt for jevnlig bruk. Kampanjekoder gir opptil 50% på tokenkjøp.

Abonnement
Velg et rabattabonnement for faste forespørsler.
Kampanjekode opptil 50%
Oppgi kode ved kjøp. Prisen beregnes på nytt etter gjeldende kampanje.
Kostnader i historikken
Modell, tokener og beløp lagres for hver forespørsel.

Velg abonnement · Se modellpriser

Koble API-et til produktet du selger.

SaaS, apper og boter etter Ailoots offentlige tilbud og lisensavtale. Be om forhandlerlisens for videresalg.

Kommersiell applikasjon
Bygg tekst-, bilde-, video- og lydgenerering inn i betalte funksjoner i tjenesten.
Forhandlerlisens
Send prosjektbeskrivelse og tilgangsopplegg. Be om skriftlige vilkår for bruk og videresalg.
Dokumenter på nettstedet
Offentlig tilbud, lisensavtale og retningslinjer for databehandling er tilgjengelige før tilkobling.

Be om forhandlerlisens · Offentlig tilbud og lisensavtale