> ## 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.

# Transfert de style

> Utilisez une ou plusieurs images de référence pour piloter le style d'une génération Krea 2, avec une intensité ajustable par référence.

Krea 2 est livré avec le système de transfert de style le plus puissant du marché. Fournissez une seule image de référence ou combinez-en plusieurs, et Krea 2 extraira le style et l'appliquera à votre sortie — en vous laissant décider à quel point chaque référence influence l'image finale.

## Exemples

Chaque exemple montre la **référence de style** à gauche et la **sortie générée** à droite.

<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="Référence de style : dessin animé courant dans l'herbe" 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="Sortie : un chat sautant de côté" 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 chat sautant de côté</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="Référence de style : grille en pixel art 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="Sortie : un ours polaire" 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 ours polaire</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="Référence de style : croquis de style 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="Sortie : un cowboy" 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 cowboy</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="Référence de style : cheval dans le style Sesame Street" 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="Sortie : un chat et un chien dans le style 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>une scène du film en prise de vues réelles des Muppets mettant en scène une marionnette de chat gris et son ami chien</em></p>
  </div>
</div>

## Comment ça marche

<Steps>
  <Step title="Fournissez votre référence">
    Vous pouvez référencer une image de trois manières : envoyez l'image via `POST` à `/assets` et utilisez l'URL renvoyée, transmettez directement une URL externe, ou fournissez un data URI.
  </Step>

  <Step title="Référencez-la par URL">
    Incluez l'URL de l'image ou le data URI dans le tableau `image_style_references` de votre requête `krea-2/medium` ou `krea-2/large`.
  </Step>

  <Step title="Ajustez l'intensité">
    Définissez `strength` entre -2 et 2 par référence. \~0,6 est un bon point de départ — augmentez-le pour faire dominer le style, abaissez-le pour une influence plus subtile.
  </Step>
</Steps>

## Exemple de bout en bout

Cet exemple téléverse un fichier local comme référence de style et l'utilise dans une génération 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>
  Les exemples REST sont asynchrones — `POST /generate/...` renvoie immédiatement un `job_id`. L'exemple Node.js SDK utilise `subscribe(...)`, qui attend le résultat finalisé. Consultez [Cycle de vie d'une tâche](/developers/job-lifecycle) pour le schéma d'interrogation, ou utilisez un [webhook](/developers/webhooks) pour éviter complètement l'interrogation.
</Note>

## Ajuster l'intensité

`strength` varie de `-2` à `2`. Quelques règles empiriques :

* **\~0,3–0,5** — influence subtile ; utile lorsque vous voulez que le prompt mène et que la référence ajoute du caractère.
* **\~0,6** — point de départ équilibré pour la plupart des cas d'usage.
* **\~0,8–1,0** — le style de référence domine ; utile lorsque le prompt est générique et que l'identité visuelle doit venir de la référence.
* **Valeurs négatives** — éloignent la sortie d'un style de référence.

Si les sorties semblent soit trop littérales (référence trop forte) soit trop génériques (référence trop faible), ajustez par incréments de 0,1.

## Combiner plusieurs références

Passez plusieurs objets dans `image_style_references` pour mélanger les styles. Chaque référence peut avoir sa propre `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 },
    ],
  },
});
```

Les références se mélangent de manière additive — commencez avec des intensités dont la somme se rapproche de `1,0` et ajustez à partir de là.
