
Seedream 5.5 : recomposer les calques et modifier le texte
Recomposez les calques PNG de Seedream 5.5 avec leurs rectangles et leur ordre, créez du texte modifiable depuis l’OCR disponible et vérifiez vos variantes.
Dans cet article
La décomposition en calques de Seedream 5.5 renvoie une image de fond, des calques PNG transparents et des métadonnées de placement. Pour obtenir un design modifiable, votre application doit redimensionner et positionner chaque calque, conserver l'ordre de superposition et créer des objets texte à partir de l'OCR disponible. Télécharger les PNG n'est que le début.
Définir ce qui doit rester modifiable
Partez d'une affiche validée et d'un changement précis : déplacer un produit, remplacer un titre ou créer une autre version linguistique. Le livrable dépend de cette modification.
| Livrable | Ce qu'il permet de modifier | Ce que votre application doit encore faire |
|---|---|---|
| Un PNG transparent | Position de l'image entière | Composition et export |
| Image de fond et calques PNG | Position et visibilité des éléments séparés | Redimensionnement, placement, superposition et contrôle |
| Calques et OCR enrichi | Texte reconnu et style approximatif | Objets texte natifs, choix des polices, mise en page et sauvegarde |
Demander les éléments nécessaires
doubao-seedream-5.5-layerize avec exactement une image PNG ou JPEG accessible. La génération classique accepte d'autres entrées : ne transposez pas sa configuration à plusieurs références dans cette route. Conservez la clé côté serveur.model_params.text_recognition: true. Pour des éléments précis, utilisez le ciblage en langage naturel ou par bbox documenté, sans supposer que chaque objet visible sera isolé. Même demandé, l'OCR reste facultatif dans la réponse.curl -X POST https://api.evolink.ai/v1/images/generations \
-H "Authorization: Bearer $EVOLINK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedream-5.5-layerize",
"image_urls": ["YOUR_PUBLIC_IMAGE_URL"],
"quality": "auto",
"output_format": "png",
"n": 30,
"model_params": {"text_recognition": true}
}'YOUR_PUBLIC_IMAGE_URL par une URL d'image accessible au serveur. n: 30 est un plafond comprenant l'image de fond, pas une promesse de 30 sorties. EvoLink accepte n de 2 à 100 et peut renvoyer moins d'images. La résolution se règle avec quality: auto, 1K, 1.5K ou 2K, et non avec un ratio comme 16:9.id de tâche renvoyé, puis interrogez GET /v1/tasks/{task_id} jusqu'à la fin ou traitez l'échec. Lisez le contenu réel de result_data, sans présumer une longueur fixe. Selon la documentation de la route, l'échec d'un calque fait échouer toute la demande, qui est remboursée. Sauvegardez rapidement les fichiers terminés : les liens sont valables 24 heures. Le contrat complet figure dans la documentation de l'API Layerize.Recomposer les calques PNG de Seedream 5.5
z_index: 0. Les valeurs supérieures se placent au-dessus. Le placement provient de bounding_box, dont le repère est l'image de fond produite. L'affiche d'entrée et le fichier du calque ne sont pas des repères interchangeables.
[left, top, right, bottom], la largeur affichée vaut right - left et la hauteur bottom - top. Redimensionnez le calque dans ce rectangle, puis placez-le en (left, top). Les deux dernières valeurs ne sont pas une largeur et une hauteur. Ne collez pas systématiquement les fichiers à leurs dimensions natives.[1142, 528, 1474, 784], soit 332×256 pixels. Les dimensions du fichier ne suffisent donc pas à restituer la mise en page. Cette observation décrit l'exemple publié, sans garantir les dimensions d'autres sorties.z_index de chaque calque dans cette structure. Les coordonnées sont illustratives : remplacez-les par vos métadonnées réelles.results pour les URL ; la description Layerize ajoute placement et OCR dans result_data. Sauvegardez la réponse complète, téléchargez les fichiers et établissez une association vérifiable avec les métadonnées avant de créer le manifeste. Identifiez le fond par z_index: 0, pas par un nom supposé. Ne joignez pas les collections par indice sans règle explicite du contrat actuel ; consultez la documentation réelle si le lien est ambigu. Aucune génération EvoLink n’a été exécutée pour ce guide, uniquement une composition locale de fichiers d’exemple.{
"base": "base.png",
"layers": [
{"file": "layer-1.png", "box": [120, 80, 420, 280], "z": 1}
]
}python -m pip install pillow. Enregistrez le bloc suivant sous reassemble.py, placez layers.json et les images ensemble, puis lancez python reassemble.py layers.json. Le script contrôle la géométrie locale et l'ordre avant d'exporter un aperçu. Il ne recrée pas de texte modifiable et ne certifie pas la qualité du modèle.import json
import sys
from pathlib import Path
from PIL import Image
manifest = Path(sys.argv[1])
data = json.loads(manifest.read_text())
root = manifest.parent
with Image.open(root / data["base"]) as image:
canvas = image.convert("RGBA")
width, height = canvas.size
layers = data["layers"]
orders = [item["z"] for item in layers]
if any(type(z) is not int or z <= 0 for z in orders):
raise ValueError("Layer order must be a positive integer")
if len(set(orders)) != len(orders):
raise ValueError("Duplicate layer order")
for item in sorted(layers, key=lambda layer: layer["z"]):
box = item["box"]
if len(box) != 4 or any(type(v) is not int for v in box):
raise ValueError("Expected four integer box coordinates")
left, top, right, bottom = box
if not (0 <= left < right <= width and 0 <= top < bottom <= height):
raise ValueError("Box outside the base image or empty")
with Image.open(root / item["file"]) as image:
layer = image.convert("RGBA").resize(
(right - left, bottom - top), Image.Resampling.LANCZOS
)
canvas.alpha_composite(layer, dest=(left, top))
canvas.save(root / "reassembled.png")Transformer l'OCR en texte modifiable
text_recognition peut contenir le texte intégral, lines, leurs bounding_box et des runs stylés. Le guide officiel définit aussi ces rectangles de lignes dans le repère de l'image de fond. N'ajoutez pas une seconde fois le décalage du calque parent.similar_font_family à une police disponible sous licence et appliquez foreground_color ainsi que les attributs pris en charge par votre éditeur. La police et les attributs sont estimés. Les écritures artistiques ou manuscrites peuvent ne pas avoir d'OCR : prévoyez alors une reconstruction manuelle ou conservez le calque matriciel.Lorsque vous remplacez un calque texte par des objets natifs, masquez sa version matricielle pour éviter la superposition des anciens et nouveaux caractères. Si un même calque contient plusieurs lignes et que vous n'en remplacez qu'une, masquez ou supprimez uniquement cette ligne en conservant les autres. Vous pouvez aussi recréer tous les textes nécessaires avant de masquer le calque matriciel entier. Sauvegardez les objets texte, les choix de polices et la mise en page dans le document de votre application. Les données OCR seules ne constituent pas un design modifiable enregistré.
similar_font_family vaut unknown, choisissez explicitement une police de repli couvrant les glyphes requis et disposant de la licence nécessaire, puis contrôlez la mise en page. Un attribut false signifie que le modèle n’a pas reconnu ce style, pas que l’original en est dépourvu. Ce sont des indices de reconnaissance, pas des attributs exacts du design.Adapter le design sans le déformer

x = normalized_x × target_width / 1000 et y = normalized_y × target_height / 1000. Pour les rectangles absolus, partez des dimensions réelles de l'image de fond produite. Gardez une méthode cohérente dans tout le flux.Transformer une affiche carrée en publicité verticale demande davantage qu'une multiplication des coordonnées. Choisissez entre conserver des marges, recadrer ou réorganiser les éléments. Des échelles horizontale et verticale différentes peuvent étirer produits et caractères. Déplacer un objet peut aussi révéler des défauts de fond reconstruit : inspectez la zone découverte sans supposer qu'elle correspond à la scène initialement masquée.
Pour une variante linguistique, remplacez d'abord un titre. Vérifiez les glyphes disponibles, les retours à la ligne, la hauteur du bloc, la hiérarchie visuelle et les chevauchements avec le premier plan. Conservez séparément les états source et modifié pour permettre leur comparaison. Traduction et recomposition relèvent de l'application ; recevoir de l'OCR ne les réalise pas automatiquement.
Contrôler le résultat avant de multiplier les variantes
| Symptôme | Premier contrôle | Étape suivante |
|---|---|---|
| Calque trop grand ou mal placé | Convention du rectangle, dimensions de base et redimensionnement | Corriger la transformation avant une autre requête au modèle |
| Mauvaise superposition | z_index croissant et visibilité conservée | Rétablir l'empilement voulu |
| Texte dédoublé ou lignes manquantes | Visibilité du texte matriciel et périmètre du remplacement | Garder une représentation choisie pour chaque ligne |
| OCR absent ou style inexact | Texte régulier et champs OCR réellement présents | Reconstruire le texte manuellement ou garder le calque matriciel |
Contrôlez la source recomposée avant toute modification, puis le résultat à sa taille de livraison. Vérifiez identité du produit, contours, fond complété, occultations, texte et export final. Un placement correct ne prouve ni une restitution pixel à pixel ni la qualité du design.
n sorties au tarif 2K, puis un règlement selon les images générées et leurs paliers de pixels. Un plafond supérieur peut immobiliser plus de solde sans être nécessaire à la modification. Utilisez la section tarifaire existante ; ce guide ne reproduit pas sa grille.Questions fréquentes
Seedream 5.5 renvoie-t-il un PSD ?
La route EvoLink documentée renvoie des images et des métadonnées, pas un PSD natif. Un éditeur ou un exporteur doit créer le document.
n: 30 signifie-t-il 30 calques de premier plan ?
Non. Ce plafond inclut toutes les images de sortie, fond compris. Leur nombre réel peut être inférieur : lisez les éléments retournés.
Faut-il utiliser les dimensions natives du PNG ?
Utilisez son rectangle dans l'image de fond. Le fichier peut être plus grand ; redimensionnez-le avant la composition.
Peut-on recomposer avec des coordonnées normalisées ?
Oui, convertissez chaque coin de l'intervalle 0–1000 vers les dimensions du canevas cible. Un autre ratio demande toujours un choix explicite entre adaptation, recadrage et réorganisation.
Chaque calque texte contient-il de l'OCR ?
text_recognition. Les textes réguliers sont pris en charge ; les écritures stylisées ou manuscrites peuvent nécessiter une intervention manuelle.L'OCR identifie-t-il exactement la police d'origine ?
similar_font_family est une approximation, pas une preuve d'identité ou de licence. Choisissez une police disponible et contrôlez le résultat.Faut-il régénérer des calques mal alignés ?
Vérifiez d'abord ordre, interprétation des rectangles et échelle. Ces erreurs de composition peuvent être corrigées localement. Un contenu visuel manquant ou inutilisable peut nécessiter une retouche ou une nouvelle décomposition.
Ces exemples prouvent-ils la qualité des sorties EvoLink ?
Non. Ils expliquent le flux documenté à partir d'un exemple officiel et d'opérations locales. Ils ne mesurent ni taux de réussite API, ni fidélité de reconstruction, ni vitesse.
Sources
- Guide BytePlus Seedream 5.5 : capacités officielles de calques/OCR et exemple fourni ; les champs diffèrent de ceux d'EvoLink.
- Documentation de l'API Layerize EvoLink : modèle, entrées, limites, tâches et règlement.
- Référence Pillow Image : redimensionnement local et composition alpha.


