# Qwen-Image-2.1の無料API：使える条件と1日の上限

> Qwen-Image-2.1はModelScopeの無料APIで呼べます。本人確認済みAlibaba Cloudの連携が条件で、上限は1日約250回が目安、非商用に限られます。

- URL: https://blog.laozhang.ai/ja/posts/qwen-image-2-1-free-api
- Published: 2026-09-23
- Updated: 2026-10-26
- Author: LaoZhang AI Team (https://blog.laozhang.ai/ja/about)
- Topic: AI 画像生成
- Tags: Qwen-Image, ModelScope, 無料API, 画像生成API, Python

---
Qwen-Image-2.1には、公式プラットフォームから無料で呼べるAPIがあります。Alibabaのモデル共有サイトModelScopeが提供する「API-Inference」で、モデルID`Qwen/Qwen-Image-2.1`を指定し、ModelScopeのアクセストークンを付けて非同期リクエストを送ります。2026年9月25日時点のモデルページでは、1回の呼び出しでModelScopeの無料計算クレジット「魔粒」（英語版ではMagicube／grain）を1つ消費すると表示されています。

使えるかどうかを分けるのは料金ではなく、アカウントの条件です。ModelScopeのアカウントに、本人確認（実名認証）を済ませたAlibaba Cloudアカウントを連携していないと、API-Inferenceは使えません。条件を満たしたアカウントは毎日のログインで200＋50＝250魔粒を受け取れるので、Qwen-Image-2.1だけに使えば1日最大約250回が計算上の上限です。ただし無料APIは規約上、非商用の試用に限られます。

## 無料で呼べるルートとそうでないルート

「Qwen-Image-2.1のAPI」と呼ばれているものは、実際には性質の違う5つの入口に分かれます。2026年9月25日時点の状況は次のとおりです（Model Studioの行のみ10月26日時点）。

| 入口 | 費用 | 必要なもの | 向いている使い方 |
| --- | --- | --- | --- |
| ModelScope API-Inference | 無料（魔粒を消費） | ModelScopeのトークン、本人確認済みAlibaba Cloudアカウントの連携 | 自分のスクリプトからの試作・検証（非商用） |
| Hugging Faceの公式デモ（Space） | 無料 | 匿名でも利用可 | 数枚を試す程度。枠や稼働の約束はない |
| 重みをダウンロードしてローカル実行 | 無料（GPUと電気代は自前） | VRAM量に合った実行環境 | アカウントなし・オフラインで使いたい場合 |
| Alibaba Cloud Model Studio | 2026年10月9日から有料：`qwen-image-2.1-turbo`は1枚$0.016、`qwen-image-2.1-pro`は1枚$0.04（シンガポール） | Alibaba Cloudアカウントと支払い方法 | Alibaba公式のホスト型APIを使いたい場合。提供されるのはTurboとProで、基本モデルの2.1ではない |
| 有料のサードパーティAPI | 従量課金 | 各社のAPIキー | 本人確認なしでホスト型APIが必要な場合 |

「Qwen-Image-2.1にはホスト型APIがない」「APIはModel Studioの有料プランで使う」という説明は、どちらもこの表の一部しか言い当てていません。この記事を書いた時点では、Model StudioのQwen-Image API一覧（2026年9月22日更新）に並ぶのはqwen-image-3.0-pro、3.0、2.0-pro、2.0、max、plus、qwen-imageで、2.1はありませんでした。2026年10月9日からは、2.1の派生モデル`qwen-image-2.1-turbo`と`qwen-image-2.1-pro`が1枚ごとの従量課金でModel Studioに加わっています。それでも、この記事で扱う基本モデル`Qwen/Qwen-Image-2.1`を無料で呼べるのはModelScopeだけです。公式の無料入口はModelScope、有料で使うならModel StudioのTurbo／Proかサードパーティ、という構図です。Hugging Faceのモデルページにも推論プロバイダー（Inference Providers）の割り当てはなく、Hugging FaceのAPI経由で呼べるのは後述の公式デモだけです。

もう一つ混同しやすいのが認証情報です。「QwenのAPIキー」と言うとき、多くはAlibaba Cloud Model Studio（DashScope）のキーを指します。ModelScopeのアクセストークンはそれとは別物で、互いに代わりにはなりません。Model Studioの画像モデルは従量課金ですが、2.0／3.0の料金や無料枠は2.1には当てはまりません。2.1のTurbo／Proには別の1枚単価があり、Model StudioのAPIキーはそれらを呼ぶためのもので、ModelScopeの無料の基本モデルには使えません。

## 最初の関門はAlibaba Cloudアカウントの本人確認

コードを書く前に、次の3つがそろうかを確かめてください。どれか1つでも欠けると、正しいリクエストを送っても通りません。

1. ModelScopeのアカウントを作り、ログインしてアクセストークンを発行する。
2. ModelScopeのアカウントにAlibaba Cloudアカウントを連携し、そのAlibaba Cloudアカウントで本人確認（実名認証）を完了させる。
3. 魔粒を使うために、認証済みメールアドレスを含む個人情報を登録する。

ModelScopeのドキュメントは、2の条件を不正利用対策として説明しています。一方で、どの国の利用者が本人確認を通せるのか、どの書類が使えるのか、中国サイトと国際サイトのどちらのAlibaba Cloudアカウントが条件を満たすのかは、公開ドキュメントに記載がありません。「日本から使える」とも「使えない」とも言い切れないため、自分のアカウントで連携と本人確認の画面を最後まで進められるかを最初に確かめるのが近道です。ここで止まる場合は、[本人確認できない場合の選択肢](#本人確認できない場合の選択肢)に進んでください。

ModelScopeには中国向けと国際向けの2つのサイトがあり、どちらのモデルページにも同じ無料APIパネルがあります。

| サイト | 画面の言語 | トークン発行ページ | base_url |
| --- | --- | --- | --- |
| modelscope.ai（国際版） | 英語 | `https://modelscope.ai/my/myaccesstoken` | `https://api-inference.modelscope.ai/` |
| modelscope.cn（中国版） | 中国語 | `https://modelscope.cn/my/myaccesstoken` | `https://api-inference.modelscope.cn/` |

日本から使うなら英語画面の国際版が入りやすいでしょう。どちらを選んでも、トークンを発行したサイトとbase_urlはそろえてください。片方のサイトのトークンがもう片方のホストで通るかどうかは、ドキュメントに書かれていません。

## 1日に呼べる回数は魔粒の残高で決まる

無料APIには「1日◯回」という固定の回数枠がありません。ドキュメントの表現は「魔粒の残高が足りていれば何回でも呼べる」で、消費量はモデルの規模によって0.5／1／2魔粒の3段階です。Qwen-Image-2.1はモデルページの表示で1回1魔粒の段階にあたります。

![毎日のログインで得る200魔粒とAlibaba Cloud連携後に加わる50魔粒が一つの残高にたまり、画像生成・AIGC推論・学習で共有されることを示す図](https://blog.laozhang.ai/posts/ja/qwen-image-2-1-free-api/img/shared-balance.webp)

2026年9月25日時点のModelScopeの魔粒ルールのうち、API利用に関係する付与は次のとおりです。

| 付与の条件 | 魔粒 | 種類と有効期限 | 頻度 |
| --- | --- | --- | --- |
| 登録後、毎日ログイン | 200 | 短期（付与から24時間） | 1日1回 |
| Alibaba Cloud連携後、毎日ログイン | 50 | 短期（付与から24時間） | 1日1回 |
| メールアドレスの認証 | 50 | 長期（付与から90日） | 初回のみ |

APIを使うにはAlibaba Cloudの連携が必須なので、APIを呼べるアカウントは毎日200と50の両方を受け取る前提になります。上限の計算は次のとおりです。

```text
1日の上限 ≒（200 + 50）÷ 1魔粒/回 = 250回
　　　　　　 + 長期魔粒の残高 ÷ 1魔粒/回
```

これはあくまで天井で、実際に使える回数はここから減ります。

- **残高は共有**：同じ魔粒は、モデルページの「一键生成／Generate Now」から使うウェブ生成、学習、ほかのモデルのAPI呼び出しにも使われます。
- **短期魔粒は繰り越せない**：付与から24時間で失効し、消費は期限の近いものから順に行われます。使わなかった分は翌日に持ち越せません。
- **同時実行は動的に制限される**：プラットフォームの負荷に応じて並列数が絞られ、方針としては「1本ずつなら正常に使える」ことを目標にしています。高い並列度や稼働保証が必要な用途には使わないよう明記されています。
- **消費量とルールは変わりうる**：1魔粒は「予想消費量」としての表示で、魔粒のルール自体も運用状況に応じて更新されると書かれています。使う前にモデルページのAPIパネルで現在の値を見てください。

図の「250魔粒≠250枚」は、この共有・失効・変更があるという意味です。Qwen-Image-2.1のAPIだけを呼び、表示どおり1回1魔粒なら、上の計算どおり最大約250回です。

失敗したときの扱いもルールに書かれています。システム側の原因で推論タスクが失敗した場合と、利用者が推論タスクを取り消した場合は、魔粒が全額返還されるルールです。これ以外の失敗が返還されるかどうかは書かれていないので、「失敗しても無料」とは考えず、同じ依頼をむやみに繰り返さないようにしてください。

なお、「1日2,000回・1モデル500回まで」といった回数制限は、現行のAPI-Inferenceのドキュメントには記載がありません。

## Pythonで1回生成する：依頼、状態確認、保存

API-Inferenceの画像生成は非同期です。依頼を送るとすぐに`task_id`が返り、画像はまだできていません。`task_id`で状態を確認し、完了してから画像のURLを受け取ります。

![生成の依頼、task_idの受け取り、状態の確認、output_imagesからの保存までを4段階で示し、task_idが返っただけでは生成は完了していないと注意する図](https://blog.laozhang.ai/posts/ja/qwen-image-2-1-free-api/img/task-flow.webp)

公式サンプル（モデルページの「コード例／Example Codes」）の流れは次のとおりです。

- 依頼：`POST {base_url}v1/images/generations`に、`Authorization: Bearer <トークン>`と`X-ModelScope-Async-Mode: true`を付け、本文は`{"model": "Qwen/Qwen-Image-2.1", "prompt": "..."}`。
- 状態確認：`GET {base_url}v1/tasks/{task_id}`に`X-ModelScope-Task-Type: image_generation`を付ける。
- 判定：`task_status`が`SUCCEED`なら`output_images`の1件目のURLから画像を取得、`FAILED`なら終了。サンプルは5秒おきに確認します。

下のコードはこの流れに、トークンを環境変数から読む処理、通信のタイムアウト、状態確認を打ち切る期限、止まった段階が分かるメッセージ、元の形式のままの保存を加えたものです。生成結果の例はここには載せていないので、最初の1回で動作を確かめてください。

まず、トークンを発行したサイトに合わせて環境変数を設定し、ライブラリを入れます。

```bash
export MODELSCOPE_TOKEN="発行したアクセストークン"
export MODELSCOPE_BASE_URL="https://api-inference.modelscope.ai/"   # 中国版なら https://api-inference.modelscope.cn/
pip install requests pillow
```

次のスクリプトを`qwen_image_free.py`として保存し、`python qwen_image_free.py`で実行します。

```python
import os
import sys
import time
from io import BytesIO

import requests
from PIL import Image

BASE_URL = os.environ.get("MODELSCOPE_BASE_URL", "https://api-inference.modelscope.ai/")
TOKEN = os.environ["MODELSCOPE_TOKEN"]
MODEL = "Qwen/Qwen-Image-2.1"
PROMPT = "A calico cat sitting by a sunny window, watercolor painting, soft morning light"

POLL_INTERVAL = 5   # 公式サンプルと同じ5秒間隔
DEADLINE = 300      # 状態確認を打ち切るまでの秒数（任意に調整）

headers = {
    "Authorization": f"Bearer {TOKEN}",
    "Content-Type": "application/json",
}

# 1. 生成を依頼する（非同期モード）
resp = requests.post(
    f"{BASE_URL}v1/images/generations",
    headers={**headers, "X-ModelScope-Async-Mode": "true"},
    json={"model": MODEL, "prompt": PROMPT},
    timeout=30,
)
if not resp.ok:
    sys.exit(f"依頼の段階で停止: HTTP {resp.status_code} {resp.text[:500]}")

task_id = resp.json().get("task_id")
if not task_id:
    sys.exit(f"依頼の段階で停止: task_idがありません {resp.text[:500]}")
print("task_id:", task_id)

# 2. 完了するまで状態を確認する
started = time.time()
while True:
    r = requests.get(
        f"{BASE_URL}v1/tasks/{task_id}",
        headers={**headers, "X-ModelScope-Task-Type": "image_generation"},
        timeout=30,
    )
    if not r.ok:
        sys.exit(f"状態確認の段階で停止: HTTP {r.status_code} {r.text[:500]}")
    data = r.json()
    status = data.get("task_status")
    if status == "SUCCEED":
        break
    if status == "FAILED":
        sys.exit(f"生成の段階で停止: FAILED {data}")
    if time.time() - started > DEADLINE:
        sys.exit(f"期限切れで停止: 最後の状態は {status}")
    print("status:", status)
    time.sleep(POLL_INTERVAL)

# 3. 画像を受け取った形式のまま保存する
image_url = data["output_images"][0]
img_resp = requests.get(image_url, timeout=60)
if not img_resp.ok:
    sys.exit(f"保存の段階で停止: HTTP {img_resp.status_code}")

img = Image.open(BytesIO(img_resp.content))
ext = (img.format or "png").lower()
path = f"qwen_image_2_1.{ext}"
with open(path, "wb") as f:
    f.write(img_resp.content)
print(f"保存しました: {path} ({img.width}x{img.height}, mode={img.mode})")
```

公式サンプルは受け取った画像をJPEGに変換して保存するため、透過チャンネルがあれば失われます。上のコードは受け取ったバイト列をそのまま書き出すので、再圧縮による劣化がなく、透過付きの画像が返ってきた場合もそのまま残ります。最後に表示される`mode`が`RGBA`なら透過付きです。ただし、APIで透過画像が返るかどうかはドキュメントに記載がありません。

`SUCCEED`と`FAILED`以外の状態名はサンプルに出てこないため、途中の状態は受け取った文字列をそのまま表示しています。

最初の依頼は`model`と`prompt`だけにしてください。ModelScopeの汎用ドキュメントには`negative_prompt`、`size`、`seed`、`steps`、`guidance`、`image_url`（編集用）といった任意パラメータが載っていますが、これはAPI-Inference全体の説明です。たとえば`size`の範囲として書かれている64×64〜1664×1664は旧Qwen-Imageの値で、2.1で任意パラメータがどう扱われるかは書かれていません。最小構成で1回通ってから、1つずつ足して結果を比べるのが安全です。サンプルにある`loras`も、以前のQwen-Image向けに作られたLoRAは2.1とモデル構造が違うため流用できません。ドキュメントには「多くのモデルは英語のプロンプトのほうが結果が良い」とも書かれているので、最初は英語で試すと切り分けが楽です。

## 止まった段階から原因を切り分ける

上のスクリプトは、どの段階で止まったかをメッセージの先頭に出します。それぞれの段階で疑う順番は次のとおりです。

| 止まった段階 | 考えられる原因 | 確認すること |
| --- | --- | --- |
| 起動直後に`KeyError: 'MODELSCOPE_TOKEN'` | 環境変数が設定されていない | 同じターミナルで`export`したか |
| 依頼の段階（HTTPエラー） | トークンの誤りや失効、トークンとbase_urlのサイト違い、Alibaba Cloudの連携や本人確認が未完了、魔粒の不足、モデルIDの誤り、同時実行の制限 | 応答本文のメッセージ、アカウント設定の連携状況、魔粒の残高 |
| 依頼の段階（task_idなし） | 応答の形式が想定と違う | 表示された応答本文。非同期のヘッダーを付け忘れていないか |
| 状態確認の段階 | 状態確認用のヘッダーやtask_idの誤り | `X-ModelScope-Task-Type`の値、task_idをそのまま使っているか |
| 期限切れ | 混雑による待ち行列 | 時間をおいて同じtask_idを確認し直す。新しい依頼を連発しない |
| 生成の段階（FAILED） | プロンプト内容の審査、任意パラメータ、システム側の障害など。応答だけでは特定できないことがある | 無難な短いプロンプトで`model`と`prompt`だけにして再試行 |
| 保存の段階 | 画像URLの取得に失敗 | すぐに再取得する。URLの有効期限は公開されていない |

`FAILED`の原因として内容の審査が疑われる場合、ModelScopeのAPI-Inferenceが2.1でどのような内容を止めるかは公開されていません。ホスト型とローカルで審査がどこに入るかは、[Qwen-Image-2.1のNSFW：制限の有無と規約・法律](https://blog.laozhang.ai/ja/posts/qwen-image-2-1-nsfw)で整理しています。

期限切れのときに依頼をやり直すと、そのたびに新しいタスクとして魔粒が消費される可能性があります。まずは手元にあるtask_idで状態確認だけを再開するほうが、残高を無駄にしません。

## 本人確認できない場合の選択肢

本人確認を通せない、あるいは通したくない場合も、Qwen-Image-2.1を試す方法は残っています。どれも性質が違うので、何を優先するかで選んでください。

### Hugging Faceの公式デモをコードから呼ぶ

Qwen公式のHugging Face Space（`Qwen/Qwen-Image-2.1`）はGradioのAPIを公開していて、アカウントなしでもPythonから呼べます。生成用のエンドポイントは`/generate_with_enhance`です。

```python
from gradio_client import Client

client = Client("Qwen/Qwen-Image-2.1")
result = client.predict(
    input_images=[],
    original_prompt="A calico cat sitting by a sunny window, watercolor painting",
    api_name="/generate_with_enhance",
)
print(result)  # 画像、seed、書き換え後のプロンプトの3つが返る
```

既定では2688×1536で生成し、プロンプトを自動で書き換える設定（`enable_extend=True`）がオンになっています。書き換え後のプロンプトも返ってくるので、意図どおりに解釈されたか確かめられます。ただしこれはデモで、利用枠も稼働も約束されていません。混雑すれば待たされ、止まったり仕様が変わったりすることもあるため、数枚を試す用途に留め、サービスの部品にはしないでください（`pip install gradio_client`で入ります）。

### 手元のGPUで動かす

重みは無料でダウンロードでき、アカウントも本人確認も要りません。代わりにGPUと手間が必要で、VRAMの量によって使う形式が変わります。16〜24GBのNVIDIA GPU、8〜12GBのGPU、Macそれぞれの手順は[Qwen-Image-2.1 を VRAM 別にローカルで動かす](https://blog.laozhang.ai/ja/posts/qwen-image-2-1-local)にまとめています。ローカルで動かしても、重みのライセンス（研究・評価目的）は変わりません。

### 有料のAPIを使う

本人確認なしでホスト型のAPIが必要なら、有料のサードパーティがあります。たとえばKieは`qwen2-1/text-to-image`というモデル名で2.1を提供し、2026年9月25日時点のページでは1K画像1枚4クレジット（約$0.02）、2K画像1枚8クレジット（約$0.04）と表示されています。背景を透過にするオプションもあります。ほかにMuapiやRunComfyも2.1を扱っています。Kieも依頼後に返るtaskIdで結果を確認する方式なので、上のスクリプトの「依頼→状態確認→保存」の考え方はそのまま使えます。

これらのページにある「商用利用可」といった表示は、そのサービスがQwenの商用ライセンスを得ていることの証明にはなりません。商用で使うつもりなら、次の章の3点を確かめてください。

モデルがQwenでなくてもよく、本人確認なしで使える商用の画像APIが欲しいなら、別のモデルを選ぶ手もあります。laozhang.aiはQwenの画像モデルを扱っていませんが、[モデル一覧](https://docs.laozhang.ai/en/models)にはgpt-image-2やflux-2-proなどが1回$0.03（2026年9月25日時点）で載っています。無料で試せるほかの画像生成APIは[2026年版 無料AI画像生成API: 本当に無料なのはどれか](https://blog.laozhang.ai/ja/posts/free-ai-image-generation-api)で比べています。

*注記：[laozhang.ai は当ブログ運営チームの自社サービスです](https://blog.laozhang.ai/ja/about#laozhang)。その料金は中立的な比較ではなく、自社の提示価格です。*

## 商用利用は3つに分けて考える

「無料で呼べる」「商用で使える」「生成した画像の権利」は、それぞれ別の話です。

1. **無料APIの利用条件**：ModelScopeのAPI-Inferenceは、それ自体が非商用・非営利の体験サービスと定められています。商用の用途には商用プラットフォームのAPIを使うよう案内されています。
2. **モデルのライセンス**：重みはQwen Research License Agreementで提供され、非商用（研究・評価目的）に限られます。商用で使うには別途ライセンスが必要で、窓口はmodel-business@notice.qwencloud.comです。Apache 2.0ではありません。
3. **生成物の権利**：ライセンス本文には、生成した画像の扱いを定めた明示的な条項がありません。Qwenチームが2026年9月21日にX上で「生成画像の権利は利用者にある」と述べたと伝えられていますが、契約上の根拠として扱えるものではありません。

つまり、無料APIで作った画像を製品や広告に使う計画なら、無料APIの規約とモデルのライセンスの両方で止まります。法的な判断が必要な場合は、専門家に確認してください。

## よくある質問

### QwenのAPIは無料ですか？料金はいくらですか？

「Qwen API」がAlibaba Cloud Model StudioのAPIを指すなら、画像モデルは従量課金です。2.1も2026年10月9日からTurboとProの2種類が有料で加わり、シンガポールでは1枚$0.016と$0.04です（10月26日時点。国際サイトのシンガポールで新しく作ったアカウントには、モデルごとに10枚の無料枠があります）。基本モデルのQwen-Image-2.1を無料で呼べるのはModelScopeのAPI-Inferenceで、こちらは料金の代わりに魔粒を1回1つ消費します。認証に使うのもModel StudioのAPIキーではなく、ModelScopeのアクセストークンです。

### Qwen Chatで2.1を無料で使えますか？

Qwen Chatで2.1が使えるという紹介も見かけますが、公式のREADMEには記載がありません。仮に使えたとしてもチャット画面での利用で、自分のコードから呼べるAPIではありません。

### APIで透過PNGや2048×2048の画像を出せますか？

ローカル実行では、2.1は2048×2048を既定とし、透過画像を作るためのプロンプトの書き方もモデルカードに載っています。一方、ModelScopeの無料APIで透過画像や2048×2048が得られるかは、ドキュメントに記載がありません。確実に透過が必要なら、ローカル実行か、透過オプションのある有料APIを選ぶことになります。すでにある写真の背景を消したいだけなら、別のモデルや背景削除ツールで処理する方法もあります（手順は「[透過PNGの作り方：素材で選ぶ方法と保存後の確認](https://blog.laozhang.ai/ja/posts/transparent-image-maker)」を参照）。

### 無料で使えるほかのAI APIと比べて、どの程度使えますか？

ModelScopeの無料APIは、本人確認という関門があることと、非商用に限られることが特徴です。テキスト系も含めた無料枠の条件は[無料AI APIのおすすめ：上限・学習利用・カード要否で選ぶ](https://blog.laozhang.ai/ja/posts/free-ai-api-tiers-compared)で比べています。
