

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Modelos de Stability AI
<a name="model-parameters-stability-diffusion"></a>

En esta sección se describen los parámetros de solicitud y los campos de respuesta de los modelos de Stability AI. Utilice esta información para realizar llamadas de inferencia a los modelos de IA de estabilidad con la [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)operación. En esta sección también se incluyen ejemplos de código de Python que muestran cómo llamar a los modelos de Stability AI. Para utilizar un modelo en una operación de inferencia, necesitará el ID del modelo. Para obtener el ID del modelo, consulte [Modelos fundacionales compatibles en Amazon Bedrock](models-supported.md). Algunos modelos también funcionan con la [API Converse](conversation-inference.md). Para saber si la API Converse es compatible con un modelo de Stability AI específico, consulte [Modelos y características del modelo compatibles](conversation-inference-supported-models-features.md). Para obtener ejemplos de código, consulte [Ejemplos de código para Amazon Bedrock mediante AWS SDKs](service_code_examples.md).

Los modelos fundacionales de Amazon Bedrock admiten modalidades de entrada y salida, que varían de un modelo a otro. Para conocer las modalidades que admiten los modelos de Stability AI, consulte [Modelos fundacionales compatibles en Amazon Bedrock](models-supported.md). Para saber qué características de Amazon Bedrock son compatibles con los modelos de Stability AI, consulte [Modelos fundacionales compatibles en Amazon Bedrock](models-supported.md). Para comprobar en qué AWS regiones están disponibles los modelos de IA de estabilidad, consulte[Modelos fundacionales compatibles en Amazon Bedrock](models-supported.md).

Cuando se realizan llamadas de inferencia con modelos de Stability AI, se incluye una petición para el modelo. Para obtener información general sobre cómo crear peticiones para los modelos compatibles con Amazon Bedrock, consulte [Conceptos de ingeniería de peticiones](prompt-engineering-guidelines.md). Para obtener información específica sobre las peticiones específicas de Stability AI, consulte [Stability AI prompt engineering guide](https://platform.stability.ai/docs/getting-started).

## Modelos y servicios de imágenes compatibles
<a name="supported-stability-models"></a>

Amazon Bedrock admite los siguientes modelos y servicios de imágenes de Stability AI:

**nota**  
La compatibilidad con los demás modelos de Stability AI se va a retirar.


| Modelo | Casos de uso | Ejemplo | 
| --- | --- | --- | 
|  [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/es_es/bedrock/latest/userguide/model-parameters-stability-diffusion.html)  |  Una marca de lujo utiliza Stable Image Ultra para crear imágenes impactantes de su última colección para publicaciones en revistas, con el fin de garantizar un acabado de primer nivel que refleje sus altos estándares.  | 
|  [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/es_es/bedrock/latest/userguide/model-parameters-stability-diffusion.html)  |  Un equipo de desarrollo de juegos utiliza SD3 .5 Large para crear texturas ambientales y conceptos de personajes detallados, lo que acelera su proceso creativo.  | 
|  [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/es_es/bedrock/latest/userguide/model-parameters-stability-diffusion.html)  |  Un minorista en línea utiliza Stable Image Core para generar rápidamente imágenes de productos para los recién llegados, lo que le permite publicar artículos más rápido y conservar su catálogo up-to-date.  | 
|  [Servicios de imágenes de Stability AI](stable-image-services.md)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/model-parameters-stability-diffusion.html)  |  Una empresa de medios utiliza la búsqueda y el cambio de color, la transferencia de estilo y la eliminación del fondo para generar variaciones de imágenes para una campaña publicitaria.  | 

**Topics**
+ [Modelos y servicios de imágenes compatibles](#supported-stability-models)
+ [Solicitud y respuesta de Stable Image Ultra](model-parameters-diffusion-stable-ultra-text-image-request-response.md)
+ [Stability.ai Stable Diffusion 3.5 Large](model-parameters-diffusion-3-5-large.md)
+ [Solicitud y respuesta de Stable Image Core](model-parameters-diffusion-stable-image-core-text-image-request-response.md)
+ [Servicios de imágenes de Stability AI](stable-image-services.md)

# Solicitud y respuesta de Stable Image Ultra
<a name="model-parameters-diffusion-stable-ultra-text-image-request-response"></a>

El cuerpo de la solicitud se pasa al `body` campo de una solicitud de [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)operación. 

**Campo del cuerpo de la solicitud de invocación del modelo**

Cuando realices una InvokeModel llamada con un modelo Stable Image Ultra, rellena el campo del cuerpo con un objeto JSON parecido al que se muestra a continuación. 
+ **prompt**: (cadena) lo que desea ver en la imagen de salida. Una petición descriptiva y fuerte que defina claramente los elementos, los colores y los sujetos permitirá obtener mejores resultados.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/model-parameters-diffusion-stable-ultra-text-image-request-response.html)

**Campo del cuerpo de respuestas a la invocación del modelo**

Cuando realice una llamada a `InvokeModel` con un modelo Stable Image Ultra, la respuesta será similar a la siguiente. 

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

Una respuesta con un motivo de finalización que no sea `null` tendrá el siguiente aspecto:

```
{
         "finish_reasons":["Filter reason: prompt"]
     }
```
+ **seeds**: (cadena) lista de semillas utilizadas para generar imágenes para el modelo.
+ **finish\$1reasons**: enumeración que indica si la solicitud se ha filtrado o no. `null` indica que la solicitud se ha realizado correctamente. Valores posibles actuales: `"Filter reason: prompt", "Filter reason: output image", "Filter reason: input image", "Inference error", null`.
+ **images**: lista de imágenes generadas en formato de cadena base64.

Para obtener más información, consulta [https://platform.us.stability. ai/docs/api-reference\$1tag/v1 generación](https://platform.us.stability.ai/docs/api-reference#tag/v1generation).

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

El modelo Stable Image Ultra de Stability.ai tiene los siguientes parámetros de inferencia para una llamada de text-to-image inferencia. 
+ **prompt**: (cadena) lo que desea ver en la imagen de salida. Una petición descriptiva y fuerte que defina claramente los elementos, los colores y los sujetos permitirá obtener mejores resultados.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/model-parameters-diffusion-stable-ultra-text-image-request-response.html)

**Campos opcionales**
+ **aspect\$1ratio**: (cadena) controla la relación de aspecto de la imagen generada. Este parámetro solo es válido para text-to-image las solicitudes. El valor predeterminado es 1:1. Enumeración: 16:9, 1:1, 21:9, 2:3, 3:2, 4:5, 5:4, 9:16, 9:21.
+ **modo**: establecido en text-to-image. Predeterminado: text-to-image. Enum: `text-to-image`.
+ **output\$1format**: especifica el formato de la imagen de salida. Formatos compatibles: JPEG y PNG. Dimensiones admitidas: altura de 640 a 1536 px, anchura de 640 a 1536 px.
+ **seed**: (número) valor específico que se utiliza para determinar la asignación al azar de la generación. (Omita este parámetro o pase 0 para usar una semilla aleatoria). Intervalo: del 0 al 4294967295.
+ **negative\$1prompt**: palabras clave de lo que no desea ver en la imagen de salida. Máximo: 10 000 caracteres.

```
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 ]

El modelo Stable Image Ultra de Stability.ai tiene los siguientes parámetros de inferencia para una llamada de image-to-image inferencia.
+ **prompt**: (cadena) lo que desea ver en la imagen de salida. Una petición descriptiva y fuerte que defina claramente los elementos, los colores y los sujetos permitirá obtener mejores resultados.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/model-parameters-diffusion-stable-ultra-text-image-request-response.html)

**Campos opcionales**
+ **image** (cadena): la imagen Base64 que se utilizará como punto de partida para la generación. Formatos compatibles: JPEG, PNG, WebP.
+ **strength** (número): la influencia que tiene el parámetro image sobre la imagen generada. Las imágenes con valores de intensidad más bajos se parecerán más a la imagen original. Intervalo: de 0,0 a 1,0. Valor predeterminado: 0,35.
+ **aspect\$1ratio**: (cadena) controla la relación de aspecto de la imagen generada. Este parámetro solo es válido para text-to-image las solicitudes. El valor predeterminado es 1:1. Enumeración: 16:9, 1:1, 21:9, 2:3, 3:2, 4:5, 5:4, 9:16, 9:21.
+ **output\$1format**: especifica el formato de la imagen de salida. Formatos compatibles: JPEG y PNG. Dimensiones admitidas: altura de 640 a 1536 px, anchura de 640 a 1536 px.
+ **seed**: (número) valor específico que se utiliza para determinar la asignación al azar de la generación. (Omita este parámetro o pase 0 para usar una semilla aleatoria). Intervalo: del 0 al 4294967295.
+ **negative\$1prompt**: palabras clave de lo que no desea ver en la imagen de salida. Máximo: 10 000 caracteres.

```
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>

El modelo Stable Diffusion 3.5 Large utiliza 8 mil millones de parámetros y admite una salida de resolución de 1 megapíxel para su text-to-image image-to-image generación.

El cuerpo de la solicitud se pasa en el `body` campo de una solicitud a [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html). 

**Campo del cuerpo de la solicitud de invocación del modelo**

Cuando realices una InvokeModel llamada con un modelo Stable Diffusion 3.5 Large, rellena el campo del cuerpo con un objeto JSON parecido al que se muestra a continuación.
+ **prompt** (cadena): descripción textual de la imagen de salida deseada. Máximo 10 000 caracteres.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/model-parameters-diffusion-3-5-large.html)

**Campo del cuerpo de respuestas a la invocación del modelo**

Cuando realiza una llamada a `InvokeModel` con un modelo Stable Diffusion 3.5 Large, la respuesta es similar a la siguiente.

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

Una respuesta con un motivo de finalización que no sea `null` tendrá el siguiente aspecto:

```
{
    "finish_reasons":["Filter reason: prompt"]
}
```
+ **seeds**: (cadena) lista de semillas utilizadas para generar imágenes para el modelo.
+ **finish\$1reasons**: enumeración que indica si la solicitud se ha filtrado o no. `null` indica que la solicitud se ha realizado correctamente. Valores posibles actuales: `"Filter reason: prompt", "Filter reason: output image", "Filter reason: input image", "Inference error", null`.
+ **images**: lista de imágenes generadas en formato de cadena base64.

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

El modelo Stability.ai Stable Diffusion 3.5 Large tiene los siguientes parámetros de inferencia para una llamada de text-to-image inferencia.
+ **prompt** (string): descripción textual de la imagen de salida deseada. Máximo 10 000 caracteres.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/model-parameters-diffusion-3-5-large.html)

**Parámetros opcionales**
+ **aspect\$1ratio** (cadena): controla la relación de aspecto de la imagen generada. Válido solo para solicitudes. text-to-image Enumeración: 16:9, 1:1, 21:9, 2:3, 3:2, 4:5, 5:4, 9:16, 9:21. El valor predeterminado es 1:1.
+ **mode** (string) (GenerationMode) - Predeterminado: text-to-image. Enum: image-to-image o. text-to-image Controla si se trata de una image-to-image generación text-to-image o, lo que afecta a los parámetros necesarios:
  + text-to-image solo requiere el parámetro prompt.
  + image-to-image requiere los parámetros de aviso, imagen y intensidad.
+ **semilla** (número): valor para controlar la aleatoriedad en la generación. Intervalo: de 0 a 4294967294. Predeterminado 0 (semilla aleatoria).    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/model-parameters-diffusion-3-5-large.html)
+ **negative\$1prompt** (cadena): texto que describe los elementos que se van a excluir de la imagen de salida. Máximo 10 000 caracteres.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/model-parameters-diffusion-3-5-large.html)
+ **output\$1format** (string): formato de imagen de salida. Enum: jpeg, png, webp. Valor predeterminado: 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 ]

El modelo Stability.ai Stable Diffusion 3.5 Large tiene los siguientes parámetros de inferencia para una llamada de inferencia. image-to-image
+ **prompt** (string): descripción textual de la imagen de salida deseada. Máximo 10 000 caracteres.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/model-parameters-diffusion-3-5-large.html)
+ **imagen** (cadena): imagen de entrada codificada en Base64. Mínimo de 64 píxeles por lado. Formatos compatibles: jpeg, png, webp.
+ **mode** (string) (GenerationMode) - Predeterminado:. text-to-image Enum: image-to-image o. text-to-image Controla si se trata de una image-to-image generación text-to-image o, lo que afecta a los parámetros necesarios:
  + text-to-image solo requiere el parámetro prompt.
  + image-to-image requiere los parámetros de aviso, imagen y intensidad.
+ **fuerza** (número): controla la influencia de la imagen de entrada en la salida. Intervalo del 0 al 1. El valor de 0 conserva la imagen de entrada; el valor de 1 ignora la imagen de entrada.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/model-parameters-diffusion-3-5-large.html)
+ **semilla** (número): valor para controlar la aleatoriedad en la generación. Intervalo: de 0 a 4294967294. Predeterminado 0 (semilla aleatoria).    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/model-parameters-diffusion-3-5-large.html)
+ **negative\$1prompt** (cadena): texto que describe los elementos que se van a excluir de la imagen de salida. Máximo 10 000 caracteres.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/model-parameters-diffusion-3-5-large.html)
+ **output\$1format** (string): formato de imagen de salida. Enum: jpeg, png, webp. Valor predeterminado: 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
    })
)
```

------

# Solicitud y respuesta de Stable Image Core
<a name="model-parameters-diffusion-stable-image-core-text-image-request-response"></a>

El cuerpo de la solicitud se pasa en el `body` campo de una solicitud a [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html). 

**Campo del cuerpo de la solicitud de invocación del modelo**

Cuando realices una InvokeModel llamada con un modelo Stability AI Stable Diffusion Stable Image Core, rellena el campo del cuerpo con un objeto JSON parecido al siguiente. 

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

**Campo del cuerpo de respuestas a la invocación del modelo**

Cuando realizas una InvokeModel llamada con un modelo Stability AI Stable Diffusion Stable Image Core, la respuesta es similar a la siguiente 

```
{
        'seeds': [2130420379], 
        'finish_reasons': [null], 
        'images': ['...']
    }
```
+ **seeds**: (cadena) lista de semillas utilizadas para generar imágenes para el modelo.
+ **finish\$1reasons**: enumeración que indica si la solicitud se ha filtrado o no. `null` indica que la solicitud se ha realizado correctamente. Valores posibles actuales: `"Filter reason: prompt", "Filter reason: output image", "Filter reason: input image", "Inference error", null`.
+ **images**: lista de imágenes generadas en formato de cadena base64.

Para obtener más información, consulte [https://platform.us.stability. ai/docs/api-reference\$1tag/v1 generación](https://platform.us.stability.ai/docs/api-reference#tag/v1generation).

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

El modelo Stable Image Core tiene los siguientes parámetros de inferencia para realizar una llamada de inferencia de texto a imagen. 

 **text\$1prompts** (obligatorio): una matriz de mensajes de texto que se utilizan en la generación. Cada elemento es un objeto JSON que contiene una petición y una ponderación para la petición.
+ **prompt**: (cadena) lo que desea ver en la imagen de salida. Una petición descriptiva y fuerte que defina claramente los elementos, los colores y los sujetos permitirá obtener mejores resultados.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/model-parameters-diffusion-stable-image-core-text-image-request-response.html)

**Campos opcionales**
+ **aspect\$1ratio**: (cadena) controla la relación de aspecto de la imagen generada. Este parámetro solo es válido para text-to-image las solicitudes. El valor predeterminado es 1:1. Enumeración: 16:9, 1:1, 21:9, 2:3, 3:2, 4:5, 5:4, 9:16, 9:21.
+ **output\$1format**: especifica el formato de la imagen de salida. Formatos compatibles: JPEG y PNG. Dimensiones admitidas: altura de 640 a 1536 px, anchura de 640 a 1536 px.
+ **seed**: (número) valor específico que se utiliza para determinar la asignación al azar de la generación. (Omita este parámetro o pase 0 para usar una semilla aleatoria). Intervalo: del 0 al 4294967295.
+ **negative\$1prompt**: palabras clave de lo que no desea ver en la imagen de salida. Máximo: 10 000 caracteres.

```
     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")
```

------

# Servicios de imágenes de Stability AI
<a name="stable-image-services"></a>

Puede utilizar Stability AI Image Services con Amazon Bedrock para acceder a trece herramientas de edición de imágenes especializadas diseñadas para acelerar los flujos de trabajo creativos profesionales. Con los servicios de imágenes de Stability AI, puede generar imágenes a partir de un boceto, reestructurar y cambiar el estilo de una imagen existente o eliminar y reemplazar los objetos de una imagen.

En esta sección se describe cómo realizar llamadas de inferencia a Stability AI Image Services mediante el. [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) En esta sección también se proporcionan ejemplos de código en Python y ejemplos de imágenes antes y después de usar los servicios de imágenes de Stability AI.

Los servicios de imágenes de Stability AI están disponibles en las siguientes categorías:
+ **Edición**: servicios de edición de imágenes basados en IA, que incluyen relleno de zonas con máscaras (relleno generativo) o con palabras. Incluye herramientas para la colocación y publicidad de productos, así como herramientas básicas, como la eliminación de fondos.
+ **Control**: puede utilizar peticiones, mapas y otras guías. Estos servicios aprovechan ControlNets tecnologías similares basadas en modelos Stable Diffusion.

**nota**  
Al suscribirse a cualquier servicio de imágenes de IA de Stability, editarlo o controlarlo, se inscribirá automáticamente en los trece servicios de imágenes de IA de Stability disponibles.

**Topics**
+ [Solicitud y respuesta](#model-parameters-stable-image-services-request-response)
+ [Exclusivo](#stable-image-services-upscale)
+ [Edición](#stable-image-services-edit)
+ [Controlar](#stable-image-services-control)

## Solicitud y respuesta
<a name="model-parameters-stable-image-services-request-response"></a>

El cuerpo de la solicitud se pasa en el `body` campo de la solicitud a. [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) 

**Campo del cuerpo de la solicitud de invocación del modelo**

Cuando realices una InvokeModel llamada con Stability AI Image Services, rellena el campo del cuerpo con un objeto JSON parecido al que se muestra a continuación. 

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

**Campo del cuerpo de respuestas a la invocación del modelo**

Cuando haces una InvokeModel llamada con Stability AI Image Services, la respuesta es similar a la siguiente 

```
{
    'seeds': [2130420379], 
    'finish_reasons': [null], 
    'images': ['...']
}
```
+ **seeds**: (cadena) lista de semillas utilizadas para generar imágenes para el modelo.
+ **finish\$1reasons**: enumeración que indica si la solicitud se ha filtrado o no. `null` indica que la solicitud se ha realizado correctamente. Valores posibles actuales: `"Filter reason: prompt", "Filter reason: output image", "Filter reason: input image", "Inference error", null`.
+ **images**: lista de imágenes generadas en formato de cadena base64.

Para obtener más información, consulte [https://platform.us.stability. ai/docs/api-reference\$1tag/v1 generación](https://platform.us.stability.ai/docs/api-reference#tag/v1generation).

## Exclusivo
<a name="stable-image-services-upscale"></a>

En la siguiente sección se describen los exclusivos servicios de imágenes de Stability AI.

### Creative Upscale
<a name="stable-image-services-5"></a>

Creative Upscale toma imágenes de entre 64 x 64 y 1 megapíxel y las amplía a una resolución de 4K. Este servicio puede aumentar la escala de las imágenes entre 20 y 40 veces y, al mismo tiempo, preservar la calidad y, a menudo, mejorarla. Creative Upscale funciona mejor con imágenes muy degradadas y no es adecuado para fotografías de 1 megapíxel o más, ya que permite realizar una reinvención intensiva.

Creative Upscale tiene los siguientes parámetros obligatorios:
+ **prompt**: lo que desea ver en la imagen de salida. Una petición descriptiva y fuerte que defina claramente los elementos, los colores y los sujetos permitirá obtener mejores resultados. Para controlar el peso de una palabra determinada, use el formato (word:weight), donde word es la palabra cuyo peso quiere controlar y weight es un valor. Los valores 0 y 1,0 restan énfasis a la palabra y los valores comprendidos entre 1,1 y 2 enfatizan la palabra. Por ejemplo: el cielo era nítido (azul:0,3) y (verde:1,8) representaría un cielo azul y verde, pero más verde que azul. Mínimo 0 caracteres y máximo 10 000 caracteres.
+ **image** ‐ (cadena) La imagen de Base64 que se va a ampliar. Cada lado de la imagen debe tener al menos 64 píxeles. El número total de píxeles debe estar comprendido entre 4 096 y 1 048.576 píxeles. Formatos compatibles: jpeg, png, webp.

Los siguientes parámetros son opcionales:
+ **creatividad** ‐ (número) Indica el grado de creatividad que debe tener el modelo a la hora de escalar una imagen. Los valores más altos harán que se añadan más detalles a la imagen durante la ampliación. Rango entre 0,1 y 0,5. Predeterminado: 0.3
+ **negative\$1prompt** (cadena): un blurb de texto que describe lo que no desea ver en la imagen de salida. Esta es una característica avanzada. Máximo 10000 caracteres.
+ **seed** (número): un valor específico que se utiliza para determinar la asignación al azar de la generación. (Omita este parámetro o pase 0 para usar una semilla aleatoria). Intervalo: de 0 a 4294967294. Valor predeterminado: 0.
+ **output\$1format** (cadena): indica el tipo de contenido de la imagen generada. Enum: jpeg, png, webp. Valor predeterminado: png.
+ **style\$1preset**: guía el modelo de imagen hacia un estilo concreto. Enum: 3d-model, analog-film, anime, cinematic, modeling-art, enhance, fantasy-art, isometric, line-art, low-poly, modeling-compound, neon-punk, origami, photographic, pixel-art, tile-texture.

------
#### [ 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)
```

------

La siguiente tabla muestra las imágenes de entrada y salida de una operación de Creative Upscale siguiendo el siguiente mensaje: *Esta obra de arte digital onírica captura un pájaro vibrante y caleidoscópico* en una exuberante selva tropical.


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

### Conservador y exclusivo
<a name="stable-image-services-6"></a>

Conservative Upscale toma imágenes de entre 64 x 64 y 1 megapíxel y las amplía a una resolución de 4K. Este servicio puede aumentar la escala de las imágenes entre 20 y 40 veces y, al mismo tiempo, conservar todos los aspectos. Conservative Upscale minimiza las alteraciones de la imagen y no debe utilizarse para reimaginar una imagen.

Conservative Upscale tiene los siguientes parámetros obligatorios:
+ **prompt**: lo que desea ver en la imagen de salida. Una petición descriptiva y fuerte que defina claramente los elementos, los colores y los sujetos permitirá obtener mejores resultados. Para controlar el peso de una palabra determinada, use el formato (word:weight), donde word es la palabra cuyo peso quiere controlar y weight es un valor. Los valores 0 y 1,0 restan énfasis a la palabra y los valores comprendidos entre 1,1 y 2 enfatizan la palabra. Por ejemplo: el cielo era nítido (azul:0,3) y (verde:1,8) representaría un cielo azul y verde, pero más verde que azul. Mínimo 0 caracteres y máximo 10 000 caracteres.
+ **image** ‐ (cadena) La imagen de Base64 que se va a escalar. Cada lado de la imagen debe tener al menos 64 píxeles. El número total de píxeles no puede superar los 9 437 184 píxeles. La relación de aspecto debe estar entre comprendida entre 1:2.5 y 2.5:1. Formatos compatibles: jpeg, png, webp.

Los siguientes parámetros son opcionales:
+ **creatividad** ‐ (número) Indica qué tan creativo debe ser el modelo al escalar una imagen. Los valores más altos harán que se añadan más detalles a la imagen durante la ampliación. Rango entre 0,1 y 0,5. Predeterminado: 0.35
+ **negative\$1prompt** (cadena): un blurb de texto que describe lo que no desea ver en la imagen de salida. Esta es una característica avanzada. Máximo 10000 caracteres.
+ **seed** (número): un valor específico que se utiliza para determinar la asignación al azar de la generación. (Omita este parámetro o pase 0 para usar una semilla aleatoria). Intervalo: de 0 a 4294967294. Valor predeterminado: 0.
+ **output\$1format** (cadena): indica el tipo de contenido de la imagen generada. Enum: jpeg, png, webp. Valor predeterminado: 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)
```

------

En la siguiente tabla se muestran las imágenes de entrada y salida de una operación de Conservative Upscale que utiliza el siguiente mensaje: *foto de un pollo gigante en un bosque*.


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

### ¡Rápido y exclusivo\$1
<a name="stable-image-services-7"></a>

Fast Upscale mejora 4 veces la resolución de la imagen mediante la IA predictiva y generativa. Este servicio ligero y rápido es ideal para mejorar la calidad de las imágenes comprimidas, lo que lo hace adecuado para publicaciones en redes sociales y otras aplicaciones.

Fast upscale tiene los siguientes parámetros obligatorios:
+ **image** ‐ (cadena) La imagen de Base64 que se va a escalar. El ancho debe estar comprendido entre 32 y 1.536 píxeles. La altura debe estar entre 32 y 1.536 píxeles. El número total de píxeles debe estar comprendido entre 1.024 y 1.048.576 píxeles. Formatos compatibles: jpeg, png, webp.
+ **output\$1format** (cadena): indica el tipo de contenido de la imagen generada. Enum: jpeg, png, webp. Valor predeterminado: 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)
```

------

La siguiente tabla muestra las imágenes de entrada y salida de una operación de Fast Upscale.


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

## Edición
<a name="stable-image-services-edit"></a>

En la siguiente sección se describen los servicios de edición de imágenes de Stability AI.

### Relleno de zonas
<a name="stable-image-services-8"></a>

La característica Relleno de zonas modifica las imágenes de forma inteligente rellenando o sustituyendo áreas específicas por contenido nuevo en función del contenido de la imagen de una máscara.

Relleno de zonas tiene los siguientes parámetros obligatorios:
+ **prompt**: lo que desea ver en la imagen de salida. Una petición descriptiva y fuerte que defina claramente los elementos, los colores y los sujetos permitirá obtener mejores resultados. Para controlar el peso de una palabra determinada, use el formato (word:weight), donde word es la palabra cuyo peso quiere controlar y weight es un valor. Los valores 0 y 1,0 restan énfasis a la palabra y los valores comprendidos entre 1,1 y 2 enfatizan la palabra. Por ejemplo: el cielo era nítido (azul:0,3) y (verde:1,8) representaría un cielo azul y verde, pero más verde que azul. Mínimo 0 caracteres y máximo 10 000 caracteres.
+ **image** (cadena): la imagen en Base64 que se va a rellenar. Cada lado de la imagen debe tener al menos 64 píxeles. El número total de píxeles no puede superar los 9 437 184 píxeles. La relación de aspecto debe estar entre comprendida entre 1:2.5 y 2.5:1. Formatos compatibles: jpeg, png, webp.

Los siguientes parámetros son opcionales:
+ **style\$1preset** (cadena): guía el modelo de imagen hacia un estilo concreto. Enum: 3d-model, analog-film, anime, cinematic, modeling-art, enhance, fantasy-art, isometric, line-art, low-poly, modeling-compound, neon-punk, origami, photographic, pixel-art, tile-texture.
+ **negative\$1prompt** (cadena): un blurb de texto que describe lo que no desea ver en la imagen de salida. Esta es una característica avanzada. Máximo 10000 caracteres.
+ **seed** (número): un valor específico que se utiliza para determinar la asignación al azar de la generación. (Omita este parámetro o pase 0 para usar una semilla aleatoria). Intervalo: de 0 a 4294967294. Valor predeterminado: 0.
+ **output\$1format** (cadena): indica el tipo de contenido de la imagen generada. Enum: jpeg, png, webp. Valor predeterminado: png.
+ **mask** (cadena): controla la intensidad del proceso de relleno por píxel, ya sea mediante una segunda imagen (pasada a este parámetro) o mediante el canal alfa del parámetro de imagen.
  + **Pasar una máscara**: la imagen que se pase a este parámetro debe ser una imagen en blanco y negro que represente, en cualquier píxel, la intensidad del relleno en función del grado de oscuridad o claridad del píxel en cuestión. Los píxeles completamente negros representan la ausencia de relleno, mientras que los píxeles completamente blancos representan la intensidad de relleno máxima. En el caso de que la máscara tenga un tamaño diferente al del parámetro de la imagen, se redimensionará automáticamente.
  + **Compatibilidad con el canal alfa**: si no proporciona una máscara explícita, se obtendrá una del canal alfa del parámetro de imagen. Los píxeles transparentes se rellenarán mientras que los opacos se preservarán. En el caso de que se proporcione una imagen con un canal alfa junto con una máscara, la máscara tendrá prioridad.
+ **grow\$1mask**: amplía los bordes de la máscara hacia afuera en todas las direcciones según el número de píxeles especificado. El área expandida alrededor de la máscara se difuminará, lo que puede ayudar a suavizar la transición entre el contenido rellenado y la imagen original. El intervalo está entre 0 y 20. Valor predeterminado: 5. Pruebe este parámetro si observa bordes irregulares o uniones visibles alrededor del contenido rellenado. Tenga en cuenta que un crecimiento excesivo puede oscurecer los detalles finos de la máscara y and/or combinar las regiones enmascaradas cercanas.

------
#### [ 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)
```

------

En la siguiente tabla se muestran las imágenes de entrada y salida de una operación de relleno de zonas.


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

### Pinta más que
<a name="stable-image-services-9"></a>

Outpaint inserta contenido adicional en una imagen para rellenar el espacio en cualquier dirección. En comparación con otros intentos automatizados o manuales de ampliar el contenido de una imagen, el servicio Outpaint minimiza los indicios de que la imagen original se ha editado.

Outpaint tiene los siguientes parámetros obligatorios:
+ **image** ‐ (string) La imagen de Base64 que se va a pintar mejor. Cada lado de la imagen debe tener al menos 64 píxeles. El número total de píxeles no puede superar los 9 437 184 píxeles. La relación de aspecto debe estar entre comprendida entre 1:2.5 y 2.5:1. Formatos compatibles: jpeg, png, webp.
**nota**  
Se debe proporcionar al menos una dirección de pintura exterior: (izquierda, derecha, arriba o abajo) con un valor distinto de cero. Para obtener resultados de la mejor calidad, tenga en cuenta la composición y el contenido de la imagen original al elegir las direcciones de pintura exterior.

Los siguientes parámetros son opcionales:
+ **prompt**: lo que desea ver en la imagen de salida. Una petición descriptiva y fuerte que defina claramente los elementos, los colores y los sujetos permitirá obtener mejores resultados. Para controlar el peso de una palabra determinada, use el formato (word:weight), donde word es la palabra cuyo peso quiere controlar y weight es un valor. Los valores 0 y 1,0 restan énfasis a la palabra y los valores comprendidos entre 1,1 y 2 enfatizan la palabra. Por ejemplo: el cielo era nítido (azul:0,3) y (verde:1,8) representaría un cielo azul y verde, pero más verde que azul. Mínimo 0 caracteres y máximo 10 000 caracteres.
+ **style\$1preset** (cadena): guía el modelo de imagen hacia un estilo concreto. Enum: 3d-model, analog-film, anime, cinematic, modeling-art, enhance, fantasy-art, isometric, line-art, low-poly, modeling-compound, neon-punk, origami, photographic, pixel-art, tile-texture.
+ **seed** (número): un valor específico que se utiliza para determinar la asignación al azar de la generación. (Omita este parámetro o pase 0 para usar una semilla aleatoria). Intervalo: de 0 a 4294967294. Valor predeterminado: 0.
+ **output\$1format** (cadena): indica el tipo de contenido de la imagen generada. Enum: jpeg, png, webp. Valor predeterminado: png.
+ **creatividad** ‐ (número) Indica el grado de creatividad que debe tener el modelo a la hora de pintar una imagen. Los valores más altos harán que se añada más contenido creativo a la imagen durante la pintura exterior. Rango entre 0,1 y 1,0. Valor predeterminado: 0,5.
+ **left** ‐ (entero) El número de píxeles que se van a pintar más en la parte izquierda de la imagen. Debe proporcionarse al menos una dirección de pintura exterior con un valor distinto de cero. Rango de 0 a 2000. Predeterminado 0.
+ **right** ‐ (entero) El número de píxeles que se van a pintar más en el lado derecho de la imagen. Debe proporcionarse al menos una dirección de pintura exterior con un valor distinto de cero. Rango de 0 a 2000. Predeterminado 0.
+ **up** ‐ (entero) El número de píxeles que se van a pintar más en la parte superior de la imagen. Debe proporcionarse al menos una dirección de pintura exterior con un valor distinto de cero. Rango de 0 a 2000. Predeterminado 0.
+ **down** ‐ (entero) El número de píxeles que se van a pintar más en la parte inferior de la imagen. Debe proporcionarse al menos una dirección de pintura exterior con un valor distinto de cero. Rango de 0 a 2000. Predeterminado 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)
```

------

La siguiente tabla muestra las imágenes de entrada y salida de una operación de Outpaint.


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

### Búsqueda y cambio de color
<a name="stable-image-services-10"></a>

La función Búsqueda y cambio de color le permite cambiar el color de un objeto específico de una imagen mediante una petición. Este servicio es una versión específica de relleno de zonas que no requiere una máscara. Segmentará automáticamente el objeto y lo volverá a colorear con los colores solicitados en la petición.

La característica Búsqueda y cambio de color tiene los siguientes parámetros obligatorios:
+ **prompt**: lo que desea ver en la imagen de salida. Una petición descriptiva y fuerte que defina claramente los elementos, los colores y los sujetos permitirá obtener mejores resultados. Para controlar el peso de una palabra determinada, use el formato (word:weight), donde word es la palabra cuyo peso quiere controlar y weight es un valor. Los valores 0 y 1,0 restan énfasis a la palabra y los valores comprendidos entre 1,1 y 2 enfatizan la palabra. Por ejemplo: el cielo era nítido (azul:0,3) y (verde:1,8) representaría un cielo azul y verde, pero más verde que azul. Mínimo 0 caracteres y máximo 10 000 caracteres.
+ **image** (cadena): la imagen en Base64 que se va a cambiar de color. Cada lado de la imagen debe tener al menos 64 píxeles. El número total de píxeles no puede superar los 9 437 184 píxeles. La relación de aspecto debe estar entre comprendida entre 1:2.5 y 2.5:1. Formatos compatibles: jpeg, png, webp.
+ **select\$1prompt** (cadena): breve descripción de lo que se debe buscar en la imagen. Máximo 10000 caracteres.

Los siguientes parámetros son opcionales:
+ **style\$1preset** (cadena): guía el modelo de imagen hacia un estilo concreto. Enum: 3d-model, analog-film, anime, cinematic, modeling-art, enhance, fantasy-art, isometric, line-art, low-poly, modeling-compound, neon-punk, origami, photographic, pixel-art, tile-texture.
+ **negative\$1prompt** (cadena): un blurb de texto que describe lo que no desea ver en la imagen de salida. Esta es una característica avanzada. Máximo 10000 caracteres.
+ **seed** (número): un valor específico que se utiliza para determinar la asignación al azar de la generación. (Omita este parámetro o pase 0 para usar una semilla aleatoria). Intervalo: de 0 a 4294967294. Valor predeterminado: 0.
+ **output\$1format** (cadena): indica el tipo de contenido de la imagen generada. Enum: jpeg, png, webp. Valor predeterminado: png.
+ **grow\$1mask**: amplía los bordes de la máscara hacia afuera en todas las direcciones según el número de píxeles especificado. El área expandida alrededor de la máscara se difuminará, lo que puede ayudar a suavizar la transición entre el contenido rellenado y la imagen original. El intervalo está entre 0 y 20. Valor predeterminado: 5. Pruebe este parámetro si observa bordes irregulares o uniones visibles alrededor del contenido rellenado. Tenga en cuenta que un crecimiento excesivo puede oscurecer los detalles finos de la máscara y and/or combinar las regiones enmascaradas cercanas.

------
#### [ 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)
```

------

En la siguiente tabla se muestran las imágenes de entrada y salida de una operación de búsqueda y cambio de color mediante la siguiente petición: *pink jacket*.


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

### Búsqueda y reemplazo
<a name="stable-image-services-11"></a>

La característica Búsqueda y reemplazado permite utilizar una petición de búsqueda para identificar en un lenguaje sencillo el objeto que se va a reemplazar. El servicio segmentará automáticamente el objeto y lo sustituirá por el objeto solicitado en la petición sin necesidad de utilizar una máscara.

La característica Búsqueda y reemplazo tiene los siguientes parámetros obligatorios:
+ **prompt**: lo que desea ver en la imagen de salida. Una petición descriptiva y fuerte que defina claramente los elementos, los colores y los sujetos permitirá obtener mejores resultados. Para controlar el peso de una palabra determinada, use el formato (word:weight), donde word es la palabra cuyo peso quiere controlar y weight es un valor. Los valores 0 y 1,0 restan énfasis a la palabra y los valores comprendidos entre 1,1 y 2 enfatizan la palabra. Por ejemplo: el cielo era nítido (azul:0,3) y (verde:1,8) representaría un cielo azul y verde, pero más verde que azul. Mínimo 0 caracteres y máximo 10 000 caracteres.
+ **image** (cadena): la imagen en Base64 que se va a cambiar de color. Cada lado de la imagen debe tener al menos 64 píxeles. El número total de píxeles no puede superar los 9 437 184 píxeles. La relación de aspecto debe estar entre comprendida entre 1:2.5 y 2.5:1. Formatos compatibles: jpeg, png, webp.
+ **search\$1prompt** (cadena): breve descripción de lo que se debe rellenar en la imagen. Máximo 10000 caracteres.

Los siguientes parámetros son opcionales:
+ **style\$1preset** (cadena): guía el modelo de imagen hacia un estilo concreto. Enum: 3d-model, analog-film, anime, cinematic, modeling-art, enhance, fantasy-art, isometric, line-art, low-poly, modeling-compound, neon-punk, origami, photographic, pixel-art, tile-texture.
+ **negative\$1prompt** (cadena): un blurb de texto que describe lo que no desea ver en la imagen de salida. Esta es una característica avanzada. Máximo 10000 caracteres.
+ **seed** (número): un valor específico que se utiliza para determinar la asignación al azar de la generación. (Omita este parámetro o pase 0 para usar una semilla aleatoria). Intervalo: de 0 a 4294967294. Valor predeterminado: 0.
+ **output\$1format** (cadena): indica el tipo de contenido de la imagen generada. Enum: jpeg, png, webp. Valor predeterminado: png.
+ **grow\$1mask**: amplía los bordes de la máscara hacia afuera en todas las direcciones según el número de píxeles especificado. El área expandida alrededor de la máscara se difuminará, lo que puede ayudar a suavizar la transición entre el contenido rellenado y la imagen original. El intervalo está entre 0 y 20. Valor predeterminado: 5. Pruebe este parámetro si observa bordes irregulares o uniones visibles alrededor del contenido rellenado. Tenga en cuenta que un crecimiento excesivo puede oscurecer los detalles finos de la máscara y and/or combinar las regiones enmascaradas cercanas.

------
#### [ 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)
```

------

En la siguiente tabla se muestran las imágenes de entrada y salida de una operación de búsqueda y reemplazo mediante la siguiente petición: *jacket*.


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

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

El borrado permite eliminar elementos no deseados mediante máscaras de imagen y, al mismo tiempo, mantener de forma inteligente la coherencia del fondo.

La característica de borrado tiene los siguientes parámetros obligatorios:
+ **image** (cadena): la imagen en Base64 en la que se va a realizar la operación de borrado. Cada lado de la imagen debe tener al menos 64 píxeles. El número total de píxeles no puede superar los 9 437 184 píxeles. La relación de aspecto debe estar entre comprendida entre 1:2.5 y 2.5:1. Formatos compatibles: jpeg, png, webp.

Los siguientes parámetros son opcionales:
+ **seed** (número): un valor específico que se utiliza para determinar la asignación al azar de la generación. (Omita este parámetro o pase 0 para usar una semilla aleatoria). Intervalo: de 0 a 4294967294. Valor predeterminado: 0.
+ **output\$1format** (cadena): indica el tipo de contenido de la imagen generada. Enum: jpeg, png, webp. Valor predeterminado: png.
+ **mask** (cadena): controla la intensidad del proceso de relleno por píxel, ya sea mediante una segunda imagen (pasada a este parámetro) o mediante el canal alfa del parámetro de imagen.
  + **Pasar una máscara**: la imagen que se pase a este parámetro debe ser una imagen en blanco y negro que represente, en cualquier píxel, la intensidad del relleno en función del grado de oscuridad o claridad del píxel en cuestión. Los píxeles completamente negros representan la ausencia de relleno, mientras que los píxeles completamente blancos representan la intensidad de relleno máxima. En el caso de que la máscara tenga un tamaño diferente al del parámetro de la imagen, se redimensionará automáticamente.
  + **Compatibilidad con el canal alfa**: si no proporciona una máscara explícita, se obtendrá una del canal alfa del parámetro de imagen. Los píxeles transparentes se rellenarán mientras que los opacos se preservarán. En el caso de que se proporcione una imagen con un canal alfa junto con una máscara, la máscara tendrá prioridad.
+ **grow\$1mask**: amplía los bordes de la máscara hacia afuera en todas las direcciones según el número de píxeles especificado. El área expandida alrededor de la máscara se difuminará, lo que puede ayudar a suavizar la transición entre el contenido rellenado y la imagen original. El intervalo está entre 0 y 20. Valor predeterminado: 5. Pruebe este parámetro si observa bordes irregulares o uniones visibles alrededor del contenido rellenado. Tenga en cuenta que un crecimiento excesivo puede oscurecer los detalles finos de la máscara y and/or fusionar las regiones enmascaradas cercanas.

**nota**  
Para obtener resultados de borrado óptimos, asegúrese de que la máscara defina con precisión las áreas que se van a quitar. Si no se proporciona una máscara explícita, el servicio utilizará el canal alfa de la imagen de entrada. La máscara tendrá prioridad si se proporcionan ambas.

------
#### [ 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)
```

------

En la siguiente tabla se muestran las imágenes de entrada y salida de una operación de borrado.


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

### Eliminación del fondo
<a name="stable-image-services-13"></a>

La característica Eliminación del fondo le permite aislar los sujetos del fondo con precisión.

La característica Eliminación del fondo tiene los siguientes parámetros obligatorios:
+ **image** (cadena): la imagen en Base64 de la que se va a eliminar el fondo. Cada lado de la imagen debe tener al menos 64 píxeles. El número total de píxeles no puede superar los 9 437 184 píxeles. La relación de aspecto debe estar entre comprendida entre 1:2.5 y 2.5:1. Formatos compatibles: jpeg, png, webp.

Los siguientes parámetros son opcionales:
+ **output\$1format** (cadena): indica el tipo de contenido de la imagen generada. Enum: jpeg, png, webp. Valor predeterminado: 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)
```

------

En la siguiente tabla se muestran las imágenes de entrada y salida de una operación de eliminación del fondo.


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

## Controlar
<a name="stable-image-services-control"></a>

En la siguiente sección se describen los servicios de control de imágenes de Stability AI.

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

Actualice los bocetos dibujados a mano para convertirlos en resultados refinados con un control preciso. En el caso de imágenes que no son bocetos, el control de bocetos permite una manipulación detallada del aspecto final al utilizar las líneas de contorno y los bordes de la imagen.

La característica Control de boceto tiene los siguientes parámetros obligatorios:
+ **prompt**: lo que desea ver en la imagen de salida. Una petición descriptiva y fuerte que defina claramente los elementos, los colores y los sujetos permitirá obtener mejores resultados. Para controlar el peso de una palabra determinada, use el formato (word:weight), donde word es la palabra cuyo peso quiere controlar y weight es un valor. Los valores 0 y 1,0 restan énfasis a la palabra y los valores comprendidos entre 1,1 y 2 enfatizan la palabra. Por ejemplo: el cielo era nítido (azul:0,3) y (verde:1,8) representaría un cielo azul y verde, pero más verde que azul. Mínimo 0 caracteres y máximo 10 000 caracteres.
+ **image** (cadena): la imagen en Base64 del boceto. Cada lado de la imagen debe tener al menos 64 píxeles. El número total de píxeles no puede superar los 9 437 184 píxeles. La relación de aspecto debe estar entre comprendida entre 1:2.5 y 2.5:1. Formatos compatibles: jpeg, png, webp.

Los siguientes parámetros son opcionales:
+ **control\$1strength** (número): cuánta influencia o control tiene la imagen en la generación. Se representa como un valor flotante comprendido entre 0 y 1, donde 0 es la menor influencia y 1 es la máxima influencia. El valor predeterminado es 0,7.
+ **negative\$1prompt** (cadena): un blurb de texto que describe lo que no desea ver en la imagen de salida. Esta es una característica avanzada. Máximo 10000 caracteres.
+ **seed** (número): un valor específico que se utiliza para determinar la asignación al azar de la generación. (Omita este parámetro o pase 0 para usar una semilla aleatoria). Intervalo: de 0 a 4294967294. Valor predeterminado: 0.
+ **output\$1format** (cadena): indica el tipo de contenido de la imagen generada. Enum: jpeg, png, webp. Valor predeterminado: png.
+ **style\$1preset**: guía el modelo de imagen hacia un estilo concreto. Enum: 3d-model, analog-film, anime, cinematic, modeling-art, enhance, fantasy-art, isometric, line-art, low-poly, modeling-compound, neon-punk, origami, photographic, pixel-art, tile-texture.

------
#### [ 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)
```

------

En la siguiente tabla se muestran las imágenes de entrada y salida de una llamada a la característica Control de boceto utilizando la siguiente petición: *una casa con un fondo de montañas y un río que fluye cerca*.


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

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

La característica Control de estructura le permite generar imágenes manteniendo la estructura de una imagen de entrada. Esto resulta especialmente útil para escenarios avanzados de creación de contenido, como la recreación de escenas o la representación de personajes a partir de modelos.

La característica Control de estructura tiene los siguientes parámetros obligatorios:
+ **prompt**: lo que desea ver en la imagen de salida. Una petición descriptiva y fuerte que defina claramente los elementos, los colores y los sujetos permitirá obtener mejores resultados. Para controlar el peso de una palabra determinada, use el formato (word:weight), donde word es la palabra cuyo peso quiere controlar y weight es un valor. Los valores 0 y 1,0 restan énfasis a la palabra y los valores comprendidos entre 1,1 y 2 enfatizan la palabra. Por ejemplo: el cielo era nítido (azul:0,3) y (verde:1,8) representaría un cielo azul y verde, pero más verde que azul. Mínimo 0 caracteres y máximo 10 000 caracteres.
+ **image** (cadena): la imagen en Base64 del boceto. Cada lado de la imagen debe tener al menos 64 píxeles. El número total de píxeles no puede superar los 9 437 184 píxeles. La relación de aspecto debe estar entre comprendida entre 1:2.5 y 2.5:1. Formatos compatibles: jpeg, png, webp.

Los siguientes parámetros son opcionales:
+ **control\$1strength** (número): cuánta influencia o control tiene la imagen en la generación. Se representa como un valor flotante comprendido entre 0 y 1, donde 0 es la menor influencia y 1 es la máxima influencia. El valor predeterminado es 0,7.
+ **negative\$1prompt** (cadena): un blurb de texto que describe lo que no desea ver en la imagen de salida. Esta es una característica avanzada. Máximo 10000 caracteres.
+ **seed** (número): un valor específico que se utiliza para determinar la asignación al azar de la generación. (Omita este parámetro o pase 0 para usar una semilla aleatoria). Intervalo: de 0 a 4294967294. Valor predeterminado: 0.
+ **output\$1format** (cadena): indica el tipo de contenido de la imagen generada. Enum: jpeg, png, webp. Valor predeterminado: png.
+ **style\$1preset**: guía el modelo de imagen hacia un estilo concreto. Enum: 3d-model, analog-film, anime, cinematic, modeling-art, enhance, fantasy-art, isometric, line-art, low-poly, modeling-compound, neon-punk, origami, photographic, pixel-art, tile-texture.

------
#### [ 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)
```

------

En la siguiente tabla se muestran las imágenes de entrada y salida de una operación de control de estructura que utiliza la siguiente petición: *estructura surrealista con chispas generadas por el movimiento que iluminan la escena*.


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

### Guía de estilo
<a name="stable-image-services-3"></a>

La Guía de estilo permite extraer elementos estilísticos de una imagen de entrada y utilizarla para guiar la creación de una imagen de salida en función de la petición. El resultado es una imagen nueva con el mismo estilo que la imagen de entrada.

La Guía de estilo tiene los siguientes parámetros obligatorios:
+ **prompt**: lo que desea ver en la imagen de salida. Una petición descriptiva y fuerte que defina claramente los elementos, los colores y los sujetos permitirá obtener mejores resultados. Para controlar el peso de una palabra determinada, use el formato (word:weight), donde word es la palabra cuyo peso quiere controlar y weight es un valor. Los valores 0 y 1,0 restan énfasis a la palabra y los valores comprendidos entre 1,1 y 2 enfatizan la palabra. Por ejemplo: el cielo era nítido (azul:0,3) y (verde:1,8) representaría un cielo azul y verde, pero más verde que azul. Mínimo 0 caracteres y máximo 10 000 caracteres.
+ **image** (cadena): la imagen en Base64 del boceto. Cada lado de la imagen debe tener al menos 64 píxeles. El número total de píxeles no puede superar los 9 437 184 píxeles. La relación de aspecto debe estar entre comprendida entre 1:2.5 y 2.5:1. Formatos compatibles: jpeg, png, webp.

Los siguientes parámetros son opcionales:
+ **aspect\$1ratio**: (cadena) controla la relación de aspecto de la imagen generada. Este parámetro solo es válido para text-to-image las solicitudes. El valor predeterminado es 1:1. Enumeración: 16:9, 1:1, 21:9, 2:3, 3:2, 4:5, 5:4, 9:16, 9:21. El valor predeterminado es 1:1.
+ **negative\$1prompt** (cadena): un blurb de texto que describe lo que no desea ver en la imagen de salida. Esta es una característica avanzada. Máximo 10000 caracteres.
+ **seed** (número): un valor específico que se utiliza para determinar la asignación al azar de la generación. (Omita este parámetro o pase 0 para usar una semilla aleatoria). Intervalo: de 0 a 4294967294. Valor predeterminado: 0.
+ **output\$1format** (cadena): indica el tipo de contenido de la imagen generada. Enum: jpeg, png, webp. Valor predeterminado: png.
+ **fidelity** (número): cuánto se parece el estilo de la imagen de salida al estilo de la imagen de entrada. Intervalo del 0 al 1. Valor predeterminado: 0,5.
+ **style\$1preset**: guía el modelo de imagen hacia un estilo concreto. Enum: 3d-model, analog-film, anime, cinematic, modeling-art, enhance, fantasy-art, isometric, line-art, low-poly, modeling-compound, neon-punk, origami, photographic, pixel-art, tile-texture.

------
#### [ 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)
```

------

En la siguiente tabla se muestran las imágenes de entrada y salida de una llamada a Guía de estilo utilizando la siguiente petición: *plano panorámico de una metrópolis moderna*.


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

### Transferencia de estilo
<a name="stable-image-services-4"></a>

La transferencia de estilo permite aplicar características visuales de las imágenes de estilo de referencia a las imágenes de destino. Mientras que el servicio Guía de estilo extrae los elementos estilísticos de una imagen de entrada y los utiliza para guiar la creación de una imagen de salida en función de la petición, Transferencia de estilo transforma específicamente el contenido existente al tiempo que conserva la composición original. Esta herramienta ayuda a crear contenido coherente en varios activos.

Transferencia de estilo tiene los siguientes parámetros obligatorios:
+ **init\$1image** (cadena): una imagen en Base64 que contiene el sujeto al que desea cambiar el estilo. Cada lado de la imagen debe tener al menos 64 píxeles. El número total de píxeles no puede superar los 9 437 184 píxeles. La relación de aspecto debe estar entre comprendida entre 1:2.5 y 2.5:1. Formatos compatibles: jpeg, png, webp.
+ **style\$1image** (cadena): una imagen en Base64 que contiene el sujeto al que desea cambiar el estilo. Cada lado de la imagen debe tener al menos 64 píxeles. El número total de píxeles no puede superar los 9 437 184 píxeles. La relación de aspecto debe estar entre comprendida entre 1:2.5 y 2.5:1. Formatos compatibles: jpeg, png, webp.

Los siguientes parámetros son opcionales:
+ **prompt**: (cadena) lo que desea ver en la imagen de salida. Una petición descriptiva y fuerte que defina claramente los elementos, los colores y los sujetos permitirá obtener mejores resultados. Para controlar el peso de una palabra determinada, use el formato (word:weight), donde word es la palabra cuyo peso quiere controlar y weight es un valor. Los valores 0 y 1,0 restan énfasis a la palabra y los valores comprendidos entre 1,1 y 2 enfatizan la palabra. Por ejemplo: el cielo era nítido (azul:0,3) y (verde:1,8) representaría un cielo azul y verde, pero más verde que azul.
+ **negative\$1prompt** (cadena): un blurb de texto que describe lo que no desea ver en la imagen de salida. Esta es una característica avanzada. Máximo 10000 caracteres.
+ **seed** (número): un valor específico que se utiliza para determinar la asignación al azar de la generación. (Omita este parámetro o pase 0 para usar una semilla aleatoria). Intervalo: de 0 a 4294967294. Valor predeterminado: 0.
+ **output\$1format** (cadena): indica el tipo de contenido de la imagen generada. Enum: jpeg, png, webp. Valor predeterminado: png.
+ **composition\$1fidelity** (número): cuánto se parece el estilo de la imagen de salida al estilo de la imagen de entrada. El intervalo está entre 0 y 1. Valor predeterminado: 0,9.
+ **style\$1strength** (número): este parámetro, que a veces se denomina “reducción de ruido”, controla la influencia que tiene el parámetro de la imagen sobre la imagen generada. Un valor de 0 generaría una imagen idéntica a la entrada. Un valor de 1 sería como si no hubiera pasado ninguna imagen. El intervalo está entre 0 y 1. Valor predeterminado: 1.
+ **change\$1strength** (número): cuánto debe cambiar la imagen original. El intervalo está entre 0,1 y 1. Valor predeterminado: 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)
```

------

En la siguiente tabla se muestran las imágenes de entrada y salida de una llamada a Transferencia de estilo.


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