Source: https://ailoot.ai/models/sl/qwen-image-3-0-pro/
Canonical: https://ailoot.ai/models/sl/qwen-image-3-0-pro/
Language: sl

# qwen-image-3.0-pro

[Markdown](https://ailoot.ai/models/sl/qwen-image-3-0-pro/index.md) · [JSON](https://ailoot.ai/models/sl/qwen-image-3-0-pro/facts.json)

## [qwen-image-3.0-pro](https://ailoot.ai/models/sl/qwen-image-3-0-pro/)

Model za ustvarjanje slik iz besedila s poudarkom na zahtevnih postavitvah, napisih in realističnih podrobnostih. Primeren je za plakate, snemalne knjige, jedilnike in gradivo z gosto kompozicijo.

- [**Ailoot · Slike** `POST /v1/images/generations` `qwen-image-3.0-pro`](https://ailoot.ai/models/sl/qwen-image-3-0-pro/#method-0)
- [**Ailoot · Slike** `POST /v1/images/generations` `qwen-image`](https://ailoot.ai/models/sl/qwen-image-3-0-pro/#method-1)
- [**Ailoot · Slike** `POST /v1/images/generations` `qwen-image-latest`](https://ailoot.ai/models/sl/qwen-image-3-0-pro/#method-2)

O modelu

Ta opis zajema zmožnosti modela. Vhodi, izhodi in možnosti, ki so na voljo v Ailoot, so spodaj navedeni za izbrano metodo.

Qwen-Image-3.0-Pro je model družbe Alibaba za ustvarjanje in urejanje slik, pri katerih so pomembni kompozicija, napisi in drobne podrobnosti. Njegova področja uporabe vključujejo goste postavitve, sliko v sliki, časopisni prelom, snemalne knjige, jedilnike in učne liste. Trenutna kartica Ailoot predstavlja način ustvarjanja slike na podlagi besedilnega navodila. Alibaba predvideva tudi urejanje in delo z referenčnimi slikami; ti operaciji zahtevata ločeno podporo vhodnim slikam in nista predstavljeni v trenutnem načinu dostopa na kartici.

#### Besedilo in podrobnosti v sliki

Proizvajalec izpostavlja dolga navodila do 4,5 tisoč tokenov, napise v 12 jezikih in delo z več pisavami. To je opisana zmožnost obdelave navodila in ne objavljena velikost formalnega kontekstnega okna. Med navedenimi lastnostmi so prikaz drobnih napisov velikosti 10 slikovnih pik, teksture kože in las ter majhnih sprememb obraznega izraza. Takšne podrobnosti so koristne pri pripravi gradiva, ki si ga ogledujemo od blizu.

Qwen-Image-3.0-Pro je namenjen tudi vizualnim konceptom spletnih strani, iger in zaslonov prenosov v živo. Takšen rezultat lahko združi ilustracijo, strukturo zaslona in oblikovane napise. Model ustvari sliko postavitve; delujoča aplikacija zahteva ločeno izvedbo.

#### Urejanje v specifikaciji družbe Alibaba

Alibaba za način urejanja navaja od ene do treh slik. Pri tem načinu proizvajalec omogoča povezavo objekta s številko reference in opis kombinacije gradiva. Predvideni so dodajanje, odstranjevanje in premikanje objektov ter spreminjanje dogajanja, sloga, podrobnosti in besedila. Negativni opis pomaga opredeliti neželene elemente.

Proizvajalec v načinu urejanja sprejema vhodno gradivo v formatih JPG, JPEG, PNG, BMP, TIFF, WEBP in GIF. Pri animiranem GIF se uporabi prvi kader. Velikost posamezne datoteke je do 10 MB; proizvajalec priporoča slike s stranicami od 384 do 3072 slikovnih pik. To so priporočila za vhod in ne mere končnega rezultata.

Specifikacija proizvajalca predvideva od ene do šest izhodnih slik v formatu PNG na zahtevo. Površina rezultata je od 262 144 do 4 194 304 slikovnih pik, kar ustreza kvadratnim slikam od 512 × 512 do 2048 × 2048. Dovoljena so razmerja stranic od 1:8 do 8:1, zato je pri podolgovati kompoziciji dolžina stranice odvisna tudi od izbrane oblike kadra. Predvideno je dodatno preoblikovanje navodila pred ustvarjanjem.

**Ailoot · Slike** `POST /v1/images/generations` `qwen-image-3.0-pro`

[`qwen-image-3.0-pro`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image-3.0-pro&fmt=images)

Alibaba /`qwen-image-3.0-pro`

ID modela

- `qwen-image-3.0-pro`
- `qwen-image`
- `qwen-image-latest`

### Začetek

Model za ustvarjanje slik iz besedila s poudarkom na zahtevnih postavitvah, napisih in realističnih podrobnostih. Primeren je za plakate, snemalne knjige, jedilnike in gradivo z gosto kompozicijo.

Dovoljeni vhodi

Besedilo

Rezultati

Slike

### Na voljo v Ailoot · vhodi in metode

**Ailoot · Slike** `POST /v1/images/generations`

Vhod

`text`

Izhod

`image`

Izhodni format

Slikovna datoteka

| Polje | Vrsta | Zahteva | Vrednosti in omejitve | Privzeto |
| --- | --- | --- | --- | --- |
| Polje`model` | Vrsta`string` | ZahtevaObvezno | Vrednosti in omejitve qwen-image-3.0-pro | Privzeto— |
| Polje`prompt` | Vrsta`string` | ZahtevaObvezno | Vrednosti in omejitve Najmanjša dolžina: 1 | Privzeto— |
| Polje`n` | Vrsta`integer` | ZahtevaIzbirno | Vrednosti in omejitve Najmanj: 1 | Privzeto1 |
| Polje`response_format` | Vrsta`string` | ZahtevaIzbirno | Vrednosti in omejitve url, b64\_json | Privzeto— |
| Polje`stream` | Vrsta`boolean` | ZahtevaIzbirno | Vrednosti in omejitve | Privzetofalse |
| Polje`size` | Vrsta`string` | ZahtevaIzbirno | Vrednosti in omejitve Odvisno od modela | Privzeto— |
| Polje`partial_images` | Vrsta`integer` | ZahtevaIzbirno | Vrednosti in omejitve Odvisno od modela | Privzeto— |
| Polje`images[].image_url` | Vrsta`string` | ZahtevaNi podprto | Vrednosti in omejitve Največ dekodiranih bajtov: 10.485.760 Vrste MIME: image/png, image/jpeg Največ slik na polje: 3 Pogoji: En dejanski URL na objekt images\[\]. Število elementov polja je ločeno od te listne vrednosti niza. Velja, ko: Samo JSON images/edits; JSON images/generations ne razčleni referenc images. | Privzeto— |
| Polje`image` | Vrsta`file` | ZahtevaIzbirno | Vrednosti in omejitve Največ dekodiranih bajtov: 10.485.760 Vrste MIME: image/png, image/jpeg Velja, ko: ustvarjanje prek multipart/form-data | Privzeto— |
| Polje`image[]` | Vrsta`file[]` | ZahtevaIzbirno | Vrednosti in omejitve Največ elementov: 3 Največ dekodiranih bajtov: 10.485.760 Vrste MIME: image/png, image/jpeg Velja, ko: ustvarjanje prek multipart/form-data | Privzeto— |

Kombinacije vhodnih gradiv

**Iz besedila v sliko** · Obvezno: prompt

**reference\_images\_generation** · Obvezno: prompt

Parametri in življenjski cikel metode

| Parameter | Specifikacija |
| --- | --- |
| Parameter`material_types` | Specifikacijatext |
| Parameter`required` | Specifikacijamodel, prompt |
| Parameter`optional_controls` | Specifikacijanull |
| Parameter`content_type` | Specifikacijaapplication/json |

Življenjski cikel: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · Dejansko vrnjeni task\_id ali zapis v medijski knjižnici

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

`GET /v1/media/assets`

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

Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve.

### Cenik

#### Cene metod Ailoot

Vhod

0,003 $ *na vhodno sliko*

Izhod

0,04 $ *na sliko 1K*

Izhod

0,075 $ *na sliko 2K*

Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. [Kako delujeta rezervacija in obračun →](https://ailoot.ai/docs/sl/billing/reserve/)

### Primeri zahtev

#### Ailoot · Slike

curlPython SDKNode.js SDK

```bash
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": "qwen-image-3.0-pro", "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
```

```python
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': 'qwen-image-3.0-pro', '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])
```

```js
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": "qwen-image-3.0-pro", "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");
```

### Prejmi in shrani rezultate

#### Ailoot · Slike

Prenesite vsako vrnjeno sliko ali shranite njeno vsebino Base64

- `GET /v1/media/tasks/{task_id}`
- `GET /v1/media/assets/{asset_id}/content`
- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

##### Ohrani vse dokončane rezultate

Shranite vsako dokončano sliko; pridobite vsebino z vsake vrnjene URL ali dekodirajte njeno vsebino Base64.

Shranite vsak podatkovni element. Dekodirajte vsak b64\_json ali pridobite vsebino z vsakega vrnjenega podpisanega URL. Končnico imena datoteke izberite glede na dejanski tip MIME oziroma bajte.

##### Če je treba preveriti izvirni odgovor

Če je treba preveriti rezultat generiranja ali urejanja slike, shranite izvirni operation\_id/X-Client-Request-ID in vrnjene podatke o rezultatu. Obstoječe rezultate, ki vam pripadajo, pridobite prek medijske knjižnice z dejanskimi vrednostmi task\_id ali asset\_id. Zahteve za generiranje/urejanje ne pošiljajte znova in iz operation\_id ne sestavljajte URL za periodično preverjanje stanja.

Polja odgovora

| Polje | Vrsta |
| --- | --- |
| Polje`created` | Vrstainteger |
| Polje`data[].url` | Vrstastring |
| Polje`data[].b64_json` | Vrstabase64 string |
| Polje`usage` | Vrstaobject |

Napake in naslednji koraki

| Odgovor | Pogoj | Naslednji korak |
| --- | --- | --- |
| Odgovor400 · `invalid_request_error` | PogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametra | Naslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja. |
| Odgovor`server_error` | PogojVrnjeni odgovor navaja, da je treba operacijo ali rezultat preveriti | Naslednji korakShranite izvirni vrnjeni ID operacije/opravila, glave zahteve in odgovor; nadaljujte s podprtimi branji te izvirne operacije. Zahteve za ustvarjanje ne pošiljajte znova. |

### Druga imena

#### Druga imena modelov

**Ailoot** [`qwen-image-3.0-pro`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image-3.0-pro&fmt=images), [`qwen-image`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image&fmt=images), [`qwen-image-latest`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image-latest&fmt=images)

#### Druga imena poti metod

Uporabite zgoraj navedene poti metod.

#### Povezani ID-ji za klic

[`qwen-image-3.0-pro`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image-3.0-pro&fmt=images), [`qwen-image`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image&fmt=images), [`qwen-image-latest`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image-latest&fmt=images)

**Ailoot · Slike** `POST /v1/images/generations` `qwen-image`

[`qwen-image`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image&fmt=images)

Alibaba /`qwen-image`

ID modela

- `qwen-image-3.0-pro`
- `qwen-image`
- `qwen-image-latest`

### Začetek

Model za ustvarjanje slik iz besedila s poudarkom na zahtevnih postavitvah, napisih in realističnih podrobnostih. Primeren je za plakate, snemalne knjige, jedilnike in gradivo z gosto kompozicijo.

Dovoljeni vhodi

Besedilo

Rezultati

Slike

### Na voljo v Ailoot · vhodi in metode

**Ailoot · Slike** `POST /v1/images/generations`

Vhod

`text`

Izhod

`image`

Izhodni format

Slikovna datoteka

| Polje | Vrsta | Zahteva | Vrednosti in omejitve | Privzeto |
| --- | --- | --- | --- | --- |
| Polje`model` | Vrsta`string` | ZahtevaObvezno | Vrednosti in omejitve qwen-image | Privzeto— |
| Polje`prompt` | Vrsta`string` | ZahtevaObvezno | Vrednosti in omejitve Najmanjša dolžina: 1 | Privzeto— |
| Polje`n` | Vrsta`integer` | ZahtevaIzbirno | Vrednosti in omejitve Najmanj: 1 | Privzeto1 |
| Polje`response_format` | Vrsta`string` | ZahtevaIzbirno | Vrednosti in omejitve url, b64\_json | Privzeto— |
| Polje`stream` | Vrsta`boolean` | ZahtevaIzbirno | Vrednosti in omejitve | Privzetofalse |
| Polje`size` | Vrsta`string` | ZahtevaIzbirno | Vrednosti in omejitve Odvisno od modela | Privzeto— |
| Polje`partial_images` | Vrsta`integer` | ZahtevaIzbirno | Vrednosti in omejitve Odvisno od modela | Privzeto— |
| Polje`images[].image_url` | Vrsta`string` | ZahtevaNi podprto | Vrednosti in omejitve Največ dekodiranih bajtov: 10.485.760 Vrste MIME: image/png, image/jpeg Največ slik na polje: 3 Pogoji: En dejanski URL na objekt images\[\]. Število elementov polja je ločeno od te listne vrednosti niza. Velja, ko: Samo JSON images/edits; JSON images/generations ne razčleni referenc images. | Privzeto— |
| Polje`image` | Vrsta`file` | ZahtevaIzbirno | Vrednosti in omejitve Največ dekodiranih bajtov: 10.485.760 Vrste MIME: image/png, image/jpeg Velja, ko: ustvarjanje prek multipart/form-data | Privzeto— |
| Polje`image[]` | Vrsta`file[]` | ZahtevaIzbirno | Vrednosti in omejitve Največ elementov: 3 Največ dekodiranih bajtov: 10.485.760 Vrste MIME: image/png, image/jpeg Velja, ko: ustvarjanje prek multipart/form-data | Privzeto— |

Kombinacije vhodnih gradiv

**Iz besedila v sliko** · Obvezno: prompt

**reference\_images\_generation** · Obvezno: prompt

Parametri in življenjski cikel metode

| Parameter | Specifikacija |
| --- | --- |
| Parameter`material_types` | Specifikacijatext |
| Parameter`required` | Specifikacijamodel, prompt |
| Parameter`optional_controls` | Specifikacijanull |
| Parameter`content_type` | Specifikacijaapplication/json |

Življenjski cikel: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · Dejansko vrnjeni task\_id ali zapis v medijski knjižnici

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

`GET /v1/media/assets`

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

Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve.

### Cenik

#### Cene metod Ailoot

Vhod

0,003 $ *na vhodno sliko*

Izhod

0,04 $ *na sliko 1K*

Izhod

0,075 $ *na sliko 2K*

Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. [Kako delujeta rezervacija in obračun →](https://ailoot.ai/docs/sl/billing/reserve/)

### Primeri zahtev

#### Ailoot · Slike

curlPython SDKNode.js SDK

```bash
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": "qwen-image", "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
```

```python
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': 'qwen-image', '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])
```

```js
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": "qwen-image", "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");
```

### Prejmi in shrani rezultate

#### Ailoot · Slike

Prenesite vsako vrnjeno sliko ali shranite njeno vsebino Base64

- `GET /v1/media/tasks/{task_id}`
- `GET /v1/media/assets/{asset_id}/content`
- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

##### Ohrani vse dokončane rezultate

Shranite vsako dokončano sliko; pridobite vsebino z vsake vrnjene URL ali dekodirajte njeno vsebino Base64.

Shranite vsak podatkovni element. Dekodirajte vsak b64\_json ali pridobite vsebino z vsakega vrnjenega podpisanega URL. Končnico imena datoteke izberite glede na dejanski tip MIME oziroma bajte.

##### Če je treba preveriti izvirni odgovor

Če je treba preveriti rezultat generiranja ali urejanja slike, shranite izvirni operation\_id/X-Client-Request-ID in vrnjene podatke o rezultatu. Obstoječe rezultate, ki vam pripadajo, pridobite prek medijske knjižnice z dejanskimi vrednostmi task\_id ali asset\_id. Zahteve za generiranje/urejanje ne pošiljajte znova in iz operation\_id ne sestavljajte URL za periodično preverjanje stanja.

Polja odgovora

| Polje | Vrsta |
| --- | --- |
| Polje`created` | Vrstainteger |
| Polje`data[].url` | Vrstastring |
| Polje`data[].b64_json` | Vrstabase64 string |
| Polje`usage` | Vrstaobject |

Napake in naslednji koraki

| Odgovor | Pogoj | Naslednji korak |
| --- | --- | --- |
| Odgovor400 · `invalid_request_error` | PogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametra | Naslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja. |
| Odgovor`server_error` | PogojVrnjeni odgovor navaja, da je treba operacijo ali rezultat preveriti | Naslednji korakShranite izvirni vrnjeni ID operacije/opravila, glave zahteve in odgovor; nadaljujte s podprtimi branji te izvirne operacije. Zahteve za ustvarjanje ne pošiljajte znova. |

### Druga imena

#### Druga imena modelov

**Ailoot** [`qwen-image-3.0-pro`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image-3.0-pro&fmt=images), [`qwen-image`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image&fmt=images), [`qwen-image-latest`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image-latest&fmt=images)

#### Druga imena poti metod

Uporabite zgoraj navedene poti metod.

#### Povezani ID-ji za klic

[`qwen-image-3.0-pro`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image-3.0-pro&fmt=images), [`qwen-image`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image&fmt=images), [`qwen-image-latest`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image-latest&fmt=images)

**Ailoot · Slike** `POST /v1/images/generations` `qwen-image-latest`

[`qwen-image-latest`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image-latest&fmt=images)

Alibaba /`qwen-image-latest`

ID modela

- `qwen-image-3.0-pro`
- `qwen-image`
- `qwen-image-latest`

### Začetek

Model za ustvarjanje slik iz besedila s poudarkom na zahtevnih postavitvah, napisih in realističnih podrobnostih. Primeren je za plakate, snemalne knjige, jedilnike in gradivo z gosto kompozicijo.

Dovoljeni vhodi

Besedilo

Rezultati

Slike

### Na voljo v Ailoot · vhodi in metode

**Ailoot · Slike** `POST /v1/images/generations`

Vhod

`text`

Izhod

`image`

Izhodni format

Slikovna datoteka

| Polje | Vrsta | Zahteva | Vrednosti in omejitve | Privzeto |
| --- | --- | --- | --- | --- |
| Polje`model` | Vrsta`string` | ZahtevaObvezno | Vrednosti in omejitve qwen-image-latest | Privzeto— |
| Polje`prompt` | Vrsta`string` | ZahtevaObvezno | Vrednosti in omejitve Najmanjša dolžina: 1 | Privzeto— |
| Polje`n` | Vrsta`integer` | ZahtevaIzbirno | Vrednosti in omejitve Najmanj: 1 | Privzeto1 |
| Polje`response_format` | Vrsta`string` | ZahtevaIzbirno | Vrednosti in omejitve url, b64\_json | Privzeto— |
| Polje`stream` | Vrsta`boolean` | ZahtevaIzbirno | Vrednosti in omejitve | Privzetofalse |
| Polje`size` | Vrsta`string` | ZahtevaIzbirno | Vrednosti in omejitve Odvisno od modela | Privzeto— |
| Polje`partial_images` | Vrsta`integer` | ZahtevaIzbirno | Vrednosti in omejitve Odvisno od modela | Privzeto— |
| Polje`images[].image_url` | Vrsta`string` | ZahtevaNi podprto | Vrednosti in omejitve Največ dekodiranih bajtov: 10.485.760 Vrste MIME: image/png, image/jpeg Največ slik na polje: 3 Pogoji: En dejanski URL na objekt images\[\]. Število elementov polja je ločeno od te listne vrednosti niza. Velja, ko: Samo JSON images/edits; JSON images/generations ne razčleni referenc images. | Privzeto— |
| Polje`image` | Vrsta`file` | ZahtevaIzbirno | Vrednosti in omejitve Največ dekodiranih bajtov: 10.485.760 Vrste MIME: image/png, image/jpeg Velja, ko: ustvarjanje prek multipart/form-data | Privzeto— |
| Polje`image[]` | Vrsta`file[]` | ZahtevaIzbirno | Vrednosti in omejitve Največ elementov: 3 Največ dekodiranih bajtov: 10.485.760 Vrste MIME: image/png, image/jpeg Velja, ko: ustvarjanje prek multipart/form-data | Privzeto— |

Kombinacije vhodnih gradiv

**Iz besedila v sliko** · Obvezno: prompt

**reference\_images\_generation** · Obvezno: prompt

Parametri in življenjski cikel metode

| Parameter | Specifikacija |
| --- | --- |
| Parameter`material_types` | Specifikacijatext |
| Parameter`required` | Specifikacijamodel, prompt |
| Parameter`optional_controls` | Specifikacijanull |
| Parameter`content_type` | Specifikacijaapplication/json |

Življenjski cikel: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · Dejansko vrnjeni task\_id ali zapis v medijski knjižnici

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

`GET /v1/media/assets`

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

Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve.

### Cenik

#### Cene metod Ailoot

Vhod

0,003 $ *na vhodno sliko*

Izhod

0,04 $ *na sliko 1K*

Izhod

0,075 $ *na sliko 2K*

Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. [Kako delujeta rezervacija in obračun →](https://ailoot.ai/docs/sl/billing/reserve/)

### Primeri zahtev

#### Ailoot · Slike

curlPython SDKNode.js SDK

```bash
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": "qwen-image-latest", "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
```

```python
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': 'qwen-image-latest', '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])
```

```js
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": "qwen-image-latest", "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");
```

### Prejmi in shrani rezultate

#### Ailoot · Slike

Prenesite vsako vrnjeno sliko ali shranite njeno vsebino Base64

- `GET /v1/media/tasks/{task_id}`
- `GET /v1/media/assets/{asset_id}/content`
- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

##### Ohrani vse dokončane rezultate

Shranite vsako dokončano sliko; pridobite vsebino z vsake vrnjene URL ali dekodirajte njeno vsebino Base64.

Shranite vsak podatkovni element. Dekodirajte vsak b64\_json ali pridobite vsebino z vsakega vrnjenega podpisanega URL. Končnico imena datoteke izberite glede na dejanski tip MIME oziroma bajte.

##### Če je treba preveriti izvirni odgovor

Če je treba preveriti rezultat generiranja ali urejanja slike, shranite izvirni operation\_id/X-Client-Request-ID in vrnjene podatke o rezultatu. Obstoječe rezultate, ki vam pripadajo, pridobite prek medijske knjižnice z dejanskimi vrednostmi task\_id ali asset\_id. Zahteve za generiranje/urejanje ne pošiljajte znova in iz operation\_id ne sestavljajte URL za periodično preverjanje stanja.

Polja odgovora

| Polje | Vrsta |
| --- | --- |
| Polje`created` | Vrstainteger |
| Polje`data[].url` | Vrstastring |
| Polje`data[].b64_json` | Vrstabase64 string |
| Polje`usage` | Vrstaobject |

Napake in naslednji koraki

| Odgovor | Pogoj | Naslednji korak |
| --- | --- | --- |
| Odgovor400 · `invalid_request_error` | PogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametra | Naslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja. |
| Odgovor`server_error` | PogojVrnjeni odgovor navaja, da je treba operacijo ali rezultat preveriti | Naslednji korakShranite izvirni vrnjeni ID operacije/opravila, glave zahteve in odgovor; nadaljujte s podprtimi branji te izvirne operacije. Zahteve za ustvarjanje ne pošiljajte znova. |

### Druga imena

#### Druga imena modelov

**Ailoot** [`qwen-image-3.0-pro`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image-3.0-pro&fmt=images), [`qwen-image`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image&fmt=images), [`qwen-image-latest`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image-latest&fmt=images)

#### Druga imena poti metod

Uporabite zgoraj navedene poti metod.

#### Povezani ID-ji za klic

[`qwen-image-3.0-pro`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image-3.0-pro&fmt=images), [`qwen-image`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image&fmt=images), [`qwen-image-latest`](https://ailoot.ai/models/sl/#m=qwen-image-3.0-pro&route=Core&caller=qwen-image-latest&fmt=images)

FAQ · qwen-image-3.0-pro

Kateri vhodi in rezultati so na voljo?

`POST /v1/images/generations` · `qwen-image-3.0-pro`: `text` → `image` `POST /v1/images/generations` · `qwen-image`: `text` → `image` `POST /v1/images/generations` · `qwen-image-latest`: `text` → `image`

Katera polja uporablja zahteva?

`POST /v1/images/generations` · `qwen-image-3.0-pro`: `model`, `prompt`, `n`, `response_format`, `stream`, `image`, `image[]` `POST /v1/images/generations` · `qwen-image`: `model`, `prompt`, `n`, `response_format`, `stream`, `image`, `image[]` `POST /v1/images/generations` · `qwen-image-latest`: `model`, `prompt`, `n`, `response_format`, `stream`, `image`, `image[]`

Katere omejitve veljajo?

`POST /v1/images/generations` · `qwen-image-3.0-pro`: `n.minimum`: `1` `POST /v1/images/generations` · `qwen-image`: `n.minimum`: `1` `POST /v1/images/generations` · `qwen-image-latest`: `n.minimum`: `1`

Ailoot povežite s Claude Code, OpenCode, Hermes ali svojo aplikacijo.

## Podjetje in njegov portfelj projektov

Podjetje in njegov portfelj projektov: milijoni strank; mesečna prodaja v milijardah.

## Žetone kupujte s popustom.

Naročniški popust za redno delo. Promocijske kode prinesejo do 50% popusta na nakup žetonov.

Naročnina

Za redne zahteve izberite paket s popustom.

Promocijska koda do 50%

Kodo vnesite ob nakupu. Cena se preračuna po veljavni akciji.

Poraba v zgodovini

Za vsako zahtevo se shranijo model, žetoni in znesek.

[Izberite naročnino](https://ailoot.ai/docs/sl/billing/subscriptions/) · [Oglejte si cene modelov](https://ailoot.ai/models/sl/)

## API povežite z izdelkom, ki ga prodajate.

SaaS, aplikacije in boti po ponudbi in licenčni pogodbi Ailoot. Za nadaljnjo prodajo zaprosite za preprodajno licenco.

Komercialna aplikacija

Ustvarjanje besedila, slik, videa in zvoka vključite v plačljive funkcije svoje storitve.

Licenca za preprodajalca

Pošljite opis projekta in shemo dostopa. Zahtevajte pisne pogoje uporabe in nadaljnje prodaje.

Dokumenti na strani

Ponudba, licenčna pogodba in politika obdelave podatkov so dostopne pred povezavo.

[Zaprosite za preprodajno licenco](mailto:support@ailoot.ai) · [Ponudba in licenčna pogodba](https://ailoot.ai/legal/offer?lang=sl)

## Ailoot · Podjetje in njegov portfelj projektov





Ailoot temelji na pridobljenih operativnih izkušnjah, široki bazi strank, stabilni storitvi in stalnem spremljanju KPI.





Podjetje in njegov portfelj projektov: milijoni strank; mesečna prodaja v milijardah.





Ailoot te operativne izkušnje uporablja za dostop prek API do funkcij umetne inteligence v izdelkih strank, agentih, aplikacijah in avtomatizacijah.
