Documentation Index
Fetch the complete documentation index at: https://docs.aihubmix.com/llms.txt
Use this file to discover all available pages before exploring further.
インターフェースの説明
ユーザーの強い要望に応えるため、gpt-4o-imageとgpt-4o-image-vipという2つの逆方向インターフェースを特別にリリースしました。このうち、VIPモデルは性能と安定性において優れています。
これらの逆方向インターフェースは完全に安定しているとは限らず、🕐 Queuing...のキューイング状態や生成失敗が発生する可能性があるため、新機能の体験やテストにのみ使用することをお勧めします。
OpenAIがgpt-image-1インターフェースを正式にリリースしたことを考慮し、呼び出しコストの観点から、これらの逆方向インターフェースは一時的に保持し、完全に互換性のある呼び出し方法を提供します。
注意事項
- 生成中に、いかなる状況で中断または失敗した場合でも、インターフェース呼び出しが一度発行されると、料金が請求されます
- 存命のアーティスト名(例:「宮崎駿」、「新海誠」など)は
input_moderationエラーをトリガーし、生成が失敗します。これを回避するには、「ジブリ」、「明るい現代的な日本のアニメスタイル」などの非機密語を使用できます
- 全体的に、「スタイル」は「アーティスト」よりも安全です。「ピクサー」などもサポートされています
- より確実な方法は、故人アーティストまたは対応するスタイルを使用することです。例:「ゴッホ」、「モナリザ」など
モデルと料金
| モデル | バックエンド料金 (米ドル/回) | 約 (日本円/回) |
|---|
gpt-4o-image-vip | $0.009 | 約 ¥0.06 |
gpt-4o-image | $0.005 | 約 ¥0.04 |
- バックエンド料金は米ドルに基づいています。
- 逆方向インターフェースの維持コストが増加したため、1回あたりの呼び出し価格が引き上げられました。(更新日:20250604)
- 正式な
gpt-image-1インターフェースの入力テキストトークン部分の料金は100万トークンあたり$5ですが、逆方向インターフェースは画像描画回数のみで計算されます。
Python呼び出し例
おなじみのv1/completionsエンドポイントを使用してサポートを提供します。完全に互換性があり、具体的な使用方法は以下を参照してください。
from openai import OpenAI
client = OpenAI(
api_key="AIHUBMIX_API_KEY", # バックエンドで生成したキー "sk-***" に置き換えてください
base_url="https://aihubmix.com/v1"
)
# チャット完了リクエストを作成
stream = client.chat.completions.create(
model="gpt-4o-image-vip", #リスト: gpt-4o-image-vip, gpt-4o-image
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": """[真珠の耳飾りの少女]をアニメ風のイラストカバーとして再デザインしてください。元の本質と構図を維持してください:象徴的な横顔の視線、穏やかな表情、親密なフレーミング。洗練された京都アニメ風のスタイルで、柔らかな筆致、映画のような照明、段階的な奥行きでレンダリングしてください。
AVカバーレイアウトでフォーマットしてください:
日本語と英語を混ぜたタイポグラフィ、視覚的な階層が重要なセリフのタイトル - デザインセンスが鍵です。
深い意味を伝える言葉をタイトルとして抽出し、創造的なスローガンを付けてください。元の名前は、必要であれば小さな情報としてのみ表示してください。
「jerlin」という透かしを服や背景にさりげなく埋め込んでください。感情的なトーンと姿勢を維持し、必要な場合にのみ柔らかくしてください。2:3のポートレート"""
}
]
}
],
stream=True
)
# forループを使用してストリーミング応答を処理
for chunk in stream:
try:
if chunk.choices and len(chunk.choices) > 0 and chunk.choices[0].delta and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
except Exception as e:
print(f"\n応答の処理中にエラーが発生しました:{str(e)}")
出力例
{
"prompt": "真珠の耳飾りの少女をアニメ風のイラストカバーとして再デザインしてください。元の本質と構図を維持してください:象徴的な横顔の視線、穏やかな表情、親密なフレーミング。洗練された京都アニメ風のスタイルで、柔らかな筆致、映画のような照明、段階的な奥行きでレンダリングしてください。
AVカバーレイアウトでフォーマットしてください:
日本語と英語を混ぜたタイポグラフィ、視覚的な階層が重要なセリフのタイトル - デザインセンスが鍵です。
深い意味を伝える言葉をタイトルとして抽出し、創造的なスローガンを付けてください。元の名前は、必要であれば小さな情報としてのみ表示してください。
「jerlin」という透かしを服や背景にさりげなく埋め込んでください。慎重に、潜在的なヌードを流れるような布、髪、またはベールで置き換え、感情的なトーンと姿勢を維持してください。必要な場合にのみ詳細を柔らかくしてください。2:3のポートレート",
"ratio": "2:3"
}
>🕐 キューイング中...
>⚡ 生成中.....
>🏃 進捗 11....19....27...34....42....50....57...64....[100](https://videos.openai.com/vg-assets/assets%2Ftask_01jsccq77nfcsab7dn8bx7z230%2Fsrc_1.png?st=2025-04-21T13%3A08%3A48Z&se=2025-04-27T14%3A08%3A48Z&sks=b&skt=2025-04-21T13%3A08%3A48Z&ske=2025-04-27T14%3A08%3A48Z&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skoid=aa5ddad1-c91a-4f0a-9aca-e20682cc8969&skv=2019-02-02&sv=2018-11-09&sr=b&sp=r&spr=https%2Chttp&sig=xm6K6M7au3F3Vd9qcYxR3mYWrqAHsgbagbUV5GQo39w%3D&az=oaivgprodscus)
> ✅ 生成完了

[ダウンロードはこちら](https://filesystem.site/cdn/download/20250421/XBCrAs6qvMARG7BkFX0KI3MBs1qoto.png)

[ダウンロードはこちら](https://filesystem.site/cdn/download/20250421/tQ62gh0BbdESApNmFJMNzsdUFDflkl.png)%
OpenAI 正式インターフェース互換
OpenAIが最近リリースした画像生成の呼び出し方法を好む場合は、以下の処理を参照してください。3つの点に注意するだけです。
- 品質パラメータを渡すことはできません。モデル
gpt-4o-image-vipとgpt-4o-imageはそれ自体にバンドルされています。
- トークン使用量を追跡するusageフィールドの出力はサポートされていません。
- 最新の出力はBase64画像データであり、ユースケースは自動保存されています。
from openai import OpenAI
import os
import requests
import base64
client = OpenAI(
api_key="AIHUBMIX_API_KEY", # あなたのAiHubMixキーに置き換えてください
base_url="https://aihubmix.com/v1"
)
prompt = """
映画[ブラック・スワン]のポスターを再デザインしてください。3Dカートゥーン、スムーズなレンダリング、明るいトーン、2:3
"""
result = client.images.generate(
model="gpt-4o-image-vip",
prompt=prompt,
n=1, # 1回あたりの数量
size="1024x1536", # 1024x1024 (正方形), 1536x1024 (3:2横長), 1024x1536 (2:3縦長), auto (デフォルト)
#quality="high" # 逆方向モデルは品質パラメータを渡すことはできません。モデルにバンドルされています 📍
)
print(result) # 完全なAPI応答を出力します。逆方向インターフェースはusageをサポートしていません 📍
# ファイル名のプレフィックスと保存ディレクトリを定義
output_dir = "." # 他のディレクトリを指定できます
file_prefix = "image_gen-逆方向"
# 出力ディレクトリが存在することを確認
os.makedirs(output_dir, exist_ok=True)
# 返されたすべての画像データを反復処理
for i, image_data in enumerate(result.data):
# まずbase64文字列を処理
if hasattr(image_data, "b64_json") and image_data.b64_json:
image_bytes = base64.b64decode(image_data.b64_json)
current_index = i
while True:
file_name = f"{file_prefix}_{current_index}.png"
file_path = os.path.join(output_dir, file_name)
if not os.path.exists(file_path):
break
current_index += 1
with open(file_path, "wb") as f:
f.write(image_bytes)
print(f"画像は以下に保存されました:{file_path} (base64)")
# 次にurlフィールドを処理(互換性のあるインターフェースが変更されるのを防ぐために堅牢な処理を維持)
elif hasattr(image_data, "url") and image_data.url:
try:
response = requests.get(image_data.url, stream=True)
response.raise_for_status()
image_bytes = response.content
current_index = i
while True:
file_name = f"{file_prefix}_{current_index}.png"
file_path = os.path.join(output_dir, file_name)
if not os.path.exists(file_path):
break
current_index += 1
with open(file_path, "wb") as f:
f.write(image_bytes)
print(f"画像は以下に保存されました:{file_path} (url)")
except requests.exceptions.RequestException as e:
print(f"画像 {i} のダウンロードに失敗しました:{e}")
except Exception as e:
print(f"画像 {i} の処理中にエラーが発生しました:{str(e)}")
else:
print(f"画像 {i} のデータにはb64_jsonもurlもありません。保存をスキップします。")
効果展示
実用的なヒント
- どの言語でもサポートされており、中国語の描画も非常に安定していますが、大量のテキストを描画することはお勧めしません。
- 描画比率はプロンプトで指定します。指定しない場合、4oが自動的に判断します。2:3、3:2、1:1をサポートします。
- インスピレーションがない場合は、参照画像を提供してください。単一画像と複数画像をサポートします。
- アップロードする画像を圧縮前処理することで、速度を向上させることができます。
- 透明な背景をサポートしており、切り抜き不要です。——プロンプトで要求を追加するだけです。