Tous les produits
Search
Centre de documentation

Alibaba Cloud Model Studio:Modification d'images générale - Wan2.1

Dernière mise à jour :Oct 11, 2026

Modifiez des images à l'aide d'instructions textuelles via le modèle Wan : outpainting, suppression de filigrane, transfert de style, édition par instructions, inpainting et restauration.

ImportantCe document s'applique uniquement à la région China (Beijing). Vous devez utiliser une clé API de la région China (Beijing) pour exploiter ce modèle.

Présentation du modèle

Démonstration des performances

image

Image originale

image

Changer ses cheveux en rouge

35779519-bfc3-4b0a-a594-d764fe9a46d83005601501

Ajouter une paire de lunettes de soleil à la fille

image

Convertir en style livre d'images français

Consultez Fonctionnalités clés .

Tarification

Région de Pékin

ImportantLa région de Pékin ne propose pas de quota gratuit. Tous les appels sont facturables. Confirmez avant de continuer.

Modèle

Prix unitaire

Limite de taux (partagée entre le compte Alibaba Cloud et les utilisateurs RAM)

Limite RPS pour la soumission de tâches

Nombre de tâches simultanées

wanx2.1-imageedit

0,020070 $/image

2

2

Premiers pas

Prérequis

Obtenez une clé API et définissez-la comme variable d'environnement. Si vous utilisez le SDK DashScope pour effectuer des appels, installez également le SDK.

Exemple de code

Appelez l'API de modification d'images pour réaliser un inpainting local.

Le SDK encapsule le traitement asynchrone ; l'interface se comporte donc de manière synchrone : une requête unique attend le résultat. L'exemple curl illustre deux opérations asynchrones distinctes : la soumission de la tâche et l'interrogation du résultat.

Python

Trois méthodes d'entrée sont prises en charge : URL publique, encodage Base64 ou chemin de fichier local.

Exemple de requête
import base64
import os
from http import HTTPStatus
from dashscope import ImageSynthesis
import dashscope
import mimetypes

"""
Environment requirements:
    dashscope python SDK >= 1.23.8
Install/Upgrade SDK:
    pip install -U dashscope
"""

dashscope.base_http_api_url = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1"

# If the environment variable is not configured, replace the following line with: api_key="sk-xxx"
api_key = os.getenv("DASHSCOPE_API_KEY")

# --- Helper function: for Base64 encoding ---
# Format is data:{MIME_type};base64,{base64_data}
def encode_file(file_path):
    mime_type, _ = mimetypes.guess_type(file_path)
    if not mime_type or not mime_type.startswith("image/"):
        raise ValueError("Unsupported or unrecognized image format")
    with open(file_path, "rb") as image_file:
        encoded_string = base64.b64encode(image_file.read()).decode('utf-8')
    return f"data:{mime_type};base64,{encoded_string}"

"""
Image input methods:
Choose one of the following three methods.

1. Use a public URL - suitable for publicly accessible images.
2. Use a local file - suitable for local development and testing.
3. Use Base64 encoding - suitable for private images or scenarios requiring encrypted transmission.
"""

# [Method 1] Use a public image URL
mask_image_url = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png"
base_image_url = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg"

# [Method 2] Use a local file (supports absolute and relative paths)
# Format requirement: file:// + file path
# Example (absolute path):
# mask_image_url = "file://" + "/path/to/your/mask_image.png"     # Linux/macOS
# base_image_url = "file://" + "C:/path/to/your/base_image.jpeg"  # Windows
# Example (relative path):
# mask_image_url = "file://" + "./mask_image.png"                 # Based on the actual path
# base_image_url = "file://" + "./base_image.jpeg"                # Based on the actual path

# [Method 3] Use a Base64-encoded image
# mask_image_url = encode_file("./mask_image.png")               # Based on the actual path
# base_image_url = encode_file("./base_image.jpeg")              # Based on the actual path

def sample_sync_call_imageedit():
    print('please wait...')
    rsp = ImageSynthesis.call(api_key=api_key,
                              model="wanx2.1-imageedit",
                              function="description_edit_with_mask",
                              prompt="A ceramic rabbit holding a ceramic flower",
                              mask_image_url=mask_image_url,
                              base_image_url=base_image_url,
                              n=1)
    assert rsp.status_code == HTTPStatus.OK

    print('response: %s' % rsp)
    if rsp.status_code == HTTPStatus.OK:
        for result in rsp.output.results:
            print("---------------------------")
            print(result.url)
    else:
        print('sync_call Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))

if __name__ == '__main__':
    sample_sync_call_imageedit()
Exemple de réponse

L'URL reste valide pendant 24 heures. Téléchargez l'image rapidement.

{
    "status_code": 200,
    "request_id": "dc41682c-4e4a-9010-bc6f-xxxxxx",
    "code": null,
    "message": "",
    "output": {
        "task_id": "6e319d88-a07a-420c-9493-xxxxxx",
        "task_status": "SUCCEEDED",
        "results": [
            {
                "url": "https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/xxx.png?xxxxxx"
            }
        ],
        "submit_time": "2025-05-26 14:58:27.320",
        "scheduled_time": "2025-05-26 14:58:27.339",
        "end_time": "2025-05-26 14:58:39.170",
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 1,
            "FAILED": 0
        }
    },
    "usage": {
        "image_count": 1
    }
}

Java

Trois méthodes d'entrée sont prises en charge : URL publique, encodage Base64 ou chemin de fichier local.

Exemple de requête
// Copyright (c) Alibaba, Inc. and its affiliates.

import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisParam;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;

/**
 * Environment requirements
 *      dashscope java SDK >=2.20.9
 * Update Maven dependency:
 *      https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java
 */

public class ImageEditSync {
    static {Constants.baseHttpApiUrl="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1";}

    // If the environment variable is not configured, replace the following line with: apiKey="sk-xxx"
    static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    /**
     * Image input methods: Choose one of the following three.
     *
     * 1. Use a public URL - suitable for publicly accessible images.
     * 2. Use a local file - suitable for local development and testing.
     * 3. Use Base64 encoding - suitable for private images or scenarios requiring encrypted transmission.
     */

    //[Method 1] Public URL
    static String maskImageUrl = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png";
    static String baseImageUrl = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg";

    //[Method 2] Local file path (file://+absolute path or file:///+absolute path)
    // static String maskImageUrl = "file://" + "/your/path/to/mask_image.png";    // Linux/macOS
    // static String baseImageUrl = "file:///" + "C:/your/path/to/base_image.png";  // Windows

    //[Method 3] Base64 encoding
    // static String maskImageUrl = encodeFile("/your/path/to/mask_image.png");
    // static String baseImageUrl = encodeFile("/your/path/to/base_image.png");

    public static void syncCall() {
        // Set the parameters parameter
        Map<String, Object> parameters = new HashMap<>();
        parameters.put("prompt_extend", true);

        ImageSynthesisParam param =
                ImageSynthesisParam.builder()
                        .apiKey(apiKey)
                        .model("wanx2.1-imageedit")
                        .function(ImageSynthesis.ImageEditFunction.DESCRIPTION_EDIT_WITH_MASK)
                        .prompt("A ceramic rabbit holding a ceramic flower")
                        .maskImageUrl(maskImageUrl)
                        .baseImageUrl(baseImageUrl)
                        .n(1)
                        .size("1024*1024")
                        .parameters(parameters)
                        .build();

        ImageSynthesis imageSynthesis = new ImageSynthesis();
        ImageSynthesisResult result = null;
        try {
            System.out.println("---sync call, please wait a moment----");
            result = imageSynthesis.call(param);
        } catch (ApiException | NoApiKeyException e){
            throw new RuntimeException(e.getMessage());
        }
        System.out.println(JsonUtils.toJson(result));
    }

    /**
     * Encodes a file into a Base64 string
     * @param filePath The file path
     * @return A Base64 string in the format data:{MIME_type};base64,{base64_data}
     */
    public static String encodeFile(String filePath) {
        Path path = Paths.get(filePath);
        if (!Files.exists(path)) {
            throw new IllegalArgumentException("File does not exist: " + filePath);
        }
        // Detect the MIME type
        String mimeType = null;
        try {
            mimeType = Files.probeContentType(path);
        } catch (IOException e) {
            throw new IllegalArgumentException("Cannot detect file type: " + filePath);
        }
        if (mimeType == null || !mimeType.startsWith("image/")) {
            throw new IllegalArgumentException("Unsupported or unrecognized image format");
        }
        // Read the file content and encode it
        byte[] fileBytes = null;
        try{
            fileBytes = Files.readAllBytes(path);
        } catch (IOException e) {
            throw new IllegalArgumentException("Cannot read file content: " + filePath);
        }

        String encodedString = Base64.getEncoder().encodeToString(fileBytes);
        return "data:" + mimeType + ";base64," + encodedString;
    }

    public static void main(String[] args) {
        syncCall();
    }
}
Exemple de réponse

L'URL reste valide pendant 24 heures. Téléchargez l'image rapidement.

{
    "request_id": "bf6c6361-f0fc-949c-9d60-xxxxxx",
    "output": {
        "task_id": "958db858-153b-4c81-b243-xxxxxx",
        "task_status": "SUCCEEDED",
        "results": [
            {
                "url": "https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/xxx.png?xxxxxx"
            }
        ],
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 1,
            "FAILED": 0
        }
    },
    "usage": {
        "image_count": 1
    }
}

curl

Cette section couvre le flux de travail complet : création de la tâche, interrogation de l'état, récupération et sauvegarde du résultat.

Remarque

  • Définissez l'en-tête X-DashScope-Async sur enable pour les appels asynchrones.
  • Les ID de tâche expirent après 24 heures et leur statut passe à UNKNOWN.

Étape 1 : Créer une tâche

Retourne un task_id.

Exemple de requête
curl --location 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
  "model": "wanx2.1-imageedit",
  "input": {
    "function": "description_edit_with_mask",
    "prompt": "A ceramic rabbit holding a ceramic flower.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg",
    "mask_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png"
  },
  "parameters": {
    "n": 1
  }
}'
Exemple de réponse
{
    "output": {
        "task_status": "PENDING",
        "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
    },
    "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}

Étape 2 : Interroger le résultat par ID de tâche

Interrogez l'état de la tâche avec le task_id jusqu'à ce que le task_status soit SUCCEEDED ou FAILED.

Exemple de requête

Remplacez 86ecf553-d340-4e21-xxxxxxxxx par votre véritable task_id.

curl -X GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-xxxxxxxxx \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Exemple de réponse

Les URL d'images expirent après 24 heures ; téléchargez-les rapidement.

{
    "request_id": "eeef0935-02e9-9742-bb55-xxxxxx",
    "output": {
        "task_id": "a425c46f-dc0a-400f-879e-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2025-02-21 17:56:31.786",
        "scheduled_time": "2025-02-21 17:56:31.821",
        "end_time": "2025-02-21 17:56:42.530",
        "results": [
            {
                "url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/aaa.png"
            }
        ],
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 1,
            "FAILED": 0
        }
    },
    "usage": {
        "image_count": 1
    }
}

Fonctionnalités clés

Utilisez le paramètre function pour spécifier les fonctionnalités d'édition. Toutes suivent la même méthode d'appel décrite dans la section Premiers pas.

Chaque section ci-dessous présente les objets JSON input et parameters spécifiques à la fonctionnalité pour curl.

Une requête curl complète doit inclure les champs de niveau supérieur tels que model, input et parameters, comme décrit dans la Référence de l'API de modification d'images générale .

Stylisation globale

Applique un style artistique à l'ensemble de l'image, idéal pour les livres d'images, les arrière-plans de réseaux sociaux ou l'art conceptuel.

  • Définissez function sur stylization_all.

  • Styles pris en charge :

    • Style livre d'images français
    • Style art feuille d'or
  • parameters.strength (0,0–1,0, par défaut : 0,5) contrôle l'intensité de la modification. Des valeurs plus faibles préservent davantage l'original.

  • Format du prompt : "Convert to [style]" (par exemple, "Convert to French picture book style").

Exemple de requête

{
  "input": {
    "function": "stylization_all",
    "prompt": "Convert to French picture book style",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/stylization_all_3.png"
  },
  "parameters": {
    "strength": 0.5
  }
}

Image d'entrée

Image de sortie

Prompt : Convert to French picture book style

Prompt : Convert to gold foil art style

image

image

image

image

image

image

Contrôler le degré de modification de l'image avec strength

Le paramètre parameters.strength (0,0–1,0, par défaut : 0,5) contrôle l'intensité de la modification : les valeurs proches de 0 préservent l'original, tandis que celles proches de 1 modifient davantage l'image.

Prompt d'entrée : Convert to French picture book style.

Image d'entrée

Image de sortie

strength=0.0 (valeur minimale)

strength=0.5 (valeur par défaut)

strength=1.0 (valeur maximale)

image

image

image

image

Stylisation locale

Applique un style à une zone spécifique, idéal pour la personnalisation de personnages ou la mise en valeur de produits publicitaires.

  • Définissez function sur stylization_local.

  • Styles pris en charge et valeurs de paramètres :

    • Sculpture de glace : ice
    • Nuage : cloud
    • Lanterne festive chinoise : chinese festive lantern
    • Planche : wooden
    • Porcelaine bleue et blanche : blue and white porcelain
    • Peluche : fluffy
    • Fil : weaving
    • Ballon : balloon
  • Format du prompt : "Change [object] to [style]" (par exemple, "Change the house to wooden style").

Exemple de requête

{
  "input": {
    "function": "stylization_local",
    "prompt": "Change the house to wooden style",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/stylization_local_1.png"
  }
}

Image d'entrée

Image de sortie

image

image

Sculpture de glace

image

Nuage

image

Lanterne festive chinoise

image

Bois

image

Porcelaine bleue et blanche

image

Peluche

imageTissage

image

Ballon

Édition par instructions

Ajoute ou modifie du contenu via des instructions textuelles sans spécifier de zones, idéal pour des modifications simples comme ajouter des accessoires ou changer la couleur des cheveux.

  • Définissez function sur description_edit.
  • parameters.strength (0,0–1,0, par défaut : 0,5) contrôle l'intensité de la modification. Des valeurs plus faibles préservent davantage l'original.
  • Prompt : Incluez des verbes d'action comme "add" ou "modify". Pour les suppressions, utilisez plutôt l'Inpainting local.

Exemple de requête

{
  "input": {
    "function": "description_edit",
    "prompt": "Add a pair of sunglasses to the kitten",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_1.jpeg"
  },
  "parameters": {
    "strength": 0.5
  }
}

Capacités

Image d'entrée

Image de sortie

Ajouter un élément

image

image

Add a pair of sunglasses to the kitten.

Modifier un élément

image

image

Change her hair to red.

Contrôler le degré de modification de l'image avec strength

Le paramètre parameters.strength (0,0–1,0, par défaut : 0,5) contrôle l'intensité de la modification : les valeurs proches de 0 préservent l'original, tandis que celles proches de 1 modifient davantage l'image.

Prompt d'entrée : Change her clothes to a colorful printed beach shirt.

Image d'entrée

Image de sortie

strength=0.0 (valeur minimale)

strength=0.5 (valeur par défaut)

strength=1.0 (valeur maximale)

image

image

image

image

Inpainting local

Modifie une zone masquée : ajoutez, modifiez ou supprimez du contenu avec un contrôle précis sur les vêtements, les objets ou les éléments indésirables.

  • Définissez function sur description_edit_with_mask.

  • Exigences relatives au masque : Fournissez une mask_image_url où le blanc correspond à la zone à modifier et le noir à la zone à conserver.

  • Prompt : Incluez des actions ("add", "modify") et décrivez le contenu post-suppression pour les effacements.

    • Ajout/Modification : Décrivez l'action ou le résultat final.
    • Suppression : Laissez le champ prompt vide pour les petits objets. Pour les grands objets, décrivez l'arrière-plan souhaité après la suppression plutôt que l'action de suppression elle-même.

Exemple de requête

{
  "input": {
    "function": "description_edit_with_mask",
    "prompt": "A ceramic rabbit holding a ceramic flower",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_1.jpeg",
    "mask_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_1_mask.png"
  }
}
CapacitésImage d'entréeImage de masque d'entrée(Le blanc correspond à la zone à modifier)Image de sortie
Ajouter un élémentimageimageimage

Add a hat to the puppy.

Vous pouvez aussi décrire le résultat attendu : "A puppy wearing a hat".

Modifier un élémentimageimageimage

A ceramic rabbit holding a ceramic flower.

Vous pouvez aussi décrire l'action : "Replace the carrot held by the ceramic rabbit with a ceramic flower".

Supprimer un élémentimageimageimage

A transparent glass vase on the table.

Décrivez la scène après la suppression, et non la suppression elle-même ; n'écrivez pas "Delete the brown bear".

Suppression de texte et de filigrane

Remarque

Avertissement sur les risques juridiques

L'utilisation de cette fonctionnalité pour traiter des images protégées par le droit d'auteur (comme la suppression du filigrane d'une autre marque) peut constituer une violation du droit d'auteur. Assurez-vous de disposer des droits légaux pour utiliser l'image traitée et assumez toutes les responsabilités juridiques associées.

Supprime le texte chinois/anglais ou les filigranes des images, utile pour le traitement de supports ou le nettoyage publicitaire.

  • Définissez function sur remove_watermark.
  • Prompt : Utilisez des instructions générales ("Remove the text") ou spécifiez le type ("Remove English text").

Exemple de requête

{
  "input": {
    "function": "remove_watermark",
    "prompt": "Remove the text in the image",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/remove_watermark_1.png"
  }
}

Image d'entrée

Image de sortie (Remove the text in the image)

image

image

image

image

Outpainting

Étend l'image proportionnellement dans toutes les directions avec un remplissage intelligent, idéal pour ajuster la composition ou convertir les rapports d'aspect.

  • Définissez function sur expand.
  • Paramètres associés : top_scale, bottom_scale, left_scale et right_scale contrôlent les ratios d'expansion par direction (par exemple, 1,5 = 1,5× la taille).
  • Conseil pour le prompt : Décrivez la scène complète que vous souhaitez voir après l'expansion.

Exemple de requête

{
  "input": {
    "function": "expand",
    "prompt": "A family on the lawn in a park",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/expand_1.jpeg"
  },
  "parameters": {
    "top_scale": 1.5,
    "bottom_scale": 1.5,
    "left_scale": 1.5,
    "right_scale": 1.5
  }
}

Image d'entrée

Image de sortie

image

image

Super-résolution d'image

Améliore la clarté et met à l'échelle les images basse résolution ou floues, idéal pour restaurer d'anciennes photos ou préparer des impressions HD.

  • Définissez function sur super_resolution.
  • parameters.upscale_factor (1–4, par défaut : 1) contrôle la mise à l'échelle. La valeur 1 améliore uniquement la clarté, sans agrandissement.
  • Conseil pour le prompt : Utilisez "Image super resolution" ou décrivez le contenu de l'image.

Exemple de requête

{
  "input": {
    "function": "super_resolution",
    "prompt": "Image super resolution",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/super_resolution_1.jpeg"
  },
  "parameters": {
    "upscale_factor": 2
  }
}

Image d'entrée (image floue)

Image de sortie (image nette)

image

image

Colorisation d'image

Colorise les images en noir et blanc ou en niveaux de gris, utile pour les photos historiques ou les dessins au trait.

  • Définissez function sur colorization.
  • Prompt : Laissez vide pour une colorisation automatique, ou spécifiez les couleurs des éléments clés (par exemple, "blue background, yellow leaves").

Exemple de requête

{
  "input": {
    "function": "colorization",
    "prompt": "blue background, yellow leaves",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/colorization_1.jpeg"
  }
}

Image d'entrée

Image de sortie

image

image

Du dessin au trait à l'image

Génère des images à partir de dessins au trait et d'instructions textuelles, y compris le dessin basé sur des gribouillis, utile pour les concepts architecturaux et les illustrations.

  • Définissez function sur doodle.

  • Paramètre associé : parameters.is_sketch contrôle la façon dont le modèle traite l'entrée.

    • false (par défaut) : Le modèle extrait le dessin au trait de l'entrée RGB, puis génère l'image (RGB → dessin au trait → image).
    • true : Le modèle génère directement à partir de l'entrée RGB comme des gribouillis (RGB → image).
  • Prompt : Décrivez le contenu attendu ; plus de détails donnent de meilleurs résultats.

Exemple de requête 1 : Du dessin au trait à l'image

{
  "input": {
    "function": "doodle",
    "prompt": "A living room in a minimalist Nordic style.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/doodle_1.png"
  },
  "parameters": {
    "is_sketch": false
  }
}

Exemple de requête 2 : Dessin basé sur des gribouillis

{
  "input": {
    "function": "doodle",
    "prompt": "A tree, in a two-dimensional anime style",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/doodle_2.png"
  },
  "parameters": {
    "is_sketch": true
  }
}

Capacités

Image d'entrée

Image de sortie

Du dessin au trait à l'image

(is_sketch=false)

image

image

A living room in a minimalist Nordic style.

Dessin basé sur des gribouillis

(is_sketch=true)

image

image

A tree, in a two-dimensional anime style.

Générer une image basée sur un personnage de dessin animé de référence

Remarque

Avertissement sur les risques juridiques

L'utilisation de cette fonctionnalité pour traiter des personnages de dessins animés protégés par le droit d'auteur peut constituer une violation du droit d'auteur. Vous devez disposer des droits légaux pour utiliser le personnage référencé ou utiliser votre propre personnage original. Vous devez également assumer toutes les responsabilités juridiques associées.

  • Définissez function sur control_cartoon_feature.
  • Format du prompt : "The cartoon character [action/environment details]..."

Exemple de requête

{
  "input": {
    "function": "control_cartoon_feature",
    "prompt": "The cartoon character cautiously peeks out, peering at a brilliant blue gem in the room",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/control_cartoon_feature_1.png"
  }
}

Image d'entrée

Image de sortie

image

image

Mise en production

Bonnes pratiques

  • Interrogation asynchrone : Utilisez des intervalles d'interrogation progressifs (par exemple, toutes les 3 s pendant 30 s, puis augmentez) pour éviter les limites de taux.
  • Ajustement des paramètres : Testez les paramètres clés comme strength lors d'essais à petite échelle avant la mise en production afin de trouver les valeurs optimales.
  • Stockage des images : Les URL de résultats expirent après 24 heures. Téléchargez-les et transférez-les rapidement vers un stockage persistant (par exemple, OSS).

Prévention des risques

  • Gestion des erreurs : Vérifiez le task_status dans les résultats de requête. En cas de statut FAILED, notez les champs code et message pour le dépannage. Les erreurs transitoires (par exemple, les délais d'attente) peuvent réussir lors d'une nouvelle tentative.
  • Modération du contenu : Toutes les entrées et sorties sont examinées pour vérifier leur conformité. Un contenu non conforme retourne DataInspectionFailed.

Référence API

Les paramètres d'entrée et de réponse sont documentés dans la Référence de l'API de modification d'images générale.

Facturation et limitation de taux

  • Quotas gratuits et tarification : Wan image editing 2.1.

  • Pour la limitation de taux du modèle, consultez Wanxiang.

  • Détails de facturation :

    • Facturé par image générée avec succès. Les frais s'appliquent uniquement lorsque le task_status est SUCCEEDED.
    • Les appels échoués n'entraînent pas de frais et ne consomment pas le Quota gratuit pour les nouveaux utilisateurs.

Codes d'erreur

Si l'appel du modèle échoue et retourne un message d'erreur, consultez la rubrique Codes d'erreur pour obtenir une solution.

FAQ

Q : Pourquoi ma tâche a-t-elle échoué (FAILED) ?

Causes fréquentes :

  1. Échec de la modération du contenu : L'entrée ou la sortie a déclenché une politique de sécurité.
  2. Erreur de paramètre : Paramètres de requête invalides (par exemple, nom de function incorrect ou URL inaccessible).
  3. Erreur interne du modèle : Problème de traitement inattendu. Vérifiez les champs code et error dans la réponse de requête.