Qwen Image 2512 APIクイックスタート: 数分で画像を生成 (2026)

Qwen Image 2512 APIクイックスタート: 数分で画像を生成 (2026)

title: “Qwen Image 2512 APIクイックスタート: 数分で画像を生成する (2026)” date: “2026-01-09” author: “Dora” description: “WaveSpeedでQwen Image 2512を使って数分で画像を生成します。cURL、Python、JavaScriptの例とパラメータ完全ガイド、エラーハンドリングのコツを含む。” cover: “https://d8r3hf7cxo9nn.cloudfront.net/cms/2026-01-09/20260109030804_5c0bf9p2.png

こんにちは、Doraです。かつて私は製品用の画像作成に多くの時間を費やしていました:素材を探す、サイズを変更する、ファイル名を変更する、フォルダを整理する…すべてのステップが延々と繰り返されていました。難しいことではありませんでしたが、退屈でした。その後、Qwen Image 2512 APIを試してみたところ、これらすべてを数行のコードで自動化できることに気づきました。

これは広告ではありません。実際に試したときに起きたことをシェアしているだけです — うまくいったこと、つまずいたところ、そして確実に役立つようにした方法です。

WaveSpeedショートカット (結果だけが欲しい場合)

ただ速く画像を生成したい場合で、すべて自分で配線したくない場合:

  • WaveSpeedはすでに使用可能なQwen Image 2512 REST API (コールドスタートなし)を提供しています。
  • WaveSpeedエンドポイント + APIキーを使う → 完了です。
  • 公式DashScopeフロー(と一般的な落とし穴)を理解したい場合は、読み続けてください。

このAPIは実際に何ができるのか?

簡単に言うと:テキストで説明を入力すると、画像が得られます。

例えば、こう書いた場合:

“柔らかい光の下でノートと観葉植物が置かれた整頓されたデスク”

数秒後、説明に一致する画像が得られます — そしてコンピュータに自動的に保存できます。

これに適していることは:

  • ムードボード作成
  • 素早くサムネイルを生成
  • ドキュメントにプレースホルダー画像を追加
  • 製品プロトタイプビジュアルを作成

気づいたことは:

初めて使用したとき、手動で画像を探すより大幅に速く感じませんでした。ですが2、3回実行した後、「このサイズはどうしよう?」または「ファイルをどう名付けよう?」と悩む必要がないことに気づきました。それが私を節約したのは時間だけでなく、精神的な労力でした。


画像形式とストレージ

  • 形式: PNG、デフォルトで自動生成
  • 画像はどこに保存されるのか:
    • APIは画像へのリンク(URL)を返します
    • リンクはAlibaba Cloudサーバーを指します
    • 重要:リンクは24時間のみ有効で、その後期限切れになります
    • したがって、すぐにコンピュータにダウンロードする必要があります

注: APIは直接画像ファイルを提供しません。ローカルに保存したい場合は、コードにダウンロードステップを追加する必要があります(後で説明)。


開始する前に:必要なもの

ステップ 1: アカウントとAPIキーを取得

  1. Alibaba Cloudアカウントにサインアップ
  2. Model Studio Consoleに移動
  3. APIキーを生成(あなたであることを証明するキー)
  4. キーをDASHSCOPE_API_KEYという環境変数として保存 環境変数:
    コンピュータ上の特別な場所のようなもので、キーが置かれているため、毎回コピーペーストしなくてもコードが自動的に見つけることができます。

ヒント:

  • テスト用には.envファイルに保存できます
  • 実際の使用には、セキュアなキー管理ツールがより安全です
  • 北京とシンガポール地域は異なるキーを持っています — 混同しないでください

ステップ 2: ツールを選択

シンプルなものから始まる3つの主な方法があります:

  1. cURL (最もシンプル)

    • APIが機能するかどうかを素早くテストするのに最適
    • プログラミングは不要、コマンドを貼り付けるだけ
    • 最初の試行に推奨
  2. Python (最も一般的)

    • 繰り返し使用するための小さなツール構築に最適
    • 公式DashScope SDKを使用して多くの詳細を自動的に処理
    • 基本的なPythonの知識があると役立つ
  3. Node.js (フロントエンド開発者向け)

    • フロントエンド開発者でしたら、これでも機能します
    • 原則は同じですが、ここでは説明しません

最初にPlaygroundを試してください:
結果を素早くテストしたいだけの場合、Wavespeed Playgroundではブラウザで画像を生成できます。時々の使用に最適です。バッチ生成または自動化の場合は、APIの使用方法を学ぶために読み続けてください。


クイックスタート: cURLでテスト

ターミナル(Mac)またはコマンドプロンプト(Windows)を開いて、これを貼り付けます:

curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
  --header 'Content-Type: application/json' \
  --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
  --data '{
    "model": "qwen-image-max",
    "input": {
      "messages": [
        {
          "role": "user",
          "content": [
            {"text": "A tidy desk with a notebook and a plant under soft light"}
          ]
        }
      ]
    },
    "parameters": {
      "size": "1024*1024"
    }
  }'

Enterを押して数秒待つと、画像へのリンクが含まれたJSON応答が表示されます。

つまずいた落とし穴

  1. モデル名はqwen-image-maxである必要があります。qwen-image-2512やその他の名前ではありません。
  2. サイズ形式はアスタリスク1024*1024を使用します。1024x1024ではなく。
  3. シンガポール地域の場合、URLをhttps://dashscope-intl.aliyuncs.com/api/v1/...に変更

本番のようなものを構築している場合、公式DashScopeフローは完全に機能します — しかしオペレーショナルの詳細が付属しています(地域、URL有効期間、リトライ)。だからこそ私はWaveSpeedを日常の仕事で使うのが好きです:すぐに使用可能なREST APIの背後でQwen Image 2512が得られるため、パイプレイアウトの代わりにプロンプトと出力管理に集中できます。

パラメータ説明

必須

  1. model

    • "qwen-image-max"はQwen-Image-2512の公式名
    • また"qwen-image-plus"もあります、似ていますがより安価
  2. input.messages

    • 1つの要素を持つ配列
    • textは説明文です
    • 最大800文字(約400中国語文字)

オプション (省略された場合はデフォルトを使用)

  1. parameters.size

    • 1664*928 (16:9 ランドスケープ)
    • 1472*1104 (4:3)
    • 1328*1328 (1:1 スクエア、デフォルト)
    • 1104*1472 (3:4 ポートレート)
    • 928*1664 (9:16 ポートレート)
  2. parameters.negative_prompt

    • 不要なもの: 例えば、"低解像度、ぼやけた、歪んだ、過飽和"
    • 最大500文字
  3. parameters.prompt_extend

    • デフォルトはtrue
    • 自動的に説明を充実
    • 厳密に制御したい場合はオフにします
  4. parameters.watermark

    • デフォルトfalse
    • trueの場合、“Qwen-Image”ウォーターマークを追加
  5. parameters.seed

    • 範囲0–2147483647
    • 同じシード + 同じ説明 = 同じ画像
    • テストと結果比較に有用

APIレスポンス例

{
  "output": {
    "choices": [
      {
        "finish_reason": "stop",
        "message": {
          "role": "assistant",
          "content": [
            {
              "image": "https://dashscope-result-sz.oss-cn-shenzhen.aliyuncs.com/xxx.png?Expires=xxxx"
            }
          ]
        }
      }
    ]
  },
  "usage": {
    "width": 1328,
    "image_count": 1,
    "height": 1328
  },
  "request_id": "xxx"
}

重要なポイント

  • 画像URL: output.choices[0].message.content[0].image
  • finish_reason"stop"であることを確認して成功を確認
  • リンクは24時間有効です — すぐにダウンロード

Pythonで自動化

バッチ生成または小さなツールが必要な場合:

import os
import time
import requests
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath

API_KEY = os.getenv("DASHSCOPE_API_KEY")
ENDPOINT = "https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation"

HEADERS = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {API_KEY}",
}

def generate_image(prompt: str, size="1328*1328"):
    payload = {
        "model": "qwen-image-max",
        "input": {
            "messages": [{"role": "user", "content": [{"text": prompt}]}]
        },
        "parameters": {"size": size, "prompt_extend": True, "watermark": False}
    }
    r = requests.post(ENDPOINT, headers=HEADERS, json=payload, timeout=120)
    r.raise_for_status()
    data = r.json()
    choices = data.get("output", {}).get("choices", [])
    if not choices:
        raise ValueError(f"No image generated:\n{data}")
    content = choices[0].get("message", {}).get("content", [])
    if not content:
        raise ValueError(f"Empty content:\n{data}")
    image_url = content[0].get("image")
    if not image_url:
        raise ValueError(f"No image URL:\n{data}")

    img_response = requests.get(image_url)
    img_response.raise_for_status()

    file_name = PurePosixPath(unquote(urlparse(image_url).path)).parts[-1]
    ts = int(time.time())
    path = f"qwen_image_{ts}_{file_name}"
    with open(path, "wb") as f:
        f.write(img_response.content)
    return path

if __name__ == "__main__":
    output_path = generate_image("A tidy desk with a notebook and a plant under soft light")
    print("Image saved at:", output_path)

テスト中に学んだこと

  • 間違ったモデル名は破壊します(qwen-image-plusqwen-image-max)
  • 間違ったサイズ形式(1328x1328代わりに1328*1328)
  • レスポンス構造がドキュメントと若干異なります;画像URLを確認
  • 画像のダウンロードを忘れると、24時間後にリンクが期限切れになります

公式SDKを使用

import os
import json
from dashscope import MultiModalConversation

api_key = os.getenv("DASHSCOPE_API_KEY")
messages = [{"role": "user", "content": [{"text": "A tidy desk with a notebook and a plant under soft light"}]}]

response = MultiModalConversation.call(
    api_key=api_key,
    model="qwen-image-max",
    messages=messages,
    result_format='message',
    stream=False,
    watermark=False,
    prompt_extend=True,
    size='1328*1328'
)

if response.status_code == 200:
    print(json.dumps(response, ensure_ascii=False))
    image_url = response.output.choices[0].message.content[0]['image']
    print(f"Image URL: {image_url}")
else:
    print(f"Error: {response.code} - {response.message}")

クイックパラメータリファレンス

パラメータ推奨値説明
size1328*1328スクエア、バランスの取れた速度と品質
prompt_extendTRUEAIに説明を充実させる
seed固定番号テストして結果を比較するために使用
negative_prompt必要に応じて例:“ぼやけた、低品質、歪んだ”

シードを変更するときは

  • 固定シード → プロンプトバリエーションを比較
  • 異なるシード → 複数の異なる画像を生成

一般的なエラーと修正

  • 401 Unauthorized → APIキーが間違っている、地域が間違っている、または画像許可がない
  • 429 Rate limit → 多くのリクエスト;遅延を追加するか、クォータをアップグレード
  • タイムアウト / ネットワーク問題 → タイムアウトを増加、すぐにダウンロード

追加した小さな改善

  1. テストプロンプト用に固定シード → より簡単に結果を比較
  2. 一貫したファイル命名:{keyword}-{size}-{seed}.png
  3. 設定ファイル管理:パラメータをハードコーディングしないYAML

これが役立つ人

Playground

  • 時々の画像生成
  • 素早いプロンプトテスト
  • 自動化は不要

API

  • バッチ生成
  • ツールまたは製品統合
  • スケジュール済みまたはシステムベースの使用

最終パス (あなたに合うものを選択)

パスA — 高速で実用的

  • Qwen Image 2512用のWaveSpeed Playground APIを使用
  • 最小限のセットアップ、すぐに使用可能なRESTエンドポイント

パスB — 完全な制御

  • Alibaba Cloud統合を深く必要とする場合はDashScopeを直接使用

静かに背景で機能するツールが好きです。学習と理解のためには、公式フローは素晴らしい。日常の仕事とより速い配送のためには、WaveSpeedは多くの摩擦を軽減してくれます。