Recraft: Recraft V4.1 Flash
Recraft V4.1 Flash tezkor vizual takrorlash uchun matndan 1K rastr tasvirlar yaratadi. U fotografiya, portretlar, murakkab sahnalar va logotip g‘oyalarini PNG yoki yo‘qotishsiz WebP natija hamda aniq rang afzalliklari bilan qo‘llaydi.
Model haqida
Bu tavsif model imkoniyatlarini yoritadi. Ailoot da tanlangan usul uchun mavjud kirish, chiqish va parametrlar quyida keltirilgan.
Recraft V4.1 Flash — Recraft’ning tezkor takrorlash va katta hajmdagi vizual ishlar uchun matndan tasvir modeli. Ishlab chiqaruvchi fotografiya, portretlar, muhit, murakkab sahnalar, aralash texnika va logotip g‘oyalarini kuchli qo‘llanishlar deb belgilaydi. Yozma topshiriq yakuniy material rivojlantirilishidan oldin boshqa ijodiy yo‘nalishlarga solishtiriladigan rastr tasvirga aylanadi. Flash V4.1 oilasining o‘z natija o‘lchami va qo‘llanadigan boshqaruvlariga ega alohida a’zosidir.
Asl natija Recraft’ning 1K rastr tasvir sinfiga kiradi. Tuvalni kerakli joylashuv atrofida tanlang: sahifa sarlavhasi uchun gorizontal illyustratsiya, vertikal portret yoki ixcham kartochka uchun kvadrat vizual. Natija formatlari — yo‘qotishsiz WebP va PNG.
Topshiriqni asosiy obyekt va vizual maqsaddan boshlang, keyin kadr kompozitsiyasi, muhit, yoritish va tasvirlash texnikasini tasvirlang. Mahsulot g‘oyasi uchun foydali ko‘rsatma: “Yong‘oq yog‘och stol ustidagi ixcham qaymoq rang radio, old uch chorak rakurs, yumshoq deraza yorug‘ligi, sokin tahririy fotosurat, chapda keng bo‘sh joy.” Illyustratsiya uchun shakllar tili, palitra va elementlar munosabatini belgilang. Aloqasiz sifatlar qo‘shish o‘rniga g‘oyani belgilaydigan detallarni aniq saqlang. Flash ning hujjatlashtirilgan topshiriq hajmi 10,000 belgigacha, shuning uchun vazifa talab qilsa batafsil sahnani tasvirlash mumkin.
Ishlab chiqaruvchi boshqaruvlari afzal ranglar va kerakli fon rangini qamrab oladi. Takrorlanuvchi natijalar uchun seed berish mumkin; yaratish interfeysida bitta so‘rovda birdan oltitagacha tasvir hujjatlashtirilgan. Bu boshqaruvlar foydali taqqoslashni qo‘llaydi: obyekt va kompozitsiyani bir xil saqlang, bitta vizual yo‘nalishni o‘zgartiring va natija tasvirlarini kerakli maket bo‘yicha tekshiring. Rang afzalliklari so‘ralgan natijani tavsiflaydi; materialni mavjud dizayn tizimiga qo‘shishdan avval muhim brend ranglarini tayyor tasvirga solishtiring.
Flash rastr grafika hosil qiladi. Logotip g‘oyasi siluet, kayfiyat yoki joylashuvni tanlashga yordam beradi; tahrirlanadigan yo‘llar esa alohida nomlangan Vector modellariga tegishli. Flash ning Pro varianti ham yo‘q. Vektor tahrirlash yoki yuqoriroq aniqlikdagi detal yetkaziladigan natija uchun markaziy bo‘lsa, to‘liq V4.1 qatori shu alohida tanlovlarni beradi. Ishlab chiqaruvchi tanlangan qoralamani batafsilroq tasvirga olib boruvchi keyingi takomillashtirish qadamini tasvirlaydi; bu asl Flash natijasining boshqa o‘lchami emas, alohida amaldir.
Ushbu nashr tasvirdan tasvir kirishi, maxsus uslublar, uslub identifikatorlari, uslub moslash yoki uslub namuna tasvirlarini qo‘llamaydi. Hujjatlashtirilgan interfeys salbiy topshiriqlar va aniq matn maketi boshqaruvlarini ham istisno qiladi. So‘ralgan ko‘rinish va kompozitsiyani ijobiy topshiriqqa kiriting. Yozuv g‘oyaning bir qismi bo‘lsa, kerakli so‘zlarni qo‘shtirnoqda bering va chizilgan harflarni tekshiring; aniq tipografiya va joylashuv zarur bo‘lsa alohida maket bosqichidan foydalaning.
Flash dan amaliy natija — aniq topshiriq, mos tomonlar nisbati va ishlatiladigan rastr faylga ega tanlangan vizual yo‘nalish. Obyekt, kadr kompozitsiyasi, fon va muhim detallarni tasvir chiqadigan o‘lchamda solishtiring. Keyingi ijodiy qadam tanlangan yo‘nalishga ergashishi uchun muvaffaqiyatli topshiriq va tanlangan faylni birga saqlang. Tezkor takrorlash dizaynni o‘rganishga yordam beradi; asl vektor natijasi, namuna uslubini moslash va boshqa V4.1 nashri aniqligi alohida model tanlovlari bo‘lib qoladi.
Ailoot Ultra · Rasmlar POST /v1/images/generations recraft/recraft-v4.1-flash
recraft/recraft-v4.1-flashBoshlash
Recraft V4.1 Flash tezkor vizual takrorlash uchun matndan 1K rastr tasvirlar yaratadi. U fotografiya, portretlar, murakkab sahnalar va logotip g‘oyalarini PNG yoki yo‘qotishsiz WebP natija hamda aniq rang afzalliklari bilan qo‘llaydi.
- Qabul qilinadigan kirish ma’lumotlari
- Matn
- Natijalar
- Rasmlar
Ailoot da mavjud · kirish ma’lumotlari va usullar
Ailoot Ultra · Rasmlar POST /v1/images/generations
- Kirish
text- Chiqish
image- Chiqish formati
- Rasm fayli
- Natijalar soni
- 1 chiqish
| Maydon | Tur | Talab | Qiymatlar va cheklovlar | Standart |
|---|---|---|---|---|
Maydonmodel | Turstring | TalabMajburiy | Qiymatlar va cheklovlar recraft/recraft-v4.1-flash | Standart— |
Maydonprompt | Turstring | TalabMajburiy | Qiymatlar va cheklovlar Eng kam uzunlik: 1 Shartlar: Bo‘sh bo‘lmagan UTF8 ko‘rsatma. Ishlab chiqaruvchining barcha modellariga tegishli belgi limiti o‘ylab topilmaydi. | Standart— |
Maydonn | Turinteger | TalabIxtiyoriy | Qiymatlar va cheklovlar 1 | Standart1 |
Maydonresponse_format | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar url, b64_json | Standart— |
Maydonstream | Turboolean | TalabIxtiyoriy | Qiymatlar va cheklovlar false | Standartfalse |
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 |
Parametroptional | Parametr talablarin, response_format, stream |
Parametrn | Parametr talablari1 |
Parametrstream | Parametr talablarifalse |
Parametrresponse_format | Parametr talablariurl, b64_json |
Parametrreference_images | Parametr talablarifalse |
Parametredit | Parametr talablarifalse |
Parametroutput_format_optional | Parametr talablari |
Parametrresolution_control | Parametr talablarinull |
Parametraspect_ratio_control | Parametr talablarinull |
Parametrother_fields | Parametr talablariaynan belgilangan ichki provayder yo‘naltirishidan tashqari rad etiladi |
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}
Matnli ko‘rsatmadan bitta rasm yarating.
Har bir data elementini saqlang; url/b64_json — natijani kodlash shakllari.
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.014 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.014 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.014 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=json.loads('{"model": "recraft/recraft-v4.1-flash", "prompt": "A lighthouse on a cliff, watercolor", "n": 1, "response_format": "b64_json"}')
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.1-flash', 'prompt': 'A lighthouse on a cliff, watercolor', 'n': 1, 'response_format': 'b64_json'}
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.1-flash", "prompt": "A lighthouse on a cliff, watercolor", "n": 1, "response_format": "b64_json"};
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 ma’lumot elementini saqlang. Har bir b64_json ni dekodlang yoki qaytarilgan har bir imzolangan URL dan faylni yuklab oling. Fayl nomi kengaytmasini haqiqiy MIME turi/baytlar asosida tanlang.
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 |
Xatolar va keyingi qadamlar
| Javob | Shart | Keyingi qadam |
|---|---|---|
Javob400 · invalid_request_error | ShartMajburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘ri | Keyingi qadamYangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating. |
Javobserver_error | ShartQaytarilgan javob operatsiya yoki natijani tekshirish kerakligini bildiradi | Keyingi qadamDastlab qaytarilgan operatsiya/vazifa ID sini, so‘rov sarlavhalarini va javobni saqlang; aynan shu operatsiya uchun qo‘llab-quvvatlanadigan o‘qish so‘rovlarini davom ettiring. Yaratish so‘rovini qayta yubormang. |
Taxalluslar
Model taxalluslari
Ailoot Ultra recraft/recraft-v4.1-flash
Usul yo‘llari taxalluslari
Yuqorida ko‘rsatilgan usul yo‘llaridan foydalaning.
Chaqirish uchun tegishli ID lar
FAQ · Recraft: Recraft V4.1 Flash
- Qanday kirish ma’lumotlari va natijalar mavjud?
POST /v1/images/generations·recraft/recraft-v4.1-flash:text→image- So‘rov qaysi maydonlardan foydalanadi?
POST /v1/images/generations·recraft/recraft-v4.1-flash:model,prompt,n,response_format,stream