> ## Documentation Index
> Fetch the complete documentation index at: https://www.krea.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Transferencia de estilo

> Usa una o varias imágenes de referencia para guiar el estilo de una generación de Krea 2, con intensidad ajustable por referencia.

Krea 2 incluye el sistema de transferencia de estilo más potente del mercado. Pasa una sola imagen de referencia o combina varias, y Krea 2 extraerá el estilo y lo aplicará a tu salida — dejándote decidir con qué intensidad cada referencia da forma a la imagen final.

## Ejemplos

Cada ejemplo muestra la **referencia de estilo** a la izquierda y la **salida generada** a la derecha.

<div className="not-prose space-y-8">
  <div>
    <div className="grid grid-cols-2 gap-3">
      <img src="https://s.krea.ai/docs/krea-2/style-transfer-cat-ref.webp" alt="Referencia de estilo: caricatura corriendo por el césped" className="rounded-lg w-full object-cover m-0" style={{ aspectRatio: "4/3" }} />

      <img src="https://s.krea.ai/docs/krea-2/style-transfer-cat-out.webp" alt="Salida: un gato saltando de lado" className="rounded-lg w-full object-cover m-0" style={{ aspectRatio: "4/3" }} />
    </div>

    <p className="mt-2 text-sm text-gray-600 dark:text-gray-400">Prompt: <em>un gato saltando de lado</em></p>
  </div>

  <div>
    <div className="grid grid-cols-2 gap-3">
      <img src="https://s.krea.ai/docs/krea-2/style-transfer-polar-bear-ref.webp" alt="Referencia de estilo: cuadrícula de pixel art de 8 bits" className="rounded-lg w-full object-cover m-0" style={{ aspectRatio: "4/3" }} />

      <img src="https://s.krea.ai/docs/krea-2/style-transfer-polar-bear-out.webp" alt="Salida: un oso polar" className="rounded-lg w-full object-cover m-0" style={{ aspectRatio: "4/3" }} />
    </div>

    <p className="mt-2 text-sm text-gray-600 dark:text-gray-400">Prompt: <em>un oso polar</em></p>
  </div>

  <div>
    <div className="grid grid-cols-2 gap-3">
      <img src="https://s.krea.ai/docs/krea-2/style-transfer-cowboy-ref.webp" alt="Referencia de estilo: boceto estilo Krea 1" className="rounded-lg w-full object-cover m-0" style={{ aspectRatio: "4/3" }} />

      <img src="https://s.krea.ai/docs/krea-2/style-transfer-cowboy-out.webp" alt="Salida: un vaquero" className="rounded-lg w-full object-cover m-0" style={{ aspectRatio: "4/3" }} />
    </div>

    <p className="mt-2 text-sm text-gray-600 dark:text-gray-400">Prompt: <em>un vaquero</em></p>
  </div>

  <div>
    <div className="grid grid-cols-2 gap-3">
      <img src="https://s.krea.ai/docs/krea-2/style-transfer-muppet-ref.webp" alt="Referencia de estilo: caballo estilo Plaza Sésamo" className="rounded-lg w-full object-cover m-0" style={{ aspectRatio: "4/3" }} />

      <img src="https://s.krea.ai/docs/krea-2/style-transfer-muppet-out.webp" alt="Salida: gato y perro estilo Muppets" className="rounded-lg w-full object-cover m-0" style={{ aspectRatio: "4/3" }} />
    </div>

    <p className="mt-2 text-sm text-gray-600 dark:text-gray-400">Prompt: <em>una escena de la película live-action de los Muppets con un gato muppet gris y su amigo perro</em></p>
  </div>
</div>

## Cómo funciona

<Steps>
  <Step title="Proporciona tu referencia">
    Puedes referenciar una imagen de tres maneras: envía la imagen con `POST` a `/assets` y usa la URL devuelta, pasa una URL externa directamente o proporciona un URI de datos.
  </Step>

  <Step title="Referénciala por URL">
    Incluye la URL de la imagen o el URI de datos en el array `image_style_references` de tu solicitud a `krea-2/medium` o `krea-2/large`.
  </Step>

  <Step title="Ajusta la intensidad">
    Establece `strength` entre -2 y 2 por referencia. \~0,6 es un buen punto de partida — súbelo para que el estilo domine, bájalo para una influencia más sutil.
  </Step>
</Steps>

## Ejemplo de extremo a extremo

Este ejemplo sube un archivo local como referencia de estilo y lo usa en una generación con Krea 2 Medium.

<CodeGroup>
  ```javascript Node.js theme={null}
  // npm install @krea-ai/sdk
  import { openAsBlob } from "node:fs";
  import { Krea } from "@krea-ai/sdk";

  const krea = new Krea({ apiKey: process.env.KREA_API_KEY });

  // 1. Upload the style reference
  const file = await openAsBlob("./style-reference.png", { type: "image/png" });
  const asset = await krea.assets.upload(file, {
    filename: "style-reference.png",
    description: "Style reference for Krea 2",
  });

  // 2. Generate with the reference
  const result = await krea.subscribe("image/krea/krea-2/medium", {
    input: {
      prompt: "A portrait of a dancer in a quiet studio",
      aspect_ratio: "4:3",
      resolution: "1K",
      creativity: "medium",
      image_style_references: [{ url: asset.image_url, strength: 0.6 }],
    },
  });

  console.log(result.data?.urls[0]);
  ```

  ```bash cURL theme={null}
  # 1. Upload the style reference
  curl -X POST https://api.krea.ai/assets \
    -H "Authorization: Bearer $KREA_API_TOKEN" \
    -F "file=@./style-reference.png" \
    -F "description=Style reference for Krea 2"
  # Response includes { "image_url": "https://..." }

  # 2. Generate with the reference (replace IMAGE_URL with the response above)
  curl -X POST https://api.krea.ai/generate/image/krea/krea-2/medium \
    -H "Authorization: Bearer $KREA_API_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
      "prompt": "A portrait of a dancer in a quiet studio",
      "aspect_ratio": "4:3",
      "resolution": "1K",
      "creativity": "medium",
      "image_style_references": [
        { "url": "IMAGE_URL", "strength": 0.6 }
      ]
    }'
  ```

  ```python Python theme={null}
  import os
  import requests

  API_BASE = "https://api.krea.ai"
  API_TOKEN = os.environ["KREA_API_TOKEN"]
  headers = {"Authorization": f"Bearer {API_TOKEN}"}

  # 1. Upload the style reference
  with open("style-reference.png", "rb") as f:
      upload = requests.post(
          f"{API_BASE}/assets",
          headers=headers,
          files={"file": ("style-reference.png", f, "image/png")},
          data={"description": "Style reference for Krea 2"},
      )
  upload.raise_for_status()
  asset = upload.json()

  # 2. Generate with the reference
  generation = requests.post(
      f"{API_BASE}/generate/image/krea/krea-2/medium",
      headers={**headers, "Content-Type": "application/json"},
      json={
          "prompt": "A portrait of a dancer in a quiet studio",
          "aspect_ratio": "4:3",
          "resolution": "1K",
          "creativity": "medium",
          "image_style_references": [
              {"url": asset["image_url"], "strength": 0.6},
          ],
      },
  )
  generation.raise_for_status()
  print(generation.json())  # { "job_id": "..." } — poll /jobs/{id} for the result
  ```
</CodeGroup>

<Note>
  Los ejemplos REST son asíncronos — `POST /generate/...` devuelve un `job_id` de inmediato. El ejemplo del SDK de Node.js usa `subscribe(...)`, que espera el resultado completado. Consulta [Ciclo de vida del trabajo](/developers/job-lifecycle) para el patrón de polling, o usa un [webhook](/developers/webhooks) para evitar el polling por completo.
</Note>

## Ajustar la intensidad

`strength` va de `-2` a `2`. Algunas reglas prácticas:

* **\~0,3–0,5** — influencia sutil; útil cuando quieres que el prompt lleve la voz cantante y la referencia aporte carácter.
* **\~0,6** — punto de partida equilibrado para la mayoría de los casos.
* **\~0,8–1,0** — el estilo de la referencia domina; útil cuando el prompt es genérico y la identidad visual debe venir de la referencia.
* **Valores negativos** — alejan la salida del estilo de la referencia.

Si las salidas se sienten demasiado literales (la referencia es demasiado fuerte) o demasiado genéricas (la referencia es demasiado débil), ajusta de 0,1 en 0,1.

## Combinar varias referencias

Pasa varios objetos en `image_style_references` para mezclar estilos. Cada referencia puede tener su propia `strength`.

```javascript Node.js theme={null}
const result = await krea.subscribe("image/krea/krea-2/medium", {
  input: {
    prompt: "A portrait of a dancer in a quiet studio",
    aspect_ratio: "4:3",
    resolution: "1K",
    image_style_references: [
      { url: assetA.image_url, strength: 0.6 },
      { url: assetB.image_url, strength: 0.4 },
    ],
  },
});
```

Las referencias se mezclan de forma aditiva — empieza con intensidades que sumen cerca de `1.0` y ajusta a partir de ahí.
