Aller au contenu principal

Workflow image Wan 2.7 : générer un concept, puis le retoucher

Créez une image Wan 2.7 à partir d'un brief ou de références : palette, zones d'édition, choix entre Standard et Pro, puis contrôle de la composition.

Auteur
Lydia
Publié
Lecture
12 min de lecture
Mis à jour
Illustrateur adulte fictif examinant une illustration de phare peinte à côté d'échantillons de couleurs dans un atelier en bord de mer

Utilisez Wan 2.7 texte-vers-image pour un nouveau concept à 0,03 $/image, et l'édition Wan 2.7 pour retoucher une source existante au même prix. Choisissez Pro à 0,075 $/image quand il vous faut du 4k, que seul Pro texte propose ; Pro édition renvoie toujours du 2k. La génération et l'édition Standard offrent du 1k ou du 2k et jusqu'à quatre sorties par appel. Les réglages ci-dessous construisent une couverture avec un phare, puis suppriment un bateau gênant grâce à une zone d'édition mesurée.

Choisir d'abord l'endpoint

TâcheRésolutionSorties par appelAutres réglages
Wan 2.7 texte1k (par défaut), 2k1–4Palette, seed, interrupteur de réflexion (activé par défaut)
Wan 2.7 édition1k (par défaut), 2k1–41–9 sources, palette, zones, seed
Pro texte2k (par défaut), 4k1Palette, seed
Pro édition2k fixe11–9 sources, palette, zones, seed

Pour donner l'échelle : 1k fait environ 1 mégapixel, 2k environ 4 et 4k environ 16. Les quatre acceptent 1:1, 4:3, 3:4, 16:9, 9:16, 3:2 et 2:3. Le texte est carré par défaut. L'édition n'a pas de valeur par défaut : elle suit les proportions de la dernière image source. Fixez explicitement 2:3 quand vous générez sans palette, pour qu'une référence ajoutée plus tard ne décide pas de la forme. aspect_ratio ne peut pas être combiné avec color_palette ni bounding_boxes : une requête qui contient les deux renvoie l'erreur 40004, donc omettez aspect_ratio dans ces requêtes (une requête texte avec palette renvoie alors le carré par défaut ; une édition avec zone conserve les proportions de la dernière source). Aucun des quatre n'a de sélecteur de format de sortie.

Pro édition est conçu pour les longues instructions à plusieurs propositions (« prends cet objet, pose-le sur cette surface, adapte la lumière à celle de la deuxième image, ne touche pas à l'étiquette »). Choisissez-le donc pour les retouches composées, pas pour la résolution.

Générer le concept de couverture

Utilisez la génération texte Standard avec resolution: "2k", aspect_ratio: "2:3", num_outputs: 1, enable_thinking: true et la seed 314159. Une seed fixe garde stable la condition aléatoire de départ pendant que vous changez une seule proposition à la fois ; omettez-la pour obtenir un nouveau tirage. Désactiver enable_thinking accélère la génération ; laissez-le activé tant que vous explorez la composition. Le prompt reste en anglais, tel quel :

Original painted cover artwork for a fictional coastal mystery. One white lighthouse on a charcoal rocky island above dark teal water, the entire tower visible slightly right of center. One small mustard-yellow lamp at its top. One fictional adult keeper aged 45 in a rust raincoat walks along a clear path toward the tower. The keeper is small relative to the building. Pale restrained sky with quiet space in the upper third for separately added typography. Strong large silhouettes, soft dusk light, no lettering, extra towers, boats or disaster spectacle.

Illustration verticale d'un phare blanc au-dessus d'une mer vert sombre et d'un rocher, avec un petit gardien adulte

Illustration, pas un résultat Wan (son ciel est plus chaud que ce que demande le prompt) : le petit gardien donne l'échelle pendant que le phare reste dominant.

Essayer d'abord dans le Playground

  1. Ouvrez la page Wan 2.7 texte-vers-image et restez dans l'onglet Playground, en vue Form. Connectez-vous avec un compte approvisionné pour lancer.
  2. Collez le prompt de couverture ci-dessus dans Prompt. Réglez Resolution sur 2k et Seed sur 314159 ; laissez Deep thinking activé pendant que vous explorez la composition.
  3. Sous Aspect ratio, choisissez 2:3. Si vous ajoutez une palette à l'étape 4, réglez plutôt sur Auto, car les deux ne peuvent pas être combinés.
  4. Facultatif : sous Color palette, cliquez sur Add a color, saisissez chaque code #RRGGBB et, si vous le souhaitez, sa part en pourcentage (3 à 10 couleurs ; la section suivante donne la série du phare).
  5. Lancez le modèle, vérifiez la tour et l'échelle du gardien, puis changez une proposition et relancez avec la même seed.

Pour la retouche du bateau, ouvrez la page Wan 2.7 édition, ajoutez l'image approuvée sous Images (Add a file ou Asset URL), puis tracez un cadre sur le bateau et son sillage sous Edit areas ; Fine-tune coordinates affiche les mêmes nombres. Dans le prompt, parlez de « la zone marquée ». Le corps de requête du Playground est le même JSON que celui de l'API : une configuration qui fonctionne ici peut donc être copiée telle quelle dans le code.

Playground Wan 2.7 édition en vue Form pour une retouche avec jusqu'à neuf références

La page Wan 2.7 édition en vue Form, avec le champ Prompt et le bouton Run.

Fournir une palette valide

color_palette accepte de 3 à 10 couleurs hexadécimales à six chiffres (8 est le nombre recommandé) et oriente tout le cadre : décor, vêtements et lumière. Chaque couleur peut porter un ratio, une part en pourcentage ; les couleurs sans part se partagent équitablement le reste. Considérez les parts comme une répartition demandée, pas comme un décompte mesuré de pixels. La requête du phare utilise quatre couleurs dont le total fait 100 : #173E46 vert sombre 45, #E8E1D3 ciel pâle 30, #34383A anthracite 20 et #C9A448 moutarde 5. Omettez aspect_ratio quand vous les envoyez.

Si le jaune envahit le ciel, retirez du prompt les formulations de ciel doré et chaud, et réduisez le rôle de l'accent.

Supprimer un bateau avec des coordonnées prises sur la vraie source

Supposons que l'image approuvée contienne un bateau gênant. Passez à l'édition Standard, prenez l'image approuvée comme première source et gardez 2k et une sortie ; omettez aspect_ratio, car il ne peut pas être combiné avec bounding_boxes. Chaque entrée de bounding_boxes désigne une source par son image_index, numéroté à partir de un, et ses coordonnées sont des pixels mesurés depuis le coin supérieur gauche de cette source.

Pour une source hypothétique de 1200 × 1800 où le bateau et son sillage sont encadrés entre (120,1180) et (390,1420), la zone est {"image_index": 1, "x1": 120, "y1": 1180, "x2": 390, "y2": 1420}, et le prompt s'écrit : "Remove the small boat and its wake inside the marked lower-left sea area. Continue the surrounding dark teal water and painterly texture. Retain the lighthouse, rocky island, adult keeper, path and quiet sky. No new objects or lettering."

Ces coordonnées sont des exemples ; mesurez votre propre bateau. Si un aperçu montre la même source en 600 × 900, multipliez les coordonnées de l'aperçu par deux : le point (60,590) de l'aperçu devient le point (120,1180) de la source. Recalculez après tout recadrage ou redimensionnement, car la zone se rapporte toujours au fichier soumis, pas à la taille de sortie demandée.

Chaque source accepte jusqu'à deux zones (dix-huit pour neuf sources). Incluez le sillage et pas seulement la coque, sinon le bateau reste visible par implication. La zone dit où agir et le prompt dit ce qui la remplace ; aucun des deux ne garantit des pixels identiques ailleurs. Utilisez de 1 à 9 images sources en JPEG, PNG opaque ou WebP, chacune sous forme d'URL HTTPS publique ou de fichier spicy:// téléversé.

Avec plusieurs sources, dites à quoi sert chacune (« l'image 1 est la scène, l'image 2 le manteau, l'image 3 la référence de palette »).

Illustration d'un phare, photographie séparée d'un ciré et quatre échantillons de couleur peints sur une table en bois

Illustration, pas un résultat Wan : matériaux distincts pour la source, le vêtement et la palette, chacun avec son rôle.

Puis le lancer depuis le code

Installez le SDK Python (pip install spicyapi), définissez SPICY_API_KEY dans l'environnement de votre serveur et exécutez les deux étapes : le concept, puis la suppression du bateau une fois que vous avez une image approuvée.

python
import uuid
from spicyapi import SpicyClient, output_assets

client = SpicyClient()  # reads SPICY_API_KEY from the environment

def run(model, input_data):
    task = client.create_task(model=model, input_data=input_data,
                              idempotency_key=str(uuid.uuid4()))
    final = client.wait_for_terminal(task["taskId"])
    if final["state"] != "succeeded":
        raise RuntimeError(f"{task['taskId']} ended as {final['state']}: {final.get('errorCode')}")
    return output_assets(final)[0]["url"]  # copy the image to your own storage now

concept_url = run("alibaba/wan-2.7/text-to-image", {
    "prompt": "Painted cover for a fictional coastal mystery: one white lighthouse above dark teal sea on charcoal rocks, one small mustard-yellow lamp and one small adult keeper in a rust coat on a clear path. Pale quiet upper sky for later typography. Whole tower visible; no lettering or extra towers.",
    "resolution": "2k",
    "num_outputs": 1,
    "enable_thinking": True,
    "seed": 314159,
    "color_palette": [
        {"hex": "#173E46", "ratio": 45},
        {"hex": "#E8E1D3", "ratio": 30},
        {"hex": "#34383A", "ratio": 20},
        {"hex": "#C9A448", "ratio": 5},
    ],
})

edit_url = run("alibaba/wan-2.7/edit", {
    "image_urls": ["https://your-domain.example/approved-cover-1200x1800.jpg"],  # your approved image
    "prompt": "Remove the small boat and its wake inside the marked lower-left sea area. Continue the surrounding dark teal water and painterly texture. Retain the lighthouse, rocky island, adult keeper, path and quiet sky. No new objects or lettering.",
    "bounding_boxes": [{"image_index": 1, "x1": 120, "y1": 1180, "x2": 390, "y2": 1420}],
    "resolution": "2k",
    "num_outputs": 1,
    "seed": 314159,
})
print(concept_url, edit_url)

La création, l'attente, le téléchargement, les nouvelles tentatives et les codes d'erreur sont décrits dans le guide des tâches et la référence du SDK Python. Les résultats expirent ; consultez donc conservation et livraison avant de vous appuyer sur le lien renvoyé.

Ou laisser un agent le lancer

Quand un assistant doit lancer les générations, les trois outils officiels affichent le prix et vous demandent confirmation avant tout appel payant.

  • CLI. Placez l'objet input du concept dans input.json, puis :

``bash spicyapi tasks create --model alibaba/wan-2.7/text-to-image --input-file input.json --wait ``

Pour l'édition, spicyapi files upload <path> transforme une image locale en lien spicy:// pour image_urls. Voir la documentation CLI ; npx @spicyapi/cli fonctionne sans installation.

  • Serveur MCP. Ajoutez le serveur MCP à votre assistant, puis demandez : « Run Wan 2.7 text to image with this prompt at 2k, seed 314159. » Il appelle spicyapi_task_create, qui s'arrête pour confirmer le prix, puis spicyapi_task_wait ; spicyapi_upload_file gère une image source locale.
  • Skill. npx skills add spicyapi-ai/spicy-skill installe l'Agent Skill, qui fait lire à un assistant de code le schéma réel du modèle au lieu de deviner les champs.

Corriger un résultat raté précis

ProblèmeProchaine modification
L'édition touche le mauvais coinCorrigez image_index et recalculez les coordonnées à partir de la vraie source, au lieu de répéter « exactement ici ».
La tour est coupéeDemandez la tour entière et plus de ciel calme ; gardez le format portrait.
Le gardien est plus grand que la tourÉcrivez « petite silhouette adulte lointaine sur le chemin » ; retirez les mots de portrait ou de gros plan.
Le bateau disparaît mais le sillage resteAgrandissez la zone pour inclure le sillage et nommez les deux dans l'instruction.
Le phare change pendant la suppression du bateauRevenez à la source acceptée ; utilisez une zone plus petite, ou collez seulement le morceau de mer accepté dans l'original.
Pro édition refuse resolutionRetirez le champ ; Pro édition est fixé à 2k et le 4k appartient à Pro texte.
Un lot de quatre images coûte plus que prévuRéglez num_outputs: 1 ; le prix Standard est par image, pas un forfait pour le lot.

Standard ou Pro, et le coût

Un concept Standard plus une retouche Standard coûtent 0,06 $. Une requête Standard à quatre sorties coûte 0,12 $ et une image Pro 0,075 $, donc un passage Pro texte plus Pro édition coûte 0,15 $. Explorez la composition en Standard avec num_outputs jusqu'à 4. Ne payez Pro texte que si vous avez besoin du 4k, par exemple pour une image principale qui sera recadrée ou imprimée, et Pro édition quand une seule instruction contient plusieurs propositions qui doivent toutes passer. Si la composition elle-même est mauvaise, une résolution plus élevée ne la corrigera pas.

Travail à destination d'un public adulte

Les deux endpoints d'édition ne sont pas censurés et SpicyAPI n'ajoute aucune analyse de contenu. Ils peuvent livrer des modifications destinées à un public adulte, mais les retouches plus marquées reviennent parfois atténuées sur l'un comme sur l'autre ; Pro ne garantit pas un résultat plus explicite. La tâche texte Standard livre parfois des images adultes avancées, mais les deux tâches texte ont atténué les scènes adultes plus marquées lors de nos tests ; un résultat atténué est quand même facturé. Pro ne lève pas cette limite. Pour les créateurs de personnages adultes, la démarche pratique consiste à construire d'abord l'image de base ou la référence, puis à apporter les changements destinés à un public adulte par l'édition. Les résultats consignés figurent dans l'article en anglais « Wan 2.7 Pro NSFW image test » ; la tâche elle-même se trouve sur la page Wan 2.7 Pro édition. La couverture au phare de ce guide est entièrement vêtue et n'a besoin de rien de tout cela.

Pour finir

Gardez l'image approuvée comme source des retouches ciblées, et repartez d'un nouveau concept quand la disposition de l'île elle-même doit changer. Ajoutez le titre exact dans un outil de design une fois que l'illustration fonctionne en miniature.

Aussi en English · 日本語 · 한국어 · Deutsch · Español · Português (Brasil) · Русский · Italiano · Polski