Seedream 5.0 Lite API: najszybszy endpoint do generowania obrazów
Przewodnik dla deweloperów po Seedream 5.0 Lite API: uwierzytelnianie, endpointy, parametry żądań, przykłady kodu w Python i JavaScript, generowanie wsadowe, webhooks oraz najlepsze praktyki.

REST API, autoryzacja Bearer, generowanie asynchroniczne, webhooki, natywne przetwarzanie wsadowe do 50 obrazów na żądanie. Wszystko dostępne w interfejsie webowym Arteza jest również w API. Poniżej pełna dokumentacja z działającymi przykładami w Pythonie i JavaScripcie, które możesz od razu skopiować do produkcji.
TL;DR
- POST /v1/images/generate - endpoint dla pojedynczego obrazu
- POST /v1/images/batch - do 50 obrazów na żądanie
- Średnie opóźnienie ~5-15 sekund z obsługą asynchroniczną i webhookami
- Zestawy SDK dla Pythona i JavaScriptu dostępne (
seedance/@seedance/sdk) - Autoryzacja tokenem Bearer - generuj klucze w Ustawienia > Klucze API
Przegląd API
API Seedream 5.0 Lite zapewnia programowy dostęp do potoku generowania obrazów na platformie Arteza. Wszystko, co jest dostępne w interfejsie webowym, czyli generowanie tekstu na obraz, głębokie myślenie, transfer stylu i renderowanie tekstu, jest dostępne również przez REST API.
API jest zgodne z konwencjami REST i używa formatu JSON dla treści żądań i odpowiedzi. Generowanie odbywa się asynchronicznie: wysyłasz żądanie, otrzymujesz identyfikator zadania, a następnie albo odpytujesz serwer, albo odbierasz webhook po zakończeniu.
Pełny przegląd funkcji znajdziesz w naszej kompletny przewodnik.
Sprawdź renderowanie tekstu na własne oczy
Jedyny model AI, który poprawnie renderuje tekst. 0,10 dolara za obraz, darmowe kredyty.
Wypróbuj Seedream 5.0 Lite za darmoBazowy URL
https://api.arteza.ai/v1
Kluczowe cechy
| Cecha | Szczegóły |
|---|---|
| Protokół | HTTPS REST |
| Format żądania | JSON |
| Format odpowiedzi | JSON |
| Uwierzytelnianie | Token Bearer |
| Model generowania | Asynchroniczny |
| Średnie opóźnienie | 5-15 sekund |
| Obsługa wsadowa | Tak (do 50 na żądanie) |
| Obsługa webhooków | Tak |
| Zestawy SDK | Python, JavaScript |
5 bezpłatnych generacji · Bez wymaganej karty kredytowej
Uwierzytelnianie
Uwierzytelnianie za pomocą tokenu Bearer. Wygeneruj klucz API w panelu Arteza w sekcji Ustawienia > Klucze API.
Jak uzyskać klucz API
- Zarejestruj się lub zaloguj się na swoje konto Arteza
- Przejdź do Ustawienia > Klucze API
- Kliknij Wygeneruj nowy klucz
- Skopiuj klucz i przechowaj go w bezpiecznym miejscu (wyświetlany tylko raz)
Nagłówek uwierzytelniający
Authorization: Bearer TWÓJ_KLUCZ_API
Testowanie uwierzytelniania
curl -H "Authorization: Bearer TWÓJ_KLUCZ_API" \
https://api.arteza.ai/v1/account/credits
Odpowiedź:
{
"credits_remaining": 1050,
"tier": "starter"
}
Endpoint dla pojedynczego obrazu
POST /v1/images/generate
Minimalne żądanie
{
"model": "seedream-5.0-lite",
"prompt": "A serene mountain landscape at sunrise"
}
Pełne żądanie
{
"model": "seedream-5.0-lite",
"prompt": "Professional YouTube thumbnail with text 'TOP 10 TIPS' in bold red font, excited person on left, bright blue background",
"aspect_ratio": "16:9",
"deep_thinking": true,
"style": "photorealistic",
"webhook_url": "https://your-app.com/webhook/image-complete",
"metadata": {
"project": "youtube-thumbnails",
"batch_id": "thumb-2026-04"
}
}
Odpowiedź
{
"task_id": "img_abc123def456",
"status": "processing",
"model": "seedream-5.0-lite",
"credits_charged": 7,
"credits_remaining": 1043,
"estimated_time_seconds": 10
}
Parametry żądania
| Parametr | Typ | Wymagany | Domyślny | Opis |
|---|---|---|---|---|
model | string | Tak | - | Identyfikator modelu: seedream-5.0-lite |
prompt | string | Tak | - | Opis tekstowy (maks. 1000 znaków) |
aspect_ratio | string | Nie | 1:1 | Proporcje wyjściowe |
deep_thinking | boolean | Nie | false | Włącz tryb głębokiego myślenia |
style | string | Nie | auto | Preset stylu lub opis |
colors | array | Nie | - | Paleta kolorów (kody hex) |
webhook_url | string | Nie | - | URL do powiadomienia o zakończeniu |
metadata | object | Nie | - | Niestandardowe metadane (zwracane z wynikami) |
Proporcje obrazu
| Wartość | Rozdzielczość | Zastosowanie |
|---|---|---|
1:1 | 1024x1024 | Media społecznościowe, zdjęcia produktów |
16:9 | 1360x768 | Miniatury, prezentacje, banery |
9:16 | 768x1360 | Stories, tapety na telefon |
4:3 | 1184x888 | Zdjęcia na bloga, nagłówki e-mail |
3:4 | 888x1184 | Pinterest, portrety |
3:2 | 1248x832 | Styl fotograficzny |
Presety stylu
| Preset | Opis |
|---|---|
auto | Model wybiera najlepszy styl na podstawie promptu |
photorealistic | Styl realistycznej fotografii |
digital-art | Czysta ilustracja cyfrowa |
watercolor | Efekt akwareli |
oil-painting | Klasyczny obraz olejny |
anime | Styl japońskiej animacji |
minimalist | Czysty, minimalistyczny design |
retro | Estetyka vintage/retro |
Format odpowiedzi
Odpytywanie o wyniki
GET /v1/images/{task_id}
W trakcie przetwarzania:
{
"task_id": "img_abc123def456",
"status": "processing",
"progress": 0.65,
"estimated_time_remaining": 5
}
Zakończone:
{
"task_id": "img_abc123def456",
"status": "completed",
"image_url": "https://cdn.arteza.ai/generated/img_abc123def456.png",
"image_url_webp": "https://cdn.arteza.ai/generated/img_abc123def456.webp",
"width": 1024,
"height": 1024,
"model": "seedream-5.0-lite",
"deep_thinking_used": true,
"credits_charged": 7,
"metadata": {
"project": "youtube-thumbnails",
"batch_id": "thumb-2026-04"
},
"created_at": "2026-04-10T14:30:00Z"
}
Wygaśnięcie adresu URL obrazu
Wygenerowane adresy URL obrazów są ważne przez 24 godziny. Pobierz i zapisz obrazy we własnym miejscu przechowywania w tym czasie.

Chcesz tak czysty tekst? Wypróbuj Seedream 5.0 Lite za darmo →
Przykład w Pythonie
import requests
import time
API_KEY = "your_api_key_here"
BASE_URL = "https://api.arteza.ai/v1"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
# Wyślij żądanie generowania
response = requests.post(
f"{BASE_URL}/images/generate",
headers=headers,
json={
"model": "seedream-5.0-lite",
"prompt": "A futuristic city skyline at sunset with flying cars",
"aspect_ratio": "16:9",
"deep_thinking": True
}
)
task = response.json()
task_id = task["task_id"]
print(f"Zadanie przesłane: {task_id}")
print(f"Pobrane kredyty: {task['credits_charged']}")
print(f"Pozostałe kredyty: {task['credits_remaining']}")
# Odpytuj o zakończenie
while True:
result = requests.get(
f"{BASE_URL}/images/{task_id}",
headers=headers
).json()
if result["status"] == "completed":
print(f"Obraz gotowy: {result['image_url']}")
break
elif result["status"] == "failed":
print(f"Generowanie nie powiodło się: {result.get('error', 'Unknown error')}")
break
time.sleep(2)
Przykład w JavaScripcie
const API_KEY = 'your_api_key_here';
const BASE_URL = 'https://api.arteza.ai/v1';
async function generateImage(prompt, options = {}) {
const response = await fetch(`${BASE_URL}/images/generate`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'seedream-5.0-lite',
prompt,
aspect_ratio: options.aspectRatio || '1:1',
deep_thinking: options.deepThinking || false,
...options
})
});
const task = await response.json();
console.log(`Zadanie przesłane: ${task.task_id}`);
while (true) {
const result = await fetch(
`${BASE_URL}/images/${task.task_id}`,
{ headers: { 'Authorization': `Bearer ${API_KEY}` } }
).then(r => r.json());
if (result.status === 'completed') {
return result;
}
if (result.status === 'failed') {
throw new Error(result.error || 'Generation failed');
}
await new Promise(resolve => setTimeout(resolve, 2000));
}
}
// Użycie
const result = await generateImage(
'A cozy coffee shop interior with warm lighting',
{ aspectRatio: '16:9', deepThinking: true }
);
console.log(`URL obrazu: ${result.image_url}`);
Pobieranie wygenerowanych obrazów
import requests
def download_image(image_url, filename):
response = requests.get(image_url)
with open(filename, 'wb') as f:
f.write(response.content)
print(f"Zapisano: {filename}")
download_image(result['image_url'], 'output/my_image.png')
Endpoint generowania wsadowego
Dla wielu obrazów w jednym żądaniu:
POST /v1/images/batch
Żądanie wsadowe
{
"generations": [
{
"prompt": "Minimalist logo design, blue circle with lightning bolt",
"model": "seedream-5.0-lite",
"aspect_ratio": "1:1",
"deep_thinking": true
},
{
"prompt": "Professional headshot background, soft gradient",
"model": "seedream-5.0-lite",
"aspect_ratio": "1:1",
"deep_thinking": false
},
{
"prompt": "YouTube thumbnail with text 'MUST WATCH' in red",
"model": "seedream-5.0-lite",
"aspect_ratio": "16:9",
"deep_thinking": true
}
],
"webhook_url": "https://your-app.com/webhook/batch-complete"
}
Odpowiedź wsadowa
{
"batch_id": "batch_xyz789",
"status": "processing",
"total_generations": 3,
"total_credits_charged": 21,
"credits_remaining": 1029
}
Odpytywanie o status partii
GET /v1/images/batch/{batch_id}
{
"batch_id": "batch_xyz789",
"status": "completed",
"results": [
{
"index": 0,
"status": "completed",
"task_id": "img_001",
"image_url": "https://cdn.arteza.ai/generated/img_001.png"
},
{
"index": 1,
"status": "completed",
"task_id": "img_002",
"image_url": "https://cdn.arteza.ai/generated/img_002.png"
},
{
"index": 2,
"status": "completed",
"task_id": "img_003",
"image_url": "https://cdn.arteza.ai/generated/img_003.png"
}
]
}
Limity wsadowe
| Limit | Wartość |
|---|---|
| Maks. generowań na partię | 50 |
| Maks. równoczesnych partii | 5 |
| Maks. długość promptu | 1000 znaków |
| Limit czasu partii | 5 minut |
W przypadku przepływów pracy wsadowych zapoznaj się z naszą przewodnik po generowaniu zbiorczym.
Integracja webhooków
Webhooki eliminują konieczność odpytywania serwera. Gdy generowanie zostanie zakończone, API wysyła żądanie POST na podany adres URL.
Payload webhooka
{
"event": "image.completed",
"task_id": "img_abc123def456",
"batch_id": "batch_xyz789",
"status": "completed",
"image_url": "https://cdn.arteza.ai/generated/img_abc123def456.png",
"model": "seedream-5.0-lite",
"credits_charged": 7,
"metadata": {
"project": "youtube-thumbnails"
},
"created_at": "2026-04-10T14:30:00Z"
}
Przykład obsługi (Python/Flask)
from flask import Flask, request, jsonify
import requests
app = Flask(__name__)
@app.route('/webhook/image-complete', methods=['POST'])
def handle_image_webhook():
data = request.json
if data['event'] == 'image.completed':
task_id = data['task_id']
image_url = data['image_url']
metadata = data.get('metadata', {})
# Pobierz obraz
img_response = requests.get(image_url)
filename = f"images/{metadata.get('project', 'default')}/{task_id}.png"
with open(filename, 'wb') as f:
f.write(img_response.content)
# Zaktualizuj swoją bazę danych
update_generation_record(task_id, filename)
print(f"Obraz zapisany: {filename}")
elif data['event'] == 'image.failed':
print(f"Generowanie nie powiodło się: {data.get('error')}")
return jsonify({'status': 'ok'}), 200
Bezpieczeństwo webhooków
Weryfikuj autentyczność webhooka za pomocą nagłówka X-Seedance-Signature:
import hmac
import hashlib
def verify_webhook(payload, signature, secret):
expected = hmac.new(
secret.encode(),
payload.encode(),
hashlib.sha256
).hexdigest()
return hmac.compare_digest(expected, signature)
Tryb głębokiego myślenia
Sterowany parametrem boolean deep_thinking. Po włączeniu model wykonuje dodatkowe wnioskowanie przed generowaniem.
Kiedy go włączać
| Scenariusz | Zalecenie |
|---|---|
| Proste obrazy z jednym obiektem | false |
| Złożone sceny z wieloma elementami | true |
| Obrazy z tekstem | true |
| Specyficzne układy przestrzenne | true |
| Obrazy abstrakcyjne/konceptualne | true |
| Partia prostych obrazów | false (maksymalna przepustowość) |
Wpływ na wydajność
| Tryb | Średni czas generowania | Poprawa jakości |
|---|---|---|
Standardowy (false) | ~5-10 sekund | Poziom bazowy |
Głębokie myślenie (true) | ~8-15 sekund | Znacząca dla złożonych promptów |
Głębokie myślenie wydłuża czas o około 3-5 sekund, ale nie kosztuje żadnych dodatkowych kredytów.
Przetwarzaj do 50 obrazów na żądanie
Natywne webhooki, generowanie asynchroniczne, perfekcyjne renderowanie tekstu. Pobierz darmowe kredyty i swój klucz API.
Pobierz swój klucz APIObsługa błędów
Format odpowiedzi z błędem
{
"error": {
"code": "insufficient_credits",
"message": "Not enough credits to complete this generation. Required: 7, Available: 3",
"status": 402
}
}
Kody błędów
| Kod | Status | Opis | Rozwiązanie |
|---|---|---|---|
invalid_api_key | 401 | Klucz API nieważny lub wygasły | Wygeneruj ponownie w panelu |
insufficient_credits | 402 | Za mało kredytów | Doładuj konto na /pricing |
invalid_model | 400 | Nierozpoznany identyfikator modelu | Użyj seedream-5.0-lite |
invalid_prompt | 400 | Prompt pusty lub zbyt długi | Sprawdź długość (maks. 1000) |
invalid_aspect_ratio | 400 | Nieobsługiwane proporcje obrazu | Użyj obsługiwanych wartości |
rate_limited | 429 | Zbyt wiele żądań | Zastosuj mechanizm wycofania |
content_policy | 400 | Prompt narusza zasady | Zmodyfikuj prompt |
generation_failed | 500 | Wewnętrzny błąd generowania | Ponów żądanie |
batch_too_large | 400 | Partia przekracza 50 elementów | Podziel na mniejsze partie |
Strategia ponawiania prób
import time
def generate_with_retry(prompt, max_retries=3):
for attempt in range(max_retries):
try:
response = requests.post(
f"{BASE_URL}/images/generate",
headers=headers,
json={
"model": "seedream-5.0-lite",
"prompt": prompt
}
)
if response.status_code == 429:
retry_after = int(response.headers.get('Retry-After', 5))
time.sleep(retry_after)
continue
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
if attempt == max_retries - 1:
raise
time.sleep(2 ** attempt) # Wykładnicze wycofanie
Limity i najlepsze praktyki
Limity według planu
| Plan | Żądania/minutę | Równocześnie | Rozmiar partii |
|---|---|---|---|
| Darmowy | 10 | 2 | 5 |
| Starter | 30 | 5 | 20 |
| Popular | 60 | 10 | 30 |
| Pro | 120 | 20 | 50 |
| Enterprise | 240 | 50 | 50 |
Najlepsze praktyki
- Używaj webhooków zamiast odpytywania - bardziej wydajne
- Korzystaj z przetwarzania wsadowego, gdy to możliwe - jedno żądanie wsadowe jest lepsze niż 50 osobnych
- Wykładnicze wycofanie - obsługuj limity żądań z gracją
- Buforuj wyniki - przechowuj adresy URL obrazów i metadane w swojej bazie danych
- Pobieraj niezwłocznie - adresy URL obrazów wygasają po 24 godzinach
- Monitoruj saldo kredytów - sprawdzaj
credits_remaining, aby uniknąć przerw - Używaj metadanych - oznaczaj generowania identyfikatorami projektów w celu śledzenia
- Obsługuj błędy z gracją - nie każde generowanie kończy się sukcesem
Instalacja SDK
Python:
pip install seedance
from seedance import SeedanceClient
client = SeedanceClient(api_key="your_key")
result = client.images.generate(
model="seedream-5.0-lite",
prompt="A beautiful sunset",
deep_thinking=True
)
JavaScript:
npm install @seedance/sdk
import { SeedanceClient } from '@seedance/sdk';
const client = new SeedanceClient({ apiKey: 'your_key' });
const result = await client.images.generate({
model: 'seedream-5.0-lite',
prompt: 'A beautiful sunset',
deepThinking: true
});
Typowe wzorce integracji
Integracja z CMS
Automatyczne generowanie obrazów wyróżnionych podczas tworzenia wpisu:
@app.route('/cms/webhook/new-post', methods=['POST'])
def handle_new_post():
post = request.json
result = generate_image(
prompt=f"Blog header image for article about {post['title']}, "
f"professional editorial style, 16:9",
aspect_ratio="16:9",
deep_thinking=True,
metadata={"post_id": post["id"]}
)
update_post_featured_image(post["id"], result["image_url"])
Zdjęcia produktów dla e-commerce
def generate_product_images(product):
prompts = [
f"Product photo of {product.name}, white background, studio lighting, 1:1",
f"Lifestyle photo of {product.name} in use, natural setting, 16:9",
f"Product detail close-up of {product.name}, macro photography, 1:1"
]
batch = client.images.batch_generate(
generations=[
{"model": "seedream-5.0-lite", "prompt": p}
for p in prompts
]
)
return batch
Automatyzacja mediów społecznościowych
def generate_weekly_social_content(brand, topics):
generations = []
for topic in topics:
generations.append({
"model": "seedream-5.0-lite",
"prompt": f"{brand.style_prefix} {topic}, social media post, 1:1",
"aspect_ratio": "1:1",
"deep_thinking": True,
"metadata": {"topic": topic, "platform": "instagram"}
})
return client.images.batch_generate(generations=generations)
API Seedream 5.0 Lite to najszybsza droga od promptu tekstowego do wygenerowanego obrazu, z pełną obsługą głębokiego myślenia, generowania wsadowego i integracji webhooków.
Uzyskaj swój klucz API → - 10 darmowych kredytów, wygeneruj swój klucz w Ustawienia > Klucze API i zacznij budować w kilka minut.
Wypróbuj Seedream 5.0 Lite - Już teraz
5 bezpłatnych generacji · Bez wymaganej karty kredytowej