

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Modèles Stability AI
<a name="model-parameters-stability-diffusion"></a>

Cette section décrit les paramètres de demande et les champs de réponse pour les modèles Stability AI. Utilisez ces informations pour effectuer des appels d'inférence vers les modèles Stability AI avec l'[InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)opération. Cette section inclut également des exemples de code Python qui montrent comment appeler les modèles Stability AI. Pour utiliser un modèle dans une opération d’inférence, vous avez besoin de l’ID du modèle. Pour obtenir l’ID du modèle, consultez [Modèles de fondation pris en charge dans Amazon Bedrock](models-supported.md). Certains modèles fonctionnent également avec l’[API Converse](conversation-inference.md). Pour vérifier si l’API Converse prend en charge un modèle Stability AI spécifique, consultez [Modèles et fonctionnalités des modèles pris en charge](conversation-inference-supported-models-features.md). Pour plus d’exemples de code, consultez [Exemples de code pour Amazon Bedrock utilisant AWS SDKs](service_code_examples.md).

Les modèles de fondation d’Amazon Bedrock prennent en charge les modalités d’entrée et de sortie, qui varient d’un modèle à l’autre. Pour vérifier les modalités prises en charge par les modèles Stability AI, consultez [Modèles de fondation pris en charge dans Amazon Bedrock](models-supported.md). Pour vérifier quelles fonctionnalités Amazon Bedrock sont prises en charge par les modèles Stability AI, consultez [Modèles de fondation pris en charge dans Amazon Bedrock](models-supported.md). Pour vérifier AWS dans quelles régions les modèles Stability AI sont disponibles, consultez[Modèles de fondation pris en charge dans Amazon Bedrock](models-supported.md).

Lorsque vous effectuez des appels d’inférence avec les modèles Stability AI, vous incluez une invite pour le modèle. Pour plus d’informations générales sur la création d’invites pour les modèles pris en charge par Amazon Bedrock, consultez [Concepts d’ingénierie de requête](prompt-engineering-guidelines.md). Pour obtenir des informations sur les invites spécifiques à Stability AI, consultez le [Guide d’ingénierie de requête Stability AI](https://platform.stability.ai/docs/getting-started).

## Services d’imagerie et modèles pris en charge
<a name="supported-stability-models"></a>

Amazon Bedrock prend en charge les services d’imagerie et modèles Stability AI suivants.

**Note**  
La prise en charge de tous les autres modèles Stability AI est sur le point de devenir obsolète.


| Modèle | Cas d’utilisation | Exemple | 
| --- | --- | --- | 
|  [Stable Image Ultra](model-parameters-diffusion-stable-ultra-text-image-request-response.md)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-stability-diffusion.html)  |  Une marque de luxe utilise Stable Image Ultra pour créer des visuels époustouflants de sa dernière collection pour les magazines, garantissant ainsi une touche haut de gamme à la hauteur de ses normes élevées.  | 
|  [Stable Diffusion 3.5 Large](model-parameters-diffusion-3-5-large.md)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-stability-diffusion.html)  |  Une équipe de développement de jeux utilise SD3 .5 Large pour créer des textures environnementales détaillées et des concepts de personnages, accélérant ainsi son pipeline créatif.  | 
|  [Stable Image Core](model-parameters-diffusion-stable-image-core-text-image-request-response.md)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-stability-diffusion.html)  |  Un détaillant en ligne utilise Stable Image Core pour générer rapidement des images de produits pour les nouveaux arrivants, ce qui lui permet de répertorier les articles plus rapidement et de conserver son catalogue up-to-date.  | 
|  [Services d’imagerie Stability AI](stable-image-services.md)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-stability-diffusion.html)  |  Une entreprise de médias utilise la recherche et la recoloration, le transfert de style et la suppression de l’arrière-plan pour générer des variations d’images pour une campagne publicitaire.  | 

**Topics**
+ [Services d’imagerie et modèles pris en charge](#supported-stability-models)
+ [Stable Image Ultra : demande et réponse](model-parameters-diffusion-stable-ultra-text-image-request-response.md)
+ [Stability.ai Stable Diffusion 3.5 Large](model-parameters-diffusion-3-5-large.md)
+ [Demande et réponse de Stable Image Core](model-parameters-diffusion-stable-image-core-text-image-request-response.md)
+ [Services d’imagerie Stability AI](stable-image-services.md)

# Stable Image Ultra : demande et réponse
<a name="model-parameters-diffusion-stable-ultra-text-image-request-response"></a>

Le corps de la demande est transmis dans le `body` champ d'une demande à une [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)opération. 

**Modèle de champ du corps de la demande d'invocation**

Lorsque vous effectuez un InvokeModel appel à l'aide d'un modèle Stable Image Ultra, remplissez le champ body avec un objet JSON semblable à celui ci-dessous. 
+ **prompt** : (chaîne) ce que vous souhaitez voir dans l’image de sortie. Une invite descriptive forte qui définit clairement les éléments, les couleurs et les sujets permettra d’obtenir de meilleurs résultats.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-diffusion-stable-ultra-text-image-request-response.html)

**Champ body des réponses à l’invocation du modèle**

Lorsque vous passez un appel `InvokeModel` à l’aide d’un modèle Stable Image Ultra, la réponse est similaire à la suivante : 

```
{
         'seeds': [2130420379], 
         "finish_reasons":[null], 
         "images":["..."]
     }
```

Une réponse dont la raison finale n’est pas `null` ressemblera à ce qui suit :

```
{
         "finish_reasons":["Filter reason: prompt"]
     }
```
+ **seeds** : (chaîne) liste des amorces permettant de générer des images pour le modèle.
+ **finish\$1reasons** : Enum indiquant si la demande a été filtrée ou non. `null` indiquera que la demande a été acceptée. Valeurs possibles actuelles : `"Filter reason: prompt", "Filter reason: output image", "Filter reason: input image", "Inference error", null`.
+ **images** : liste des images générées au format de chaîne Base64.

Pour plus d'informations, consultez [https://platform.us.stability. ai/docs/api-reference\$1tag/v1génération](https://platform.us.stability.ai/docs/api-reference#tag/v1generation).

------
#### [ Text to image ]

Le modèle Stability.ai Stable Image Ultra possède les paramètres d'inférence suivants pour un appel d' text-to-imageinférence. 
+ **prompt** : (chaîne) ce que vous souhaitez voir dans l’image de sortie. Une invite descriptive forte qui définit clairement les éléments, les couleurs et les sujets permettra d’obtenir de meilleurs résultats.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-diffusion-stable-ultra-text-image-request-response.html)

**Champs facultatifs**
+ **aspect\$1ratio** : (chaîne) contrôle les proportions de l’image générée. Ce paramètre n'est valide que pour les text-to-image demandes. Valeur par défaut : 1:1. Enum : 16:9, 1:1, 21:9, 2:3, 3:2, 4:5, 5:4, 9:16, 9:21.
+ **mode** — Réglé sur text-to-image. Par défaut : text-to-image. Énumération : `text-to-image`.
+ **output\$1format** : spécifie le format de l’image de sortie. Formats pris en charge : JPEG, PNG. Dimensions prises en charge : hauteur 640 à 1 536 pixels, largeur 640 à 1 536 pixels.
+ **seed** : (nombre) valeur spécifique utilisée pour indiquer le « caractère aléatoire » de la génération. (Omettez ce paramètre ou transmettez 0 pour utiliser une amorce aléatoire.) Plage de valeurs : de 0 à 4 294 967 295.
+ **negative\$1prompt** : mots clés indiquant ce que vous ne souhaitez pas voir dans l’image de sortie. Maximum : 10 000 caractères.

```
import boto3
       import json
       import base64
       import io
       from PIL import Image
       
       bedrock = boto3.client('bedrock-runtime', region_name='us-west-2')
       response = bedrock.invoke_model(
           modelId='stability.sd3-ultra-v1:1',
           body=json.dumps({
               'prompt': 'A car made out of vegetables.'
           })
       )
       output_body = json.loads(response["body"].read().decode("utf-8"))
       base64_output_image = output_body["images"][0]
       image_data = base64.b64decode(base64_output_image)
       image = Image.open(io.BytesIO(image_data))
       image.save("image.png")
```

------
#### [ Image to image ]

Le modèle Stability.ai Stable Image Ultra possède les paramètres d'inférence suivants pour un appel d' image-to-imageinférence.
+ **prompt** : (chaîne) ce que vous souhaitez voir dans l’image de sortie. Une invite descriptive forte qui définit clairement les éléments, les couleurs et les sujets permettra d’obtenir de meilleurs résultats.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-diffusion-stable-ultra-text-image-request-response.html)

**Champs facultatifs**
+ **image** : (chaîne) image Base64 à utiliser comme point de départ pour la génération. Formats pris en charge : JPEG, PNG, WebP.
+ **force** : (nombre) niveau d’influence du paramètre d’image sur l’image générée. Les images dont les valeurs d’intensité sont faibles ressembleront davantage à l’image d’origine. Plage de valeurs : de 0,0 à 1,0. Valeur par défaut : 0,35.
+ **aspect\$1ratio** : (chaîne) contrôle les proportions de l’image générée. Ce paramètre n'est valide que pour les text-to-image demandes. Valeur par défaut : 1:1. Enum : 16:9, 1:1, 21:9, 2:3, 3:2, 4:5, 5:4, 9:16, 9:21.
+ **output\$1format** : spécifie le format de l’image de sortie. Formats pris en charge : JPEG, PNG. Dimensions prises en charge : hauteur 640 à 1 536 pixels, largeur 640 à 1 536 pixels.
+ **seed** : (nombre) valeur spécifique utilisée pour indiquer le « caractère aléatoire » de la génération. (Omettez ce paramètre ou transmettez 0 pour utiliser une amorce aléatoire.) Plage de valeurs : de 0 à 4 294 967 295.
+ **negative\$1prompt** : mots clés indiquant ce que vous ne souhaitez pas voir dans l’image de sortie. Maximum : 10 000 caractères.

```
import boto3
       import json
       import base64
       import io
       from PIL import Image
       
       bedrock = boto3.client('bedrock-runtime', region_name='us-west-2')
       response = bedrock.invoke_model(
           modelId='stability.sd3-ultra-v1:1',
           body=json.dumps({
               'prompt': 'A car made out of vegetables.'
           })
       )
       output_body = json.loads(response["body"].read().decode("utf-8"))
       base64_output_image = output_body["images"][0]
       image_data = base64.b64decode(base64_output_image)
       image = Image.open(io.BytesIO(image_data))
       image.save("image.png")
```

------

# Stability.ai Stable Diffusion 3.5 Large
<a name="model-parameters-diffusion-3-5-large"></a>

Le modèle Stable Diffusion 3.5 Large utilise 8 milliards de paramètres et prend en charge une résolution de sortie text-to-image et de image-to-image génération de 1 mégapixel.

Le corps de la demande est transmis dans le `body` champ d'une demande à [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html). 

**Modèle de champ du corps de la demande d'invocation**

Lorsque vous passez un InvokeModel appel à l'aide d'un modèle Stable Diffusion 3.5 Large, remplissez le champ body avec un objet JSON semblable à celui ci-dessous.
+ **prompt** : (chaîne) description textuelle de l’image de sortie souhaitée. 10 000 caractères maximum.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-diffusion-3-5-large.html)

**Champ body des réponses à l’invocation du modèle**

Lorsque vous passez un appel `InvokeModel` à l’aide d’un modèle Stable Diffusion 3.5 Large, la réponse est similaire à la suivante :

```
{
    'seeds': [2130420379], 
    "finish_reasons":[null], 
    "images":["..."]
}
```

Une réponse dont la raison finale n’est pas `null` ressemblera à ce qui suit :

```
{
    "finish_reasons":["Filter reason: prompt"]
}
```
+ **seeds** : (chaîne) liste des amorces permettant de générer des images pour le modèle.
+ **finish\$1reasons** : Enum indiquant si la demande a été filtrée ou non. `null` indiquera que la demande a été acceptée. Valeurs possibles actuelles : `"Filter reason: prompt", "Filter reason: output image", "Filter reason: input image", "Inference error", null`.
+ **images** : liste des images générées au format de chaîne Base64.

------
#### [ Text to image ]

Le modèle Stability.ai Stable Diffusion 3.5 Large possède les paramètres d'inférence suivants pour un appel d' text-to-imageinférence.
+ **prompt** (string) — Description textuelle de l'image de sortie souhaitée. 10 000 caractères maximum.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-diffusion-3-5-large.html)

**Paramètres facultatifs**
+ **aspect\$1ratio** (string) — Contrôle le rapport hauteur/largeur de l'image générée. Valable uniquement pour text-to-image les demandes. Enum : 16:9, 1:1, 21:9, 2:3, 3:2, 4:5, 5:4, 9:16, 9:21. Valeur par défaut : 1:1.
+ **mode** (string) (GenerationMode) - Par défaut : text-to-image. Enum : image-to-image ou. text-to-image Contrôle s'il s'agit d'une image-to-image génération text-to-image ou, ce qui influe sur les paramètres requis :
  + text-to-image nécessite uniquement le paramètre prompt.
  + image-to-image nécessite les paramètres d'invite, d'image et d'intensité.
+ **seed** (number) — Valeur permettant de contrôler le caractère aléatoire de la génération. Plage de 0 à 4 294 967 294. 0 par défaut (amorce aléatoire).    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-diffusion-3-5-large.html)
+ **negative\$1prompt** (string) — Texte décrivant les éléments à exclure de l'image de sortie. 10 000 caractères maximum.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-diffusion-3-5-large.html)
+ **output\$1format (string) — Format** de l'image de sortie. Enum : jpeg, png, webp. Valeur par défaut : png.

```
import boto3
import json

bedrock = boto3.client('bedrock-runtime', region_name='us-west-2')
response = bedrock.invoke_model(
    modelId='stability.sd3-5-large-v1:0',
    body=json.dumps({
        'prompt': 'A car made out of vegetables.'
    })
)
```

------
#### [ Image to image ]

Le modèle Stability.ai Stable Diffusion 3.5 Large possède les paramètres d'inférence suivants pour un appel d' image-to-imageinférence.
+ **prompt** (string) — Description textuelle de l'image de sortie souhaitée. 10 000 caractères maximum.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-diffusion-3-5-large.html)
+ **image** (chaîne) — Image d'entrée codée en Base64. Minimum 64 pixels par côté. Formats pris en charge : jpeg, png, webp.
+ **mode** (string) (GenerationMode) - Par défaut : text-to-image. Enum : image-to-image ou. text-to-image Contrôle s'il s'agit d'une image-to-image génération text-to-image ou, ce qui influe sur les paramètres requis :
  + text-to-image nécessite uniquement le paramètre prompt.
  + image-to-image nécessite les paramètres d'invite, d'image et d'intensité.
+ **force** (nombre) — Contrôle l'influence de l'image d'entrée sur la sortie. Plage de valeurs : de 0 à 1. La valeur 0 préserve l’image d’entrée, la valeur 1 ignore l’image d’entrée.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-diffusion-3-5-large.html)
+ **seed** (number) — Valeur permettant de contrôler le caractère aléatoire de la génération. Plage de 0 à 4 294 967 294. 0 par défaut (amorce aléatoire).    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-diffusion-3-5-large.html)
+ **negative\$1prompt** (string) — Texte décrivant les éléments à exclure de l'image de sortie. 10 000 caractères maximum.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-diffusion-3-5-large.html)
+ **output\$1format (string) — Format** de l'image de sortie. Enum : jpeg, png, webp. Valeur par défaut : png.

```
import boto3
import base64
import json

# Load and encode image
with open('input_image.jpg', 'rb') as image_file:
    image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

bedrock = boto3.client('bedrock-runtime', region_name='us-west-2')
response = bedrock.invoke_model(
    modelId='stability.sd3-5-large-v1:0',
    body=json.dumps({
        'prompt': 'A car made out of vegetables.',
        'image': image_base64,
        'strength': 0.7
    })
)
```

------

# Demande et réponse de Stable Image Core
<a name="model-parameters-diffusion-stable-image-core-text-image-request-response"></a>

Le corps de la demande est transmis dans le `body` champ d'une demande à [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html). 

**Modèle de champ du corps de la demande d'invocation**

Lorsque vous passez un InvokeModel appel à l'aide d'un modèle Stability AI Stable Diffusion Stable Image Core, remplissez le champ body avec un objet JSON semblable à celui ci-dessous. 

```
{
        'prompt': 'Create an image of a panda'
    }
```

**Champ body des réponses à l’invocation du modèle**

Lorsque vous passez un InvokeModel appel à l'aide d'un modèle Stability AI Stable Diffusion Stable Image Core, la réponse est la suivante : 

```
{
        'seeds': [2130420379], 
        'finish_reasons': [null], 
        'images': ['...']
    }
```
+ **seeds** : (chaîne) liste des amorces permettant de générer des images pour le modèle.
+ **finish\$1reasons** : Enum indiquant si la demande a été filtrée ou non. `null` indiquera que la demande a été acceptée. Valeurs possibles actuelles : `"Filter reason: prompt", "Filter reason: output image", "Filter reason: input image", "Inference error", null`.
+ **images** : liste des images générées au format de chaîne Base64.

Pour plus d'informations, consultez [https://platform.us.stability. ai/docs/api-reference\$1tag/v1génération](https://platform.us.stability.ai/docs/api-reference#tag/v1generation).

------
#### [ Text to image ]

Le modèle Stable Image Core comporte les paramètres d’inférence suivants pour un appel d’inférence texte vers image. 

 **text\$1prompts** (obligatoire) : tableau d’invites de texte à utiliser pour la génération. Chaque élément est un objet JSON qui contient une invite et une pondération pour l’invite.
+ **prompt** : (chaîne) ce que vous souhaitez voir dans l’image de sortie. Une invite descriptive forte qui définit clairement les éléments, les couleurs et les sujets permettra d’obtenir de meilleurs résultats.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-diffusion-stable-image-core-text-image-request-response.html)

**Champs facultatifs**
+ **aspect\$1ratio** : (chaîne) contrôle les proportions de l’image générée. Ce paramètre n'est valide que pour les text-to-image demandes. Valeur par défaut : 1:1. Enum : 16:9, 1:1, 21:9, 2:3, 3:2, 4:5, 5:4, 9:16, 9:21.
+ **output\$1format** : spécifie le format de l’image de sortie. Formats pris en charge : JPEG, PNG. Dimensions prises en charge : hauteur 640 à 1 536 pixels, largeur 640 à 1 536 pixels.
+ **seed** : (nombre) valeur spécifique utilisée pour indiquer le « caractère aléatoire » de la génération. (Omettez ce paramètre ou transmettez 0 pour utiliser une amorce aléatoire.) Plage de valeurs : de 0 à 4 294 967 295.
+ **negative\$1prompt** : mots clés indiquant ce que vous ne souhaitez pas voir dans l’image de sortie. Maximum : 10 000 caractères.

```
     import boto3
     import json
     import base64
     import io
     from PIL import Image
     
     bedrock = boto3.client('bedrock-runtime', region_name='us-west-2')
     response = bedrock.invoke_model(
         modelId='stability.stable-image-core-v1:0',
         body=json.dumps({
             'prompt': 'A car made out of vegetables.'
         })
     )
     output_body = json.loads(response["body"].read().decode("utf-8"))
     base64_output_image = output_body["images"][0]
     image_data = base64.b64decode(base64_output_image)
     image = Image.open(io.BytesIO(image_data))
     image.save("image.png")
```

------

# Services d’imagerie Stability AI
<a name="stable-image-services"></a>

Vous pouvez utiliser Stability AI Image Services avec Amazon Bedrock pour accéder à treize outils de retouche d'image spécialisés conçus pour accélérer les flux de travail créatifs professionnels. Grâce aux services d’imagerie Stability AI, vous pouvez générer des images à partir d’une esquisse, restructurer et relooker une image existante ou supprimer et remplacer des objets dans une image.

Cette section décrit comment effectuer des appels d'inférence vers Stability AI Image Services à l'aide du [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html). Cette section fournit également des exemples de code en Python et des exemples d’images avant et après l’utilisation des services d’imagerie Stability AI.

Les services d’imagerie Stability AI sont disponibles dans les catégories suivantes :
+ **Retouche** : services de retouche d’images basés sur l’IA, y compris la peinture à l’aide de masques (remplissage génératif) ou de mots. Comprend des outils pour le placement de produits et la publicité, ainsi que des outils de base tels que la suppression de l’arrière-plan.
+ **Contrôle** : peut prendre des invites, des cartes et d’autres guides. Ces services tirent parti ControlNets de technologies similaires basées sur des modèles de diffusion stable.

**Note**  
L'abonnement à n'importe quel service de modification ou de contrôle Stability AI Image Service vous inscrit automatiquement aux treize services d'imagerie Stability AI disponibles.

**Topics**
+ [Demande et réponse](#model-parameters-stable-image-services-request-response)
+ [Haut de gamme](#stable-image-services-upscale)
+ [Retouche](#stable-image-services-edit)
+ [Contrôle](#stable-image-services-control)

## Demande et réponse
<a name="model-parameters-stable-image-services-request-response"></a>

Le corps de la demande est transmis dans le `body` champ d'une demande à [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html). 

**Modèle de champ du corps de la demande d'invocation**

Lorsque vous passez un InvokeModel appel à l'aide de Stability AI Image Services, remplissez le champ body avec un objet JSON semblable à celui ci-dessous. 

```
{
    'prompt': 'Create an image of a panda'
}
```

**Champ body des réponses à l’invocation du modèle**

Lorsque vous passez un InvokeModel appel à l'aide de Stability AI Image Services, la réponse est la suivante : 

```
{
    'seeds': [2130420379], 
    'finish_reasons': [null], 
    'images': ['...']
}
```
+ **seeds** : (chaîne) liste des amorces permettant de générer des images pour le modèle.
+ **finish\$1reasons** : Enum indiquant si la demande a été filtrée ou non. `null` indiquera que la demande a été acceptée. Valeurs possibles actuelles : `"Filter reason: prompt", "Filter reason: output image", "Filter reason: input image", "Inference error", null`.
+ **images** : liste des images générées au format de chaîne Base64.

Pour plus d'informations, consultez [https://platform.us.stability. ai/docs/api-reference\$1tag/v1génération](https://platform.us.stability.ai/docs/api-reference#tag/v1generation).

## Haut de gamme
<a name="stable-image-services-upscale"></a>

La section suivante décrit les services d'imagerie haut de gamme Stability AI.

### Haut de gamme créatif
<a name="stable-image-services-5"></a>

Creative Upscale prend des images entre 64 x 64 et 1 mégapixel et les fait passer à une résolution 4K. Ce service permet de redimensionner les images de 20 à 40 fois tout en préservant et souvent en améliorant la qualité. Creative Upscale fonctionne mieux sur les images très dégradées et ne convient pas aux photos de 1 mégapixel ou plus, car il permet de nombreuses réimaginations.

Les paramètres requis pour Creative Upscale sont les suivants :
+ **prompt** : ce que vous souhaitez voir dans l’image de sortie. Une invite descriptive forte qui définit clairement les éléments, les couleurs et les sujets permettra d’obtenir de meilleurs résultats. Contrôlez la pondération d’un mot donné à l’aide du format (mot:pondération), où « mot » est le mot dont vous souhaitez contrôler la pondération et « pondération » est une valeur. Une valeur comprise entre 0 et 1,0 réduit l’accent sur le mot et une valeur comprise entre 1,1 et 2 met l’accent dessus. Par exemple : « Le ciel était d’un (bleu:0,3) et d’un (vert:1,8) vifs » refléterait un ciel bleu et vert, mais davantage vert que bleu. 0 caractères minimum et 10 000 caractères maximum.
+ **image** ‐ (chaîne) L'image Base64 à augmenter. Chaque côté de l’image doit mesurer au moins 64 pixels. Le nombre total de pixels doit être compris entre 4 096 et 1 048 576 pixels. Formats pris en charge : jpeg, png, webp.

Les paramètres suivants sont facultatifs :
+ **créativité** ‐ (nombre) Indique à quel point le modèle doit être créatif lors de la mise à l'échelle d'une image. Des valeurs plus élevées permettront d'ajouter plus de détails à l'image lors de la mise à l'échelle. Plage comprise entre 0,1 et 0,5. Par défaut 0,3
+ **negative\$1prompt** : (chaîne) texte de présentation décrivant ce que vous ne souhaitez pas voir dans l’image de sortie. Il s’agit d’une fonctionnalité avancée. 10 000 caractères maximum.
+ **seed** : (nombre) valeur spécifique utilisée pour indiquer le « caractère aléatoire » de la génération. (Omettez ce paramètre ou transmettez 0 pour utiliser une amorce aléatoire.) Plage de valeurs : de 0 à 4294967294. Valeur par défaut : 0.
+ **output\$1format** : (chaîne) indique le type de contenu de l’image générée. Enum : jpeg, png, webp. Valeur par défaut : png.
+ **style\$1preset** : guide le modèle d’image vers un style particulier. Enum : modèle 3D, film analogique, anime, cinématographique, bande dessinée, art numérique, amélioration, art fantastique, isométrique, dessin au trait, low-poly, composé de modélisation, néon-punk, origami, photographique, pixel art, texture de tuile.

------
#### [ API ]

```
import base64
import json
import requests
import io
import os
from PIL import Image

image = "./content/input.jpg"

region = "us-east-1"
model_id = "us.stability.stable-creative-upscale-v1:0"
url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke"
api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html
headers = {
    "Content-Type":"application/json",
    "Authorization":f"Bearer {api_key}"
}

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "prompt": "This dreamlike digital art captures a vibrant, kaleidoscopic Big Ben in London",
        "creativity": 0.30
    }
    response = requests.request("POST", url, json=params, headers=headers)
    response.raise_for_status()
    model_response = json.loads(response.text)
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")
    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------
#### [ Python ]

```
import boto3
import base64
import io
import json
from PIL import Image

image = "./content/input.jpg"

region = "us-east-1"
model_id = "us.stability.stable-creative-upscale-v1:0"

bedrock = boto3.client("bedrock-runtime", region_name=region)

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "prompt": "This dreamlike digital art captures a vibrant, kaleidoscopic Big Ben in London",
        "creativity": 0.30
    }
    request = json.dumps(params)
    response = bedrock.invoke_model(modelId=model_id, body=request)
    model_response = json.loads(response["body"].read())
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")
    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------

Le tableau suivant montre les images d'entrée et de sortie d'une opération Creative Upscale à l'aide de l'invite suivante : *Cette œuvre d'art numérique onirique capture un oiseau kaléidoscopique aux couleurs vives dans une* forêt tropicale luxuriante.


|  Input  |  Output  | 
| --- | --- | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/input-creative-upscale.jpg)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/output-creative-upscale.jpg)  | 

### Haut de gamme conservateur
<a name="stable-image-services-6"></a>

Conservative Upscale prend des images entre 64 x 64 et 1 mégapixel et les fait passer à une résolution 4K. Ce service permet de redimensionner les images de 20 à 40 fois tout en préservant tous les aspects. Conservative Upscale minimise les altérations de l'image et ne doit pas être utilisé pour réinventer une image.

Conservative Upscale possède les paramètres requis suivants :
+ **prompt** : ce que vous souhaitez voir dans l’image de sortie. Une invite descriptive forte qui définit clairement les éléments, les couleurs et les sujets permettra d’obtenir de meilleurs résultats. Contrôlez la pondération d’un mot donné à l’aide du format (mot:pondération), où « mot » est le mot dont vous souhaitez contrôler la pondération et « pondération » est une valeur. Une valeur comprise entre 0 et 1,0 réduit l’accent sur le mot et une valeur comprise entre 1,1 et 2 met l’accent dessus. Par exemple : « Le ciel était d’un (bleu:0,3) et d’un (vert:1,8) vifs » refléterait un ciel bleu et vert, mais davantage vert que bleu. 0 caractères minimum et 10 000 caractères maximum.
+ **image** ‐ (chaîne) L'image Base64 à augmenter. Chaque côté de l’image doit mesurer au moins 64 pixels. Le nombre total de pixels ne peut pas dépasser 9 437 184 pixels. Les proportions de l’image doivent être comprises entre 1:2,5 et 2,5:1. Formats pris en charge : jpeg, png, webp.

Les paramètres suivants sont facultatifs :
+ **créativité** ‐ (nombre) Indique à quel point le modèle doit être créatif lors de la mise à l'échelle d'une image. Des valeurs plus élevées permettront d'ajouter plus de détails à l'image lors de la mise à l'échelle. Plage comprise entre 0,1 et 0,5. Par défaut 0,35
+ **negative\$1prompt** : (chaîne) texte de présentation décrivant ce que vous ne souhaitez pas voir dans l’image de sortie. Il s’agit d’une fonctionnalité avancée. 10 000 caractères maximum.
+ **seed** : (nombre) valeur spécifique utilisée pour indiquer le « caractère aléatoire » de la génération. (Omettez ce paramètre ou transmettez 0 pour utiliser une amorce aléatoire.) Plage de valeurs : de 0 à 4294967294. Valeur par défaut : 0.
+ **output\$1format** : (chaîne) indique le type de contenu de l’image générée. Enum : jpeg, png, webp. Valeur par défaut : png.

------
#### [ API ]

```
import base64
import json
import requests
import io
import os
from PIL import Image

image = "./content/input.jpg"

region = "us-east-1"
model_id = "us.stability.stable-conservative-upscale-v1:0"
url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke"
api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html
headers = {
    "Content-Type":"application/json",
    "Authorization":f"Bearer {api_key}"
}

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "prompt": "This dreamlike digital art captures a vibrant, kaleidoscopic Big Ben in London",
        "creativity": 0.30
    }
    response = requests.request("POST", url, json=params, headers=headers)
    response.raise_for_status()
    model_response = json.loads(response.text)
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")
    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------
#### [ Python ]

```
import boto3
import base64
import io
import json
from PIL import Image

image = "./content/input.jpg"

region = "us-east-1"
model_id = "us.stability.stable-conservative-upscale-v1:0"

bedrock = boto3.client("bedrock-runtime", region_name=region)

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "prompt": "This dreamlike digital art captures a vibrant, kaleidoscopic Big Ben in London",
        "creativity": 0.30
    }
    request = json.dumps(params)
    response = bedrock.invoke_model(modelId=model_id, body=request)
    model_response = json.loads(response["body"].read())
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")
    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------

Le tableau suivant montre les images d'entrée et de sortie d'une opération Conservative Upscale à l'aide de l'invite suivante : *photo d'un poulet géant dans une forêt*.


|  Input  |  Output  | 
| --- | --- | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/input-conservative-upscale.jpg)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/output-conservative-upscale.jpg)  | 

### Haut de gamme rapide
<a name="stable-image-services-7"></a>

Fast Upscale multiplie par 4 la résolution de l'image grâce à l'IA prédictive et générative. Ce service léger et rapide est idéal pour améliorer la qualité des images compressées, ce qui le rend adapté aux publications sur les réseaux sociaux et à d'autres applications.

Fast Upscale possède les paramètres requis suivants :
+ **image** ‐ (chaîne) L'image Base64 à augmenter. La largeur doit être comprise entre 32 et 1 536 pixels. La hauteur doit être comprise entre 32 et 1 536 pixels. Le nombre total de pixels doit être compris entre 1 024 et 1 048 576 pixels. Formats pris en charge : jpeg, png, webp.
+ **output\$1format** : (chaîne) indique le type de contenu de l’image générée. Enum : jpeg, png, webp. Valeur par défaut : png.

------
#### [ API ]

```
import base64
import json
import requests
import io
import os
from PIL import Image

image = "./content/input.jpg"

region = "us-east-1"
model_id = "us.stability.stable-fast-upscale-v1:0"
url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke"
api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html
headers = {
    "Content-Type":"application/json",
    "Authorization":f"Bearer {api_key}"
}

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64
    }
    response = requests.request("POST", url, json=params, headers=headers)
    response.raise_for_status()
    model_response = json.loads(response.text)
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")
    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------
#### [ Python ]

```
import boto3
import base64
import io
import json
from PIL import Image

image = "./content/input.jpg"

region = "us-east-1"
model_id = "us.stability.stable-fast-upscale-v1:0"

bedrock = boto3.client("bedrock-runtime", region_name=region)

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64
    }
    request = json.dumps(params)
    response = bedrock.invoke_model(modelId=model_id, body=request)
    model_response = json.loads(response["body"].read())
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")
    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------

Le tableau suivant montre les images d'entrée et de sortie d'une opération Fast Upscale.


|  Input  |  Output  | 
| --- | --- | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/input-fast-upscale.jpg)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/output-fast-upscale.jpg)  | 

## Retouche
<a name="stable-image-services-edit"></a>

La section suivante décrit les services de retouche d’images Stability AI.

### Inpaint
<a name="stable-image-services-8"></a>

Inpaint modifie les images de manière intelligente en remplissant (ou en remplaçant) des zones spécifiées avec (ou par) du nouveau contenu basé sur le contenu d’une image de masque.

Voici les paramètres obligatoires d’Inpaint :
+ **prompt** : ce que vous souhaitez voir dans l’image de sortie. Une invite descriptive forte qui définit clairement les éléments, les couleurs et les sujets permettra d’obtenir de meilleurs résultats. Contrôlez la pondération d’un mot donné à l’aide du format (mot:pondération), où « mot » est le mot dont vous souhaitez contrôler la pondération et « pondération » est une valeur. Une valeur comprise entre 0 et 1,0 réduit l’accent sur le mot et une valeur comprise entre 1,1 et 2 met l’accent dessus. Par exemple : « Le ciel était d’un (bleu:0,3) et d’un (vert:1,8) vifs » refléterait un ciel bleu et vert, mais davantage vert que bleu. 0 caractères minimum et 10 000 caractères maximum.
+ **image** : (chaîne) image Base64 à peindre. Chaque côté de l’image doit mesurer au moins 64 pixels. Le nombre total de pixels ne peut pas dépasser 9 437 184 pixels. Les proportions de l’image doivent être comprises entre 1:2,5 et 2,5:1. Formats pris en charge : jpeg, png, webp.

Les paramètres suivants sont facultatifs :
+ **style\$1preset** : (chaîne) guide le modèle d’image vers un style particulier. Enum : modèle 3D, film analogique, anime, cinématographique, bande dessinée, art numérique, amélioration, art fantastique, isométrique, dessin au trait, low-poly, composé de modélisation, néon-punk, origami, photographique, pixel art, texture de tuile.
+ **negative\$1prompt** : (chaîne) texte de présentation décrivant ce que vous ne souhaitez pas voir dans l’image de sortie. Il s’agit d’une fonctionnalité avancée. 10 000 caractères maximum.
+ **seed** : (nombre) valeur spécifique utilisée pour indiquer le « caractère aléatoire » de la génération. (Omettez ce paramètre ou transmettez 0 pour utiliser une amorce aléatoire.) Plage de valeurs : de 0 à 4294967294. Valeur par défaut : 0.
+ **output\$1format** : (chaîne) indique le type de contenu de l’image générée. Enum : jpeg, png, webp. Valeur par défaut : png.
+ **mask** : (chaîne) contrôle l’intensité du processus de peinture par pixel, soit via une deuxième image (transmise dans ce paramètre), soit via le canal alpha du paramètre d’image.
  + **Transmission d’un masque** : l’image transmise à ce paramètre doit être une image en noir et blanc qui représente, à chaque pixel, l’intensité de la peinture en fonction du degré d’obscurité ou de lumière du pixel donné. Les pixels entièrement noirs ne représentent aucune intensité de peinture, tandis que les pixels entièrement blancs représentent une intensité maximale. Si le masque possède une taille différente de celle du paramètre d’image, il est automatiquement redimensionné.
  + **Prise en charge du canal alpha** : si vous ne fournissez pas de masque explicite, celui-ci est dérivé du canal alpha du paramètre d’image. Les pixels transparents sont peints, tandis que les pixels opaques sont préservés. Si une image avec un canal alpha est fournie avec un masque, le masque prévaut.
+ **grow\$1mask** : agrandit les bords du masque vers l’extérieur dans toutes les directions selon le nombre de pixels spécifié. La zone étendue autour du masque est floue, ce qui facilite la transition entre le contenu peint et l’image d’origine. Plage de valeurs : de 0 à 20. Valeur par défaut : 5. Essayez ce paramètre si vous remarquez des raccords ou des bords irréguliers autour du contenu peint. Notez qu'une croissance excessive peut masquer les détails les plus fins du masque et and/or fusionner les régions masquées voisines.

------
#### [ API ]

```
import base64
import json
import requests
import io
import os
from PIL import Image

image = "./content/input.png"
mask = "./content/mask.png"

region = "us-east-1"
model_id = "us.stability.stable-image-inpaint-v1:0"
url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke"
api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html
headers = {
    "Content-Type":"application/json",
    "Authorization":f"Bearer {api_key}"
}

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')
    with open(mask, "rb") as mask_file:
        mask_base64 = base64.b64encode(mask_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "mask": mask_base64,
        "prompt": "artificer of time and space"
    }
    response = requests.request("POST", url, json=params, headers=headers)
    response.raise_for_status()
    model_response = json.loads(response.text)
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")

    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------
#### [ Python ]

```
import boto3
import base64
import io
import json
from PIL import Image

image = "./content/input.png"
mask = "./content/mask.png"

region = "us-east-1"
model_id = "us.stability.stable-image-inpaint-v1:0"

bedrock = boto3.client("bedrock-runtime", region_name=region)

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')
    with open(mask, "rb") as mask_file:
        mask_base64 = base64.b64encode(mask_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "mask": mask_base64,
        "prompt": "artificer of time and space"
    }
    request = json.dumps(params)
    response = bedrock.invoke_model(modelId=model_id, body=request)
    model_response = json.loads(response["body"].read())
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")

    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------

Le tableau suivant indique les images d’entrée et de sortie d’une opération Inpaint :


|  Input  |  Masque  |  Output  | 
| --- | --- | --- | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/input-image-inpaint.jpg)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/mask-image-inpaint.png)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/output-image-inpaint.jpg)  | 

### Dépasser la peinture
<a name="stable-image-services-9"></a>

Outpaint insère du contenu supplémentaire dans une image pour remplir l'espace dans n'importe quelle direction. Comparé à d'autres tentatives automatisées ou manuelles d'extension du contenu d'une image, le service Outpaint minimise les indications indiquant que l'image d'origine a été modifiée.

Outpaint possède les paramètres obligatoires suivants :
+ **image** ‐ (chaîne) L'image Base64 à surpeindre. Chaque côté de l’image doit mesurer au moins 64 pixels. Le nombre total de pixels ne peut pas dépasser 9 437 184 pixels. Les proportions de l’image doivent être comprises entre 1:2,5 et 2,5:1. Formats pris en charge : jpeg, png, webp.
**Note**  
Au moins une direction de sortie : (gauche, droite, haut ou bas) doit être fournie avec une valeur différente de zéro. Pour des résultats de qualité optimale, tenez compte de la composition et du contenu de votre image d'origine lorsque vous choisissez les directions de surpeinture.

Les paramètres suivants sont facultatifs :
+ **prompt** : ce que vous souhaitez voir dans l’image de sortie. Une invite descriptive forte qui définit clairement les éléments, les couleurs et les sujets permettra d’obtenir de meilleurs résultats. Contrôlez la pondération d’un mot donné à l’aide du format (mot:pondération), où « mot » est le mot dont vous souhaitez contrôler la pondération et « pondération » est une valeur. Une valeur comprise entre 0 et 1,0 réduit l’accent sur le mot et une valeur comprise entre 1,1 et 2 met l’accent dessus. Par exemple : « Le ciel était d’un (bleu:0,3) et d’un (vert:1,8) vifs » refléterait un ciel bleu et vert, mais davantage vert que bleu. 0 caractères minimum et 10 000 caractères maximum.
+ **style\$1preset** : (chaîne) guide le modèle d’image vers un style particulier. Enum : modèle 3D, film analogique, anime, cinématographique, bande dessinée, art numérique, amélioration, art fantastique, isométrique, dessin au trait, low-poly, composé de modélisation, néon-punk, origami, photographique, pixel art, texture de tuile.
+ **seed** : (nombre) valeur spécifique utilisée pour indiquer le « caractère aléatoire » de la génération. (Omettez ce paramètre ou transmettez 0 pour utiliser une amorce aléatoire.) Plage de valeurs : de 0 à 4294967294. Valeur par défaut : 0.
+ **output\$1format** : (chaîne) indique le type de contenu de l’image générée. Enum : jpeg, png, webp. Valeur par défaut : png.
+ **créativité** ‐ (nombre) Indique à quel point le modèle doit être créatif lorsqu'il surpeint une image. Plus les valeurs sont élevées, plus de contenu créatif sera ajouté à l'image lors de la peinture. Plage comprise entre 0,1 et 1,0. Valeur par défaut : 0,5.
+ **left** ‐ (entier) Nombre de pixels à surpeindre sur le côté gauche de l'image. Au moins une direction de surpeinture doit être fournie avec une valeur différente de zéro. Plage de 0 à 2000. Par défaut 0.
+ **right** ‐ (entier) Nombre de pixels à surpeindre sur le côté droit de l'image. Au moins une direction de surpeinture doit être fournie avec une valeur différente de zéro. Plage de 0 à 2000. Par défaut 0.
+ **up** ‐ (entier) Nombre de pixels à surpeindre en haut de l'image. Au moins une direction de surpeinture doit être fournie avec une valeur différente de zéro. Plage de 0 à 2000. Par défaut 0.
+ **down** ‐ (entier) Nombre de pixels à surpeindre en bas de l'image. Au moins une direction de surpeinture doit être fournie avec une valeur différente de zéro. Plage de 0 à 2000. Par défaut 0.

------
#### [ API ]

```
import base64
import json
import requests
import io
import os
from PIL import Image

image = "./content/input.jpg"

region = "us-east-1"
model_id = "us.stability.stable-outpaint-v1:0"
url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke"
api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html
headers = {
    "Content-Type":"application/json",
    "Authorization":f"Bearer {api_key}"
}

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "left": 512,
        "right": 512,
        "up": 200,
        "down": 100
    }
    response = requests.request("POST", url, json=params, headers=headers)
    response.raise_for_status()
    model_response = json.loads(response.text)
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")
    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------
#### [ Python ]

```
import boto3
import base64
import io
import json
from PIL import Image

image = "./content/input.png"

region = "us-east-1"
model_id = "us.stability.stable-outpaint-v1:0"

bedrock = boto3.client("bedrock-runtime", region_name=region)

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "left": 512,
        "right": 512,
        "up": 200,
        "down": 100
    }
    request = json.dumps(params)
    response = bedrock.invoke_model(modelId=model_id, body=request)
    model_response = json.loads(response["body"].read())
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")
    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------

Le tableau suivant montre les images d'entrée et de sortie d'une opération Outpaint.


|  Input  |  Output  | 
| --- | --- | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/input-image-outpaint.jpg)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/output-image-outpaint.jpg)  | 

### Search and Recolor
<a name="stable-image-services-10"></a>

Search and Recolor vous permet de modifier la couleur d’un objet spécifique dans une image à l’aide d’une invite. Ce service est une version spécifique de peinture qui ne nécessite pas de masque. Il segmente automatiquement l’objet et le recolore à l’aide des couleurs demandées dans l’invite.

Voici les paramètres obligatoires de Search and Recolor :
+ **prompt** : ce que vous souhaitez voir dans l’image de sortie. Une invite descriptive forte qui définit clairement les éléments, les couleurs et les sujets permettra d’obtenir de meilleurs résultats. Contrôlez la pondération d’un mot donné à l’aide du format (mot:pondération), où « mot » est le mot dont vous souhaitez contrôler la pondération et « pondération » est une valeur. Une valeur comprise entre 0 et 1,0 réduit l’accent sur le mot et une valeur comprise entre 1,1 et 2 met l’accent dessus. Par exemple : « Le ciel était d’un (bleu:0,3) et d’un (vert:1,8) vifs » refléterait un ciel bleu et vert, mais davantage vert que bleu. 0 caractères minimum et 10 000 caractères maximum.
+ **image** : (chaîne) image Base64 à recolorer. Chaque côté de l’image doit mesurer au moins 64 pixels. Le nombre total de pixels ne peut pas dépasser 9 437 184 pixels. Les proportions de l’image doivent être comprises entre 1:2,5 et 2,5:1. Formats pris en charge : jpeg, png, webp.
+ **select\$1prompt** : (chaîne) brève description des éléments à rechercher dans l’image. 10 000 caractères maximum.

Les paramètres suivants sont facultatifs :
+ **style\$1preset** : (chaîne) guide le modèle d’image vers un style particulier. Enum : modèle 3D, film analogique, anime, cinématographique, bande dessinée, art numérique, amélioration, art fantastique, isométrique, dessin au trait, low-poly, composé de modélisation, néon-punk, origami, photographique, pixel art, texture de tuile.
+ **negative\$1prompt** : (chaîne) texte de présentation décrivant ce que vous ne souhaitez pas voir dans l’image de sortie. Il s’agit d’une fonctionnalité avancée. 10 000 caractères maximum.
+ **seed** : (nombre) valeur spécifique utilisée pour indiquer le « caractère aléatoire » de la génération. (Omettez ce paramètre ou transmettez 0 pour utiliser une amorce aléatoire.) Plage de valeurs : de 0 à 4294967294. Valeur par défaut : 0.
+ **output\$1format** : (chaîne) indique le type de contenu de l’image générée. Enum : jpeg, png, webp. Valeur par défaut : png.
+ **grow\$1mask** : agrandit les bords du masque vers l’extérieur dans toutes les directions selon le nombre de pixels spécifié. La zone étendue autour du masque est floue, ce qui facilite la transition entre le contenu peint et l’image d’origine. Plage de valeurs : de 0 à 20. Valeur par défaut : 5. Essayez ce paramètre si vous remarquez des raccords ou des bords irréguliers autour du contenu peint. Notez qu'une croissance excessive peut masquer les détails les plus fins du masque et and/or fusionner les régions masquées voisines.

------
#### [ API ]

```
import base64
import json
import requests
import io
import os
from PIL import Image

image = "./content/input.png"

region = "us-east-1"
model_id = "us.stability.stable-image-search-recolor-v1:0"
url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke"
api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html
headers = {
    "Content-Type":"application/json",
    "Authorization":f"Bearer {api_key}"
}

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "prompt": "pink jacket",
        "select_prompt": "jacket"
    }
    response = requests.request("POST", url, json=params, headers=headers)
    response.raise_for_status()
    model_response = json.loads(response.text)

    base64_image_data = model_response["images"][0]
    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")

    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------
#### [ Python ]

```
import boto3
import base64
import io
import json
from PIL import Image

image = "./content/input.png"

region = "us-east-1"
model_id = "us.stability.stable-image-search-recolor-v1:0"

bedrock = boto3.client("bedrock-runtime", region_name=region)

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "prompt": "pink jacket",
        "select_prompt": "jacket"
    }
    request = json.dumps(params)
    response = bedrock.invoke_model(modelId=model_id, body=request)
    model_response = json.loads(response["body"].read())
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")

    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------

Le tableau suivant montre les images d’entrée et de sortie d’une opération Search and Recolor à l’aide de l’invite suivante : *veste rose*.


|  Input  |  Output  | 
| --- | --- | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/input-search-recolor.jpg)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/output-search-recolor.jpg)  | 

### Search and Replace
<a name="stable-image-services-11"></a>

Search and Replace vous permet d’identifier un objet à remplacer dans un langage simple à l’aide d’une invite de recherche. Le service segmente automatiquement l’objet et le remplace par l’objet demandé dans l’invite sans avoir besoin de masque.

Voici les paramètres obligatoires de Search and Replace :
+ **prompt** : ce que vous souhaitez voir dans l’image de sortie. Une invite descriptive forte qui définit clairement les éléments, les couleurs et les sujets permettra d’obtenir de meilleurs résultats. Contrôlez la pondération d’un mot donné à l’aide du format (mot:pondération), où « mot » est le mot dont vous souhaitez contrôler la pondération et « pondération » est une valeur. Une valeur comprise entre 0 et 1,0 réduit l’accent sur le mot et une valeur comprise entre 1,1 et 2 met l’accent dessus. Par exemple : « Le ciel était d’un (bleu:0,3) et d’un (vert:1,8) vifs » refléterait un ciel bleu et vert, mais davantage vert que bleu. 0 caractères minimum et 10 000 caractères maximum.
+ **image** : (chaîne) image Base64 à recolorer. Chaque côté de l’image doit mesurer au moins 64 pixels. Le nombre total de pixels ne peut pas dépasser 9 437 184 pixels. Les proportions de l’image doivent être comprises entre 1:2,5 et 2,5:1. Formats pris en charge : jpeg, png, webp.
+ **search\$1prompt** : (chaîne) brève description des éléments à peindre dans l’image. 10 000 caractères maximum.

Les paramètres suivants sont facultatifs :
+ **style\$1preset** : (chaîne) guide le modèle d’image vers un style particulier. Enum : modèle 3D, film analogique, anime, cinématographique, bande dessinée, art numérique, amélioration, art fantastique, isométrique, dessin au trait, low-poly, composé de modélisation, néon-punk, origami, photographique, pixel art, texture de tuile.
+ **negative\$1prompt** : (chaîne) texte de présentation décrivant ce que vous ne souhaitez pas voir dans l’image de sortie. Il s’agit d’une fonctionnalité avancée. 10 000 caractères maximum.
+ **seed** : (nombre) valeur spécifique utilisée pour indiquer le « caractère aléatoire » de la génération. (Omettez ce paramètre ou transmettez 0 pour utiliser une amorce aléatoire.) Plage de valeurs : de 0 à 4294967294. Valeur par défaut : 0.
+ **output\$1format** : (chaîne) indique le type de contenu de l’image générée. Enum : jpeg, png, webp. Valeur par défaut : png.
+ **grow\$1mask** : agrandit les bords du masque vers l’extérieur dans toutes les directions selon le nombre de pixels spécifié. La zone étendue autour du masque est floue, ce qui facilite la transition entre le contenu peint et l’image d’origine. Plage de valeurs : de 0 à 20. Valeur par défaut : 5. Essayez ce paramètre si vous remarquez des raccords ou des bords irréguliers autour du contenu peint. Notez qu'une croissance excessive peut masquer les détails les plus fins du masque et and/or fusionner les régions masquées voisines.

------
#### [ API ]

```
import base64
import json
import requests
import io
import os
from PIL import Image

image = "./content/input.png"

region = "us-east-1"
model_id = "us.stability.stable-image-search-replace-v1:0"
url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke"
api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html
headers = {
    "Content-Type":"application/json",
    "Authorization":f"Bearer {api_key}"
}

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "prompt": "jacket",
        "search_prompt": "sweater",
    }
    response = requests.request("POST", url, json=params, headers=headers)
    response.raise_for_status()
    model_response = json.loads(response.text)
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")

    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------
#### [ Python ]

```
import boto3
import base64
import io
import json
from PIL import Image

image = "./content/input.png"

region = "us-east-1"
model_id = "us.stability.stable-image-search-replace-v1:0"

bedrock = boto3.client("bedrock-runtime", region_name=region)

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "prompt": "jacket",
        "search_prompt": "sweater",
    }
    request = json.dumps(params)
    response = bedrock.invoke_model(modelId=model_id, body=request)
    model_response = json.loads(response["body"].read())
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")
    image_data = base64.b64decode(base64_image_data)

    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")

    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------

Le tableau suivant montre les images d’entrée et de sortie d’une opération Search and Replace à l’aide de l’invite suivante : *veste*.


|  Input  |  Output  | 
| --- | --- | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/input-search-replace.jpg)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/output-search-replace.jpg)  | 

### Erase
<a name="stable-image-services-12"></a>

Erase vous permet de supprimer les éléments indésirables à l’aide de masques d’image, tout en préservant intelligemment la cohérence de l’arrière-plan.

Voici les paramètres obligatoires d’Erase :
+ **image** : (chaîne) image Base64 faisant l’objet de l’effacement. Chaque côté de l’image doit mesurer au moins 64 pixels. Le nombre total de pixels ne peut pas dépasser 9 437 184 pixels. Les proportions de l’image doivent être comprises entre 1:2,5 et 2,5:1. Formats pris en charge : jpeg, png, webp.

Les paramètres suivants sont facultatifs :
+ **seed** : (nombre) valeur spécifique utilisée pour indiquer le « caractère aléatoire » de la génération. (Omettez ce paramètre ou transmettez 0 pour utiliser une amorce aléatoire.) Plage de valeurs : de 0 à 4294967294. Valeur par défaut : 0.
+ **output\$1format** : (chaîne) indique le type de contenu de l’image générée. Enum : jpeg, png, webp. Valeur par défaut : png.
+ **mask** : (chaîne) contrôle l’intensité du processus de peinture par pixel, soit via une deuxième image (transmise dans ce paramètre), soit via le canal alpha du paramètre d’image.
  + **Transmission d’un masque** : l’image transmise à ce paramètre doit être une image en noir et blanc qui représente, à chaque pixel, l’intensité de la peinture en fonction du degré d’obscurité ou de lumière du pixel donné. Les pixels entièrement noirs ne représentent aucune intensité de peinture, tandis que les pixels entièrement blancs représentent une intensité maximale. Si le masque possède une taille différente de celle du paramètre d’image, il est automatiquement redimensionné.
  + **Prise en charge du canal alpha** : si vous ne fournissez pas de masque explicite, celui-ci est dérivé du canal alpha du paramètre d’image. Les pixels transparents sont peints, tandis que les pixels opaques sont préservés. Si une image avec un canal alpha est fournie avec un masque, le masque prévaut.
+ **grow\$1mask** : agrandit les bords du masque vers l’extérieur dans toutes les directions selon le nombre de pixels spécifié. La zone étendue autour du masque est floue, ce qui facilite la transition entre le contenu peint et l’image d’origine. Plage de valeurs : de 0 à 20. Valeur par défaut : 5. Essayez ce paramètre si vous remarquez des raccords ou des bords irréguliers autour du contenu peint. Notez qu'une croissance excessive peut masquer les détails les plus fins du masque et and/or fusionner les régions masquées voisines.

**Note**  
Pour des résultats d’effacement optimaux, assurez-vous que votre masque définit avec précision les zones à supprimer. Si aucun masque explicite n’est fourni, le service utilise le canal alpha de l’image d’entrée. Le masque prévaut si les deux sont fournis.

------
#### [ API ]

```
import base64
import json
import requests
import io
import os
from PIL import Image

image = "./content/input.png"
mask = "./content/mask.png"

region = "us-east-1"
model_id = "us.stability.stable-image-erase-object-v1:0"
url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke"
api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html
headers = {
    "Content-Type":"application/json",
    "Authorization":f"Bearer {api_key}"
}

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8'),
    with open(mask, "rb") as mask_file:
        mask_base64 = base64.b64encode(mask_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "mask": mask_base64
    }
    response = requests.request("POST", url, json=params, headers=headers)
    response.raise_for_status()
    model_response = json.loads(response.text)
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")

    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------
#### [ Python ]

```
import boto3
import base64
import io
import json
from PIL import Image

image = "./content/input.png" 
mask = "./content/mask.png"

region = "us-east-1"
model_id = "us.stability.stable-image-erase-object-v1:0"

bedrock = boto3.client("bedrock-runtime", region_name=region)

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8'),
    with open(mask, "rb") as mask_file:
        mask_base64 = base64.b64encode(mask_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "mask": mask_base64
    }
    request = json.dumps(params)
    response = bedrock.invoke_model(modelId=model_id, body=request)
    model_response = json.loads(response["body"].read())
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")

    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------

Le tableau suivant indique les images d’entrée et de sortie d’une opération Erase :


|  Input  |  Masque  |  Output  | 
| --- | --- | --- | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/input-erase-object.jpg)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/mask-erase-object.png)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/output-erase-object.jpg)  | 

### Remove Background
<a name="stable-image-services-13"></a>

Remove Background vous permet d’isoler des sujets de l’arrière-plan avec précision.

Voici les paramètres obligatoires de Remove Background :
+ **image** : (chaîne) image Base64 dont vous souhaitez supprimer l’arrière-plan. Chaque côté de l’image doit mesurer au moins 64 pixels. Le nombre total de pixels ne peut pas dépasser 9 437 184 pixels. Les proportions de l’image doivent être comprises entre 1:2,5 et 2,5:1. Formats pris en charge : jpeg, png, webp.

Les paramètres suivants sont facultatifs :
+ **output\$1format** : (chaîne) indique le type de contenu de l’image générée. Enum : jpeg, png, webp. Valeur par défaut : png.

------
#### [ API ]

```
import base64
import json
import requests
import io
import os
from PIL import Image

image = "./content/input.png"

region = "us-east-1"
model_id = "us.stability.stable-image-remove-background-v1:0"
url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke"
api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html
headers = {
    "Content-Type":"application/json",
    "Authorization":f"Bearer {api_key}"
}

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
    }
    response = requests.request("POST", url, json=params, headers=headers)
    response.raise_for_status()
    model_response = json.loads(response.text)
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")

    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------
#### [ Python ]

```
import boto3
import base64
import io
import json
from PIL import Image

image = "./content/input.png"

region = "us-east-1"
model_id = "us.stability.stable-image-remove-background-v1:0"

bedrock = boto3.client("bedrock-runtime", region_name=region)

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64
    }
    request = json.dumps(params)
    response = bedrock.invoke_model(modelId=model_id, body=request)
    model_response = json.loads(response["body"].read())
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")

    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------

Le tableau suivant présente les images d’entrée et de sortie d’une opération Remove Background :


|  Input  |  Output  | 
| --- | --- | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/input-remove-background.jpg)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/output-remove-background.jpg)  | 

## Contrôle
<a name="stable-image-services-control"></a>

La section suivante décrit les services de contrôle d’images Stability AI.

### Control Sketch
<a name="stable-image-services-1"></a>

Améliorez vos esquisses dessinées à la main pour obtenir des résultats raffinés avec un contrôle précis. Pour les images autres que des esquisses, Control Sketch permet de manipuler en détail l’aspect final en exploitant les lignes de contour et les arêtes de l’image.

Voici les paramètres obligatoires de Control Sketch :
+ **prompt** : ce que vous souhaitez voir dans l’image de sortie. Une invite descriptive forte qui définit clairement les éléments, les couleurs et les sujets permettra d’obtenir de meilleurs résultats. Contrôlez la pondération d’un mot donné à l’aide du format (mot:pondération), où « mot » est le mot dont vous souhaitez contrôler la pondération et « pondération » est une valeur. Une valeur comprise entre 0 et 1,0 réduit l’accent sur le mot et une valeur comprise entre 1,1 et 2 met l’accent dessus. Par exemple : « Le ciel était d’un (bleu:0,3) et d’un (vert:1,8) vifs » refléterait un ciel bleu et vert, mais davantage vert que bleu. 0 caractères minimum et 10 000 caractères maximum.
+ **image** : (chaîne) image Base64 de l’esquisse. Chaque côté de l’image doit mesurer au moins 64 pixels. Le nombre total de pixels ne peut pas dépasser 9 437 184 pixels. Les proportions de l’image doivent être comprises entre 1:2,5 et 2,5:1. Formats pris en charge : jpeg, png, webp.

Les paramètres suivants sont facultatifs :
+ **control\$1strength** : (nombre) influence ou contrôle de l’image sur la génération. Représenté sous la forme d’une valeur flottante comprise entre 0 et 1, où 0 représente l’influence la plus faible et 1 la plus forte. Valeur par défaut : 0,7.
+ **negative\$1prompt** : (chaîne) texte de présentation décrivant ce que vous ne souhaitez pas voir dans l’image de sortie. Il s’agit d’une fonctionnalité avancée. 10 000 caractères maximum.
+ **seed** : (nombre) valeur spécifique utilisée pour indiquer le « caractère aléatoire » de la génération. (Omettez ce paramètre ou transmettez 0 pour utiliser une amorce aléatoire.) Plage de valeurs : de 0 à 4294967294. Valeur par défaut : 0.
+ **output\$1format** : (chaîne) indique le type de contenu de l’image générée. Enum : jpeg, png, webp. Valeur par défaut : png.
+ **style\$1preset** : guide le modèle d’image vers un style particulier. Enum : modèle 3D, film analogique, anime, cinématographique, bande dessinée, art numérique, amélioration, art fantastique, isométrique, dessin au trait, low-poly, composé de modélisation, néon-punk, origami, photographique, pixel art, texture de tuile.

------
#### [ API ]

```
import base64
import json
import requests
import io
import os
from PIL import Image

image = "./content/input.jpg"

region = "us-east-1"
model_id = "us.stability.stable-image-control-sketch-v1:0"
url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke"
api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html
headers = {
    "Content-Type":"application/json",
    "Authorization":f"Bearer {api_key}"
}

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "prompt": "a house with background of mountains and river flowing nearby"
    }
    response = requests.request("POST", url, json=params, headers=headers)
    response.raise_for_status()
    model_response = json.loads(response.text)
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")
    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------
#### [ Python ]

```
import boto3
import base64
import io
import json
from PIL import Image

image = "./content/input.jpg"

region = "us-east-1"
model_id = "us.stability.stable-image-control-sketch-v1:0"

bedrock = boto3.client("bedrock-runtime", region_name=region)

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "prompt": "a house with background of mountains and river flowing nearby"
    }
    request = json.dumps(params)
    response = bedrock.invoke_model(modelId=model_id, body=request)
    model_response = json.loads(response["body"].read())
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")
    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------

Le tableau suivant montre les images d’entrée et de sortie d’un appel Control Sketch à l’aide de l’invite suivante : *une maison avec en arrière-plan des montagnes et une rivière qui coule à proximité*.


|  Input  |  Output  | 
| --- | --- | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/input-control-sketch.jpg)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/output-control-sketch.jpg)  | 
|   |    | 

### Control Structure
<a name="stable-image-services-2"></a>

Control Structure vous permet de générer des images tout en conservant la structure d’une image d’entrée. Cela est particulièrement utile pour les scénarios avancés de création de contenu tels que la recréation de scènes ou le rendu de personnages à partir de modèles.

Voici les paramètres obligatoires de Control Structure :
+ **prompt** : ce que vous souhaitez voir dans l’image de sortie. Une invite descriptive forte qui définit clairement les éléments, les couleurs et les sujets permettra d’obtenir de meilleurs résultats. Contrôlez la pondération d’un mot donné à l’aide du format (mot:pondération), où « mot » est le mot dont vous souhaitez contrôler la pondération et « pondération » est une valeur. Une valeur comprise entre 0 et 1,0 réduit l’accent sur le mot et une valeur comprise entre 1,1 et 2 met l’accent dessus. Par exemple : « Le ciel était d’un (bleu:0,3) et d’un (vert:1,8) vifs » refléterait un ciel bleu et vert, mais davantage vert que bleu. 0 caractères minimum et 10 000 caractères maximum.
+ **image** : (chaîne) image Base64 de l’esquisse. Chaque côté de l’image doit mesurer au moins 64 pixels. Le nombre total de pixels ne peut pas dépasser 9 437 184 pixels. Les proportions de l’image doivent être comprises entre 1:2,5 et 2,5:1. Formats pris en charge : jpeg, png, webp.

Les paramètres suivants sont facultatifs :
+ **control\$1strength** : (nombre) influence ou contrôle de l’image sur la génération. Représenté sous la forme d’une valeur flottante comprise entre 0 et 1, où 0 représente l’influence la plus faible et 1 la plus forte. Valeur par défaut : 0,7.
+ **negative\$1prompt** : (chaîne) texte de présentation décrivant ce que vous ne souhaitez pas voir dans l’image de sortie. Il s’agit d’une fonctionnalité avancée. 10 000 caractères maximum.
+ **seed** : (nombre) valeur spécifique utilisée pour indiquer le « caractère aléatoire » de la génération. (Omettez ce paramètre ou transmettez 0 pour utiliser une amorce aléatoire.) Plage de valeurs : de 0 à 4294967294. Valeur par défaut : 0.
+ **output\$1format** : (chaîne) indique le type de contenu de l’image générée. Enum : jpeg, png, webp. Valeur par défaut : png.
+ **style\$1preset** : guide le modèle d’image vers un style particulier. Enum : modèle 3D, film analogique, anime, cinématographique, bande dessinée, art numérique, amélioration, art fantastique, isométrique, dessin au trait, low-poly, composé de modélisation, néon-punk, origami, photographique, pixel art, texture de tuile.

------
#### [ API ]

```
import base64
import json
import requests
import io
import os
from PIL import Image

image = "./content/input.jpg"

region = "us-east-1"
model_id = "us.stability.stable-image-control-structure-v1:0"
url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke"
api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html
headers = {
    "Content-Type":"application/json",
    "Authorization":f"Bearer {api_key}"
}

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "prompt": "surreal structure with motion generated sparks lighting the scene"

    }
    response = requests.request("POST", url, json=params, headers=headers)
    response.raise_for_status()
    model_response = json.loads(response.text)
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")
    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------
#### [ Python ]

```
import boto3
import base64
import io
import json
from PIL import Image

image = "./content/input.jpg"

region = "us-east-1"
model_id = "us.stability.stable-image-control-structure-v1:0"

bedrock = boto3.client("bedrock-runtime", region_name=region)

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "prompt": "surreal structure with motion generated sparks lighting the scene"

    }
    request = json.dumps(params)
    response = bedrock.invoke_model(modelId=model_id, body=request)
    model_response = json.loads(response["body"].read())
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")
    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------

Le tableau suivant montre les images d’entrée et de sortie d’une opération Control Structure à l’aide de l’invite suivante : *structure surréaliste avec des étincelles générées par le mouvement qui éclairent la scène*.


|  Input  |  Output  | 
| --- | --- | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/input-control-structure.jpg)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/output-control-structure.jpg)  | 

### Style Guide
<a name="stable-image-services-3"></a>

Style Guide vous permet d’extraire des éléments stylistiques d’une image d’entrée, à l’aide desquels vous guidez ensuite la création d’une image de sortie en fonction de l’invite. Le résultat est une nouvelle image dans le même style que l’image d’entrée.

Voici les paramètres obligatoires de Style Guide :
+ **prompt** : ce que vous souhaitez voir dans l’image de sortie. Une invite descriptive forte qui définit clairement les éléments, les couleurs et les sujets permettra d’obtenir de meilleurs résultats. Contrôlez la pondération d’un mot donné à l’aide du format (mot:pondération), où « mot » est le mot dont vous souhaitez contrôler la pondération et « pondération » est une valeur. Une valeur comprise entre 0 et 1,0 réduit l’accent sur le mot et une valeur comprise entre 1,1 et 2 met l’accent dessus. Par exemple : « Le ciel était d’un (bleu:0,3) et d’un (vert:1,8) vifs » refléterait un ciel bleu et vert, mais davantage vert que bleu. 0 caractères minimum et 10 000 caractères maximum.
+ **image** : (chaîne) image Base64 de l’esquisse. Chaque côté de l’image doit mesurer au moins 64 pixels. Le nombre total de pixels ne peut pas dépasser 9 437 184 pixels. Les proportions de l’image doivent être comprises entre 1:2,5 et 2,5:1. Formats pris en charge : jpeg, png, webp.

Les paramètres suivants sont facultatifs :
+ **aspect\$1ratio** : (chaîne) contrôle les proportions de l’image générée. Ce paramètre n'est valide que pour les text-to-image demandes. Valeur par défaut : 1:1. Enum : 16:9, 1:1, 21:9, 2:3, 3:2, 4:5, 5:4, 9:16, 9:21. Valeur par défaut : 1:1.
+ **negative\$1prompt** : (chaîne) texte de présentation décrivant ce que vous ne souhaitez pas voir dans l’image de sortie. Il s’agit d’une fonctionnalité avancée. 10 000 caractères maximum.
+ **seed** : (nombre) valeur spécifique utilisée pour indiquer le « caractère aléatoire » de la génération. (Omettez ce paramètre ou transmettez 0 pour utiliser une amorce aléatoire.) Plage de valeurs : de 0 à 4294967294. Valeur par défaut : 0.
+ **output\$1format** : (chaîne) indique le type de contenu de l’image générée. Enum : jpeg, png, webp. Valeur par défaut : png.
+ **fidelity** : (nombre) mesure dans laquelle le style de l’image de sortie ressemble à celui de l’image d’entrée. Plage de valeurs : de 0 à 1. Valeur par défaut : 0,5.
+ **style\$1preset** : guide le modèle d’image vers un style particulier. Enum : modèle 3D, film analogique, anime, cinématographique, bande dessinée, art numérique, amélioration, art fantastique, isométrique, dessin au trait, low-poly, composé de modélisation, néon-punk, origami, photographique, pixel art, texture de tuile.

------
#### [ API ]

```
import base64
import json
import requests
import io
import os
from PIL import Image

image = "./content/input.jpg"

region = "us-east-1"
model_id = "us.stability.stable-image-style-guide-v1:0"
url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke"
api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html
headers = {
    "Content-Type":"application/json",
    "Authorization":f"Bearer {api_key}"
}

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "prompt": "wide shot of modern metropolis" 
    }
    response = requests.request("POST", url, json=params, headers=headers)
    response.raise_for_status()
    model_response = json.loads(response.text)
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")
    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------
#### [ Python ]

```
import boto3
import base64
import io
import json
from PIL import Image

image = "./content/input.jpg"

region = "us-east-1"
model_id = "us.stability.stable-image-style-guide-v1:0"

bedrock = boto3.client("bedrock-runtime", region_name=region)

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    params = {
        "image": image_base64,
        "prompt": "wide shot of modern metropolis" 
    }
    request = json.dumps(params)
    response = bedrock.invoke_model(modelId=model_id, body=request)
    model_response = json.loads(response["body"].read())
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")
    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------

Le tableau suivant montre les images d’entrée et de sortie d’un appel Style Guide à l’aide de l’invite suivante : *plan large d’une métropole moderne*.


|  Input  |  Output  | 
| --- | --- | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/input-style-guide.jpg)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/output-style-guide.jpg)  | 

### Style Transfer
<a name="stable-image-services-4"></a>

Style Transfer vous permet d’appliquer les caractéristiques visuelles des images de style de référence aux images cible. Alors que le service Style Guide extrait des éléments stylistiques d’une image d’entrée qui lui permettent de guider la création d’une image de sortie en fonction de l’invite, Style Transfer transforme spécifiquement le contenu existant tout en préservant la composition d’origine. Cet outil permet de créer du contenu cohérent sur plusieurs ressources.

Voici les paramètres obligatoires de Style Transfer :
+ **init\$1image** : (chaîne) image Base64 contenant le sujet que vous souhaitez redéfinir. Chaque côté de l’image doit mesurer au moins 64 pixels. Le nombre total de pixels ne peut pas dépasser 9 437 184 pixels. Les proportions de l’image doivent être comprises entre 1:2,5 et 2,5:1. Formats pris en charge : jpeg, png, webp.
+ **style\$1image** : (chaîne) image Base64 contenant le sujet que vous souhaitez redéfinir. Chaque côté de l’image doit mesurer au moins 64 pixels. Le nombre total de pixels ne peut pas dépasser 9 437 184 pixels. Les proportions de l’image doivent être comprises entre 1:2,5 et 2,5:1. Formats pris en charge : jpeg, png, webp.

Les paramètres suivants sont facultatifs :
+ **prompt** : (chaîne) ce que vous souhaitez voir dans l’image de sortie. Une invite descriptive forte qui définit clairement les éléments, les couleurs et les sujets permettra d’obtenir de meilleurs résultats. Contrôlez la pondération d’un mot donné à l’aide du format (mot:pondération), où « mot » est le mot dont vous souhaitez contrôler la pondération et « pondération » est une valeur. Une valeur comprise entre 0 et 1,0 réduit l’accent sur le mot et une valeur comprise entre 1,1 et 2 met l’accent dessus. Par exemple : « Le ciel était d’un (bleu:0,3) et d’un (vert:1,8) vifs » refléterait un ciel bleu et vert, mais davantage vert que bleu.
+ **negative\$1prompt** : (chaîne) texte de présentation décrivant ce que vous ne souhaitez pas voir dans l’image de sortie. Il s’agit d’une fonctionnalité avancée. 10 000 caractères maximum.
+ **seed** : (nombre) valeur spécifique utilisée pour indiquer le « caractère aléatoire » de la génération. (Omettez ce paramètre ou transmettez 0 pour utiliser une amorce aléatoire.) Plage de valeurs : de 0 à 4294967294. Valeur par défaut : 0.
+ **output\$1format** : (chaîne) indique le type de contenu de l’image générée. Enum : jpeg, png, webp. Valeur par défaut : png.
+ **composition\$1fidelity** : (nombre) mesure dans laquelle le style de l’image de sortie ressemble à celui de l’image d’entrée. Plage de valeurs : de 0 à 1. Valeur par défaut : 0,9.
+ **style\$1strength** : (nombre) parfois appelé débruitage, ce paramètre contrôle l’influence du paramètre style\$1image sur l’image générée. La valeur 0 produirait une image identique à l’entrée. La valeur 1 serait comme si vous n’aviez transmis aucune image. Plage de valeurs : de 0 à 1. Valeur par défaut : 1.
+ **change\$1strength** : (nombre) mesure dans laquelle l’image d’origine doit changer. Plage de valeurs : de 0,1 à 1. Valeur par défaut : 0,9.

------
#### [ API ]

```
import base64
import json
import requests
import io
import os
from PIL import Image

image = "./content/input.jpg"
style_image = "./content/style.jpg"

region = "us-east-1"
model_id = "us.stability.stable-style-transfer-v1:0"
url = f"https://bedrock-runtime.{region}.amazonaws.com/model/{model_id}/invoke"
api_key = os.getenv("AWS_BEARER_TOKEN_BEDROCK") # https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api-keys.html
headers = {
    "Content-Type":"application/json",
    "Authorization":f"Bearer {api_key}"
}

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    with open(style_image, "rb") as style_image_file:
        style_image_base64 = base64.b64encode(style_image_file.read()).decode('utf-8')

    params = {
        "init_image": image_base64,
        "style_image": style_image_base64,
        "prompt": "statue"
    }
    response = requests.request("POST", url, json=params, headers=headers)
    response.raise_for_status()
    model_response = json.loads(response.text)
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")
    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------
#### [ Python ]

```
import boto3
import base64
import io
import json
from PIL import Image

image = "./content/cat_statue_512x512.jpg"
style_image = "./content/glowbot_style.jpg"

region = "us-east-1"
model_id = "us.stability.stable-style-transfer-v1:0"

bedrock = boto3.client("bedrock-runtime", region_name=region)

try:
    with open(image, "rb") as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

    with open(style_image, "rb") as style_image_file:
        style_image_base64 = base64.b64encode(style_image_file.read()).decode('utf-8')

    params = {
        "init_image": image_base64,
        "style_image": style_image_base64,
        "prompt": "statue"
    }
    request = json.dumps(params)
    response = bedrock.invoke_model(modelId=model_id, body=request)
    model_response = json.loads(response["body"].read())
    base64_image_data = model_response["images"][0]

    if not base64_image_data:
        raise ValueError("No image data found in model response.")

    image_data = base64.b64decode(base64_image_data)
    image = Image.open(io.BytesIO(image_data))
    image.save("image.png")
    print("Successfully saved image.")

except Exception as e:
    print(e)
```

------

Le tableau suivant indique les images d’entrée et de sortie d’un appel Style Transfer :


|  Input  |  Style  |  Output  | 
| --- | --- | --- | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/input-style-transfer.jpg)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/style-style-transfer.jpg)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/images/stable-image-services/output-style-transfer.jpg)  | 