Rivya AI-dokumentasjon

Opprett generering

Send inn asynkrone Rivya API-genereringsjobber med model, prompt, params, Idempotency-Key og offentlige responsfelt.

Sist gjennomgått 2026/08/25

Bruk POST /api/v1/generations for å sende inn en asynkron bilde-, video- eller lydgenereringsjobb.

For chatmodeller bruker du Chat API. POST /api/v1/generations oppretter ikke chatøkter eller assistentmeldinger.

Endepunkt

POST https://rivya.ai/api/v1/generations

Påkrevde headers:

Authorization: Bearer rvya_sk_...
Content-Type: application/json

Anbefalt header:

Idempotency-Key: your-unique-request-key

Request body

{
  "model": "z-image",
  "prompt": "A clean editorial product image on a soft studio background",
  "params": {
    "aspect_ratio": "1:1"
  },
  "client_request_id": "order-123-preview"
}

Felter:

  • model: påkrevd offentlig modell-ID

  • prompt: prompttekst, påkrevd av mange modeller

  • params: modellspesifikt parameterobjekt

  • client_request_id: valgfri trace ID fra systemet ditt

Les modell-API-referanse for modellspesifikke params.

Referansefiler i params

For modeller som godtar opplastede referansemedier, kall først Files API. Send deretter opplastingsresultatet gjennom modellens params; ikke legg til et toppnivåfelt kalt files i genereringsforespørselen.

Bruk params.referenceMediaItems for nye integrasjoner:

{
  "model": "nano-banana-2-lite",
  "prompt": "Restyle this product photo for a clean editorial catalog page",
  "params": {
    "referenceMediaItems": [
      {
        "url": "https://...",
        "kind": "image",
        "name": "reference.png",
        "mimeType": "image/png",
        "width": 1024,
        "height": 1024,
        "sizeBytes": 482314,
        "imageDimensionsToken": "image_dimensions_token_from_files_api"
      }
    ]
  }
}

For lyd- eller videoinput som krever varighetsverifisering, inkluder duration_token returnert av /api/v1/files som durationToken på den relaterte referenceMediaItems-oppføringen.

Hvert Image5-referansebilde krever width, height, size_bytes og image_dimensions_token fra det opprinnelige modellbundne svaret fra Files API, sendt som width, height, sizeBytes og imageDimensionsToken. Et manglende, utløpt, avvikende eller klientoppfunnet token avvises før oppgaven opprettes og kreditter reserveres. Layer Decomposition krever i tillegg nøyaktig ett bilde innenfor de dokumenterte geometrigrensene.

Grok Imagine Image 2.0 bruker de samme kravene til signerte bildemetadata. Ikke send noen referanseoppføringer for tekst til bilde; for standard bilderedigering sender du 1–5 unike signerte JPEG-, PNG- eller WebP-oppføringer. Tekst til bilde godtar 1:1, 2:3, 3:2, 16:9 eller 9:16; bilderedigering godtar i tillegg auto. Segment Map og Segment Edit kan ikke kalles som moduser i den offentlige API-en.

Hver Video8-referansevideo krever duration_seconds, duration_token, video_width, video_height, frames_per_second, video_bitrate_mbps, video_file_size_bytes og video_metadata_token fra det opprinnelige modellbundne svaret. Send dem som durationSeconds, durationToken, width, height, framesPerSecond, videoBitrateMbps, sizeBytes og videoMetadataToken. Begge de signerte tokenene verifiseres før oppgaven opprettes og kreditter reserveres.

Wan 3.0 bruker tre gjensidig utelukkende verdier for seedance_scene. text godtar ingen opplastede medier; frames krever et første bilde og tillater ett valgfritt siste bilde; reference godtar en signert samling av bilder, videoer og lyd, men lyd kan ikke være det eneste mediet. Alle referanse-URL-er må komme fra opprinnelige modellbundne opplastinger i Files API. Snarveier fra fil til video og fra lenke til video forblir utilgjengelige.

Sett variant til standard eller prime, resolution til 480P, 720P eller 1080P, og aspect_ratio til adaptive, 16:9, 4:3, 1:1, 3:4 eller 9:16. duration godtar heltall fra 2 til 30 eller -1 for intelligent varighet; audio styrer modellskapt lyd, og seed godtar 0 til 2147483647. Den trimmede prompten må inneholde 1–20 000 tegn.

Wan 3.0 Standard reserverer 8, 16 eller 32 kreditter per forespurte resultatsekund ved 480P, 720P eller 1080P. Prime reserverer 12,2, 25,2 eller 50,4 kreditter per sekund. Rivya runder den samlede reservasjonen opp én gang; intelligent varighet reserverer 30 sekunder. Gyldig faktisk bruk som ikke overstiger reservasjonen, avregnes og differansen refunderes. Hvis faktisk bruk mangler, er ugyldig eller høyere, beholdes reservasjonen og går til avstemming uten skjult ekstra belastning.

I Wan 3.0-referansemodus kan du sende maksimalt 10 bilder, 5 videoer og 5 lydklipp. Video- og lydklipp kan være 1–15 sekunder hver, og hver type har en separat totalgrense på 15 sekunder. duration=-1 kan ikke brukes med referansevideo; med videoinput må verifiserte sekunder for inputvideoen pluss forespurte utgangssekunder ikke overstige 30.

Eksempel på en Video8-forespørsel for en leppesynkroniseringsoppgave med video og lyd:

{
  "model": "volcengine-video-lip-sync",
  "prompt": "",
  "params": {
    "mode": "lite",
    "separate_vocal": "false",
    "open_scenedet": "false",
    "referenceMediaItems": [
      {
        "url": "https://.../source.mov",
        "kind": "video",
        "name": "source.mov",
        "mimeType": "video/quicktime",
        "durationSeconds": 12.4,
        "durationToken": "duration_token_from_files_api",
        "width": 1920,
        "height": 1080,
        "framesPerSecond": 30,
        "videoBitrateMbps": 8.5,
        "sizeBytes": 26214400,
        "videoMetadataToken": "video_metadata_token_from_files_api"
      },
      {
        "url": "https://.../dialogue.wav",
        "kind": "audio",
        "name": "dialogue.wav",
        "mimeType": "audio/wav",
        "durationSeconds": 12.4,
        "durationToken": "audio_duration_token_from_files_api"
      }
    ]
  }
}

curl-eksempel

curl https://rivya.ai/api/v1/generations \
  -H "Authorization: Bearer rvya_sk_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: product-preview-001" \
  -d '{
    "model": "z-image",
    "prompt": "A clean editorial product image on a soft studio background",
    "params": {
      "aspect_ratio": "1:1"
    }
  }'

JavaScript-eksempel

const response = await fetch("https://rivya.ai/api/v1/generations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.RIVYA_API_KEY}`,
    "Content-Type": "application/json",
    "Idempotency-Key": "product-preview-001"
  },
  body: JSON.stringify({
    model: "z-image",
    prompt: "A clean editorial product image on a soft studio background",
    params: { aspect_ratio: "1:1" }
  })
});

const generation = await response.json();
console.log(generation.id, generation.status);

Python-eksempel

import os
import requests

response = requests.post(
    "https://rivya.ai/api/v1/generations",
    headers={
        "Authorization": f"Bearer {os.environ['RIVYA_API_KEY']}",
        "Content-Type": "application/json",
        "Idempotency-Key": "product-preview-001",
    },
    json={
        "model": "z-image",
        "prompt": "A clean editorial product image on a soft studio background",
        "params": {"aspect_ratio": "1:1"},
    },
    timeout=30,
)

generation = response.json()
print(generation["id"], generation["status"])

Respons

{
  "id": "task_public_id",
  "status": "queued",
  "model": "z-image",
  "reserved_credits": 1,
  "final_credits": 0,
  "created_at": "2026-05-10T00:00:00.000Z",
  "updated_at": "2026-05-10T00:00:00.000Z",
  "result": null,
  "error": null
}

Lagre id, og kontroller genereringsstatus med jevne mellomrom. Hvis du konfigurerer API-webhooks, kan Rivya også sende en signert generation.succeeded- eller generation.failed-hendelse når oppgaven når en endelig tilstand.

Idempotens

Bruk Idempotency-Key for retries. Hvis samme nøkkel og samme request body spilles av på nytt, kan Rivya returnere den lagrede offentlige responsen i stedet for å opprette en duplikatoppgave.

Hvis den samme nøkkelen gjenbrukes med andre inndata, returnerer API-et idempotency_conflict.

Relaterte sider