Recraft: Recraft V4 Pro
Recraft V4 Pro batafsil kompozitsiyalar, fotorealizm, illyustratsiya va bosmaga yo‘naltirilgan ijodiy ishlar uchun 2K rastr tasvirlar yaratadi. U matn topshiriqlari, ixtiyoriy uslub kirishlari va alohida tasvirdan tasvir jarayoniga ega yuqoriroq aniqlikdagi V4 nashridir.
Model haqida
Bu tavsif model imkoniyatlarini yoritadi. Ailoot da tanlangan usul uchun mavjud kirish, chiqish va parametrlar quyida keltirilgan.
Recraft V4 Pro — Recraft V4 oilasidagi yuqoriroq aniqlikdagi rastr model. V4 vizual tanlov, muvozanatli kompozitsiya, uyg‘un rang va ijodiy yo‘nalishni diqqat bilan talqin qilishga qaratilgan. Ishlab chiqaruvchi Pro ni nozikroq detallar, realistikroq murakkab sahnalar va yirik ishlab chiqarish vizuallari uchun taklif qiladi. Uni batafsil illyustratsiya, tahririy tasvir, plakat g‘oyasi yoki kattaroq rastr natijadan foyda oladigan boshqa material uchun ishlating. U keyingi V4.1 modeli va V4 Pro Vector ning SVG natijasidan alohida qoladi.
Aniq ishlab chiqaruvchi kodi recraftv4_pro. Hujjatlashtirilgan natija yo‘qotishsiz WebP yoki PNG shaklida 2K rastr: kvadrat uchun 2048 × 2048 piksel, 16:9 uchun 2688 × 1536, 2:3 uchun 1664 × 2560. Boshqa qo‘llanadigan nisbatlar o‘z o‘lchamlariga ega. Kerakli maket nisbatini yoki aniq ruxsat etilgan o‘lchamni tanlang; ixtiyoriy piksel o‘lchami hujjatlashtirilgan yaratish shartlariga kirmaydi. Standart V4 kichikroq 1K rastr natijaga ega, vektor modellarida esa o‘zgarmas piksel aniqligi yo‘q.
V4 izlanish uchun qisqa yoki boshqarilgan natija uchun tuzilmali topshiriqni talqin qilishi mumkin. Aniq badiiy yo‘nalishda ishlab chiqaruvchi qo‘llanmasi obyekt va muhitdan kadr kompozitsiyasi, xususiyatlar, fazoviy munosabatlar, yoritish, chuqurlik va kayfiyatga o‘tadi. Tahririy mahsulot tasviri uchun haykaltaroshona stulning dramatik vertikal fotosurati, jilvirlangan metall sirtlar, yon yoritish, sokin qoramtir fon va obyekt ustida sarlavhaga joy so‘rang. Bu munosabatlarni nomlash umumiy premium tasvir iltimosidan ko‘ra kerakli kompozitsiyani ravshanroq qiladi.
Oilaning ijodiy doirasi hikoyaviy illyustratsiya, fotorealistik sahnalar hamda material va yoritish ko‘rsatmalariga ega hajmli vizuallarni qamrab oladi. 3D ko‘rinishdagi natija tahrirlanadigan 3D sahna emas, tasvir bo‘lib qoladi. Grafik plakat uchun vizual qatlamlar va ularning o‘zaro ta’sirini belgilang: fon, illyustratsiya yoki fotosurat, sarlavha iyerarxiyasi va yordamchi matn. V4 o‘qiladigan qisqa va o‘rtacha uzunlikdagi iboralar uchun taklif qilinadi, biroq tayyor imlo va iyerarxiyani model nomidan xulosa qilmasdan tekshirish kerak.
Hozirgi yaratish ma’lumotnomasi 10,000 belgigacha topshiriq, birdan oltitagacha natija, tasodifiy seed hamda afzal ranglar va fon rangi boshqaruvlariga ruxsat beradi. Ixtiyoriy maxsus uslublar yoki mos namuna tasvirlari flexible yoki precise matching bilan ko‘rinishni yo‘naltirishi mumkin. Model eski V3 boshqaruvlari — negative_prompt, tayyor tanlangan uslublar, text_layout, artistic_level yoki no_text ni qabul qilmaydi. Kerakli yakuniy tasvirni ijobiy topshiriqda tasvirlang va obyekt, maket hamda rang talablarini aniq saqlang. Namuna uslubida yaratish uchun birdan o‘ntagacha PNG, JPG yoki WebP, jami ko‘pi bilan 64 MB va har biri 20 MB dan kichik tasvir ishlating. Har bir namunaning eng qisqa tomoni kamida 256 piksel, eng uzuni ko‘pi bilan 4,096 piksel, aniqligi esa ko‘pi bilan 16 megapiksel bo‘lishi kerak. Shu namunalar yoki mos saqlangan uslubdan birini ishlating, ikkalasini birga emas.
Recraft V4 uchun alohida tasvirdan tasvir amalini hujjatlashtiradi. U o‘zgarish darajasini boshqarish uchun mavjud tasvir va topshiriqni 0 dan 1 gacha strength bilan birlashtiradi va shu amalda V4 maxsus uslub boshqaruvlarini qabul qilmaydi. Manbani ishlab chiqaruvchi tasvir kirishi chegaralarida tayyorlang va yangi natijaga o‘tishi kerak bo‘lgan xususiyatlarni ayting. Kattaroq yakuniy materialda mayda detallar, kesim va yozuvni kerakli o‘lchamda tekshiring. Pro ning qo‘shimcha rastr tafsiloti bu tekshiruvni qo‘llaydi, tasvir esa berilgan ijodiy topshiriqning yaratilgan talqini bo‘lib qoladi. Tasvirdan tasvir uchun 20 MB dan kichik, ko‘pi bilan 16 megapikselli, ikkala tomoni 256–4,096 piksel oralig‘idagi PNG, JPG, WebP yoki SVG bering.
Ailoot Ultra · Rasmlar POST /v1/images/generations recraft/recraft-v4-pro
recraft/recraft-v4-proBoshlash
Recraft V4 Pro batafsil kompozitsiyalar, fotorealizm, illyustratsiya va bosmaga yo‘naltirilgan ijodiy ishlar uchun 2K rastr tasvirlar yaratadi. U matn topshiriqlari, ixtiyoriy uslub kirishlari va alohida tasvirdan tasvir jarayoniga ega yuqoriroq aniqlikdagi V4 nashridir.
- Qabul qilinadigan kirish ma’lumotlari
- Matn · Rasmlar
- Natijalar
- Rasmlar
Ailoot da mavjud · kirish ma’lumotlari va usullar
Ailoot Ultra · Rasmlar POST /v1/images/generations
- Kirish
text,image- Chiqish
image- Chiqish formati
- Rasm fayli
| Maydon | Tur | Talab | Qiymatlar va cheklovlar | Standart |
|---|---|---|---|---|
Maydonmodel | Turstring | TalabMajburiy | Qiymatlar va cheklovlar recraft/recraft-v4-pro | Standart— |
Maydonprompt | Turstring | TalabMajburiy | Qiymatlar va cheklovlar Eng kam uzunlik: 1 | Standart— |
Maydonn | Turinteger | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam: 1 Eng ko‘p: 6 | Standart— |
Maydonaspect_ratio | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar 1:1, 4:3, 3:4, 16:9, 9:16, auto | Standart— |
Maydoninput_references | Turarray | TalabIxtiyoriy | Qiymatlar va cheklovlar Elementlarning eng kam soni: 0 Elementlarning eng ko‘p soni: 1 | Standart— |
Kirish materiallari birikmalari
Matndan rasm · Majburiy: prompt
Usul parametrlari va hayot sikli
| Parametr | Parametr talablari |
|---|---|
Parametrcontent_type | Parametr talablariapplication/json |
Parametrrequired | Parametr talablarimodel, prompt |
Parametrmaterial_types | Parametr talablaritext, image |
Parametroptional_controls | Parametr talablariaspect_ratio, n, input_references |
Parametrexact_supported_parameters | Parametr talablari{"aspect_ratio":{"type":"enum","values":["1:1","4:3","3:4","16:9","9:16","auto"]},"n":{"type":"range","min":1,"max":6},"input_references":{"type":"range","min":0,"max":1}} |
Parametrreference_material_rule | Parametr talablariFaqat mijozning haqiqiy rasm referenslari; ularga provayder endpointi shartlari qo‘llanadi. |
Usul taxalluslari: /v1/images
Hayot sikli: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · Amalda qaytarilgan task_id yoki media kutubxonasidagi yozuv
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Aniq model va hujjatdagi kirish maydonlaridan foydalaning.
To‘liq javobni, har bir haqiqiy chiqish natijasini va dastlab qaytarilgan ID larni saqlang.
Tariflar
Yakuniy to‘lov qanday hisoblanadi
Ko‘rsatilgan tariflar xarajatni generatsiyadan oldin taxminiy hisoblash uchun xizmat qiladi. Yakuniy to‘lov dastlabki generatsiya uchun qayd etilgan xarajat asosida hisoblanadi. Natijaning o‘lchangan davomiyligi va oldindan taxmin qilingan miqdorlar haq undiriladigan yakuniy miqdor hisoblanmaydi.
Tarif ma’lumotlari so‘rov imkoniyatlarini qo‘shmaydi. Qo‘llab-quvvatlanadigan parametrlar tanlangan usulda ko‘rsatilgan.
- Tezkor rejim
- Ko‘rsatilmagan Tezkor rejim tanlanganda
- Flex rejimi
- Ko‘rsatilmagan flex rejimi tanlanganda
- Maksimal fikrlash darajasi
- Ko‘rsatilmagan Maksimal fikrlash darajasi uchun standart (default) tuzatish qo‘llanganda
Taqqoslash uchun taxminiy tariflar
Sozlamalar bo‘yicha narxlar
Har bir to‘lovni ko‘rsatilgan shartlarga moslang. Har bir muqobil sozlamalar to‘plami uchun bitta tarifdan foydalaning.
| Sozlama | Tariflar jadvali | Prognoz miqdori | Hisob birligi | To‘lov |
|---|---|---|---|---|
| SozlamaTokenlar uchun bazaviy tariflar | Tariflar jadvaliAsosiy tarif | Prognoz miqdori— | Hisob birligi— | To‘lov Kirish · Kirish tokenlari · Faqat taqqoslash uchun taxmin — / 1K token Chiqish · Chiqish tokenlari · Faqat taqqoslash uchun taxmin — / 1K token Kirish · Keshdan o‘qish · Faqat taqqoslash uchun taxmin — / 1K token Kirish · Keshga yozish · Faqat taqqoslash uchun taxmin — / 1K token Kirish · Keshga yozish, 1 soat · Faqat taqqoslash uchun taxmin — / 1K token |
| SozlamaUltra | Tariflar jadvali— | Prognoz miqdori— | Hisob birligichiqish rasmi uchun | To‘lov Chiqish · rasm chiqishi · Faqat taqqoslash uchun taxmin $0.5 chiqish rasmi uchun |
| SozlamaYaratishning taxminiy qiymati | Tariflar jadvali— | Prognoz miqdoribir generatsiya uchun taxmin | Hisob birligi— | To‘lov Chiqish · Yaratishning taxminiy narxi · Faqat taqqoslash uchun taxmin $0.5 yaratishdan oldingi taxmin Bu taxmin qo‘shimcha to‘lov ham, tugallangan generatsiya uchun qat’iy tarif ham emas. |
Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. Summani band qilish va to‘lovni hisoblash tartibi →
Ma’lumot uchun tarif tafsilotlari
Modelning ma’lumot jadvallari usul tanlash, narx hisobi yoki to‘lovlarni o‘zgartirmaydi. Amaldagi to‘lovlar tanlangan Ailoot usuli tariflari bo‘yicha hisoblanadi.
Rasm narxining sozlamalari
Sozlamalar bo‘yicha narxlar
| Sozlama | To‘lovni hisoblash shartlari | To‘lov |
|---|---|---|
| SozlamaChiqish rasmi | To‘lovni hisoblash shartlariNarxlash varianti e’lon qilinmagan. | To‘lov Chiqish · Chiqish rasmi $0.5 rasm uchun Teng kuchli yozuvlar ayni to‘lovni tavsiflaydi; ular ikkinchi haqni qo‘shmaydi. |
So‘rov namunalari
Ailoot Ultra · Rasmlar
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': 'recraft/recraft-v4-pro', '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
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")
request={'model': 'recraft/recraft-v4-pro', 'prompt': 'a red panda astronaut floating in space, studio lighting'}
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": "recraft/recraft-v4-pro", "prompt": "a red panda astronaut floating in space, studio lighting"};
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");
Natijalarni olish va saqlash
Ailoot Ultra · Rasmlar
Har bir qaytarilgan rasmni yuklab oling yoki uning Base64 kontentini saqlang
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Barcha tayyor natijalarni saqlash
Har bir tayyor rasmni saqlang; har bir qaytarilgan URL dan kontentni oling yoki uning Base64 kontentini dekodlang.
Har bir data elementini va to‘liq foydalanish ma’lumotini saqlang; haqiqatda qaytarilgan barcha rasmlarni o‘z egaligingizga olib saqlang. URL yoki ID lar o‘ylab topilmasin.
Asl javobni tekshirish kerak bo‘lsa
Rasm yaratish yoki tahrirlash natijasini tekshirish kerak bo‘lsa, dastlabki operation_id/X-Client-Request-ID va qaytarilgan natija haqidagi ma’lumotlarni saqlang. Amalda qaytarilgan task_id yoki asset_id qiymatlari yordamida media kutubxonasidan o‘zingizga tegishli mavjud natijalarni tiklang. Rasm yaratish/tahrirlash so‘rovini qayta yubormang va operation_id dan holatni davriy tekshirish uchun URL tuzmang.
Javob maydonlari
| Maydon | Tur |
|---|---|
Maydoncreated | Turinteger |
Maydondata[].url | Turstring |
Maydondata[].b64_json | Turbase64 string |
Maydonusage | Turobject |
Taxalluslar
Model taxalluslari
Ailoot Ultra recraft/recraft-v4-pro
Usul yo‘llari taxalluslari
/v1/images
Chaqirish uchun tegishli ID lar
FAQ · Recraft: Recraft V4 Pro
- Qanday kirish ma’lumotlari va natijalar mavjud?
POST /v1/images/generations·recraft/recraft-v4-pro:text,image→image- So‘rov qaysi maydonlardan foydalanadi?
POST /v1/images/generations·recraft/recraft-v4-pro:model,prompt,n,aspect_ratio,input_references- Qanday cheklovlar amal qiladi?
POST /v1/images/generations·recraft/recraft-v4-pro:n.minimum:1;n.maximum:6