チュートリアル
Seedream 5.0 Pro テキスト生成画像 API 接続:curl、Python、文字を正しく書くコツ
1K $0.05、2K $0.10。全パラメータ、よくあるエラー、画像内の文字を正しく書かせる方法、そして Lite との違い。
Seedream 5.0 Pro テキスト生成画像(seedream-5.0-pro/text-to-image)は Seedream 5.0 ファミリーの中で最も高価なモデルで、強みは画像内の文字です。看板、パッケージ、ポスターのタイトルをプロンプトどおりに一字一句書き起こします。この記事では、すぐ実行できる curl と Python のサンプル、全パラメータ、よくあるエラー、そして文字を正しく書かせるためのいくつかのコツを紹介します。
まずは価格
| 解像度 | 1枚あたり | 100枚 |
|---|---|---|
| 1K | $0.05 | $5 |
| 2K(デフォルト) | $0.10 | $10 |
HiAPI 現行価格、2026 年 10 月 18 日確認。
アスペクト比は価格に影響せず、失敗時は課金されません。Pro に 4K はありません。4K が必要なら Seedream 5.0 Lite(2K/4K 同価格 $0.035)を使えます。3モデルの比較は Seedream 5.0 API 価格 をご覧ください。
実際の生成例
16:9、1K、ネオン看板の文字を一字一句正しく:
A neon-lit night market street in a rainy cyberpunk city, a glowing storefront sign reads "SEEDREAM 5 PRO" in crisp lettering, cinematic composition, dramatic directional lighting, rich cohesive color grade, ultra-detailed, premium commercial finish, subtle film grain, shallow depth of field, high dynamic range

seedream-5.0-pro/text-to-image、16:9、1K、$0.05。
最初の1枚を動かす
準備:コンソール で API Key を作成し、環境変数に設定します:
export HIAPI_KEY="あなたの Key"
curl:タスクを送信
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-5.0-pro/text-to-image",
"input": {
"prompt": "A cozy coffee shop storefront at dusk, warm window light, a hand-painted wooden sign that reads \"THE DAILY GRIND\" in serif letters",
"aspect_ratio": "16:9",
"resolution": "2K"
}
}'
taskId が返ります:
{"code": 200, "message": "success", "data": {"taskId": "tk-hiapi-..."}}
curl:結果を取得
curl "https://api.hiapi.ai/v1/tasks/tk-hiapi-..." \
-H "Authorization: Bearer $HIAPI_KEY"
data.status が success のとき、画像 URL は data.output[0].url にあります。有効期限付きの一時リンクなので、取得したらすぐダウンロードしてください:
curl -o result.png "<output 里的 url>"
2K は通常1分ほどで生成されます。
Python(標準ライブラリのみ)
import json, os, time, urllib.request
API = "https://api.hiapi.ai/v1/tasks"
KEY = os.environ["HIAPI_KEY"]
def api(url, payload=None):
req = urllib.request.Request(
url,
data=json.dumps(payload).encode() if payload else None,
headers={"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"},
method="POST" if payload else "GET",
)
with urllib.request.urlopen(req) as resp:
return json.loads(resp.read())
task_id = api(API, {
"model": "seedream-5.0-pro/text-to-image",
"input": {
"prompt": 'A minimalist product poster on matte black, bold white headline that reads "SHIP FASTER", small caption "batch v2.1" bottom right',
"aspect_ratio": "3:4",
"resolution": "2K",
},
})["data"]["taskId"]
while True:
task = api(f"{API}/{task_id}")["data"]
if task["status"] == "success":
break
if task["status"] == "fail":
raise RuntimeError(task)
time.sleep(5)
urllib.request.urlretrieve(task["output"][0]["url"], "result.png")
全パラメータ
| フィールド | 必須 | 値 |
|---|---|---|
prompt |
はい | 3–4000 文字、約 600 英単語以内に収めるのがおすすめ |
aspect_ratio |
はい | 1:1、4:3、3:4、16:9、9:16、2:3、3:2、21:9 |
resolution |
はい | 1K($0.05)または 2K($0.10) |
output_format |
いいえ | png(デフォルト)または jpeg |
フィールドは非常に厳格です:seed、n、size、image_urls などは受け付けず、余分に送ると HTTP 400 が返ります。1リクエストにつき1枚なので、複数枚必要な場合は複数のタスクを並行して送信してください。
同ファミリーでも解像度は異なります:Pro は 1K/2K、Lite は 2K/4K。モデルを切り替える際は resolution を忘れずに変更してください。
文字を正しく書かせる
- 書かせたい文字は引用符で囲む:
a sign that reads "OPEN 24 HOURS"のようにするのが、言い換えるよりはるかに確実です。 - 位置とスタイルを明記する:フォントの雰囲気(セリフ、手書き、ネオン)、位置(右下、中央)、媒体(木の看板、ガラス扉)。
- 文字を詰め込みすぎない:1枚に短い文字が数か所なら安定しますが、長文は不安定になります。
- 文字が主役なら 2K を使う:小さい文字は高解像度のほうがくっきりします。
よくあるエラー
| 現象 | 返り値 | 対処法 |
|---|---|---|
| 必須フィールドの不足 | 400、missing required field "aspect_ratio" |
3つの必須フィールドをすべて送信する |
| 列挙値の誤り | 400、resolution: value must be one of '1K', '2K' |
上の表に従って入力する |
seed、n などの余分な送信 |
400、additional properties ... not allowed |
余分なフィールドを削除する |
| Key が無効 | 401、permission_denied |
コンソールで Key を確認する |
タスク作成後に失敗した場合は、結果取得時に status: "fail" となり、課金されません。
本番運用前の注意点
- ポーリングの代わりにコールバックを使う:リクエストボディのトップレベル(
model、inputと同じ階層)に"callback": {"url": "https://あなたのドメイン/hooks/hiapi", "when": "final"}を追加します。通知を受け取ったら、もう一度タスクをGETして結果を確認してください。 - 二重課金の防止:タスクが受理された時点で課金されます。リトライ前に、このタスクの
taskIdを記録していないか確認し、あれば問い合わせを続けて再送信しないでください。Idempotency-Keyリクエストヘッダーを付けて送信する方法もあります。 - 速やかに転送・保存する:出力リンクは期限切れになるため、直接外部リンクとして使わないでください。
よくある質問
seed を固定して再現できますか?
できません。この API は seed を受け付けません。既存の画像に基づいて近いバージョンを生成したい場合は seedream-5.0-pro/image-to-image を使い、最大 10 枚の参照画像を送信できます。
Lite との違いは?
Lite は1枚 $0.035 で、解像度は 2K/4K です。Pro は 1K/2K で、2K は1枚 $0.10 です。呼び出し方法は同じです。Flash と Lite の同一プロンプトでの比較は Seedream 5.0 Flash vs Lite をご覧ください。
コールバックは必須ですか?
いいえ。スクリプトやバッチ処理では直接ポーリングすればよく、5秒ごとに問い合わせてください。
上のネオン看板のプロンプトをそのままコピーして、$0.05 で1枚生成することもできます。
関連記事
すべての記事を見る →-
チュートリアル
HiAPI API で hailuo-2.3-fast/image-to-video を呼び出す方法:curl と Python の実践
高速・低コストな画像から動画へのティアにおける最初の実行可能なリクエスト — モデル ID から MP4 のダウンロードまで
-
チュートリアル
HiAPI APIでhailuo-2.3/text-to-videoを呼び出す方法:curl、Python、実行可能なリクエスト例
-
チュートリアル
HiAPI で Kandinsky 6.0 Pro のテキストto動画を使用する:curl と Python チュートリアル
リクエスト優先の実践デモ:プロンプトから動画クリップへの呼び出しを構築し、リクエストを送信し、完了状態をポーリングし、結果をダウンロードする