مرجع
POST /v1/images/generations
از یک پرامپت متنی تصویر بساز، با قالب OpenAI: images.generate در SDK فقط با تغییر آدرس پایه کار میکند. تصویرها در پاسخ برمیگردند و ما هیچ کپیای نگه نمیداریم.
بررسیشده در ۱۵ آبان ۱۴۰۵
ساختن یک تصویر
import base64
import os
from openai import OpenAI
client = OpenAI(
base_url="https://nokeep.ai/v1",
api_key=os.environ["NOKEEP_API_KEY"],
)
result = client.images.generate(
model="z-image-turbo",
prompt="A lighthouse on a rocky coast at dusk",
size="1024x1024",
)
with open("picture.webp", "wb") as f:
f.write(base64.b64decode(result.data[0].b64_json))مدلها
| مدل | برای چه خوب است | هر تصویر | اندازه | طولانیترین پرامپت |
|---|---|---|---|---|
| chroma | مدل باز که پرامپتهای بلند و پرجزئیات را میخواند. | $0.03 | تا ۱۲۸۰ پیکسل در هر ضلع، با ۱٫۵ برابر برگردانده میشود | ۷٬۵۰۰ کاراکتر |
| z-image-turbo | سریعترین اینجا، برای تصویرهای عکاسانه در حجم بالا. | $0.03 | تا ۱۲۸۰ پیکسل در هر ضلع | ۷٬۵۰۰ کاراکتر |
| wai-illustrious | انیمه و تصویرسازی. | $0.03 | تا ۱۲۸۰ پیکسل در هر ضلع | ۱٬۵۰۰ کاراکتر |
| krea-2-turbo | شخصیتهای شناختهشده و یک سبک ثابت، در 1K یا 2K. | $0.08 (1K)، $0.12 (2K) | 1:1، 3:2، 16:9، 21:9، 9:16، 2:3، 3:4، 4:5 | ۵٬۰۰۰ کاراکتر |
GET /v1/models همین قیمتها و محدودیتها را فهرست میکند.
درخواست
| فیلد | چه میگیرد | چه کار میکند |
|---|---|---|
model | الزامی | یکی از شناسههای مدل بالا. |
prompt | الزامی | آنچه باید کشیده شود، همانطور که نوشتهای برای مدل فرستاده میشود. بیش از حد مجاز مدل رد میشود و هرگز بریده نمیشود. |
size | WIDTHxHEIGHT یا auto | اندازهٔ تصویر. پیشفرض 1024x1024 است. اندازهها را ببین. |
aspect_ratio | 1:1، 3:2، 2:3، 4:3، 3:4، 4:5، 16:9، 9:16، 21:9 | یک شکل بهجای size. وقتی هر دو فرستاده شوند، این یکی برنده است. |
n | ۱ تا ۴ | چند تصویر. برای آنهایی که برمیگردند پول میدهی. |
response_format | b64_json یا url | پیشفرض b64_json است. url یک URL از نوع data: برمیگرداند، نه پیوند به یک فایل ذخیرهشده. |
output_format | webp، png یا jpeg | پیشفرض webp است. |
resolution | 1K یا 2K | فقط برای krea-2-turbo، و قیمتش هم با همین تعیین میشود. |
seed | یک عدد صحیح | همان seed و پرامپت، تصویر مشابهی میدهد. با n، هر تصویر یکی به آن اضافه میکند. |
negative_prompt | متن | آنچه باید کنار گذاشته شود. بررسی محدودیت سخت آن را نمیخواند، و همهٔ مدلها آن را در نظر نمیگیرند. |
steps | ۱ تا ۵۰ | قدمهای بیشتر طولانیتر میشوند. همهٔ مدلها از آن استفاده نمیکنند. |
cfg_scale | بیشتر از ۰، تا ۲۰ | چقدر دقیق از پرامپت پیروی شود. همهٔ مدلها از آن استفاده نمیکنند. |
هر فیلد دیگری، مثل quality، style یا user، کنار گذاشته میشود و در هدر x-nokeep-ignored نامش میآید. فیلدی که تصویر را حمل میکند، مثل image، با 400 unsupported_input رد میشود: این مدلها فقط با متن کار میکنند.
اندازهها
- یک ضلع میتواند دستکم ۲۵۶ پیکسل باشد و ضلع بلندتر حداکثر سه برابر کوتاهتر. بیرون از این،
400 unsupported_sizeاست. - اندازهٔ بزرگتر در ۱۲۸۰ پیکسل در هر ضلع جا داده میشود و شکلش حفظ میشود. مثلاً 1536x1024 در OpenAI به 1280x848 کشیده میشود.
chroma۱٫۵ برابر پیکسلهایی را که میکشد برمیگرداند، بدون هزینهٔ اضافه؛ پس 1024x1024 به 1536x1536 برمیگردد.krea-2-turboدر شکلهای نامدار میکشد، پسsizeبه نزدیکترین آن تبدیل میشود.sizeیاaspect_ratioدر پاسخ همیشه میگوید چه گرفتهای.
پاسخ
{
"created": 1793960000,
"data": [
{
"b64_json": "UklGRk…"
}
],
"model": "z-image-turbo",
"output_format": "webp",
"size": "1024x1024",
"usage": {
"images": 1,
"nokeep_credits": 30
}
}هدرهای x-nokeep-credits و x-nokeep-balance میگویند این درخواست چقدر هزینه داشت و چه چیزی باقی مانده، مثل چت. تصویر وقتی برمیگردد پول گرفته میشود. تصویری که شکست بخورد یا رد شود هزینهای ندارد.
آنچه مدلها میسازند
محتوای بزرگسالانه در محدوده است روی مدلهایی که میزبان آنها را بیسانسور علامت زده. z-image-turbo جزو آنها نیست و در بررسیهای ما بیشترین احتیاط را داشت، پس ممکن است نرمتر از خواستهات برگردد.
چهار محدودیت سخت باقی میمانند: محتوای جنسی با حضور افراد زیر ۱۸ سال، محتوای جنسی دربارهٔ افراد واقعی، آسیبهای کشتار جمعی و هدف قرار دادن یک فرد واقعی. پرامپتی که از یکی از اینها رد شود 422 hard_limit میگیرد و هزینهای ندارد. بررسی روی پرامپت انجام میشود؛ محدودیتهای سخت را ببین. میزبان یک مدل هم میتواند درخواستی را رد کند یا نتیجهای را نگه دارد: آن 422 content_refused است، که آن هم رایگان است.
محدودیتها و خطاها
یک کلید میتواند ۶۰ درخواست تصویر در دقیقه بفرستد، در داخل ۱۲۰ درخواست کلی. بیشتر از آن 429 rate_limited با Retry-After است. صفحهٔ خطاها همهٔ کدها را فهرست میکند.
برای آزمودن کدت بدون خرج، sk-nokeep-test را بهعنوان کلید بفرست. همهٔ بررسیهای بالا را اجرا میکند و با یک تصویر یکپیکسلی جواب میدهد.
curl https://nokeep.ai/v1/images/generations \
-H "Authorization: Bearer $NOKEEP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "chroma",
"prompt": "A lighthouse on a rocky coast at dusk",
"n": 2,
"aspect_ratio": "16:9",
"output_format": "png",
"seed": 42
}'