models

wan2.7-image

Markdown · JSON

wan2.7-image

Дизайн нұсқалары мен иллюстрацияларды дайындау үшін мәтін бойынша сурет жасайтын модель. Alibaba дерегіне сәйкес, бұл нұсқа суреттерді жылдамырақ жасауға бағытталған.

Модель туралы

Бұл сипаттама модель мүмкіндіктерін қамтиды. Ailoot жүйесінде таңдалған әдіс үшін қолжетімді кіріс, шығыс және параметрлер төменде берілген.

Wan2.7-Image мәтіндік тапсырма бойынша суреттер жасайды. Ailoot-тың ағымдағы карточкасында дәл мәтіндік кіріс пен сурет түріндегі нәтиже берілген. Alibaba дерегіне сәйкес, бұл нұсқа нұсқаларды жылдамырақ алуға бағытталған. Өндіруші спецификациясында өңдеу, үлгілерді біріктіру және жергілікті өзгерістер де қарастырылған; олар карточканың ағымдағы әдісінде ұсынылмаған кіріс суреттерін жеке қолдауды қажет етеді.

Alibaba сипаттаған режимдер

Үлгілер режимі үшін Alibaba тапсырмада тоғызға дейін бастапқы сурет қарастырады. Олар нысанның сыртқы көрінісіне, композицияға және бөлшектерге негіз болады. Модель бірнеше материалды жаңа сахнаға біріктіре алады немесе негізгі затты сақтай отырып бастапқы суретті өзгерте алады. Нүктелік өңдеу үшін айқын белгіленген аймақтар қарастырылған: бір суретте екіге дейін тікбұрышты бөлікті көрсетуге болады.

Alibaba спецификациясында кәдімгі режим бірден төртке дейін нәтиже жасайды. Бірізді серия оқиғамен немесе кейіпкерлердің ортақ белгілерімен байланысқан 12 суретке дейін сұрауға мүмкіндік береді. Серия үшін бұл — жоғарғы шек: модель қажетті кадр санын өзі анықтайды және азырақ қайтаруы мүмкін. Тапсырма мен бастапқы материалдар ортақ оқиға желісін сақтауға көмектеседі.

Үлгілерсіз және бірізді сериясыз кәдімгі мәтіндік генерация үшін пайымдау режимі қарастырылған. Бұл режимде модель суретті жасамас бұрын күрделі сипаттаманы егжей-тегжейлі талдайды. Суреттер бойынша өңдеуде және бірізді серияда бұл режим қолданылмайды. 3–10 түстен тұратын берілген палитра бірізді сериялардан тыс қолжетімді.

Кіріс және нәтиже

Бастапқы суреттері бар режимдерде өндіруші JPEG, JPG, мөлдірлігі жоқ PNG, BMP және WEBP форматтарын қолдайды. Әр қабырға 240-тан 8000 пиксельге дейін болуы мүмкін, файл өлшемі — 20 МБ-қа дейін, арақатынасы — 1:8-ден 8:1-ге дейін.

Мәтіндік тапсырма қытай және ағылшын тілдерін қолдайды және 5000 таңбамен шектелген; артық бөлігі алынып тасталады. Бұл нұсқа үшін теріс сипаттама және тапсырманы қосымша кеңейту қарастырылмаған.

Шығыс форматы — PNG, ажыратымдылық — 2K деңгейіне дейін. Бұл белгі тұрақты ең үлкен қабырға ұзындығын емес, пиксельдердің жалпы ауданын білдіреді; пішінді 1:8-ден 8:1-ге дейінгі шекте таңдауға болады. Алдын ала берілген ажыратымдылықпен өңдегенде нәтиже соңғы үлгінің арақатынасын сақтайды. Кездейсоқтықтың бірдей бастапқы мәні ұқсас нұсқалар алуға көмектеседі, бірақ толық сәйкес келуге кепілдік бермейді.

Ailoot · Суреттер POST /v1/images/generations wan2.7-image

wan2.7-image

Alibaba /wan2.7-image

Бастау

Дизайн нұсқалары мен иллюстрацияларды дайындау үшін мәтін бойынша сурет жасайтын модель. Alibaba дерегіне сәйкес, бұл нұсқа суреттерді жылдамырақ жасауға бағытталған.

Қабылданатын кіріс деректері
Мәтін
Нәтижелер
Суреттер

Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

Ailoot · Суреттер POST /v1/images/generations
Кіріс
text
Шығыс
image
Шығыс пішімі
Сурет файлы
ӨрісТүріТалапМәндер мен шектеулерӘдепкі
ӨрісmodelТүріstringТалапМіндеттіМәндер мен шектеулер
wan2.7-image
Әдепкі—
ӨрісpromptТүріstringТалапМіндеттіМәндер мен шектеулер
Ең аз ұзындық: 1
Әдепкі—
ӨрісnТүріintegerТалапМіндетті емесМәндер мен шектеулер
Ең азы: 1
Әдепкі1
Өрісresponse_formatТүріstringТалапМіндетті емесМәндер мен шектеулер
url, b64_json
Әдепкі—
ӨрісstreamТүріbooleanТалапМіндетті емесМәндер мен шектеулерӘдепкіfalse
ӨрісsizeТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісpartial_imagesТүріintegerТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісimages[].image_urlТүріstringТалапҚолдау көрсетілмейдіМәндер мен шектеулер
Декодталған байттардың ең көп саны: 20 971 520
MIME түрлері: image/png, image/jpeg
Массивтегі суреттердің ең көп саны: 9
Шарттар: Әр images[] объектісіне бір нақты URL беріледі. Массив элементтерінің саны бұл жол түріндегі соңғы мәннен бөлек ұғым.
Мына жағдайда қолданылады: Тек JSON images/edits үшін; JSON images/generations сурет үлгілерін талдамайды.
Әдепкі—
ӨрісimageТүріfileТалапМіндетті емесМәндер мен шектеулер
Декодталған байттардың ең көп саны: 20 971 520
MIME түрлері: image/png, image/jpeg
Мына жағдайда қолданылады: multipart/form-data арқылы генерация
Әдепкі—
Өрісimage[]Түріfile[]ТалапМіндетті емесМәндер мен шектеулер
Элементтердің ең көп саны: 9
Декодталған байттардың ең көп саны: 20 971 520
MIME түрлері: image/png, image/jpeg
Мына жағдайда қолданылады: multipart/form-data арқылы генерация
Әдепкі—
Кіріс материалдарының үйлесімдері

Мәтіннен сурет жасау · Міндетті: prompt

reference_images_generation · Міндетті: 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}

Әдіс құрылымдары мен ID мәндері дәл берілген; жеткізушінің мүмкіндігі сұрауды қабылдаудан бөлек қаралады.

Тарифтер

Ailoot әдістерінің мөлшерлемелері

Ailoot СуреттерPOST /v1/images/generations
Шығыс
0,03 $ 1K өлшеміндегі сурет үшін
Шығыс
0,03 $ 2K өлшеміндегі сурет үшін

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. Резервтеу мен төлемді есептеу тәртібі →

Анықтамалық тариф мәліметтері

Модельдің анықтамалық кестелері әдіс таңдауын, баға есебін не төлемді өзгертпейді. Қолданыстағы төлемдер таңдалған Ailoot әдісінің мөлшерлемелерімен есептеледі.

wan2.7-image

Баптаулар бойынша бағалар

БаптауТөлемді есептеу шарттарыТөлем
Баптауwan2.7-image · Әдепкі конфигурацияТөлемді есептеу шарттарыӘдепкі баптауТөлем
Кіріс · Кіріс 0,00 $ әр шақыру үшін
Шығыс · Шығыс 0,06 $ әр шақыру үшін

Сұрау мысалдары

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": "wan2.7-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
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': 'wan2.7-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])
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": "wan2.7-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");

Нәтижелерді алу және сақтау

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 мәндерін қолданып, өзіңізге тиесілі бұрыннан бар нәтижелерді медиатека арқылы қалпына келтіріңіз. Генерациялау/өңдеу сұрауын қайта жібермеңіз және operation_id мәнінен күйді сұратуға арналған URL мекенжайын құрастырмаңыз.

Жауап өрістері
ӨрісТүрі
ӨрісcreatedТүріinteger
Өрісdata[].urlТүріstring
Өрісdata[].b64_jsonТүріbase64 string
ӨрісusageТүріobject
Қателер және келесі қадамдар
ЖауапШартКелесі қадам
Жауап400 · invalid_request_errorШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қатеКелесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз.
Жауапserver_errorШартҚайтарылған жауапта операцияны немесе нәтижені тексеру қажет екені көрсетілгенКелесі қадамБастапқыда қайтарылған операцияның/тапсырманың ID мәнін, сұрау тақырыптарын және жауабын сақтаңыз; сол бастапқы операцияны қолдау көрсетілетін тәсілдермен оқуды жалғастырыңыз. Жасау сұрауын қайта жібермеңіз.

Балама атаулар

Модельдердің балама атаулары

Ailoot wan2.7-image

Әдіс жолдарының балама атаулары

Жоғарыда көрсетілген әдіс жолдарын пайдаланыңыз.

Шақыруға арналған байланысты ID

wan2.7-image

FAQ · wan2.7-image
Қандай кіріс деректері мен нәтижелер қолжетімді?

POST /v1/images/generations · wan2.7-image: text → image

Сұрау қандай өрістерді пайдаланады?

POST /v1/images/generations · wan2.7-image: model, prompt, n, response_format, stream, image, image[]

Қандай шектеулер қолданылады?

POST /v1/images/generations · wan2.7-image: n.minimum: 1

Толығырақ

Ailoot-ты Claude Code, OpenCode, Hermes не қолданбаңызға қосыңыз.

Компания және оның жобалар портфелі

Компания және оның жобалар портфелі: миллиондаған клиент; ай сайынғы сату көлемі миллиардтармен есептеледі.

Токенді жеңілдікпен сатып алыңыз.

Тұрақты жұмысқа жазылым жеңілдігі. Токен сатып алуға промокодтар — 50% дейін.

Жазылым
Тұрақты сұрауыңызға жеңілдікті тариф таңдаңыз.
50% дейінгі промокод
Сатып алғанда код енгізіңіз. Баға қазіргі науқанмен қайта есептеледі.
Тарихтағы шығындар
Әр сұрауға модель, токен және сома сақталады.

Жазылым таңдау · Модель бағасын көру

API-ді сататын өніміңізге қосыңыз.

SaaS, қолданба мен бот Ailoot офертасы және лицензиялық шартына сай. Қайта сатуға реселлер лицензиясын сұраңыз.

Коммерциялық қолданба
Қызметіңіздің ақылы функциясына мәтін, сурет, бейне және дыбыс жасауды қосыңыз.
Реселлер лицензиясы
Жоба сипаттамасы мен кіру схемасын жіберіңіз. Пайдалану мен қайта сатуға жазбаша шарт сұраңыз.
Сайттағы құжаттар
Оферта, лицензиялық шарт және дерек саясаты қоспай тұрып қолжетімді.

Реселлер лицензиясын сұрау · Оферта мен лицензиялық шарт