Seedance 2.5 Now Live | Try in Video Generator →

wavespeed-ai/

Jib Mix Qwen is a next-gen Text-to-Image model optimized for producing natural, pretty faces with improved Asian facial rendering. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

text-to-image
Input

Idle

An Impressionist oil painting of a woman sitting in a sun-dappled garden, holding a parasol, in the style of Claude Monet. Visible, broken brushstrokes. The focus is on the fleeting play of light and shadow on her white dress and the vibrant, dappled colors of the flowers. Soft focus, bright, airy atmosphere.

$0.02per run·~50 / $1

Next:

ExamplesView all

An Impressionist oil painting of a woman sitting in a sun-dappled garden, holding a parasol, in the style of Claude Monet. Visible, broken brushstrokes. The focus is on the fleeting play of light and shadow on her white dress and the vibrant, dappled colors of the flowers. Soft focus, bright, airy atmosphere.

An Impressionist oil painting of a woman sitting in a sun-dappled garden, holding a parasol, in the style of Claude Monet. Visible, broken brushstrokes. The focus is on the fleeting play of light and shadow on her white dress and the vibrant, dappled colors of the flowers. Soft focus, bright, airy atmosphere.

A surreal oil painting of a woman’s face emerging from a swirl of colors, expressive brushstrokes, high contrast lighting, inspired by Van Gogh and Klimt, artistic depth.

A surreal oil painting of a woman’s face emerging from a swirl of colors, expressive brushstrokes, high contrast lighting, inspired by Van Gogh and Klimt, artistic depth.

A beautiful anime girl sitting under cherry blossoms, soft glowing light, expressive eyes, delicate hair strands, cinematic composition, Makoto Shinkai style, pastel tones, high detail.

A beautiful anime girl sitting under cherry blossoms, soft glowing light, expressive eyes, delicate hair strands, cinematic composition, Makoto Shinkai style, pastel tones, high detail.

A highly detailed 3D character render, stylized realism. A young female adventurer with large, expressive teal eyes and freckles. Messy copper hair. Wearing worn leather armor. Soft, flattering studio lighting. Flawless skin shading (subsurface scattering). Trending on Artstation, Unreal Engine 5, ZBrush, Pixar style.

A highly detailed 3D character render, stylized realism. A young female adventurer with large, expressive teal eyes and freckles. Messy copper hair. Wearing worn leather armor. Soft, flattering studio lighting. Flawless skin shading (subsurface scattering). Trending on Artstation, Unreal Engine 5, ZBrush, Pixar style.

A highly detailed Steampunk portrait of a female airship captain. Wearing an ornate Victorian dress combined with a leather corset and utility belt. Intricate brass goggles pushed up on her tophat. A complex clockwork mechanical arm. Background of gears and steam pipes. Warm sepia tones, imaginative, complex machinery.

A highly detailed Steampunk portrait of a female airship captain. Wearing an ornate Victorian dress combined with a leather corset and utility belt. Intricate brass goggles pushed up on her tophat. A complex clockwork mechanical arm. Background of gears and steam pipes. Warm sepia tones, imaginative, complex machinery.

A 1940s black and white film noir portrait. A mysterious woman (femme fatale) wearing a stylish hat with a veil. Her face is half-hidden in deep shadow. Dramatic "Venetian blind" shadows fall across her face and the wall behind her. Smoking a cigarette, smoke curling in the air. High contrast, grainy film texture, mysterious, chiaroscuro lighting.

A 1940s black and white film noir portrait. A mysterious woman (femme fatale) wearing a stylish hat with a veil. Her face is half-hidden in deep shadow. Dramatic "Venetian blind" shadows fall across her face and the wall behind her. Smoking a cigarette, smoke curling in the air. High contrast, grainy film texture, mysterious, chiaroscuro lighting.

An ultra-realistic, gritty portrait of a cyberpunk hacker. Her face is illuminated by the glowing blue and pink neon signs of a futuristic city street at night. Rain-slicked trench coat, intricate cybernetic implants on her cheek, intense, focused eyes. High contrast, sharp focus, digital art, cinematic atmosphere, style of Blade Runner.

An ultra-realistic, gritty portrait of a cyberpunk hacker. Her face is illuminated by the glowing blue and pink neon signs of a futuristic city street at night. Rain-slicked trench coat, intricate cybernetic implants on her cheek, intense, focused eyes. High contrast, sharp focus, digital art, cinematic atmosphere, style of Blade Runner.

An ethereal watercolor portrait of a red-haired woman, eyes closed, face tilted up. Delicate green ivy and tiny mushrooms are woven into her braided hair. Soft, earthy pastels (moss green, terracotta), translucent washes, fine ink outlines. A peaceful, listening expression, as if hearing the forest. Isolated on a white background, whimsical Art Nouveau illustration.

An ethereal watercolor portrait of a red-haired woman, eyes closed, face tilted up. Delicate green ivy and tiny mushrooms are woven into her braided hair. Soft, earthy pastels (moss green, terracotta), translucent washes, fine ink outlines. A peaceful, listening expression, as if hearing the forest. Isolated on a white background, whimsical Art Nouveau illustration.

A minimalist single-line (one-line) drawing of a person's face in profile. The entire portrait is created with one continuous, flowing black line on a plain white background. Elegant, simple, clean. Captures the essence of the form with no shading. Style of a modern tattoo design or Matisse's line drawings.

A minimalist single-line (one-line) drawing of a person's face in profile. The entire portrait is created with one continuous, flowing black line on a plain white background. Elegant, simple, clean. Captures the essence of the form with no shading. Style of a modern tattoo design or Matisse's line drawings.

A Baroque-style oil painting portrait of a nobleman with a thoughtful expression. In the style of Caravaggio. Dramatic chiaroscuro, with a single light source illuminating him against a pitch-black background (Tenebrism). Rich texture in his velvet robes and intricate lace collar. Deep, rich colors, masterful brushstrokes, profound and theatrical.

A Baroque-style oil painting portrait of a nobleman with a thoughtful expression. In the style of Caravaggio. Dramatic chiaroscuro, with a single light source illuminating him against a pitch-black background (Tenebrism). Rich texture in his velvet robes and intricate lace collar. Deep, rich colors, masterful brushstrokes, profound and theatrical.

An Art Deco portrait of a glamorous 1920s woman. Sharp, geometric bob haircut. Wearing an extravagant, sequined dress and a pearl headpiece. Posing confidently against a background of stylized, metallic gold geometric patterns (like the Chrysler Building). Bold lines, lavish ornamentation, strong symmetry, sophisticated and modern.

An Art Deco portrait of a glamorous 1920s woman. Sharp, geometric bob haircut. Wearing an extravagant, sequined dress and a pearl headpiece. Posing confidently against a background of stylized, metallic gold geometric patterns (like the Chrysler Building). Bold lines, lavish ornamentation, strong symmetry, sophisticated and modern.

A delicate watercolor portrait of a young woman in profile, her long silver hair flowing and blending with wisps of translucent clouds. Soft moonlight illuminates her face, adorned with tiny, glowing crescent moon symbols. Soft pastel blues and lavenders, elegant flowing lines, a serene and mystical expression. Clean white background, in the Art Nouveau style of Alphonse Mucha.

A delicate watercolor portrait of a young woman in profile, her long silver hair flowing and blending with wisps of translucent clouds. Soft moonlight illuminates her face, adorned with tiny, glowing crescent moon symbols. Soft pastel blues and lavenders, elegant flowing lines, a serene and mystical expression. Clean white background, in the Art Nouveau style of Alphonse Mucha.

Related Models

README

Jib-Mix-Qwen-Image (Text-to-Image)

Jib-Mix-Qwen-Image is a finely tuned text-to-image generation model based on Qwen-Image 20B (MMDiT), optimized through the Jib-Mix portrait enhancement pipeline. It specializes in realistic human faces, cinematic lighting, and vivid artistic styles, delivering professional-grade visuals from simple text prompts — no LoRA setup needed.

Why it looks great

  • Jib-Mix fine-tuning – Enhances facial structure, skin texture, and lighting realism, especially for close-ups and half-body portraits.
  • Cinematic diffusion engine – Captures lifelike depth, atmosphere, and tone with consistent color harmony.
  • Exceptional text rendering – Handles both Chinese and English typography natively, blending text naturally into the image.
  • Broad style coverage – From photorealism to anime, oil painting, 3D, or stylized artwork—one model, infinite versatility.
  • Identity consistency – Generates characters with coherent facial details and stable expressions across prompts.

Limits and Performance

  • Max resolution per job: up to 1536 × 1536 pixels
  • Output formats: JPEG / PNG / WEBP
  • Processing speed: ~5–8 seconds per image (depending on prompt complexity)
  • Prompt input: supports detailed, multi-line bilingual descriptions

Pricing

  • $0.02 per image Each image is billed individually.

How to Use

  1. Enter a prompt describing your desired image (Chinese or English).
  2. Set image size (width × height, up to 1536×1536).
  3. (Optional) Set a seed for reproducibility (-1 = random).
  4. Choose output format (JPEG / PNG / WEBP).
  5. Generate → preview → iterate with refined prompts.

Pro tips for best quality

  • Be specific — describe lighting, pose, emotion, and background for more control.
  • For portraits, include keywords like cinematic lighting, soft focus, 8K detail, professional photo.
  • Fix seed to maintain subject consistency across multiple outputs.
  • Experiment with styles (e.g., realistic, anime, oil painting, CG render) to explore model versatility.

Note

  • For best realism, ensure prompts describe camera angle, lighting, and environment — the model responds strongly to cinematic cues.
Note:This website uses AI models provided by third parties. Documentation prices are for reference and may be outdated. The Generate button shows an estimate; the final task charge prevails.

Jib Mix Qwen Image Text To Image API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/wavespeed-ai/jib-mix-qwen-image/text-to-image with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Jib Mix Qwen Image Text To Image below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "size": "1024*1024",
    "seed": -1,
    "output_format": "jpeg"
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/jib-mix-qwen-image/text-to-image" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $WAVESPEED_API_KEY" \
  -d "$REQUEST_BODY")

TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL=$(printf '%s' "$TASK" | jq -r '.urls.get // empty')
if [ -z "$RESULT_URL" ]; then
  RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
fi

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
    -H "Authorization: Bearer $WAVESPEED_API_KEY")
  RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
  STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
  case "$STATUS" in
    completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
    failed|cancelled|timeout) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
    created|processing) sleep 2 ;;
    *) printf 'Unexpected status: %s
' "$STATUS" >&2; exit 1 ;;
  esac
done
Node.js example
const submitUrl = "https://api.wavespeed.ai/api/v3/wavespeed-ai/jib-mix-qwen-image/text-to-image";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');

async function requestJson(url, options = {}) {
  const response = await fetch(url, options);
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "prompt": "A cinematic shot of a city at sunset, soft golden light",
        "size": "1024*1024",
        "seed": -1,
        "output_format": "jpeg"
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = task.urls?.get ||
  `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;

// 2. Poll until the prediction finishes.
while (true) {
  const resultBody = await requestJson(resultUrl, {
    headers: { "Authorization": `Bearer ${apiKey}` },
  });
  const result = resultBody.data ?? resultBody;
  if (result.status === "completed") {
    console.log(result.outputs);
    break;
  }
  if (["failed", "cancelled", "timeout"].includes(result.status)) throw new Error(JSON.stringify(result));
  if (!["created", "processing"].includes(result.status)) throw new Error("Unexpected status: " + result.status);
  await new Promise(resolve => setTimeout(resolve, 2000));
}
Python example
import json
import os
import time
from urllib.request import Request, urlopen

api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "size": "1024*1024",
    "seed": -1,
    "output_format": "jpeg"
}

def request_json(url, data=None):
    request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
    with urlopen(request) as response:
        return json.load(response)

# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/wavespeed-ai/jib-mix-qwen-image/text-to-image", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
    raise RuntimeError("Submission response did not contain a prediction id")
result_url = task.get("urls", {}).get("get") or f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"

# 2. Poll until the prediction finishes.
while True:
    result_body = request_json(result_url)
    result = result_body.get("data", result_body)
    status = result.get("status")
    if status == "completed":
        print(result.get("outputs", []))
        break
    if status in {"failed", "cancelled", "timeout"}:
        raise RuntimeError(result)
    if status not in {"created", "processing"}:
        raise RuntimeError(f"Unexpected status: {status}")
    time.sleep(2)

Jib Mix Qwen Image Text To Image API — Frequently asked questions

What is the Jib Mix Qwen Image Text To Image API?

Jib Mix Qwen Image Text To Image is a WaveSpeedAI model for image generation, exposed as a REST API on WaveSpeedAI. Jib Mix Qwen is a next-gen Text-to-Image model optimized for producing natural, pretty faces with improved Asian facial rendering. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.

How do I call the Jib Mix Qwen Image Text To Image API?

POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/wavespeed-ai/jib-mix-qwen-image-text-to-image.

How much does Jib Mix Qwen Image Text To Image cost per run?

Jib Mix Qwen Image Text To Image starts at $0.020 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.

What inputs does Jib Mix Qwen Image Text To Image accept?

Key inputs: `prompt`, `size`, `seed`, `enable_base64_output`, `enable_sync_mode`, `output_format`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/wavespeed-ai/jib-mix-qwen-image-text-to-image.

How long does Jib Mix Qwen Image Text To Image take to generate?

Median end-to-end generation time on WaveSpeedAI is around 36 seconds per request, based on recent successful runs. Queue time varies with global demand; live status is visible in the prediction record.

Can I use Jib Mix Qwen Image Text To Image outputs commercially?

Commercial usage rights depend on the model's license, set by its provider (WaveSpeedAI). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.

Jib Mix Qwen Image Text to Image | High-Quality Text-to-Image API on WaveSpeedAI