Generare imagini cu Venice

Ce face

venice-image-generate acoperă generarea de imagini din prompt text prin Venice.

Endpoint-uri relevante:

  1. POST /api/v1/image/generate — endpoint Venice-native, cu control complet.
  2. POST /api/v1/images/generations — endpoint OpenAI-compatible, util pentru cod existent bazat pe openai.images.generate().
  3. GET /api/v1/image/styles — listează presetările disponibile pentru style_preset.

Pentru editare, upscale, inpainting modern, background removal sau input cu imagini existente, folosește capabilitatea separată de image editing. Câmpul vechi inpaint este deprecated și nu trebuie folosit.

Pe scurt: trimiți modelul, promptul și parametrii de imagine; Venice întoarce fie JSON cu imagini base64, fie un răspuns binar image/*, în funcție de return_binary.

All guides

Când îmi folosește

Folosește această capabilitate când vrei să generezi imagini din text, să ceri variante multiple într-un singur call, să fixezi un seed pentru comparații repetabile sau să migrezi cod OpenAI Images către Venice cu schimbări minime.

Endpoint-ul Venice-native este potrivit când ai nevoie de controale precum negative_prompt, cfg_scale, seed, variants, style_preset, width, height, aspect_ratio, resolution, format, safe_mode sau hide_watermark.

Endpoint-ul OpenAI-compatible este potrivit pentru integrare rapidă cu SDK-ul OpenAI. Are mai puține controale: dacă ai nevoie de variants, seed, negative_prompt, cfg_scale sau style_preset, folosește /image/generate.

Cum îl invoc / declanșez

Invocarea exactă depinde de runtime-ul în care rulezi. Sursa definește API-ul, nu o comandă universală de chat sau CLI.

Pentru Venice-native:

curl https://api.venice.ai/api/v1/image/generate \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "z-image-turbo",
    "prompt": "A beautiful sunset over a mountain range",
    "width": 1024,
    "height": 1024,
    "cfg_scale": 7.5,
    "steps": 8,
    "seed": 123456789,
    "variants": 1,
    "format": "webp",
    "style_preset": "3D Model",
    "safe_mode": true
  }'

Pentru presetări:

curl https://api.venice.ai/api/v1/image/styles \
  -H "Authorization: Bearer $VENICE_API_KEY"

Pentru modele:

curl "https://api.venice.ai/api/v1/models?type=image" \
  -H "Authorization: Bearer $VENICE_API_KEY"

Nu pune cheia API în documentație, commit-uri, capturi de ecran, loguri publice sau mesaje partajate. Verifică modelul și constrângerile lui înainte să alegi dimensiuni sau rezoluție.

Exemplu practic

Pattern bun pentru testare comparabilă:

{
  "model": "z-image-turbo",
  "prompt": "a red sports car in a parking lot",
  "negative_prompt": "blurry, people, clouds",
  "seed": 42,
  "variants": 4,
  "style_preset": "3D Model",
  "format": "webp",
  "safe_mode": true
}

Asta cere patru variante ale aceleiași idei. seed stabilizează direcția randomizării, iar negative_prompt descrie ce nu vrei să apară.

Pentru modele care folosesc sizing prin aspect ratio și rezoluție:

{
  "model": "nano-banana-2",
  "prompt": "...",
  "aspect_ratio": "16:9",
  "resolution": "2K"
}

Verifică mereu ID-ul curent prin GET /models?type=image; modelele și constrângerile se pot schimba. Alege modelul după combinația de feature-uri și dimensiuni de care ai nevoie.

Output / unde aterizează

Cu return_binary: false, răspunsul este JSON:

{
  "id": "...",
  "images": ["<base64>", "<base64>"],
  "timing": {},
  "request": {}
}

Imaginea este în images[], encodată base64.

Cu return_binary: true, răspunsul este imagine brută cu Content-Type de tip image/webp, image/png sau image/jpeg, în funcție de format. În acest caz o scrii direct pe disk sau în storage din codul tău.

În endpoint-ul OpenAI-compatible, response_format: "b64_json" întoarce base64. response_format: "url" întoarce un data: URL, nu un URL găzduit.

Limite / gotchas

Fiecare model are propriul idiom de dimensiuni: width/height, aspect_ratio plus resolution, sau size pentru OpenAI-compatible. Uită-te în model_spec.constraints.

width și height trebuie să fie cel mult 1280 fiecare și divizibile cu constraints.widthHeightDivisor.

variants este între 1 și 4, dar variants > 1 cere return_binary: false.

prompt și negative_prompt sunt limitate de constraints.promptCharacterLimit, de obicei între 1500 și 7500 de caractere.

steps poate fi ignorat de modele rapide sau turbo; unele au pasul intern hardcodat.

safe_mode este implicit true și blur-ează conținut adult. hide_watermark: true este doar o cerere; Venice poate păstra watermark pentru conținut detectat de clasificatoarele de siguranță.

Erori tipice: 400 pentru parametri greșiți sau policy violations, 401 pentru auth sau model Pro-only, 402 pentru balance insuficient, 415 pentru Content-Type greșit, 429 pentru rate limit, 500/503 pentru inference sau capacity issues. Retry cu jitter pentru 500/503; nu retrimite la nesfârșit cereri care eșuează din policy sau parametri.