curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen-image-2.0",
"prompt": "A cute orange cat napping in the sunshine"
}'
import requests
url = "https://api.apimart.ai/v1/images/generations"
payload = {
"model": "qwen-image-2.0",
"prompt": "A cute orange cat napping in the sunshine"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/images/generations";
const payload = {
model: "qwen-image-2.0",
prompt: "A cute orange cat napping in the sunshine",
};
const headers = {
Authorization: "Bearer <token>",
"Content-Type": "application/json",
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error("Error:", error));
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01JGXYZ1234567890ABCDEF"
}
]
}
{
"error": {
"code": 400,
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Insufficient balance, please top up",
"type": "payment_required"
}
}
Qwen Image 2.0
Génération d'images Qwen Image 2.0
- Mode de traitement asynchrone, retourne un identifiant de tâche pour les requêtes ultérieures
- Prend en charge texte-vers-image, image-vers-image et autres modes de génération
- Prend en charge les niveaux de résolution 1K/2K, génère jusqu’à 6 images
POST
/
v1
/
images
/
generations
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen-image-2.0",
"prompt": "A cute orange cat napping in the sunshine"
}'
import requests
url = "https://api.apimart.ai/v1/images/generations"
payload = {
"model": "qwen-image-2.0",
"prompt": "A cute orange cat napping in the sunshine"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/images/generations";
const payload = {
model: "qwen-image-2.0",
prompt: "A cute orange cat napping in the sunshine",
};
const headers = {
Authorization: "Bearer <token>",
"Content-Type": "application/json",
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error("Error:", error));
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01JGXYZ1234567890ABCDEF"
}
]
}
{
"error": {
"code": 400,
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Insufficient balance, please top up",
"type": "payment_required"
}
}
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen-image-2.0",
"prompt": "A cute orange cat napping in the sunshine"
}'
import requests
url = "https://api.apimart.ai/v1/images/generations"
payload = {
"model": "qwen-image-2.0",
"prompt": "A cute orange cat napping in the sunshine"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/images/generations";
const payload = {
model: "qwen-image-2.0",
prompt: "A cute orange cat napping in the sunshine",
};
const headers = {
Authorization: "Bearer <token>",
"Content-Type": "application/json",
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error("Error:", error));
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01JGXYZ1234567890ABCDEF"
}
]
}
{
"error": {
"code": 400,
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Insufficient balance, please top up",
"type": "payment_required"
}
}
Modèles pris en charge
| Modèle | Description | Images max | Tarification |
|---|---|---|---|
qwen-image-2.0 | Version standard, qualité et performance équilibrées | 6 | Prix fixe |
qwen-image-2.0-pro | Version Pro, rendu de texte plus puissant, textures réalistes plus raffinées | 6 | Prix fixe |
Autorisations
string
requis
Tous les points de terminaison nécessitent une authentification Bearer TokenObtenez votre clé API :Visitez la gestion des clés API pour obtenir votre clé APIAjoutez à l’en-tête de la requête :
Authorization: Bearer YOUR_API_KEY
Body
string
requis
Nom du modèle
qwen-image-2.0— version standard, qualité et performance équilibréesqwen-image-2.0-pro— version Pro, rendu de texte plus puissant, textures réalistes plus raffinées
boolean
défaut:"false"
Indique s’il faut modérer le contenu avant d’envoyer la tâche d’image.
true: vérifier les prompts et les images d’entrée avecomni-moderation-latestfalseou omis : ne pas envoyer de requête de modération, sans coût ni latence de modération supplémentaires (par défaut)
string
requis
Description textuelle pour la génération d’images, jusqu’à 800 caractères
string
défaut:"1:1"
Rapport d’aspect de l’imageRapports pris en charge :
1:1— Carré (par défaut)4:3— Paysage 4:33:4— Portrait 3:416:9— Paysage écran large9:16— Portrait vertical3:2— Paysage 3:22:3— Portrait 2:3
string
défaut:"1K"
Niveau de résolution
1K— résolution standard (par défaut)2K— résolution haute définition
integer
défaut:"1"
Nombre d’images à générerPlage : 1–6
string
Prompt négatif (contenu que vous ne voulez pas voir apparaître), jusqu’à 500 caractères
array
Tableau d’URL d’images de référence (mode image-vers-image)Limitations :
- Doivent être des URL publiquement accessibles
- Le format Base64 n’est pas pris en charge
Tableau de référence des résolutions
La taille de sortie est contrôlée par la combinaisonsize (rapport) + resolution (niveau de résolution).
| Rapport | Niveau 1K | Niveau 2K |
|---|---|---|
1:1 | 1024×1024 | 2048×2048 |
4:3 | 1152×864 | 2048×1536 |
3:4 | 864×1152 | 1536×2048 |
16:9 | 1280×720 | 2048×1152 |
9:16 | 720×1280 | 1152×2048 |
3:2 | 1248×832 | 2048×1360 |
2:3 | 832×1248 | 1360×2048 |
- Uniquement
size→ niveau 1K par défaut :{"size": "16:9"}→ 1280×720 size+resolution→ niveau spécifié :{"size": "16:9", "resolution": "2K"}→ 2048×1152
Exemples d’utilisation
Texte-vers-image (requête minimale){
"model": "qwen-image-2.0",
"prompt": "A cute orange cat napping in the sunshine"
}
{
"model": "qwen-image-2.0-pro",
"prompt": "Cyberpunk-style futuristic city nightscape with flickering neon lights",
"size": "16:9",
"n": 4
}
{
"model": "qwen-image-2.0-pro",
"prompt": "Exquisite food photography, sushi platter",
"size": "4:3",
"resolution": "2K",
"n": 2
}
{
"model": "qwen-image-2.0",
"prompt": "Change the background to a seaside sunset",
"image_urls": ["https://example.com/my-photo.jpg"]
}
Response
integer
Code de statut de la réponse
array
Remarques
- Traitement asynchrone : après la soumission, un
task_idest retourné. Interrogez/v1/tasks/{task_id}pour obtenir les résultats - Stockage des images : les images générées sont mises en miroir sur le CDN de la plateforme et sont valides à long terme
- Règles de facturation : facturé par image générée avec succès, aucun frais en cas d’échec
- Exigences relatives aux URL d’images : les images d’entrée doivent être des URL publiquement accessibles, base64 n’est pas pris en charge