النماذج

Recraft: Recraft V4.1 Flash

Markdown · JSON

Recraft: Recraft V4.1 Flash

يولّد Recraft V4.1 Flash صورًا نقطية 1K من النص للتكرار البصري السريع. يدعم التصوير والصور الشخصية والمشاهد المعقّدة ومفاهيم الشعارات، بمخرجات PNG أو WebP من دون فقدان وتفضيلات ألوان صريحة.

عن النموذج

يغطي هذا الوصف قدرات النموذج. وترد أدناه المدخلات والمخرجات والخيارات المتاحة في Ailoot للطريقة المحددة.

Recraft V4.1 Flash نموذج Recraft لتحويل النص إلى صورة من أجل التكرار السريع والعمل البصري واسع الحجم. تحدّد الجهة المصنّعة التصوير والصور الشخصية والأجواء والمشاهد المعقّدة والوسائط المختلطة ومفاهيم الشعارات كاستخدامات قوية. يتحوّل توجيه مكتوب إلى صورة نقطية يمكن مقارنتها باتجاهات إبداعية أخرى قبل تطوير الصورة النهائية. وFlash عضو محدّد في عائلة V4.1، بحجم إخراجه وعناصر تحكّمه المدعومة الخاصة.

المخرجات الأصلية ضمن فئة الصور النقطية 1K لدى Recraft. اختر اللوحة بحسب موضع الاستخدام المقصود: رسم أفقي لترويسة صفحة أو صورة شخصية رأسية أو مرئية مربعة لبطاقة صغيرة. وصيغ الإخراج WebP من دون فقدان وPNG.

ابدأ التوجيه بالعنصر الرئيسي والغرض البصري، ثم صِف التأطير والمكان والإضاءة والوسيط. ولمفهوم منتج، تعليمة مفيدة هي: «راديو صغير بلون كريمي على مكتب جوز، منظر أمامي بزاوية ثلاثة أرباع، ضوء نافذة ناعم، صورة تحريرية هادئة، مساحة فارغة واسعة على اليسار». ولرسم توضيحي، حدّد لغة الأشكال والألوان والعلاقة بين العناصر. أبقِ التفاصيل المعرِّفة للفكرة صريحة بدلًا من إضافة صفات غير مرتبطة. ويسمح توجيه Flash الموثّق بما يصل إلى 10,000 حرف، لذا يمكن وصف مشهد تفصيلي عندما تحتاجه المهمة.

تشمل عناصر التحكّم لدى الجهة المصنّعة الألوان المفضّلة ولون الخلفية المطلوب. ويمكن تقديم بذرة لنتائج قابلة لإعادة الإنتاج، وتوثّق واجهة التوليد من صورة واحدة إلى ست صور في الطلب. وتدعم هذه العناصر مهمة مقارنة مفيدة: تثبيت العنصر والتكوين وتغيير اتجاه بصري واحد ومراجعة الصور الناتجة للتخطيط المقصود. تصف تفضيلات اللون النتيجة المطلوبة؛ قارن ألوان العلامة المهمة بالصورة النهائية قبل جمعها مع نظام تصميم موجود.

ينتج Flash رسومًا نقطية. وقد يساعد مفهوم شعار على اختيار شكل خارجي أو مزاج أو ترتيب، بينما تخص المسارات القابلة للتحرير نماذج Vector المسمّاة بصورة مستقلة. ولا يوجد لFlash إصدار Pro أيضًا. ويوفّر خط V4.1 الكامل تلك الخيارات المستقلة عندما يكون التحرير المتجهي أو التفاصيل الأعلى دقة محور التسليم. تصف الجهة المصنّعة خطوة تنقيح لاحقة لنقل مسودة مختارة نحو صورة أكثر تفصيلًا؛ وتلك خطوة مستقلة لا حجم إخراج أصلي مختلف لFlash.

لا يدعم هذا الإصدار مدخلات صورة إلى صورة أو الأساليب المخصّصة أو معرّفات الأسلوب أو مطابقة الأسلوب أو الصور المرجعية للأسلوب. كما تستبعد واجهته الموثّقة التوجيهات السلبية وعناصر التخطيط النصي الصريح. ضع المظهر والتكوين المطلوبين في التوجيه الإيجابي. وعندما تكون الحروف جزءًا من مفهوم، ضع النص المقصود بين علامتي اقتباس وافحص الحروف المرسومة؛ واستخدم مرحلة تخطيط مستقلة عندما تكون الطباعة والمواضع الدقيقة أساسية.

النتيجة العملية من Flash اتجاه بصري مختار بتوجيه واضح ونسبة أبعاد مناسبة وملف نقطي قابل للاستخدام. قارن العنصر والتأطير والخلفية والتفاصيل المهمة بالحجم الذي ستظهر فيه الصورة. احتفظ بالتوجيه الناجح والملف المختار معًا كي تتبع الخطوة الإبداعية التالية الاتجاه المختار. يساعد التكرار السريع في استكشاف التصميم؛ وتبقى المخرجات المتجهية الأصلية ومطابقة أسلوب المراجع ودقة إصدار V4.1 آخر خيارات نماذج مستقلة.

Ailoot Ultra · الصور POST /v1/images/generations recraft/recraft-v4.1-flash

recraft/recraft-v4.1-flash

Recraft /recraft/recraft-v4.1-flash

البداية

يولّد Recraft V4.1 Flash صورًا نقطية 1K من النص للتكرار البصري السريع. يدعم التصوير والصور الشخصية والمشاهد المعقّدة ومفاهيم الشعارات، بمخرجات PNG أو WebP من دون فقدان وتفضيلات ألوان صريحة.

المدخلات المقبولة
النص
النتائج
الصور

متاح في Ailoot · المدخلات والطرائق

Ailoot Ultra · الصور POST /v1/images/generations
الإدخال
text
الإخراج
image
صيغة الإخراج
ملف صورة
عدد المخرجات
⁦1⁩ إخراج
الحقلالنوعالمتطلبالقيم والحدودالقيمة الافتراضية
الحقلmodelالنوعstringالمتطلبمطلوبالقيم والحدود
recraft/recraft-v4.1-flash
القيمة الافتراضية—
الحقلpromptالنوعstringالمتطلبمطلوبالقيم والحدود
الحد الأدنى للطول: ⁦1⁩
الشروط: موجّه UTF8 غير فارغ. لا يُختلَق حد لعدد الأحرف يسري على جميع نماذج الشركة المصنّعة.
القيمة الافتراضية—
الحقلnالنوعintegerالمتطلباختياريالقيم والحدود
⁦1⁩
القيمة الافتراضية⁦1⁩
الحقلresponse_formatالنوعstringالمتطلباختياريالقيم والحدود
url, b64_json
القيمة الافتراضية—
الحقلstreamالنوعbooleanالمتطلباختياريالقيم والحدود
false
القيمة الافتراضيةfalse
تركيبات مواد الإدخال

تحويل النص إلى صورة · مطلوب: prompt

معلمات الطريقة ودورة حياتها
المعلمةالمواصفات
المعلمةcontent_typeالمواصفاتapplication/json
المعلمةrequiredالمواصفاتmodel, prompt
المعلمةmaterial_typesالمواصفاتtext
المعلمةoptionalالمواصفاتn, response_format, stream
المعلمةnالمواصفات1
المعلمةstreamالمواصفاتfalse
المعلمةresponse_formatالمواصفاتurl, b64_json
المعلمةreference_imagesالمواصفاتfalse
المعلمةeditالمواصفاتfalse
المعلمةoutput_format_optionalالمواصفات
المعلمةresolution_controlالمواصفاتnull
المعلمةaspect_ratio_controlالمواصفاتnull
المعلمةother_fieldsالمواصفاتمرفوض، باستثناء توجيه المزوّد الداخلي الدقيق المثبّت

دورة الحياة: 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}

ولّد صورة واحدة من الموجّه النصي.

احفظ كل عنصر بيانات؛ فالحقلان url/b64_json يحددان صيغ ترميز النتائج.

الباقات

كيفية احتساب الرسوم النهائية

تقدّر التعرفات المعروضة التكلفة قبل التوليد. تُحسب الرسوم النهائية من التكلفة المسجّلة لعملية التوليد الأصلية. مدة المخرجات المقاسة والكميات المتوقعة ليست الكمية النهائية الخاضعة للفوترة.

مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.

الوضع السريع
غير محدد عند اختيار الوضع السريع
الوضع المرن
غير محدد عند اختيار وضع flex
أقصى جهد للاستدلال
غير محدد عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال

تعرفات تقديرية للمقارنة

الأسعار حسب الإعدادات

طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.

الإعداداتجدول التعرفةالكمية المتوقعةوحدة الفوترةالرسوم
الإعداداتالتعرفات الأساسية للرموزجدول التعرفةالتعرفة الأساسيةالكمية المتوقعة—وحدة الفوترة—الرسوم
الإدخال · رموز الإدخال · تقدير للمقارنة فقط — / 1K من الرموز
الإخراج · رموز الإخراج · تقدير للمقارنة فقط — / 1K من الرموز
الإدخال · قراءة ذاكرة التخزين المؤقت · تقدير للمقارنة فقط — / 1K من الرموز
الإدخال · الكتابة إلى ذاكرة التخزين المؤقت · تقدير للمقارنة فقط — / 1K من الرموز
الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة · تقدير للمقارنة فقط — / 1K من الرموز
الإعداداتUltraجدول التعرفة—الكمية المتوقعة—وحدة الفوترةلكل صورة مُخرجةالرسوم
الإخراج · إخراج الصور · تقدير للمقارنة فقط $0.014 لكل صورة مُخرجة
الإعداداتتكلفة التوليد التقديريةجدول التعرفة—الكمية المتوقعةتقدير لتوليد واحدوحدة الفوترة—الرسوم
الإخراج · تكلفة التوليد التقديرية · تقدير للمقارنة فقط $0.014 تقدير قبل الإنشاء

هذا التقدير ليس رسومًا إضافية ولا تعرفة ثابتة لعملية التوليد المكتملة.

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. كيفية عمل حجز المبلغ وتسوية الرسوم →

تفاصيل التعرفة المرجعية

لا تغيّر جداول التعرفة المرجعية على مستوى النموذج اختيار الطريقة أو عروض الأسعار أو الرسوم. وتستخدم الرسوم الفعلية تعرفات طريقة Ailoot المحددة.

إعدادات تسعير الصور

الأسعار حسب الإعدادات

الإعداداتشروط الفوترةالرسوم
الإعداداتصورة المخرجاتشروط الفوترةلم يُعلَن أي خيار تسعير بديل.الرسوم
الإخراج · صورة المخرجات $0.014 لكل صورة

تصف البنود المتكافئة الرسم نفسه؛ ولا تضيف رسماً ثانياً.

أمثلة للطلبات

Ailoot Ultra · الصور

curlPython SDKNode.js SDK
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");

استلام النتائج وحفظها

Ailoot Ultra · الصور

نزّل كل صورة مُرجعة أو احفظ محتواها بصيغة 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 الفعلية. لا تُعِد إرسال طلب التوليد أو التعديل، ولا تنشئ عنوان URL للاستعلام الدوري من operation_id.

حقول الاستجابة
الحقلالنوع
الحقلcreatedالنوعinteger
الحقلdata[].urlالنوعstring
الحقلdata[].b64_jsonالنوعbase64 string
الحقلusageالنوعobject
الأخطاء والخطوات التالية
الاستجابةالشرطالخطوة التالية
الاستجابة⁦400⁩ · invalid_request_errorالشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحةالخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد.
الاستجابةserver_errorالشرطتشير الاستجابة المُعادة إلى أن العملية أو النتيجة تتطلب التحققالخطوة التاليةاحتفظ بمعرّف العملية أو المهمة الأصلي المُعاد، وبترويسات الطلب وبالاستجابة؛ وواصل عمليات القراءة المدعومة لتلك العملية الأصلية. لا تُعِد إرسال طلب الإنشاء.

الأسماء البديلة

الأسماء البديلة للنموذج

Ailoot Ultra recraft/recraft-v4.1-flash

الأسماء البديلة لمسارات الطرائق

استخدم مسارات الطرائق المعروضة أعلاه.

معرّفات النماذج ذات الصلة IDs

recraft/recraft-v4.1-flash

FAQ · Recraft: Recraft V4.1 Flash
ما المدخلات والنتائج المتاحة؟

POST /v1/images/generations · recraft/recraft-v4.1-flash: text → image

ما الحقول التي يستخدمها الطلب؟

POST /v1/images/generations · recraft/recraft-v4.1-flash: model, prompt, n, response_format, stream

المزيد من التفاصيل

اربط Ailoot بخدمة Claude Code أوOpenCode أوHermes أوتطبيقك.

الشركة ومحفظة مشاريعها

الشركة ومحفظة مشاريعها: ملايين العملاء؛ مبيعات بالمليارات شهريًا.

اشتر الرموز بخصم.

خصم اشتراك للعمل المنتظم. الرموز الترويجية حتى 50% على شراء الرموز.

الاشتراك
اختر خطة بخصم لطلباتك المنتظمة.
رمز خصم حتى 50%
أدخل الرمز عند الشراء. يعاد حساب السعر وفق العرض الساري.
المصروفات في السجل
يحفظ النموذج والرموز والمبلغ لكل طلب.

اختر اشتراكا · اعرض أسعار النماذج

اربط API بالمنتج الذي تبيعه.

SaaS والتطبيقات والبوتات وفق العرض واتفاقية ترخيص Ailoot. لإعادة البيع، اطلب ترخيص موزع.

تطبيق تجاري
أضف توليد النص والصور والفيديو والصوت إلى ميزات خدمتك المدفوعة.
ترخيص إعادة البيع
أرسل وصف المشروع وطريقة توفير الوصول. اطلب شروط استخدام وإعادة بيع مكتوبة.
المستندات على الموقع
العرض واتفاقية الترخيص وسياسة معالجة البيانات متاحة قبل الربط.

اطلب ترخيص إعادة بيع · العرض واتفاقية الترخيص