پرش به محتوا
همه مستندات

مرجع

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الزامیآنچه باید کشیده شود، همان‌طور که نوشته‌ای برای مدل فرستاده می‌شود. بیش از حد مجاز مدل رد می‌شود و هرگز بریده نمی‌شود.
sizeWIDTHxHEIGHT یا autoاندازهٔ تصویر. پیش‌فرض 1024x1024 است. اندازه‌ها را ببین.
aspect_ratio1:1، 3:2، 2:3، 4:3، 3:4، 4:5، 16:9، 9:16، 21:9یک شکل به‌جای size. وقتی هر دو فرستاده شوند، این یکی برنده است.
n۱ تا ۴چند تصویر. برای آن‌هایی که برمی‌گردند پول می‌دهی.
response_formatb64_json یا urlپیش‌فرض b64_json است. url یک URL از نوع data: برمی‌گرداند، نه پیوند به یک فایل ذخیره‌شده.
output_formatwebp، png یا jpegپیش‌فرض webp است.
resolution1K یا 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 در پاسخ همیشه می‌گوید چه گرفته‌ای.

پاسخ

JSON
{
  "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
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
}'