Przejdź do głównej treści
Ten dokument przedstawi sposób integracji z SeeDream Images Generation API, które umożliwia generowanie obrazów SeeDream za pomocą wprowadzonych niestandardowych parametrów.

Proces aplikacji

Aby korzystać z API, należy najpierw przejść do strony SeeDream Images Generation API i złożyć wniosek o odpowiednią usługę. Po wejściu na stronę kliknij przycisk „Acquire”, jak pokazano na obrazku: Jeśli nie jesteś zalogowany lub zarejestrowany, automatycznie zostaniesz przekierowany na stronę logowania, aby zarejestrować się i zalogować. Po zalogowaniu lub rejestracji automatycznie wrócisz na bieżącą stronę. Podczas pierwszej aplikacji otrzymasz darmowy limit, który pozwala na bezpłatne korzystanie z tego API.

Podstawowe użycie

Najpierw zapoznaj się z podstawowym sposobem użycia, czyli wprowadzeniem słowa kluczowego prompt, działania action, rozmiaru obrazu size, aby uzyskać przetworzony wynik. Najpierw musisz przekazać pole action, którego wartość to generate, a następnie musimy wprowadzić słowo kluczowe, szczegóły są następujące:

Można zauważyć, że ustawiliśmy nagłówki żądania, w tym:
  • accept: jakiego formatu odpowiedzi oczekujesz, tutaj wpisz application/json, czyli format JSON.
  • authorization: klucz do wywołania API, po złożeniu wniosku można go bezpośrednio wybrać z rozwijanej listy.
Dodatkowo ustawiono ciało żądania, w tym:
  • prompt: słowo kluczowe.
  • model: model generacji, domyślnie doubao-seedream-4.0.
  • image: informacje o wprowadzonym obrazie, obsługuje URL lub kodowanie Base64. W tym przypadku doubao-seedream-4.5, doubao-seedream-4.0 obsługują pojedyncze lub wiele obrazów, doubao-seededit-3.0-i2i obsługuje tylko pojedynczy obraz, doubao-seededit-3.0-t2i nie obsługuje tego parametru.
  • size: określa informacje o rozmiarze generowanego obrazu, obsługuje dwie metody, które nie mogą być mieszane. Metoda 1 | Określenie rozdzielczości generowanego obrazu i opisanie w prompt proporcji, kształtu lub zastosowania obrazu w naturalnym języku, ostatecznie model oceni rozmiar generowanego obrazu. Metoda 2 | Określenie wartości pikseli szerokości i wysokości generowanego obrazu: domyślna wartość: 2048x2048, w zależności od modelu domyślna wartość może się różnić.
  • seed: ziarno losowe, używane do kontrolowania losowości generowanej treści przez model. Zakres wartości to [-1, 2147483647]. Tylko doubao-seedream-3.0-t2i, doubao-seededit-3.0-i2i obsługują ten parametr.
  • sequential_image_generation: zestaw obrazów: na podstawie wprowadzonych treści generowane są powiązane obrazy. Tylko doubao-seedream-4.5, doubao-seedream-4.0 obsługują ten parametr, domyślnie disabled.
  • stream: kontroluje, czy włączyć tryb strumieniowego wyjścia. Tylko doubao-seedream-4.5, doubao-seedream-4.0 obsługują ten parametr, domyślnie false.
  • guidance_scale: stopień zgodności wyników modelu z prompt, swoboda generowania obrazów, znana również jako waga tekstu; im większa wartość, tym mniejsza swoboda modelu, a większa zgodność z wprowadzonymi słowami kluczowymi. Zakres wartości: [1, 10]. doubao-seedream-3.0-t2i domyślna wartość 2.5, doubao-seededit-3.0-i2i domyślna wartość 5.5, inne nie obsługują.
  • response_format: określa format zwracany dla generowanego obrazu. Domyślnie url, obsługuje również b64_json.
  • watermark: czy dodać znak wodny do generowanego obrazu. Domyślnie true.
  • callback_url: URL, na który mają być zwracane wyniki.
Po dokonaniu wyboru można zauważyć, że po prawej stronie wygenerowano odpowiedni kod, jak pokazano na obrazku:

Kliknij przycisk „Try”, aby przeprowadzić test, jak pokazano na powyższym obrazku, a otrzymasz następujący wynik:
{
  "success": true,
  "task_id": "25027ba3-0430-4a1b-91c8-d2297f19ba73",
  "trace_id": "8043a9e9-692f-43b0-82f7-5890f798be38",
  "data": [
    {
      "prompt": "a white siamese cat",
      "size": "2048x2048",
      "image_url": "https://platform.cdn.acedata.cloud/seedream/3c060029-69b1-406f-a957-fcd55ddc9386.jpg"
    }
  ]
}
Zwrócony wynik zawiera wiele pól, które są opisane poniżej:
  • success, status zadania generowania obrazu.
  • task_id, ID zadania generowania obrazu.
  • trace_id, ID śledzenia generowania obrazu.
  • data, lista wyników zadania generowania obrazu.
    • image_url, link do zadania generowania obrazu.
    • prompt, słowo kluczowe.
    • size: piksele generowanego obrazu.
Można zauważyć, że otrzymaliśmy zadowalające informacje o obrazie, wystarczy, że na podstawie adresu URL obrazu w data uzyskamy wygenerowany obraz SeeDream. Jeśli chcesz wygenerować odpowiedni kod integracyjny, możesz go bezpośrednio skopiować, na przykład kod CURL wygląda następująco:
curl -X POST 'https://api.acedata.cloud/seedream/images' \
-H 'accept: application/json' \
-H 'authorization: Bearer ${token}' \
-H 'content-type: application/json' \
-d '{
  "action": "generate",
  "model": "doubao-seedream-4-0-250828",
  "prompt": "a white siamese cat"
}'

Edytowanie zadań obrazów

Jeśli chcesz edytować konkretny obraz, najpierw parametr image musi zawierać link do obrazu, który ma być edytowany.
  • model: model używany do edytowania obrazu, obecnie obsługuje doubao-seedream-4.5, doubao-seedream-4.0, obsługujące pojedyncze lub wiele obrazów, doubao-seededit-3.0-i2i obsługuje tylko pojedynczy obraz.
  • image: przesyłany obraz do edytowania, jeden lub więcej.
Przykład wypełnienia jest następujący:

Odpowiedni kod:
import requests

url = "https://api.acedata.cloud/flux/images"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "doubao-seedream-4-0-250828",
  "prompt": "Zachowaj pozę modelu i kształt płynącego materiału. Zmień materiał odzieżowy z metalicznego srebra na całkowicie przezroczystą wodę (lub szkło). Przez płynny przepływ widoczne są szczegóły skóry modelu. Efekt światła i cienia zmienia się z odbicia na refrakcję.",
  "image": ["https://ark-project.tos-cn-beijing.volces.com/doc_image/seedream4_5_imageToimage.png"],
  "size": "2K",
  "watermark": False
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Klikając „Uruchom”, można zauważyć, że natychmiast otrzymasz wynik, jak poniżej:
{
    "success": true,
    "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde",
    "trace_id": "131a40c3-2eaf-44c9-af28-c9b408577286",
    "data": [
        {
            "prompt": "Zachowaj pozę modelu i kształt płynącej odzieży w stanie niezmienionym. Zmień materiał odzieży z srebrnego metalu na całkowicie przezroczystą wodę (lub szkło). Przez płynny przepływ widoczne są detale skóry modelu. Efekt światła i cienia zmienia się z odbicia na załamanie.",
            "size": "2048x2048",
            "image_url": "https://platform.cdn.acedata.cloud/seedream/3e88db7e-4771-4f6a-adbd-5ae4590c5d59.jpg"
        }
    ]
}
Można zauważyć, że wygenerowany efekt jest edytowanym efektem oryginalnego obrazu, a wynik jest podobny do powyższego.

Asynchroniczny callback

Ponieważ czas generacji obrazów przez API SeeDream Images Generation jest stosunkowo długi, wynosi około 1-2 minut, jeśli API nie odpowiada przez dłuższy czas, żądanie HTTP będzie utrzymywać połączenie, co prowadzi do dodatkowego zużycia zasobów systemowych, dlatego to API oferuje również wsparcie dla asynchronicznych callbacków. Cały proces wygląda następująco: klient inicjuje żądanie, dodatkowo określając pole callback_url, po wysłaniu żądania API natychmiast zwraca wynik, zawierający informacje o polu task_id, które reprezentuje bieżące ID zadania. Po zakończeniu zadania wynik generowanego obrazu zostanie wysłany do określonego przez klienta callback_url w formie POST JSON, w tym również zawierając pole task_id, dzięki czemu wyniki zadania można powiązać za pomocą ID. Poniżej przyjrzymy się, jak dokładnie to działa na przykładzie. Klikając uruchom, można zauważyć, że natychmiast otrzymuje się wynik, jak poniżej:
{
  "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde"
}
Treść jest następująca:
{
    "success": true,
    "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde",
    "trace_id": "131a40c3-2eaf-44c9-af28-c9b408577286",
    "data": [
        {
            "prompt": "Zachowaj pozę modelu i kształt płynącej odzieży w stanie niezmienionym. Zmień materiał odzieży z srebrnego metalu na całkowicie przezroczystą wodę (lub szkło). Przez płynny przepływ widoczne są detale skóry modelu. Efekt światła i cienia zmienia się z odbicia na załamanie.",
            "size": "2048x2048",
            "image_url": "https://platform.cdn.acedata.cloud/seedream/3e88db7e-4771-4f6a-adbd-5ae4590c5d59.jpg"
        }
    ]
}
Można zauważyć, że w wyniku znajduje się pole task_id, a pozostałe pola są podobne do powyższych, dzięki czemu można powiązać zadanie za pomocą tego pola.

Obsługa błędów

Podczas wywoływania API, jeśli wystąpią błędy, API zwróci odpowiedni kod błędu i informacje. Na przykład:
  • 400 token_mismatched: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
  • 400 api_not_implemented: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
  • 401 invalid_token: Nieautoryzowany, nieprawidłowy lub brakujący token autoryzacyjny.
  • 429 too_many_requests: Zbyt wiele żądań, przekroczono limit szybkości.
  • 500 api_error: Błąd wewnętrzny serwera, coś poszło nie tak na serwerze.

Przykład odpowiedzi błędu

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "pobieranie nie powiodło się"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Wnioski

Dzięki temu dokumentowi zrozumiałeś, jak korzystać z API SeeDream Images Generation, aby generować obrazy na podstawie wprowadzonych podpowiedzi. Mamy nadzieję, że ten dokument pomoże Ci lepiej zintegrować i korzystać z tego API. W razie jakichkolwiek pytań, prosimy o kontakt z naszym zespołem wsparcia technicznego.