Recraft: Recraft V3
Recraft V3 мәтінді ескеретін композиция және стиль басқаруы арқылы фотосуреттер, иллюстрациялар мен графикалық макеттер жасайды. Оның бөлек растрлық және SVG нұсқалары постерлерге, бренд кескіндері жиынтығына, белгішелерге және сөздер мен визуалдық құрылым бірге жұмыс істеуі тиіс дизайндарға лайық.
Модель туралы
Бұл сипаттама модель мүмкіндіктерін қамтиды. Ailoot жүйесінде таңдалған әдіс үшін қолжетімді кіріс, шығыс және параметрлер төменде берілген.
Recraft V3 — графикалық дизайнға, фотографиялық және иллюстрациялық көріністерге арналған кескін генерациялау моделі. Жазбаша тапсырма нысанды, ортаны және композицияны сипаттайды; нәтиже — кескін. V3 Recraft компаниясының мәтін бейнелеуі мен фотореализмін дамытып, қайта оқытусыз үлгі кескіндерден стиль біркелкілігін сақтайды.
Мәтін композицияның бір бөлігі ретінде
V3 кескін ішіндегі мәтінмен, соның ішінде ұзын мәтіндер және орташа өлшемді жазулармен жұмыс істейді. Recraft кескін генерациясына дейін сөздер мен олардың орындарын белгілейтін беттеу кезеңін сипаттайды. Орналасу тапсырмадан автоматты түрде жасалуы немесе Recraft дизайн ортасында қолмен құрылуы мүмкін. Бұл тақырыпты, иллюстрация мен қосымша мәтінді бір композицияда байланыстыруға көмектеседі. Өндіруші тұрақты пиксель торымен емес, кескінге қатысты берілетін нақты мәтін орналасу координаттарын да құжаттайды. Әр мәтін элементі бір сөзден және нормаланған координаттардағы төрт бұрыш нүктесінен тұрады: (0, 0) — жоғарғы сол жақ, (1, 1) — төменгі оң жақ. Координаттар осы аралықтан шығып кетуі мүмкін, ондайда пішін қиылады. Нақты мәтін орналасуындағы сөздер құжатталған таңба шектеулеріне сай болуы керек.
Постер не мұқаба үшін нақты мәтінді беріп, оның иерархиясын сипаттаңыз: қай жол басты, қайда тұрады және сурет оны қалай қолдайды. Нәтижені таңдағанда бейнеленген мәтіннің жазылуы мен аралықтарын тексеріңіз.
Стиль, палитра және көркемдік бағыт
V3 дайын фотографиялық, иллюстрациялық және эмблемалық стильдерді, сондай-ақ бөлек векторлық стильдер кітапханасын қамтиды. Recraft V3 Raw — растрлық модельдің әдепкі стилі; Vector art — векторлық нұсқаның әдепкі стилі. Photorealism фотографиялық көрініске бағытталған, ал Illustration стильденген текстураларды, көлеңкелеуді және күрделірек түс ауысуларын қолдайды. Векторлық стильдер пішіндерді, шектеулі палитраларды және жазық бояуларды немесе қарапайым градиенттерді құп көреді.
Жеке стильдерді үлгі кескіндерден, бар үйлесімді стильдерден немесе олардың тіркесімінен жасауға болады. Олар кескіндер сериясына қайта қолданылатын визуалдық бағыт береді. Құжатталған араластыру басқаруы үлгілер мен бастапқы стильдерге бөлек салмақ беруге мүмкіндік береді; салмақтар саны дереккөздер санына сәйкес келеді. Тізімде екі араластыру саясаты берілген: PaletteMatch және MaxWeight. Өндіруші 10-ға дейін стиль үлгісі кескініне рұқсат етеді және V3 үшін кәдімгі стиль сәйкестендіру режимін қолданады. Сақталған жеке стиль мен тікелей стиль үлгілері — балама кірістер; жеке стиль генерацияда қолданылатын модельге сәйкес болуы тиіс.
Қалаулы түстер мен фон түсі палитраны бағыттайды. Құжатта 10-ға дейін RGB түсі көрсетілген, әр құрамдас бөлігі 0-ден 255-ке дейін. Қосымша салыстырмалы салмақтар 0-ден 1-ге дейін болады; олар барлық түске берілуі немесе ешқайсысына берілмеуі тиіс, ал қосындысы 1-ден аспайды. Көркемдік деңгей статикалық, таза өңдеу үшін 0-ден анағұрлым серпінді, тосын композициялар үшін 5-ке дейін өзгереді. Теріс сұрау қажетсіз элементтерді сипаттайды; бөлек мәтінсіз режим ендірілген мәтін орналасуларын өшіреді. Қайталанымдылық үшін кездейсоқ seed мәні қолжетімді. Бұл басқарулар көрініске, оның стилі мен визуалдық орналасуына әртүрлі әсер ету тетіктерін береді.
Растрлық кескіндер және бөлек SVG нұсқасы
Recraft екі V3 нұсқасын құжаттайды. Растрлық модель шығынсыз WebP немесе PNG шығарады және фотографиялық бөлшектерге, көлеңкелеу мен текстуралы иллюстрацияға лайық. Recraft V3 Vector SVG жасайды: бекітілген пиксель ажыратымдылығынсыз масштабталатын контурлар мен пішіндер. Ол пиктограммаларға, логотип тұжырымдамаларына, белгілер мен егжей-тегжейлі векторлық суреттерге жарайды. Растрды векторға түрлендіру векторлық суретті тікелей генерациялаудан бөлек операция.
Екі нұсқаның өзіндік сипаты бар. Векторға ұқсас кескін мен нақты SVG нәтижесі — екі бөлек таңдау. Дизайн үдерісін дайындағанда ортақ V3 атауын барлық операция бір файл түрін қайтарады деген дәлел санамай, қажетті нәтижені таңдаңыз.
Бар суретті өңдеу және аяқтау
Recraft V3 құжаттамасында image-to-image генерациясы, inpainting, outpainting және фонды алмастыру не жасау көрсетілген. Image-to-image жұмысы бар кескінді жаңа тапсырмамен біріктіреді. Inpainting кескін мен сәйкес масканы қолданып, таңдалған аймақты қайта жасайды; outpainting бастапқы кадрдан тыс мазмұн қосады. Фон операциялары нысанның айналасындағы ортаны өңдейді.
Ілеспе құралдар жиынтығына өшіру, фонды жою, векторлау және ажыратымдылықты арттырудың екі тәсілі де кіреді. Шығармашылық ұлғайту жаңа бөлшектер қосуы мүмкін; айқын ұлғайту бар мазмұнның анығырақ ірі нұсқасына бағытталған. Бұлар растрлық не векторлық модель атауының қосымша мағыналары емес, өз кірістері мен нәтижелері бар бөлек операциялар.
Сұрау, өлшем және бастапқы кескін шектері
Өндірушінің V3 генерация спецификациясы 1000 таңбаға дейінгі сұрау мен әр сұрауда 1–6 кескінді қабылдайды. Ол 14 арақатынасты қолдайды: 1:1, 2:1, 1:2, 3:2, 2:3, 4:3, 3:4, 5:4, 4:5, 6:10, 14:10, 10:14, 16:9 және 9:16. Құжатталған растрлық мысалдар: 1024x1024, 1820x1024 және 1024x1820. Нақты растр өлшемдері қолдау көрсетілетін тізімнен алынуы тиіс; SVG бекітілген пиксель өлшемінсіз арақатынастарды қолданады. Өлшем берілмесе, өндірушінің жүйесі оны сұраудан таңдайды.
Кескін кірісі бар операциялар үшін өндіруші PNG, JPG және WebP, ал нақты операция рұқсат етсе SVG пішімін көрсетеді. Файлдар 20 МБ-тан кіші, 16 МП-дан аспайтын, ұзын жағы ең көбі 4096 пиксель болуы керек. Қысқа жағы кемінде 256 пиксель; айқын ұлғайту үшін 32 пиксельдік ерекшелік бар. Маскалар кескін өлшеміне сәйкес келіп, таза қара және ақ түстерді қолданады; стиль үлгілерінің жалпы шегі — 64 МБ.
Ailoot API жобасы үшін тапсырманы нақты кескін сипаттамасына айналдырыңыз: дәл мәтін, нысандардың орналасуы, визуалдық стиль және қажетті композиция. Постер, тауар көрінісі және белгішелер сериясы әртүрлі тапсырманы қажет етеді; әр нәтиженің қолданылуын шешкенде V3 нұсқалары мен операцияларының тиісті айырмашылықтарын сақтаңыз.
Ailoot Ultra · Суреттер POST /v1/images/generations recraft/recraft-v3
recraft/recraft-v3Бастау
Recraft V3 мәтінді ескеретін композиция және стиль басқаруы арқылы фотосуреттер, иллюстрациялар мен графикалық макеттер жасайды. Оның бөлек растрлық және SVG нұсқалары постерлерге, бренд кескіндері жиынтығына, белгішелерге және сөздер мен визуалдық құрылым бірге жұмыс істеуі тиіс дизайндарға лайық.
- Қабылданатын кіріс деректері
- Мәтін · Суреттер
- Нәтижелер
- Суреттер
Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер
Ailoot Ultra · Суреттер POST /v1/images/generations
- Кіріс
text,image- Шығыс
image- Шығыс пішімі
- Сурет файлы
| Өріс | Түрі | Талап | Мәндер мен шектеулер | Әдепкі |
|---|---|---|---|---|
Өрісmodel | Түріstring | ТалапМіндетті | Мәндер мен шектеулер recraft/recraft-v3 | Әдепкі— |
Өрісprompt | Түріstring | ТалапМіндетті | Мәндер мен шектеулер Ең аз ұзындық: 1 | Әдепкі— |
Өрісn | Түріinteger | ТалапМіндетті емес | Мәндер мен шектеулер Ең азы: 1 Ең көбі: 6 | Әдепкі— |
Өрісaspect_ratio | Түріstring | ТалапМіндетті емес | Мәндер мен шектеулер 1:1, 4:3, 3:4, 16:9, 9:16, auto | Әдепкі— |
Өрісinput_references | Түріarray | ТалапМіндетті емес | Мәндер мен шектеулер Элементтердің ең аз саны: 0 Элементтердің ең көп саны: 1 | Әдепкі— |
Кіріс материалдарының үйлесімдері
Мәтіннен сурет жасау · Міндетті: prompt
Әдіс параметрлері мен өмірлік циклі
| Параметр | Параметр талаптары |
|---|---|
Параметрcontent_type | Параметр талаптарыapplication/json |
Параметрrequired | Параметр талаптарыmodel, prompt |
Параметрmaterial_types | Параметр талаптарыtext, image |
Параметрoptional_controls | Параметр талаптарыaspect_ratio, n, input_references |
Параметрexact_supported_parameters | Параметр талаптары{"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}} |
Параметрreference_material_rule | Параметр талаптарыТек клиенттің нақты үлгі суреттері қолданылады; оларға жеткізушінің эндпоинт шарттары қолданылады. |
Әдістің балама атаулары: /v1/images
Өмірлік цикл: 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 мәндерін сақтаңыз.
Тарифтер
Қорытынды төлем қалай есептеледі
Көрсетілген тарифтер генерация басталғанға дейінгі құнын бағалауға арналған. Соңғы төлем бастапқы генерация үшін тіркелген құннан есептеледі. Нәтиженің өлшенген ұзақтығы мен болжамды көлемдер төлемге негіз болатын түпкілікті көлем болып саналмайды.
Тариф анықтамасы сұрау мүмкіндіктерін қоспайды. Қолдау көрсетілетін параметрлер таңдалған әдісте берілген.
- Жылдам режим
- Көрсетілмеген Жылдам режим таңдалғанда
- Икемді режим
- Көрсетілмеген flex режимі таңдалғанда
- Ой қорытудың ең жоғары деңгейі
- Көрсетілмеген Ой қорыту деңгейі ең жоғары болып, default түзетуі қолданылғанда
Салыстыруға арналған болжамды мөлшерлемелер
Баптаулар бойынша бағалар
Әр төлемді көрсетілген шарттармен салыстырыңыз. Балама баптаулардың әр жиыны үшін бір мөлшерлемені қолданыңыз.
| Баптау | Мөлшерлемелер кестесі | Болжамды мөлшер | Есептеу бірлігі | Төлем |
|---|---|---|---|---|
| БаптауТокендердің базалық тарифтері | Мөлшерлемелер кестесіНегізгі мөлшерлеме | Болжамды мөлшер— | Есептеу бірлігі— | Төлем Кіріс · Кіріс токендері · Тек салыстыруға арналған бағалау — / 1K токен Шығыс · Шығыс токендері · Тек салыстыруға арналған бағалау — / 1K токен Кіріс · Кэшті оқу · Тек салыстыруға арналған бағалау — / 1K токен Кіріс · Кэшке жазу · Тек салыстыруға арналған бағалау — / 1K токен Кіріс · Кэшке жазу, 1 сағ · Тек салыстыруға арналған бағалау — / 1K токен |
| БаптауUltra | Мөлшерлемелер кестесі— | Болжамды мөлшер— | Есептеу бірлігішығыс суреті үшін | Төлем Шығыс · кескін шығысы · Тек салыстыруға арналған бағалау $0.08 шығыс суреті үшін |
| БаптауГенерацияның болжамды құны | Мөлшерлемелер кестесі— | Болжамды мөлшербір генерацияға арналған болжам | Есептеу бірлігі— | Төлем Шығыс · Генерацияның болжамды құны · Тек салыстыруға арналған бағалау $0.08 жасауға дейінгі бағалау Бұл бағалау қосымша төлем де, аяқталған генерация үшін белгіленген тұрақты тариф те емес. |
Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. Резервтеу мен төлемді есептеу тәртібі →
Анықтамалық тариф мәліметтері
Модельдің анықтамалық кестелері әдіс таңдауын, баға есебін не төлемді өзгертпейді. Қолданыстағы төлемдер таңдалған Ailoot әдісінің мөлшерлемелерімен есептеледі.
Суреттердің баға конфигурациялары
Баптаулар бойынша бағалар
| Баптау | Төлемді есептеу шарттары | Төлем |
|---|---|---|
| БаптауШығыс суреті | Төлемді есептеу шарттарыБаға нұсқасы мәлімделмеген. | Төлем Шығыс · Шығыс кескін $0.08 сурет үшін Баламалы жазбалар бір төлемді сипаттайды; олар екінші алым қоспайды. |
Сұрау мысалдары
Ailoot Ultra · Суреттер
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-v3', '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-v3', '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-v3", "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");
Нәтижелерді алу және сақтау
Ailoot Ultra · Суреттер
Қайтарылған әр суретті жүктеп алыңыз немесе оның Base64 мазмұнын сақтаңыз
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Барлық дайын нәтижені сақтау
Әр дайын суретті сақтаңыз; қайтарылған әр URL арқылы мазмұнды алыңыз немесе оның Base64 мазмұнын декодтаңыз.
Әрбір дерек элементін және пайдалану деректерін толық сақтаңыз; нақты қайтарылған барлық суретті өз иелігіңізге алып, сақтаңыз. URL мекенжайларын немесе ID мәндерін ойдан қоспаңыз.
Бастапқы жауапты тексеру қажет болса
Кескінді генерациялау немесе өңдеу нәтижесін тексеру қажет болса, бастапқы 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 |
Балама атаулар
Модельдердің балама атаулары
Ailoot Ultra recraft/recraft-v3
Әдіс жолдарының балама атаулары
/v1/images
Шақыруға арналған байланысты ID
FAQ · Recraft: Recraft V3
- Қандай кіріс деректері мен нәтижелер қолжетімді?
POST /v1/images/generations·recraft/recraft-v3:text,image→image- Сұрау қандай өрістерді пайдаланады?
POST /v1/images/generations·recraft/recraft-v3:model,prompt,n,aspect_ratio,input_references- Қандай шектеулер қолданылады?
POST /v1/images/generations·recraft/recraft-v3:n.minimum:1;n.maximum:6