Qwen: Qwen Image 3
Qwen-Image-3.0 łączy generowanie i edycję obrazów na potrzeby układów bogatych w informacje, szczegółowych scen i wielojęzycznej typografii. Edycja standardowa równoważy jakość i szybkość, przyjmując opis tekstowy lub do trzech obrazów z instrukcją edycji.
O modelu
Ten opis przedstawia możliwości modelu. Dane wejściowe, wyniki i opcje dostępne w Ailoot podano poniżej dla wybranej metody.
Qwen-Image-3.0 to model obrazu trzeciej generacji Qwen, łączący tworzenie obrazów z tekstu i edycję opartą na referencjach w jednym modelu. Edycja standardowa równoważy jakość obrazu i szybkość odpowiedzi, natomiast Qwen-Image-3.0 Pro to flagowa edycja tej samej rodziny ukierunkowana na jakość. Żądanie tworzy obraz: plakat, ilustrowane objaśnienie, scenę produktową, storyboard lub poprawioną fotografię, a nie edytowalny dokument czy działający interfejs.
Możliwości tworzenia bogatych treści sprawdzają się na płótnie z kilkoma powiązanymi sekcjami lub zagnieżdżonym układem wizualnym. Przygotuj nagłówki, dokładne brzmienie tekstu, hierarchię i relacje między panelami, zanim dodasz szczegóły stylistyczne. Przy porównaniu produktów przydatny opis określa główny widok produktu, cechy do oznaczenia oraz kolejność czytania paneli uzupełniających. W storyboardzie opisz osobno temat, akcję i podpis każdego panelu. Zalecana maksymalna długość promptu wynosi 4 500 tokenów; przeznacz tę przestrzeń na treść i układ, których obraz rzeczywiście potrzebuje.
Model obsługuje szczegółowe tekstury, typografię aż po drobny tekst zademonstrowany przy wielkości 10 pikseli oraz natywne renderowanie w 12 językach z wieloma krojami pisma i stylami artystycznymi. Te możliwości pozwalają połączyć realistyczny obiekt z grafiką bogatą w informacje, zamiast wymuszać wybór między fotografią a układem zawierającym dużo tekstu. Podaj dokładne słowa i cyfry do przedstawienia, ich docelowy język oraz miejsce, w którym mają się znaleźć. Traktuj wygenerowany interfejs jako makietę wizualną: przyciski, wykresy i etykiety na obrazie nie implementują zachowania aplikacji.
Edycja może zmieniać tekst, dodawać lub usuwać obiekty, przemieszczać elementy, modyfikować wykonywaną czynność, przenosić styl lub poprawiać szczegóły uszkodzonego obrazu. Dostarcz od jednego do trzech obrazów oraz jedną jasną instrukcję edycji. Numeracja obrazów odpowiada kolejności ich podania, więc wskaż, który dostarcza główny motyw, który ubranie lub obiekt, a który otoczenie. Przy scenie produktowej poproś o umieszczenie obiektu z obrazu 1 w otoczeniu z obrazu 2 przy zachowaniu cech wyróżniających produkt. Jasno określ zmiany i wymagania dotyczące zachowania elementów.
Opisany sposób wprowadzania obrazów akceptuje JPG, JPEG, PNG, BMP, TIFF, WebP i GIF; w animowanym GIF-ie przetwarzana jest tylko pierwsza klatka. Każdy obraz może mieć do 10 MB. Obecne API przyjmuje wymiary od 1 do 8 000 pikseli przy stosunku dłuższego boku do krótszego nie większym niż 10:1 i zaleca 384–2 048 pikseli dla dobrych wyników. Wybierz obraz wejściowy, na którym wyraźnie widać przenoszone lub edytowane szczegóły. Ciasno wykadrowana referencja może zasłonić otaczającą strukturę potrzebną do naturalnego umieszczenia obiektu.
Wynik ma format PNG, z liczbą od jednego do sześciu obrazów na żądanie i jednym obrazem domyślnie. Powierzchnia obrazu wyjściowego w pikselach mieści się między 512 × 512 a 2 048 × 2 048, przy proporcjach od 1:8 do 8:1; są to limity powierzchni, a nie zasada, że każdy bok może mieć najwyżej 2 048 pikseli. Jeśli nie podasz rozmiaru, model rekomenduje rozdzielczość na podstawie promptu. Wybierz kompozycję poziomą, kwadratową lub pionową odpowiednią do celu, a następnie obejrzyj zwrócony obraz w jego rzeczywistym rozmiarze, aby ocenić małe etykiety i drobne szczegóły tam, gdzie będą widoczne.
Przepisywanie promptu jest domyślnie włączone w procesie producenta. Bezpośrednie ulepszanie działa zarówno przy generowaniu, jak i edycji; ulepszanie przez agenta to bardziej rozbudowany tryb przepisywania wyłącznie do tworzenia obrazów z tekstu, odrzucany przy edycji obrazu na podstawie obrazu. Thinking jest domyślnie włączone, wymaga przepisywania promptu i wydłuża czas generowania. Prompty negatywne mogą opisywać niepożądane elementy, a stały seed pomaga porównywać warianty. Jasno określ wykluczenia i dokładne wymagania dotyczące zachowania elementów, zamiast oczekiwać, że seed zapewni identyczny obraz przy zmieniającym się opisie.
Aby uzyskać użyteczny efekt końcowy, sprawdź wyrenderowane słowa, jednostki, kolejność paneli i szczegóły identyfikujące motyw, a następnie popraw konkretną część, która nie spełniła opisu. Odpowiedź z wieloma obrazami daje warianty do porównania; zachowaj powiązanie każdego zwróconego obrazu z promptem i referencjami, z których powstał. Adresy obrazów producenta wygasają po 24 godzinach, więc zachowaj właściwy plik obrazu, gdy wynik staje się częścią projektu. Standardowa edycja 3.0 pozostaje odrębna od Pro i modeli Qwen 2.1, które mają inne liczby referencji i funkcje przezroczystości.
Ailoot Ultra · Obrazy POST /v1/images/generations qwen/qwen-image-3
qwen/qwen-image-3Start
Qwen-Image-3.0 łączy generowanie i edycję obrazów na potrzeby układów bogatych w informacje, szczegółowych scen i wielojęzycznej typografii. Edycja standardowa równoważy jakość i szybkość, przyjmując opis tekstowy lub do trzech obrazów z instrukcją edycji.
- Akceptowane dane wejściowe
- Tekst · Obrazy
- Wyniki
- Obrazy
Dostępne w Ailoot · dane wejściowe i metody
Ailoot Ultra · Obrazy POST /v1/images/generations
- Wejście
text,image- Wyjście
image
| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
|---|---|---|---|---|
Polemodel | Typstring | WymaganieWymagane | Wartości i limity qwen/qwen-image-3 | Domyślnie— |
Poleprompt | Typstring | WymaganieWymagane | Wartości i limity Minimalna długość: 1 | Domyślnie— |
Poleresolution | Typstring | WymaganieOpcjonalne | Wartości i limity 1K, 2K | Domyślnie— |
Poleaspect_ratio | Typstring | WymaganieOpcjonalne | Wartości i limity 1:1, 1:2, 1:4, 2:1, 2:3, 3:2, 3:4, 4:1, 4:3, 4:5, 5:4, 9:16, 16:9 | Domyślnie— |
Polen | Typinteger | WymaganieOpcjonalne | Wartości i limity Minimum: 1 Maksimum: 6 | Domyślnie— |
Poleinput_references | Typarray | WymaganieOpcjonalne | Wartości i limity Minimalna liczba elementów: 0 Maksymalna liczba elementów: 4 | Domyślnie— |
Poleprovider | Typobject | WymaganieOpcjonalne | Wartości i limity | Domyślnie— |
Parametry i cykl życia metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, prompt |
Parametrmaterial_types | Kontrakttext, image |
Cykl życia: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · Rzeczywiście zwrócony task_id lub wpis w bibliotece multimediów
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Cennik
Jak obliczana jest ostateczna opłata
Wyświetlane stawki służą do oszacowania kosztu przed generowaniem. Ostateczna opłata jest obliczana na podstawie kosztu zarejestrowanego dla pierwotnego generowania. Zmierzony czas trwania wyniku i prognozowane ilości nie stanowią ostatecznej ilości podlegającej rozliczeniu.
Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.
- Tryb szybki
- Nie określono Gdy wybrany jest tryb szybki
- Tryb flex
- Nie określono Gdy wybrany jest tryb flex
- Maksymalna intensywność rozumowania
- Nie określono Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)
Szacunkowe stawki do porównania
Ceny według konfiguracji
Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.
| Konfiguracja | Tabela stawek | Przewidywana ilość | Jednostka rozliczeniowa | Opłata |
|---|---|---|---|---|
| KonfiguracjaBazowe stawki za tokeny | Tabela stawekStawka podstawowa | Przewidywana ilość— | Jednostka rozliczeniowa— | Opłata Wejście · Tokeny wejściowe · Szacunek tylko do porównania — / 1K tokenów Wyjście · Tokeny wyjściowe · Szacunek tylko do porównania — / 1K tokenów Wejście · Odczyt cache · Szacunek tylko do porównania — / 1K tokenów Wejście · Zapis do cache · Szacunek tylko do porównania — / 1K tokenów Wejście · Zapis do cache, 1 godz. · Szacunek tylko do porównania — / 1K tokenów |
| Konfiguracjaobraz wejściowy | Tabela stawek— | Przewidywana ilość— | Jednostka rozliczeniowaza obraz wejściowy | Opłata Wejście · obraz wejściowy · Szacunek tylko do porównania $0.006 za obraz wejściowy |
| KonfiguracjaSzacowany koszt generowania | Tabela stawek— | Przewidywana ilośćszacunek dla jednego generowania | Jednostka rozliczeniowa— | Opłata Wyjście · Szacowany koszt generowania · Szacunek tylko do porównania $0.06 szacunek przed generowaniem Ten szacunek nie jest dodatkową opłatą ani stałą stawką za ukończone generowanie. |
Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →
Przykładowe żądania
Ailoot Ultra · Obrazy
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={'model': 'qwen/qwen-image-3', 'prompt': 'a red panda astronaut floating in space, studio lighting'}
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
Odbieranie i zapisywanie wyników
Ailoot Ultra · Obrazy
Pobierz każdy zwrócony obraz lub zapisz jego zawartość Base64
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Inne odczyty treści
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.
Zachowaj wszystkie ukończone wyniki
Zapisz każdy ukończony obraz; pobierz każdy zwrócony URL lub zdekoduj zawartość Base64.
Zachowaj pełną odpowiedź i nagłówki, wszystkie rzeczywiście uzyskane wyniki, pierwotnie zwrócone identyfikatory oraz wszystkie pola zużycia. Odzyskaj pierwotną operację bez ponownego wysyłania żądania utworzenia.
Jeśli trzeba sprawdzić pierwotną odpowiedź
Zachowaj zwrócony X-Client-Request-ID do uzgodnienia danych. Odczytuj wyłącznie rzeczywiście zwrócone wartości task_id/asset_id lub własną bibliotekę multimediów; nigdy nie buduj adresu URL zadania na podstawie identyfikatora operacji i nigdy nie wysyłaj ponownie żądania utworzenia.
Pola odpowiedzi
| Pole | Typ |
|---|---|
Polecreated | Typ |
Poledata[].url | Typ |
Poledata[].b64_json | Typ |
Poleusage | Typ |
Aliasy
Aliasy modelu
Ailoot Ultra qwen/qwen-image-3
Aliasy ścieżek metod
/v1/images
Powiązane ID modeli
FAQ · Qwen: Qwen Image 3
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/images/generations·qwen/qwen-image-3:text,image→image- Jakich pól używa żądanie?
POST /v1/images/generations·qwen/qwen-image-3:model,prompt,resolution,aspect_ratio,n,input_references,provider- Jakie limity obowiązują?
POST /v1/images/generations·qwen/qwen-image-3:n.minimum:1;n.maximum:6