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

# Krea 2

> Krea 2 API संदर्भ—रचनात्मक नियंत्रण के लिए बनाए गए हमारे पहले फाउंडेशन इमेज मॉडल के लिए मॉडल, पैरामीटर, मूल्य निर्धारण और जनरेटिव स्लाइडर्स को कवर करता है।

export const ModelOverviewCard = ({name, description, icon, href}) => {
  const resolvedIcon = (() => {
    if (typeof icon !== "string" || !icon.startsWith("/") || icon.startsWith("//")) return icon;
    if (typeof window === "undefined") return icon;
    const base = "/docs";
    const under = window.location.pathname === base || window.location.pathname.startsWith(base + "/");
    return under && !icon.startsWith(base + "/") ? base + icon : icon;
  })();
  return <a href={href} className="group relative block rounded-xl border border-gray-200 dark:border-gray-800 bg-white dark:bg-black overflow-hidden hover:border-black dark:hover:border-white transition-all duration-200 p-6">
      {}
      <div className="flex items-center justify-center w-8 h-8 rounded-lg mb-4 transition-colors duration-200">
        {icon && <img src={resolvedIcon} alt={`${name} logo`} className="w-8 h-8 object-contain transition-all duration-200" />}
      </div>

      {}
      <div className="space-y-2">
        <h3 className="text-lg font-semibold text-black dark:text-white transition-colors">
          {name}
        </h3>
        <p className="text-sm text-gray-600 dark:text-gray-400 line-clamp-4">
          {description}
        </p>
      </div>

      {}
      <div className="absolute top-6 right-6 opacity-0 group-hover:opacity-100 transition-opacity duration-200">
        <svg className="w-4 h-4 text-black dark:text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
          <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 5l7 7-7 7" />
        </svg>
      </div>
    </a>;
};

export const HeroHeader = ({image, video, title, description}) => {
  return <div className="relative aspect-[2/1] h-[30vh] w-full rounded-lg overflow-hidden mb-8">
      {}
      {video && <video autoPlay muted loop playsInline className="absolute top-0 left-0 w-full h-full object-cover hidden md:block m-0" style={{
    zIndex: 1,
    objectPosition: "20% 20%"
  }}>
          <source src={video} type="video/webm" />
        </video>}

      {}
      <img src={image} alt="" className={`absolute top-0 left-0 m-0 w-full h-full object-cover ${video ? "md:hidden" : "block"}`} style={{
    zIndex: 1,
    objectPosition: "20% 20%"
  }} />

      {}
      <div className="absolute inset-0 bg-gradient-to-t from-black/70 via-black/30 to-black/10 flex flex-col justify-end p-8 dark:hidden" style={{
    zIndex: 2
  }}>
        <h1 className="text-4xl font-bold text-white m-0 drop-shadow-[0_2px_4px_rgba(0,0,0,0.5)]">
          {title}
        </h1>
        <p className="text-lg text-white/95 mt-2 drop-shadow-[0_1px_2px_rgba(0,0,0,0.5)]">
          {description}
        </p>
      </div>

      {}
      <div className="absolute inset-0 bg-gradient-to-t from-black/80 via-black/40 to-black/20 hidden dark:flex flex-col justify-end p-8" style={{
    zIndex: 2
  }}>
        <h1 className="text-4xl font-bold text-white m-0 drop-shadow-[0_2px_4px_rgba(0,0,0,0.5)]">
          {title}
        </h1>
        <p className="text-lg text-white/95 mt-2 drop-shadow-[0_1px_2px_rgba(0,0,0,0.5)]">
          {description}
        </p>
      </div>
    </div>;
};

<HeroHeader image="https://s.krea.ai/docs/krea-2-hero.webp" title="Krea 2" description="हमारा पहला फाउंडेशन इमेज मॉडल — पूर्ण रचनात्मक नियंत्रण के लिए शून्य से बनाया गया।" />

Krea 2 हमारा पहला फाउंडेशन इमेज मॉडल है, जो पूरी तरह से शून्य से ट्रेन किया गया है ताकि आप अपनी जनरेट की गई हर इमेज के लुक, फील और रचनात्मक दिशा पर पूर्ण नियंत्रण प्राप्त कर सकें।

**यह क्या अलग बनाता है:**

* **सौंदर्यपरक विविधता** — Krea 2 शैलियों की एक विस्तृत श्रृंखला उत्पन्न कर सकता है, विशेष रूप से कलात्मक और अभिव्यंजक दिशाओं में मजबूत है जहाँ अन्य मॉडल अक्सर सपाट हो जाते हैं।
* **Style transfer** — उपलब्ध सबसे उन्नत style transfer सिस्टम। एक या कई reference images की शैली निकालें और इसे सटीकता के साथ अपने आउटपुट्स पर लागू करें।
* **ट्यून करने योग्य रचनात्मकता** — `creativity` एक वास्तविक पैरामीटर है जिसे आप समायोजित कर सकते हैं। उच्च मानों पर, मॉडल आपके द्वारा दी गई किसी भी चीज़ में सौंदर्यपरक गहराई, व्याख्या और दृश्य समृद्धि जोड़ता है।
* **Moodboards** — दर्जनों इमेजेज़ का पूरा moodboard पास करें और Krea 2 समग्र रचनात्मक दिशा को समझेगा, ऐसे आउटपुट्स तैयार करेगा जो इसके अनुरूप हों।

<a href="https://www.krea.ai/k2-feed" target="_blank" rel="noopener noreferrer" className="not-prose group flex items-center justify-between gap-4 my-8 rounded-xl !bg-black !text-white dark:!bg-white dark:!text-black hover:opacity-90 transition-opacity px-5 py-4">
  <div className="flex-1">
    <div className="text-base font-semibold">गैलरी देखें</div>
    <div className="text-sm opacity-80">सैकड़ों Krea 2 आउटपुट्स उनके prompts के साथ।</div>
  </div>

  <svg className="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
    <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M14 5l7 7m0 0l-7 7m7-7H3" />
  </svg>
</a>

## वेरिएंट चुनें

Krea 2 API दो वेरिएंट्स में आता है। दोनों एक ही सार्वजनिक रिक्वेस्ट आकार का समर्थन करते हैं — अंतर गति, मॉडल आकार, ट्रेनिंग चरण और उनके द्वारा उत्पन्न आउटपुट्स के चरित्र पर निर्भर करते हैं।

<CardGroup cols={1}>
  <Card title="Krea 2 Medium" icon="bolt">
    छोटा, तेज़, अधिक लागत-कुशल। व्यापक पोस्ट-ट्रेनिंग आउटपुट्स को विशेष रूप से स्थिर और जनरेशनों में सुसंगत बनाती है।

    **सबसे मजबूत:** illustration, anime, painting, और अन्य अभिव्यंजक या कलात्मक शैलियाँ।
  </Card>

  <Card title="Krea 2 Large" icon="layer-group">
    Medium के 2× से अधिक आकार, हल्की पोस्ट-ट्रेनिंग के साथ। आउटपुट्स अधिक कच्चे, अधिक textured और अधिक लचीले हैं — अपने सबसे अच्छे रूप में, Large ऐसे परिणाम तैयार करता है जिनकी बराबरी Medium नहीं कर सकता।

    **सबसे मजबूत:** photorealism, raw लुक्स (motion blur, grain, low dynamic range), अभिव्यंजक और कलात्मक शैलियाँ।
  </Card>
</CardGroup>

<Tip>
  **कौन सा शुरू करें, यह सुनिश्चित नहीं है?** स्थिर सामान्य-उद्देश्य आउटपुट के लिए Medium का उपयोग करें, और जब आप सबसे समृद्ध texture या photorealism चाहते हैं तो Large का।
</Tip>

## मूल्य निर्धारण

| वेरिएंट    | Text-to-image | Style references के साथ | Moodboards के साथ |
| ---------- | ------------- | ----------------------- | ----------------- |
| **Medium** | \$0.030       | \$0.035                 | \$0.040           |
| **Large**  | \$0.060       | \$0.065                 | \$0.070           |

<Note>
  Moodboards को style references **के साथ** मिलाने से प्रति जनरेशन कीमत नहीं बढ़ती — आप moodboard दर का भुगतान करते हैं (\$0.040 Medium / \$0.070 Large)।
</Note>

## एंडपॉइंट्स

| वेरिएंट    | एंडपॉइंट                                  |
| ---------- | ----------------------------------------- |
| **Medium** | `POST /generate/image/krea/krea-2/medium` |
| **Large**  | `POST /generate/image/krea/krea-2/large`  |

## क्विकस्टार्ट

एक जनरेशन रिक्वेस्ट सबमिट करें और परिणाम के लिए पोल करें। सभी अनुरोधों के लिए Bearer token आवश्यक है — यदि आपके पास अभी तक नहीं है तो [API Keys & Billing](/developers/api-keys-and-billing) देखें।

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

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

  const result = await krea.subscribe("image/krea/krea-2/medium", {
    input: {
      prompt: "a cinematic glass cabin beside a frozen lake at sunrise",
      aspect_ratio: "16:9",
      resolution: "1K",
    },
  });

  // https://gen.krea.ai/images/80ead844-02a6-467d-ba9e-fcd401bcb9a6.png
  console.log(result.data?.urls[0]);
  ```

  ```bash cURL theme={null}
  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 cinematic product photo of a glass lamp on a marble table",
      "aspect_ratio": "4:5",
      "resolution": "1K",
      "creativity": "medium"
    }'

  # Then poll the returned job_id
  curl https://api.krea.ai/jobs/<job_id> \
    -H "Authorization: Bearer $KREA_API_TOKEN"
  ```

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

  API_BASE = "https://api.krea.ai"
  API_TOKEN = os.environ["KREA_API_TOKEN"]

  def wait_for_job(job_id):
      while True:
          response = requests.get(
              f"{API_BASE}/jobs/{job_id}",
              headers={"Authorization": f"Bearer {API_TOKEN}"},
          )
          response.raise_for_status()
          job = response.json()
          if job["status"] == "completed":
              return job
          if job["status"] in ("failed", "cancelled"):
              raise RuntimeError(f"Job {job['status']}")
          time.sleep(3)

  response = requests.post(
      f"{API_BASE}/generate/image/krea/krea-2/medium",
      headers={
          "Authorization": f"Bearer {API_TOKEN}",
          "Content-Type": "application/json",
      },
      json={
          "prompt": "A cinematic product photo of a glass lamp on a marble table",
          "aspect_ratio": "4:5",
          "resolution": "1K",
          "creativity": "medium",
      },
  )
  response.raise_for_status()
  job = wait_for_job(response.json()["job_id"])
  print(job["result"]["urls"])
  ```

  ```go Go theme={null}
  package main

  import (
  	"bytes"
  	"encoding/json"
  	"fmt"
  	"net/http"
  	"os"
  	"time"
  )

  const apiBase = "https://api.krea.ai"

  func waitForJob(client *http.Client, jobID, token string) (map[string]any, error) {
  	for {
  		req, _ := http.NewRequest("GET", fmt.Sprintf("%s/jobs/%s", apiBase, jobID), nil)
  		req.Header.Set("Authorization", "Bearer "+token)
  		resp, err := client.Do(req)
  		if err != nil {
  			return nil, err
  		}
  		var job map[string]any
  		json.NewDecoder(resp.Body).Decode(&job)
  		resp.Body.Close()
  		switch job["status"] {
  		case "completed":
  			return job, nil
  		case "failed", "cancelled":
  			return nil, fmt.Errorf("job %s", job["status"])
  		}
  		time.Sleep(3 * time.Second)
  	}
  }

  func main() {
  	token := os.Getenv("KREA_API_TOKEN")
  	client := &http.Client{}

  	payload, _ := json.Marshal(map[string]any{
  		"prompt":       "A cinematic product photo of a glass lamp on a marble table",
  		"aspect_ratio": "4:5",
  		"resolution":   "1K",
  		"creativity":   "medium",
  	})

  	req, _ := http.NewRequest("POST", apiBase+"/generate/image/krea/krea-2/medium", bytes.NewBuffer(payload))
  	req.Header.Set("Authorization", "Bearer "+token)
  	req.Header.Set("Content-Type", "application/json")

  	resp, _ := client.Do(req)
  	var created map[string]any
  	json.NewDecoder(resp.Body).Decode(&created)
  	resp.Body.Close()

  	job, err := waitForJob(client, created["job_id"].(string), token)
  	if err != nil {
  		panic(err)
  	}
  	fmt.Println(job["result"])
  }
  ```
</CodeGroup>

<Tip>
  Krea 2 Large जनरेशनों को पूरा होने में अधिक समय लग सकता है, इसलिए प्रोडक्शन वर्कलोड के लिए पोलिंग के बजाय [`X-Webhook-URL`](/developers/webhooks) हेडर को प्राथमिकता दें।
</Tip>

## पैरामीटर

`krea-2/medium` और `krea-2/large` एक ही सार्वजनिक रिक्वेस्ट बॉडी स्वीकार करते हैं।

| फ़ील्ड                   | प्रकार  | टिप्पणियाँ                                                                                                  |
| ------------------------ | ------- | ----------------------------------------------------------------------------------------------------------- |
| `prompt`                 | string  | **आवश्यक।** इमेज का वर्णन करने वाला टेक्स्ट prompt।                                                         |
| `aspect_ratio`           | string  | इनमें से एक: `1:1`, `4:3`, `3:2`, `16:9`, `2.35:1`, `4:5`, `2:3`, `9:16`।                                   |
| `resolution`             | string  | वर्तमान में केवल `1K` समर्थित है।                                                                           |
| `seed`                   | number  | वैकल्पिक। जनरेशन को पुनः उत्पन्न करने के लिए समान seed + prompt का उपयोग करें।                              |
| `creativity`             | enum    | `raw`, `low`, `medium` (डिफ़ॉल्ट), `high`। नीचे देखें।                                                      |
| `image_style_references` | array   | वैकल्पिक। देखें [Style transfer](/developers/krea-2/style-transfer)।                                        |
| `moodboards`             | array   | वैकल्पिक। देखें [Moodboards](/developers/krea-2/moodboards)। प्रति रिक्वेस्ट अधिकतम 1 moodboard।            |
| `styles`                 | array   | वैकल्पिक ट्रेन की गई शैलियाँ (LoRAs)।                                                                       |
| `intensity`              | integer | वैकल्पिक। `-100` से `100`, डिफ़ॉल्ट `0`। देखें [Generative sliders](/developers/krea-2/generative-sliders)। |
| `complexity`             | integer | वैकल्पिक। `-100` से `100`, डिफ़ॉल्ट `0`। देखें [Generative sliders](/developers/krea-2/generative-sliders)। |
| `movement`               | integer | वैकल्पिक। `-100` से `100`, डिफ़ॉल्ट `0`। देखें [Generative sliders](/developers/krea-2/generative-sliders)। |

<h3 id="creativity">
  Creativity
</h3>

`creativity` यह नियंत्रित करता है कि मॉडल आपने जो लिखा है उस पर कितना विस्तार करता है। जब आपका prompt छोटा या अस्पष्ट होता है, तो मॉडल लापता हिस्सों को भरता है — शैली, कंपोज़िशन, कैमरा एंगल, रंग पैलेट — और `creativity` तय करता है कि वह कितनी छूट लेता है।

<AccordionGroup>
  <Accordion title="raw — कोई विस्तार नहीं">
    मॉडल केवल वही रेंडर करता है जो आपने स्पष्ट रूप से वर्णित किया है। कसकर आर्ट-निर्देशित prompts के लिए सर्वश्रेष्ठ जहाँ हर विवरण पहले से ही निर्दिष्ट है।
  </Accordion>

  <Accordion title="low — prompt के करीब">
    न्यूनतम विस्तार। मॉडल शाब्दिक prompt के करीब रहता है लेकिन स्पष्ट अंतराल भरता है।
  </Accordion>

  <Accordion title="medium — संतुलित (डिफ़ॉल्ट)">
    डिफ़ॉल्ट व्यवहार। मॉडल prompt के इरादे से दूर भटके बिना उचित व्याख्या जोड़ता है।
  </Accordion>

  <Accordion title="high — अभिव्यंजक व्याख्या">
    मजबूत विस्तार। मॉडल शैली, मूड और सौंदर्यशास्त्र के साथ सार्थक रचनात्मक छूट लेता है — छोटे या खुले prompts के लिए सर्वश्रेष्ठ जहाँ आप चाहते हैं कि मॉडल आपको आश्चर्यचकित करे।
  </Accordion>
</AccordionGroup>

## फ़ीचर डीप-डाइव्स

<CardGroup cols={2}>
  <Card title="Style transfer" icon="palette" href="/developers/krea-2/style-transfer">
    एक या कई reference images की शैली निकालें और इसे ट्यून करने योग्य ताकत के साथ अपने आउटपुट्स पर लागू करें।
  </Card>

  <Card title="Moodboards" icon="grid-2" href="/developers/krea-2/moodboards">
    समग्र दृश्य दिशा सेट करने के लिए Krea moodboard को संदर्भित करें — पैलेट, texture, मूड और कंपोज़िशन।
  </Card>

  <Card title="जेनरेटिव स्लाइडर्स" icon="sliders" href="/developers/krea-2/generative-sliders">
    अपने prompt को फिर से लिखे बिना हर जनरेशन की intensity, complexity, और movement को नियंत्रित करें।
  </Card>
</CardGroup>

## Open source

Krea 2 एक open-source रिलीज़ के रूप में भी उपलब्ध है यदि आप hosted API को कॉल करने के बजाय (या साथ-साथ) मॉडल को self-host या fine-tune करना पसंद करते हैं। Hugging Face पर दो checkpoints प्रकाशित किए गए हैं:

* **Krea 2 RAW** — undistilled बेस checkpoint। विविध और लचीला, fine-tuning, post-training, और LoRA training के लिए बनाया गया।
* **Krea 2 Turbo** — तेज़ text-to-image inference के लिए बनाया गया एक 8-step distilled checkpoint। RAW पर train किए गए LoRAs को Turbo पर सहजता से लागू होने के लिए डिज़ाइन किया गया है।

| संसाधन                      | लिंक                                                                 |
| --------------------------- | -------------------------------------------------------------------- |
| Hugging Face पर checkpoints | [huggingface.co/krea/Krea-2-Raw](https://krea.ai/krea-2/huggingface) |
| GitHub पर मॉडल कोड          | [github.com/krea-ai/krea-2](https://krea.ai/krea-2/github)           |
| तकनीकी रिपोर्ट              | [Krea 2 तकनीकी रिपोर्ट](https://krea.ai/krea-2/technical-report)     |

### लाइसेंसिंग

Open-source रिलीज़ दो लाइसेंस ट्रैक्स के तहत आती है:

* **[Community License](https://krea.ai/krea-2-licensing)** — शोध, व्यक्तिगत, और गैर-व्यावसायिक प्रोजेक्ट्स के लिए निःशुल्क, गैर-अनन्य उपयोग, साथ ही एक राजस्व सीमा के भीतर व्यावसायिक उपयोग। [Acceptable Use Policy](https://krea.ai/krea-2-use-policy) के अधीन।
* **[Commercial License](https://krea.ai/krea-2-commercial-license)** — व्यावसायिक उपयोग के लिए enterprise शर्तें जो Community License की राजस्व सीमा से अधिक हो। संपर्क: `opensource@krea.ai`।

<Note>
  इस पेज पर प्रलेखित hosted Krea 2 API मानक [API शर्तों](/developers/api-keys-and-billing) के अधीन है — `krea-2/medium` या `krea-2/large` को कॉल करने के लिए आपको open-source लाइसेंस स्वीकार करने की आवश्यकता नहीं है।
</Note>

## API रेफरेंस

<div className="grid grid-cols-1 md:grid-cols-2 gap-4 hidden dark:grid">
  <ModelOverviewCard name="Krea 2 Medium" href="/api-reference/krea/krea-2-medium" icon="/images/logo/krea-logo-icon-dark.svg" description="तेज़, सस्ता, illustration, anime, और अभिव्यंजक शैलियों में स्थिर।" />

  <ModelOverviewCard name="Krea 2 Large" href="/api-reference/krea/krea-2-large" icon="/images/logo/krea-logo-icon-dark.svg" description="अधिक शक्तिशाली — photorealism, raw textures, और सबसे लचीले आउटपुट्स।" />
</div>

<div className="grid grid-cols-1 md:grid-cols-2 gap-4 block dark:hidden">
  <ModelOverviewCard name="Krea 2 Medium" href="/api-reference/krea/krea-2-medium" icon="/images/logo/krea-logo-icon-light.svg" description="तेज़, सस्ता, illustration, anime, और अभिव्यंजक शैलियों में स्थिर।" />

  <ModelOverviewCard name="Krea 2 Large" href="/api-reference/krea/krea-2-large" icon="/images/logo/krea-logo-icon-light.svg" description="अधिक शक्तिशाली — photorealism, raw textures, और सबसे लचीले आउटपुट्स।" />
</div>
