> ## 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 参考：了解 Medium 与 Large 两个变体的区别、定价、端点和快速开始，以及风格参考、情绪板与生成滑杆等创作控制。

![](https://s.krea.ai/docs/krea-2-hero.webp)

# Krea 2

我们的首个图像基础模型——从零构建，赋予你完整的创作掌控力。

# Krea 2

我们的首个图像基础模型——从零构建，赋予你完整的创作掌控力。

Krea 2 是我们的首个图像基础模型，完全从零开始训练，让你对所生成的每一张图像的外观、质感与创作方向拥有完全的掌控。

> [!NOTE]
>
> [Krea 3](https://www.krea.ai/docs/developers/krea-3/overview.md) 是我们最新的图像模型，适用于快速生成和遵循指令的编辑。若需使用加权风格参考、情绪板、LoRA 和生成滑杆，请继续使用 Krea 2；这些控制与 Krea 3 图像参考不可互换。

**它的独特之处：**

* **美学多样性** — Krea 2 能生成种类繁多的风格，尤其擅长其他模型往往会"压平"的艺术与表现性方向。
* **风格迁移** — 市面上最先进的风格迁移系统。从一张或多张参考图像中提取风格，并精准地应用到你的输出上。
* **可调节的创造力** — `creativity` 是一个可调参数。在高值下，模型会为你给出的任何内容加入美学深度、解读与视觉丰富度。
* **情绪板** — 传入包含数十张图像的完整情绪板，Krea 2 将理解其整体创作方向，并生成与之契合的输出。

[浏览画廊数百个 Krea 2 输出及其提示词。](https://www.krea.ai/k2-feed)

## 选择一个变体

Krea 2 API 提供两个变体。两者支持相同的公开请求结构——差异主要体现在速度、模型规模、训练阶段以及输出的特征上。

> [card] Krea 2 Medium
>
> 更小、更快、更具成本效益。大量的后训练让输出在多次生成之间格外稳定和一致。
>
> **最擅长：** 插画、动漫、绘画以及其他富有表现力或艺术性的风格。

> [card] Krea 2 Large
>
> 规模超过 Medium 的 2 倍，后训练更轻。输出更原始、更具质感、更灵活——在最佳状态下，Large 能产出 Medium 无法匹敌的结果。
>
> **最擅长：** 写实摄影、原始质感（运动模糊、颗粒、低动态范围）、富有表现力的艺术风格。

> [!TIP]
>
> **不确定该从哪个开始？** 一般用途的稳定输出请使用 Medium；当你想要最丰富的质感或写实效果时，请使用 Large。

## 定价

| 变体 | 文生图 | 含风格参考 | 含情绪板 |
| - | - | - | - |
| **Medium** | \$0.030 | \$0.035 | \$0.040 |
| **Large** | \$0.060 | \$0.065 | \$0.070 |

> [!NOTE]
>
> 将情绪板**与**风格参考组合使用不会增加单次生成的价格——你按情绪板费率付费（Medium \$0.040 / Large \$0.070）。

## 端点

| 变体 | 端点 |
| - | - |
| **Medium** | `POST /generate/image/krea/krea-2/medium` |
| **Large** | `POST /generate/image/krea/krea-2/large` |

## 快速开始

提交一次生成请求并轮询结果。所有请求都需要 Bearer token——如果你还没有，请参见 [API Keys 与计费](https://www.krea.ai/docs/developers/api-keys-and-billing.md)。

```javascript Node.js theme={"theme":{"light":"github-light-default","dark":"vesper"}}
// 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={"theme":{"light":"github-light-default","dark":"vesper"}}
curl -X POST https://api.krea.ai/generate/image/krea/krea-2/medium \
  -H "Authorization: Bearer $KREA_API_KEY" \
  -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_KEY"
```

```python Python theme={"theme":{"light":"github-light-default","dark":"vesper"}}
import os
import time
import requests

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

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={"theme":{"light":"github-light-default","dark":"vesper"}}
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_KEY")
	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"])
}
```

> [!TIP]
>
> Krea 2 Large 的生成可能耗时更长，因此对于生产工作负载，建议使用 [`X-Webhook-URL`](https://www.krea.ai/docs/developers/webhooks) 请求头而非轮询。

## 参数

`krea-2/medium` 与 `krea-2/large` 接受相同的公开请求体。

| 字段 | 类型 | 说明 |
| - | - | - |
| `prompt` | string | **必填。** 描述图像的文本提示词。 |
| `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 | 可选。参见[风格迁移](https://www.krea.ai/docs/developers/krea-2/style-transfer.md)。 |
| `moodboards` | array | 可选。参见[情绪板](https://www.krea.ai/docs/developers/krea-2/moodboards.md)。每次请求最多 1 个情绪板。 |
| `styles` | array | 可选的训练风格（LoRA）。 |
| `intensity` | integer | 可选。`-100` 到 `100`，默认 `0`。参见[生成滑杆](https://www.krea.ai/docs/developers/krea-2/generative-sliders.md)。 |
| `complexity` | integer | 可选。`-100` 到 `100`，默认 `0`。参见[生成滑杆](https://www.krea.ai/docs/developers/krea-2/generative-sliders.md)。 |
| `movement` | integer | 可选。`-100` 到 `100`，默认 `0`。参见[生成滑杆](https://www.krea.ai/docs/developers/krea-2/generative-sliders.md)。 |

### Creativity

`creativity` 控制模型在你所写内容之上扩展的程度。当提示词较短或较模糊时，模型会补齐缺失的部分——风格、构图、镜头角度、配色——而 `creativity` 决定它可以发挥的自由度。

> [accordion] raw — 不扩展
>
> 模型只渲染你明确描述过的内容。适合每个细节都已指定的、艺术指导严密的提示词。

> [accordion] low — 贴近提示词
>
> 扩展极少。模型紧贴字面提示词，仅填补明显的空缺。

> [accordion] medium — 平衡（默认）
>
> 默认行为。模型在不偏离提示词意图的前提下加入合理的解读。

> [accordion] high — 富有表现力的解读
>
> 强力扩展。模型会在风格、氛围与美学方面进行有意义的创意发挥——最适合简短或开放式的提示词，让模型给你带来惊喜。

## 功能深入

> [card] [风格迁移](https://www.krea.ai/docs/developers/krea-2/style-transfer.md)
>
> 从一张或多张参考图像中提取风格，并以可调强度应用到你的输出上。

> [card] [情绪板](https://www.krea.ai/docs/developers/krea-2/moodboards.md)
>
> 引用 Krea 情绪板以设定整体视觉方向——配色、质感、氛围与构图。

> [card] [生成滑杆](https://www.krea.ai/docs/developers/krea-2/generative-sliders.md)
>
> 无需重写提示词，即可调节每次生成的强度、复杂度与动感。

## 开源

如果你更愿意自托管或微调模型，而不是（或者除了）调用托管 API，Krea 2 也以开源形式发布。我们在 Hugging Face 上发布了两个 checkpoint：

* **Krea 2 RAW** — 未蒸馏的基础 checkpoint。多样且可塑性强，面向微调、后训练以及 LoRA 训练。
* **Krea 2 Turbo** — 一个 8 步蒸馏 checkpoint，面向快速文生图推理。在 RAW 上训练的 LoRA 设计为可以干净地应用到 Turbo 上。

| 资源 | 链接 |
| - | - |
| Hugging Face 上的 checkpoint | [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) |

### 许可

开源版本以两条许可证轨道发布：

* **[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)** — 面向超过 Community License 营收阈值的商业用途的企业级条款。请联系 `opensource@krea.ai`。

> [!NOTE]
>
> 本页所记录的托管 Krea 2 API 由标准 [API 条款](https://www.krea.ai/docs/developers/api-keys-and-billing.md) 管辖 — 调用 `krea-2/medium` 或 `krea-2/large` 不需要接受开源许可证。

## API 参考

Krea 2 Medium logo

### [Krea 2 Medium](https://www.krea.ai/docs/api-reference/krea/krea-2-medium.md)

更快、更便宜，在插画、动漫与表现性风格上表现稳定。

Krea 2 Large logo

### [Krea 2 Large](https://www.krea.ai/docs/api-reference/krea/krea-2-large.md)

更强——写实摄影、原始质感与最具灵活性的输出。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.