Skip to main content
La génération d’images sur Venice est synchrone. Envoyez un prompt à /image/generate et recevez votre image dans la même réponse, soit en base64 dans un JSON, soit sous forme binaire brute lorsque return_binary est true.

Endpoints

Étape 1 : Envoyer une requête de génération

Le dimensionnement est spécifique au modèle. Certains modèles acceptent width et height explicites ; d’autres exposent aspect_ratio ; et les modèles à paliers de résolution exposent aspect_ratio plus des valeurs resolution telles que 1K, 2K ou 4K.
qwen-image, qwen-image-3, qwen-image-3-pro, qwen-image-2-1-turbo et qwen-image-2-1-pro n’acceptent plus width ni height. L’envoi de l’un ou l’autre renvoie 400 avec “width and height are no longer supported for this model. Use aspect_ratio instead.” Vérifiez model_spec.constraints depuis GET /models?type=image avant de choisir les champs de dimensionnement.
Exemple de dimensionnement basé sur les pixels :
Exemple de dimensionnement par ratio d’aspect :
Exemple de dimensionnement par palier de résolution :
Le même schéma s’applique aux autres modèles à paliers de résolution :
Utilisez Modèles d’image ou l’API Models pour confirmer quels champs de dimensionnement chaque modèle accepte. Réponse (200) :
Le tableau images contient des données d’image encodées en base64. Décodez le premier élément pour l’enregistrer ou l’afficher. timing.total correspond à la durée complète de la requête en millisecondes.

Étape 2 : Décoder et enregistrer l’image

Étape 3 : Renvoyer du binaire au lieu de JSON (optionnel)

Si vous souhaitez que le corps de la réponse soit le fichier image lui-même, définissez return_binary: true. C’est utile lorsque vous voulez diffuser ou enregistrer l’image directement sans décodage base64.
Lorsque return_binary est true, le corps de la réponse correspond à des données brutes image/jpeg, image/png ou image/webp selon le format que vous avez demandé.
variants n’est pris en charge que lorsque return_binary est false.

Étape 4 : Lister les styles d’image disponibles (optionnel)

Si vous souhaitez utiliser style_preset, récupérez d’abord les styles disponibles depuis /image/styles :
Cet endpoint est public et ne nécessite pas de clé API. Réponse (200) :
Les noms de styles se trouvent dans data, pas au niveau supérieur — lisez response.data plutôt que d’itérer directement sur l’objet de réponse. Puis transmettez l’une de ces valeurs dans votre requête de génération :
Utilisez l’endpoint des styles lorsque vous voulez les noms exacts des presets plutôt que de les deviner.

Paramètres de la requête

La validation est spécifique au modèle. Consultez Modèles d’image et l’API Models avant de compter sur un paramètre à travers plusieurs modèles.

Options spécifiques aux modèles

Génération haute résolution

Certains modèles d’image prennent en charge aspect_ratio sans palier resolution sélectionnable. Par exemple, qwen-image-2 accepte le ratio d’aspect et le mappe à des dimensions de sortie spécifiques au modèle :
D’autres modèles d’image prennent en charge aspect_ratio plus un palier resolution. Par exemple, gpt-image-2, nano-banana-2 et nano-banana-pro prennent en charge 1K, 2K et 4K :
Utilisez Modèles d’image pour voir quels modèles prennent en charge des résolutions plus élevées et comment ils sont tarifés.

Contenu adulte et mode sûr

safe_mode contrôle si le contenu adulte présent dans la sortie de génération est flouté. La valeur par défaut est true : les images classées comme adultes sont donc renvoyées floutées, sauf si vous envoyez safe_mode: false :
Les images pour adultes (NSFW) non floutées sont disponibles pour tous les utilisateurs de l’API. Vous n’avez pas besoin d’un abonnement Pro, et le paramètre de filtre de contenu mature dans l’application Venice n’affecte pas les requêtes d’image effectuées via l’API. Certains modèles d’image sont spécifiquement conçus pour la génération adulte / non censurée et se combinent bien avec safe_mode: false. Parmi les exemples figurant sur la page de tarification, on trouve lustify-sdxl, lustify-v7 et lustify-v8. Voir Modèles d’image et Tarification pour la liste actuelle et les coûts par modèle. Pour l’édition d’images existantes, le modèle d’édition par défaut est firered-image-edit. Les politiques de contenu varient selon le modèle d’édition ; si vous avez besoin d’une édition non censurée, utilisez qwen-edit-uncensored via Édition d’image. Lorsque safe_mode est activé et que le modèle renvoie une sortie floutée ou modérée, inspectez les en-têtes de réponse x-venice-is-blurred et x-venice-is-content-violation si vous avez besoin de détecter cela de manière programmatique.
Vous utilisez une application tierce ? Les images pour adultes restent floutées sauf si l’application envoie safe_mode: false, ou moderation: "low" sur l’endpoint compatible OpenAI (voir ci-dessous).

Presets de style

Si le modèle sélectionné le prend en charge, style_preset vous permet d’orienter la sortie sans réécrire l’intégralité de votre prompt. Vous pouvez récupérer les noms valides des presets depuis Image Styles :
Voir Image Styles pour la liste actuelle des styles.

Références de style

style_references va plus loin que style_preset : au lieu d’un preset nommé, il conditionne la génération à une ou plusieurs images de référence. Chaque entrée comporte un image et un strength optionnel :
La prise en charge dépend du modèle. Consultez GET /models?type=image :
  • model_spec.supportsStyleReferences vaut true uniquement pour les modèles qui acceptent ce champ.
  • model_spec.constraints.maxStyleReferences indique le nombre d’entrées acceptées par le modèle.
  • model_spec.constraints.supportsStyleReferenceStrength indique si strength a un effet.
Envoyer style_references à un modèle qui ne le prend pas en charge renvoie 400, tout comme le dépassement de la limite du modèle ou l’envoi d’une référence corrompue, inaccessible ou trop volumineuse. Certains modèles, par exemple Krea v2 Large et Krea v2 Medium, facturent des frais de référence de style pour chaque image renvoyée, en plus du prix de base de l’image. Ces frais ne sont facturés que pour les images effectivement renvoyées. Voir Modèles d’image pour les prix de base par image.

Résultats partiels des variantes

Avec variants supérieur à 1, certaines variantes peuvent être rejetées par la politique de contenu du fournisseur tandis que les autres réussissent. Dans ce cas, l’endpoint renvoie tout de même 200 avec moins d’images que demandé :
  • Lorsqu’une ou plusieurs variantes sont omises, le corps JSON inclut content_policy_violation_count, le nombre de variantes omises.
  • L’en-tête de réponse x-venice-content-violation-count contient le même nombre.
  • x-venice-is-content-violation et x-venice-is-blurred décrivent les images qui ont été renvoyées.
Si toutes les variantes demandées sont rejetées, aucune image n’est renvoyée et la requête échoue avec 422 à la place. Ne supposez pas que len(images) == variants ; comparez la longueur du tableau à variants et, le cas échéant, vérifiez content_policy_violation_count.

Endpoint compatible OpenAI

Si vous utilisez déjà les SDK d’image OpenAI ou des intégrations DALL-E existantes, Venice prend également en charge POST /images/generations. Il offre un format de requête plus simple, mais moins de fonctionnalités que l’endpoint natif de Venice. Requête :
size ne s’applique qu’aux modèles dimensionnés en pixels, qui ont un widthHeightDivisor supérieur à 1 dans model_spec.constraints depuis GET /models?type=image. La plupart des modèles, dont qwen-image-2, dimensionnent plutôt la sortie selon le ratio d’aspect et la résolution, et ignorent size. Certains paramètres OpenAI sont acceptés pour la compatibilité avec les SDK mais sont ignorés (n est limité à 1) : Le contrôle des paliers n’existe pas sur cette route : il n’y a pas de champ resolution ni aspect_ratio, et quality ne peut ni augmenter ni réduire le coût. Pour les modèles GPT Image à paliers, utilisez l’endpoint natif /image/generate lorsque vous devez choisir quality, resolution ou aspect_ratio. Utilisez la route compatible OpenAI pour des migrations plus rapides. Utilisez /image/generate lorsque vous avez besoin d’options spécifiques à Venice telles que cfg_scale, style_preset, style_references, variants ou des réponses binaires.

Contrôler le floutage du contenu adulte sur /images/generations

L’endpoint compatible OpenAI n’accepte pas safe_mode. Son envoi renvoie une erreur 400 avec Unrecognized key(s) in object: 'safe_mode'. Utilisez plutôt le paramètre moderation de style OpenAI :
safe_mode ne fonctionne que sur l’endpoint natif POST /image/generate. moderation ne fonctionne que sur l’endpoint compatible OpenAI POST /images/generations. La même séparation s’applique à la transparence : /image/generate utilise transparent_background: true, tandis que /images/generations utilise le paramètre de style OpenAI background: "transparent". Les deux nécessitent un format de sortie png ou webp et un modèle avec supportsTransparentBackground: true. Voir Images à arrière-plan transparent.

Conseils de prompting

  1. Commencez par le sujet, puis ajoutez le médium, l’éclairage, la composition et l’ambiance.
  2. Placez les détails à éviter absolument dans negative_prompt plutôt que de surcharger le prompt principal.
  3. Réutilisez seed lors des itérations afin de comparer les changements de prompt sans modifier totalement la composition.
  4. Adaptez le dimensionnement au modèle. Certains modèles utilisent width/height, d’autres aspect_ratio, et les modèles à paliers de résolution utilisent aspect_ratio plus resolution.
  5. Utilisez variants pendant l’exploration, puis revenez à une seule sortie une fois la direction définie.

Erreurs

Lorsque safe_mode est activé (ou que moderation vaut auto), inspectez les en-têtes de réponse tels que x-venice-is-blurred et x-venice-is-content-violation si vous devez détecter les résultats de modération de manière programmatique.

Modèles disponibles

Voir Modèles d’image pour la liste actuelle des modèles, les tarifs et le support des fonctionnalités.