Meldport
krea · Image

Krea 2 Raw

Image model · Available upstream

Base 12B Krea 2 checkpoint for finetuning, post-training, and open-weight text-to-image workflows

Generation is available through the published Meldport configurations below. Review the exact quote before submitting.

Model ID
krea-2-raw
Released
Jun 22, 2026
Billing unit
Generated output

Meldport generation prices

Krea 2 Raw

API configuration ID53691349-3e2c-470d-8fe3-1b98efbaeaf6

text to image

GenerationMeldport $0.018/ generation

1 output

API request and parameters

Use images:generate on your API key. This configuration runs text to image and returns image/jpeg.

This configuration does not require an uploaded image. Choose a different configuration ID to change the workflow or output settings. Send only options listed below.

These output settings are included in this configuration. Select another configuration ID to change them. Do not add them to options.

generation_parametersJSON
{
  "width": 1024,
  "height": 1024
}

This configuration has no additional request options.

Replace the prompt and set a unique MELDPORT_IDEMPOTENCY_KEY for this operation. The example quotes the request and then creates one paid job. Read the billing rules before accepting variable charges.

generate.mjsJavaScript
const api = "https://api.meldport.com";
const key = process.env.MELDPORT_API_KEY;
const idempotencyKey = process.env.MELDPORT_IDEMPOTENCY_KEY;
if (!key || !idempotencyKey) throw new Error("Set your API key and a unique operation ID first.");

async function post(path, body) {
  const response = await fetch(api + path, {method: "POST",
    headers: {Authorization: `Bearer ${key}`, "Content-Type": "application/json"},
    body: JSON.stringify(body)});
  const result = await response.json();
  if (!response.ok) throw new Error(JSON.stringify(result.error));
  return result;
}

const request = {
  "configuration_id": "53691349-3e2c-470d-8fe3-1b98efbaeaf6",
  "prompt": "Replace with your prompt or speech script.",
  "options": {},
  "input_asset_ids": []
};
const {data: quote} = await post("/v1/media/quotes", request);
console.log("Quote:", quote);
const result = await post("/v1/media/jobs", {
  ...request, idempotency_key: idempotencyKey,
  accepted_customer_price_microusd: quote.customer_price_microusd,
  accepted_maximum_reservation_microusd: quote.maximum_reservation_microusd,
  ...(quote.billing_policy_version === "actual-cost-v1"
    ? {billing_policy_version: "actual-cost-v1"} : {}),
});
console.log(result.job);
// Poll GET /v1/media/jobs/<job.id> with the same API key.
// Keep this operation ID for retries. A new ID requests another generation.

Poll the returned job ID. Download only after state is succeeded and billing_state is settled. Polling and download example.

Krea 2 Raw

API configuration ID4998df0f-6811-4362-97dd-36c88c643b32

image to image

GenerationMeldport $0.018/ generation

1 output

API request and parameters

Use images:generate on your API key. This configuration runs image to image and returns image/jpeg.

Upload an image using the same API key, then replace YOUR_UPLOADED_ASSET_ID. Input upload example. Choose a different configuration ID to change the workflow or output settings. Send only options listed below.

These output settings are included in this configuration. Select another configuration ID to change them. Do not add them to options.

generation_parametersJSON
{
  "width": 2048,
  "height": 2048
}

This configuration has no additional request options.

Replace the prompt and set a unique MELDPORT_IDEMPOTENCY_KEY for this operation. The example quotes the request and then creates one paid job. Read the billing rules before accepting variable charges.

generate.mjsJavaScript
const api = "https://api.meldport.com";
const key = process.env.MELDPORT_API_KEY;
const idempotencyKey = process.env.MELDPORT_IDEMPOTENCY_KEY;
if (!key || !idempotencyKey) throw new Error("Set your API key and a unique operation ID first.");

async function post(path, body) {
  const response = await fetch(api + path, {method: "POST",
    headers: {Authorization: `Bearer ${key}`, "Content-Type": "application/json"},
    body: JSON.stringify(body)});
  const result = await response.json();
  if (!response.ok) throw new Error(JSON.stringify(result.error));
  return result;
}

const request = {
  "configuration_id": "4998df0f-6811-4362-97dd-36c88c643b32",
  "prompt": "Replace with your prompt or speech script.",
  "options": {},
  "input_asset_ids": [
    "YOUR_UPLOADED_ASSET_ID"
  ]
};
const {data: quote} = await post("/v1/media/quotes", request);
console.log("Quote:", quote);
const result = await post("/v1/media/jobs", {
  ...request, idempotency_key: idempotencyKey,
  accepted_customer_price_microusd: quote.customer_price_microusd,
  accepted_maximum_reservation_microusd: quote.maximum_reservation_microusd,
  ...(quote.billing_policy_version === "actual-cost-v1"
    ? {billing_policy_version: "actual-cost-v1"} : {}),
});
console.log(result.job);
// Poll GET /v1/media/jobs/<job.id> with the same API key.
// Keep this operation ID for retries. A new ID requests another generation.

Poll the returned job ID. Download only after state is succeeded and billing_state is settled. Polling and download example.

Krea 2 Raw

API configuration ID46cf26d7-8199-482b-8527-2b700e3f04dd

text to image

GenerationMeldport $0.018/ generation

1 output

API request and parameters

Use images:generate on your API key. This configuration runs text to image and returns image/jpeg.

This configuration does not require an uploaded image. Choose a different configuration ID to change the workflow or output settings. Send only options listed below.

These output settings are included in this configuration. Select another configuration ID to change them. Do not add them to options.

generation_parametersJSON
{
  "width": 2048,
  "height": 2048
}

This configuration has no additional request options.

Replace the prompt and set a unique MELDPORT_IDEMPOTENCY_KEY for this operation. The example quotes the request and then creates one paid job. Read the billing rules before accepting variable charges.

generate.mjsJavaScript
const api = "https://api.meldport.com";
const key = process.env.MELDPORT_API_KEY;
const idempotencyKey = process.env.MELDPORT_IDEMPOTENCY_KEY;
if (!key || !idempotencyKey) throw new Error("Set your API key and a unique operation ID first.");

async function post(path, body) {
  const response = await fetch(api + path, {method: "POST",
    headers: {Authorization: `Bearer ${key}`, "Content-Type": "application/json"},
    body: JSON.stringify(body)});
  const result = await response.json();
  if (!response.ok) throw new Error(JSON.stringify(result.error));
  return result;
}

const request = {
  "configuration_id": "46cf26d7-8199-482b-8527-2b700e3f04dd",
  "prompt": "Replace with your prompt or speech script.",
  "options": {},
  "input_asset_ids": []
};
const {data: quote} = await post("/v1/media/quotes", request);
console.log("Quote:", quote);
const result = await post("/v1/media/jobs", {
  ...request, idempotency_key: idempotencyKey,
  accepted_customer_price_microusd: quote.customer_price_microusd,
  accepted_maximum_reservation_microusd: quote.maximum_reservation_microusd,
  ...(quote.billing_policy_version === "actual-cost-v1"
    ? {billing_policy_version: "actual-cost-v1"} : {}),
});
console.log(result.job);
// Poll GET /v1/media/jobs/<job.id> with the same API key.
// Keep this operation ID for retries. A new ID requests another generation.

Poll the returned job ID. Download only after state is succeeded and billing_state is settled. Polling and download example.

Krea 2 Raw

API configuration IDdd5700aa-94e9-4d32-a19d-b56626493adb

text to image

GenerationMeldport $0.018/ generation

1 output

API request and parameters

Use images:generate on your API key. This configuration runs text to image and returns image/jpeg.

This configuration does not require an uploaded image. Choose a different configuration ID to change the workflow or output settings. Send only options listed below.

These output settings are included in this configuration. Select another configuration ID to change them. Do not add them to options.

generation_parametersJSON
{
  "width": 512,
  "height": 512
}

This configuration has no additional request options.

Replace the prompt and set a unique MELDPORT_IDEMPOTENCY_KEY for this operation. The example quotes the request and then creates one paid job. Read the billing rules before accepting variable charges.

generate.mjsJavaScript
const api = "https://api.meldport.com";
const key = process.env.MELDPORT_API_KEY;
const idempotencyKey = process.env.MELDPORT_IDEMPOTENCY_KEY;
if (!key || !idempotencyKey) throw new Error("Set your API key and a unique operation ID first.");

async function post(path, body) {
  const response = await fetch(api + path, {method: "POST",
    headers: {Authorization: `Bearer ${key}`, "Content-Type": "application/json"},
    body: JSON.stringify(body)});
  const result = await response.json();
  if (!response.ok) throw new Error(JSON.stringify(result.error));
  return result;
}

const request = {
  "configuration_id": "dd5700aa-94e9-4d32-a19d-b56626493adb",
  "prompt": "Replace with your prompt or speech script.",
  "options": {},
  "input_asset_ids": []
};
const {data: quote} = await post("/v1/media/quotes", request);
console.log("Quote:", quote);
const result = await post("/v1/media/jobs", {
  ...request, idempotency_key: idempotencyKey,
  accepted_customer_price_microusd: quote.customer_price_microusd,
  accepted_maximum_reservation_microusd: quote.maximum_reservation_microusd,
  ...(quote.billing_policy_version === "actual-cost-v1"
    ? {billing_policy_version: "actual-cost-v1"} : {}),
});
console.log(result.job);
// Poll GET /v1/media/jobs/<job.id> with the same API key.
// Keep this operation ID for retries. A new ID requests another generation.

Poll the returned job ID. Download only after state is succeeded and billing_state is settled. Polling and download example.

Krea 2 Raw

API configuration IDae671a6e-7f07-4518-a263-8701b091514b

image to image

GenerationMeldport $0.018/ generation

1 output

API request and parameters

Use images:generate on your API key. This configuration runs image to image and returns image/jpeg.

Upload an image using the same API key, then replace YOUR_UPLOADED_ASSET_ID. Input upload example. Choose a different configuration ID to change the workflow or output settings. Send only options listed below.

These output settings are included in this configuration. Select another configuration ID to change them. Do not add them to options.

generation_parametersJSON
{
  "width": 512,
  "height": 512
}

This configuration has no additional request options.

Replace the prompt and set a unique MELDPORT_IDEMPOTENCY_KEY for this operation. The example quotes the request and then creates one paid job. Read the billing rules before accepting variable charges.

generate.mjsJavaScript
const api = "https://api.meldport.com";
const key = process.env.MELDPORT_API_KEY;
const idempotencyKey = process.env.MELDPORT_IDEMPOTENCY_KEY;
if (!key || !idempotencyKey) throw new Error("Set your API key and a unique operation ID first.");

async function post(path, body) {
  const response = await fetch(api + path, {method: "POST",
    headers: {Authorization: `Bearer ${key}`, "Content-Type": "application/json"},
    body: JSON.stringify(body)});
  const result = await response.json();
  if (!response.ok) throw new Error(JSON.stringify(result.error));
  return result;
}

const request = {
  "configuration_id": "ae671a6e-7f07-4518-a263-8701b091514b",
  "prompt": "Replace with your prompt or speech script.",
  "options": {},
  "input_asset_ids": [
    "YOUR_UPLOADED_ASSET_ID"
  ]
};
const {data: quote} = await post("/v1/media/quotes", request);
console.log("Quote:", quote);
const result = await post("/v1/media/jobs", {
  ...request, idempotency_key: idempotencyKey,
  accepted_customer_price_microusd: quote.customer_price_microusd,
  accepted_maximum_reservation_microusd: quote.maximum_reservation_microusd,
  ...(quote.billing_policy_version === "actual-cost-v1"
    ? {billing_policy_version: "actual-cost-v1"} : {}),
});
console.log(result.job);
// Poll GET /v1/media/jobs/<job.id> with the same API key.
// Keep this operation ID for retries. A new ID requests another generation.

Poll the returned job ID. Download only after state is succeeded and billing_state is settled. Polling and download example.

Krea 2 Raw

API configuration ID88fbe5b5-46ce-464c-b64e-7f70dca98190

image to image

GenerationMeldport $0.018/ generation

1 output

API request and parameters

Use images:generate on your API key. This configuration runs image to image and returns image/jpeg.

Upload an image using the same API key, then replace YOUR_UPLOADED_ASSET_ID. Input upload example. Choose a different configuration ID to change the workflow or output settings. Send only options listed below.

These output settings are included in this configuration. Select another configuration ID to change them. Do not add them to options.

generation_parametersJSON
{
  "width": 1024,
  "height": 1024
}

This configuration has no additional request options.

Replace the prompt and set a unique MELDPORT_IDEMPOTENCY_KEY for this operation. The example quotes the request and then creates one paid job. Read the billing rules before accepting variable charges.

generate.mjsJavaScript
const api = "https://api.meldport.com";
const key = process.env.MELDPORT_API_KEY;
const idempotencyKey = process.env.MELDPORT_IDEMPOTENCY_KEY;
if (!key || !idempotencyKey) throw new Error("Set your API key and a unique operation ID first.");

async function post(path, body) {
  const response = await fetch(api + path, {method: "POST",
    headers: {Authorization: `Bearer ${key}`, "Content-Type": "application/json"},
    body: JSON.stringify(body)});
  const result = await response.json();
  if (!response.ok) throw new Error(JSON.stringify(result.error));
  return result;
}

const request = {
  "configuration_id": "88fbe5b5-46ce-464c-b64e-7f70dca98190",
  "prompt": "Replace with your prompt or speech script.",
  "options": {},
  "input_asset_ids": [
    "YOUR_UPLOADED_ASSET_ID"
  ]
};
const {data: quote} = await post("/v1/media/quotes", request);
console.log("Quote:", quote);
const result = await post("/v1/media/jobs", {
  ...request, idempotency_key: idempotencyKey,
  accepted_customer_price_microusd: quote.customer_price_microusd,
  accepted_maximum_reservation_microusd: quote.maximum_reservation_microusd,
  ...(quote.billing_policy_version === "actual-cost-v1"
    ? {billing_policy_version: "actual-cost-v1"} : {}),
});
console.log(result.job);
// Poll GET /v1/media/jobs/<job.id> with the same API key.
// Keep this operation ID for retries. A new ID requests another generation.

Poll the returned job ID. Download only after state is succeeded and billing_state is settled. Polling and download example.

About this model

Krea 2 Raw is the base release checkpoint in the Krea 2 model family, published as an open-weight 12B text-to-image model before the additional post-training and distillation used for Krea 2 Turbo. Krea describes it as a better fit for finetuning, post-training, and custom domain work than for general inference, making it especially relevant for LoRA training and other open-model customization workflows.

  • text to image
  • image to image
  • checkpoint