{
    "version": "https://jsonfeed.org/version/1",
    "title": "AICU API Docs Blog",
    "home_page_url": "https://api.aicu.ai/docs/ja/blog",
    "description": "AICU API Docs Blog",
    "items": [
        {
            "id": "https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-1",
            "content_html": "<p><img decoding=\"async\" loading=\"lazy\" alt=\"白い布の上に立つ、黄金色のクリスタルのトロフィー。「INTERNATIONAL AI CREATOR AWARD 2026 WINNER」の文字。背景は木漏れ日の緑\" src=\"https://api.aicu.ai/docs/ja/assets/images/trophy-8f7729eec84db9c0945f1aa449e25e74.jpg\" width=\"1280\" height=\"721\" class=\"img__qZa\"></p>\n<p>国際AIクリエイターアワード2026 のトロフィーの写真が 1 枚あります。これを「ゆらめく輝き、風、影響力、知性と歴史と権威とクリエイティビティとコミュニティへの貢献を感じさせるティザー動画」にしてほしい、と頼まれたら、何と書けばよいでしょうか。</p>\n<p>AICU API の動画生成（<code>wan3.0-video</code>）に、この写真を最初のコマとして渡し、Alibaba Cloud の<strong>公式プロンプトガイド</strong>の書き方で 10 通りのプロンプトを試しました。全部の動画・プロンプト・かかった時間と AP を載せます。</p>\n<!-- -->\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"premise\">この記事の前提<a href=\"https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-1#premise\" class=\"hash-link\" aria-label=\"この記事の前提 への直接リンク\" title=\"この記事の前提 への直接リンク\" translate=\"no\">​</a></h2>\n<table><thead><tr><th></th><th></th></tr></thead><tbody><tr><td>モデル</td><td><code>wan3.0-video</code>（Alibaba Cloud の Wan 3.0）</td></tr><tr><td>入力</td><td>上のトロフィー写真（1671×941）を <code>first_frame</code> に渡す</td></tr><tr><td>解像度・長さ</td><td>720p・5 秒（10 番だけ 10 秒）</td></tr><tr><td>費用</td><td>720p は 1 秒 1,400 AP。5 秒で 7,000 AP、10 本で合計 77,000 AP（10 番は 10 秒で 14,000 AP）</td></tr><tr><td>かかった時間</td><td>1 本 111〜204 秒（投げてから mp4 を受け取るまで）</td></tr><tr><td>失敗</td><td>0 本</td></tr></tbody></table>\n<p>呼び出し方は <a class=\"\" href=\"https://api.aicu.ai/docs/ja/video-api\">Video API</a> のとおりです。最初のコマを渡すときは、こう書きます。</p>\n<div class=\"language-bash codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">curl -X POST https://api.aicu.ai/v1/video/generate \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H \"Authorization: Bearer $AICU_API_KEY\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H \"Content-Type: application/json\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -d \"{</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    \\\"model\\\": \\\"wan3.0-video\\\",</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    \\\"first_frame\\\": \\\"$(base64 -i trophy.jpg)\\\",</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    \\\"prompt\\\": \\\"Sunlight shimmers across the facets of the crystal trophy ...\\\",</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    \\\"resolution\\\": \\\"720p\\\",</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    \\\"seconds\\\": 5</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  }\"</span><br></div></code></pre></div></div>\n<p>10 本をまとめて投げる台本もダウンロードできます。標準ライブラリだけで動き、同時に 3 本まで投げ、作り終えたものは投げ直しません。既定は費用の見積もりだけです: <strong><a href=\"https://api.aicu.ai/docs/ja/samples/wan-teaser/wan-teaser-10.py\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\"><code>wan-teaser-10.py</code></a></strong></p>\n<div class=\"language-bash codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">curl -O https://api.aicu.ai/docs/samples/wan-teaser/wan-teaser-10.py</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">python3 wan-teaser-10.py --image trophy.jpg --out out/            # 見積もりだけ</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">python3 wan-teaser-10.py --image trophy.jpg --out out/ --apply    # 生成</span><br></div></code></pre></div></div>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"the-formulas\">公式ガイドの「式」<a href=\"https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-1#the-formulas\" class=\"hash-link\" aria-label=\"公式ガイドの「式」 への直接リンク\" title=\"公式ガイドの「式」 への直接リンク\" translate=\"no\">​</a></h2>\n<p>Alibaba Cloud Model Studio の <a href=\"https://www.alibabacloud.com/help/en/model-studio/text-to-video-prompt\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Text-to-video / image-to-video prompt guide</a> は、プロンプトを部品の足し算で書くように勧めています。今回使ったのは次の 4 つです。</p>\n<table><thead><tr><th>式</th><th>中身</th></tr></thead><tbody><tr><td>画像から動画</td><td><strong>動き ＋ カメラワーク</strong>。被写体・場面・画風は画像が決めるので、プロンプトでは書かない</td></tr><tr><td>美的コントロール</td><td>光源・光の質（逆光・リムライト・サイドライト）・時間帯・ショットの大きさ・アングル・レンズ・色調を足す</td></tr><tr><td>音</td><td>被写体 ＋ 場面 ＋ 動き ＋ <strong>音の説明</strong>（声・効果音・BGM）。台詞を止めたいときは <code>No dialogue.</code></td></tr><tr><td>マルチショット</td><td>全体の説明 ＋ <code>Shot 1 [0-3 s]: ...</code> のようにショット番号と時刻</td></tr></tbody></table>\n<p>ガイドは避けたほうがよいものも挙げています。画面内の文字を正確に出すこと、1 本の中での急な場面転換、実在の人物の名前などです。トロフィーには文字が入っているので、<strong>文字が崩れないか</strong>も見どころになりました。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"results\">10 通りの結果<a href=\"https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-1#results\" class=\"hash-link\" aria-label=\"10 通りの結果 への直接リンク\" title=\"10 通りの結果 への直接リンク\" translate=\"no\">​</a></h2>\n<p>各パターンの帯は、1 秒ごとのコマを左から並べたものです。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"p01\">01 依頼文をそのまま<a href=\"https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-1#p01\" class=\"hash-link\" aria-label=\"01 依頼文をそのまま への直接リンク\" title=\"01 依頼文をそのまま への直接リンク\" translate=\"no\">​</a></h3>\n<p>比較の基準です。抽象的な言葉だけを並べ、動きもカメラも書きません。</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">A teaser video that evokes shimmering radiance, wind, influence, intelligence, history,</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">authority, creativity, and contribution to the community.</span><br></div></code></pre></div></div>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"01 のコマの帯\" src=\"https://api.aicu.ai/docs/ja/assets/images/01-strip-c2212b5c402fd21f971c7dc9c939b6a3.jpg\" width=\"2400\" height=\"270\" class=\"img__qZa\"></p>\n<video controls=\"\" preload=\"none\" playsinline=\"\" width=\"100%\" poster=\"/docs/img/blog/wan-teaser/01-poster.jpg\" src=\"/docs/video/wan-teaser/01.mp4\"></video>\n<p><strong>モデルが自分でカットを割りました。</strong> 引き → 寄り → 引きと 5 秒の中で 3 回ショットが変わり、ショットごとにトロフィーの角度も少し変わります。「ティザーらしさ」はむしろ一番出ていますが、何が起きるかを書いていないので、次に同じものは出ません。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"p02\">02 基本の式（動き＋カメラ）<a href=\"https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-1#p02\" class=\"hash-link\" aria-label=\"02 基本の式（動き＋カメラ） への直接リンク\" title=\"02 基本の式（動き＋カメラ） への直接リンク\" translate=\"no\">​</a></h3>\n<p>ガイドの「画像から動画」の式そのままです。動き 2 つとカメラ 1 つ。</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Sunlight shimmers across the facets of the crystal trophy, and the white cloth ripples gently</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">in the breeze. The camera slowly pushes in.</span><br></div></code></pre></div></div>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"02 のコマの帯\" src=\"https://api.aicu.ai/docs/ja/assets/images/02-strip-75987c5429bd0ce4d37a3e6ee21cf155.jpg\" width=\"2400\" height=\"270\" class=\"img__qZa\"></p>\n<video controls=\"\" preload=\"none\" playsinline=\"\" width=\"100%\" poster=\"/docs/img/blog/wan-teaser/02-poster.jpg\" src=\"/docs/video/wan-teaser/02.mp4\"></video>\n<p>書いたとおり、ゆっくり寄っていきます。寄るにつれて文字が大きくなりますが、「2026 WINNER」は最後まで読めます。<strong>まずはこの形から始める</strong>のがよさそうです。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"p03\">03 ゆらめく輝き<a href=\"https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-1#p03\" class=\"hash-link\" aria-label=\"03 ゆらめく輝き への直接リンク\" title=\"03 ゆらめく輝き への直接リンク\" translate=\"no\">​</a></h3>\n<p>光の言葉（逆光・リムライト・暖色）を足し、カメラは止めます（<code>Fixed camera</code>）。</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Golden caustic light dances and ripples across the white cloth around the trophy, and a soft</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">lens flare pulses at its tip. Backlight, rim light, warm tones. Fixed camera.</span><br></div></code></pre></div></div>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"03 のコマの帯\" src=\"https://api.aicu.ai/docs/ja/assets/images/03-strip-7d719fa27e56903da225bcdbd1f08d9b.jpg\" width=\"2400\" height=\"270\" class=\"img__qZa\"></p>\n<video controls=\"\" preload=\"none\" playsinline=\"\" width=\"100%\" poster=\"/docs/img/blog/wan-teaser/03-poster.jpg\" src=\"/docs/video/wan-teaser/03.mp4\"></video>\n<p>10 本の中で<strong>一番安定しています</strong>。トロフィーは動かず、布の上の光の模様（コースティクス）だけが揺れ、先端にフレアが灯ります。ループ素材やブースの背景映像に向いています。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"p04\">04 風<a href=\"https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-1#p04\" class=\"hash-link\" aria-label=\"04 風 への直接リンク\" title=\"04 風 への直接リンク\" translate=\"no\">​</a></h3>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">A gust of wind sweeps across the scene: the white cloth billows in slow waves, the leaves behind</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">sway, and dappled light flickers over the crystal. The camera moves slowly to the left.</span><br></div></code></pre></div></div>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"04 のコマの帯\" src=\"https://api.aicu.ai/docs/ja/assets/images/04-strip-a796d5faa8b0165d3aadc1e4f5b7861c.jpg\" width=\"2400\" height=\"270\" class=\"img__qZa\"></p>\n<video controls=\"\" preload=\"none\" playsinline=\"\" width=\"100%\" poster=\"/docs/img/blog/wan-teaser/04-poster.jpg\" src=\"/docs/video/wan-teaser/04.mp4\"></video>\n<p>布が大きく波打ち、カメラが左へ流れます。動きは大きいのに、トロフィーの形と文字は保たれました。この 1 本だけ生成に 196 秒かかっています。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"p05\">05 権威（ローアングル）<a href=\"https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-1#p05\" class=\"hash-link\" aria-label=\"05 権威（ローアングル） への直接リンク\" title=\"05 権威（ローアングル） への直接リンク\" translate=\"no\">​</a></h3>\n<p>アングル（ローアングル）とカメラワーク（寄りながら見上げる）、光（サイドライト・ハイコントラスト）で「権威」を表します。</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">The trophy stands still and solemn as the light grows stronger along its edges. Low-angle shot,</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">the camera slowly pushes in and tilts up toward the glowing tip. Side light, high contrast.</span><br></div></code></pre></div></div>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"05 のコマの帯\" src=\"https://api.aicu.ai/docs/ja/assets/images/05-strip-b1a81ed21ad3b926f62218bc77df7f8c.jpg\" width=\"2400\" height=\"270\" class=\"img__qZa\"></p>\n<video controls=\"\" preload=\"none\" playsinline=\"\" width=\"100%\" poster=\"/docs/img/blog/wan-teaser/05-poster.jpg\" src=\"/docs/video/wan-teaser/05.mp4\"></video>\n<p>最後の 2 秒で一気に寄り、先端を見上げる構図で終わります。強い光が差し込む終わり方は、ティザーの締めに使えます。寄りきると文字は画面から外れます。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"p06\">06 歴史（タイムラプス）<a href=\"https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-1#p06\" class=\"hash-link\" aria-label=\"06 歴史（タイムラプス） への直接リンク\" title=\"06 歴史（タイムラプス） への直接リンク\" translate=\"no\">​</a></h3>\n<p>ガイドの画風の語彙にある「タイムラプス」で時間の流れを表します。</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Time-lapse photography: the shadow of the trophy sweeps slowly across the white cloth as the</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">light shifts from bright morning white to deep sunset gold. Fixed camera.</span><br></div></code></pre></div></div>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"06 のコマの帯\" src=\"https://api.aicu.ai/docs/ja/assets/images/06-strip-0b4197e1260998f4a21db51623b7cacb.jpg\" width=\"2400\" height=\"270\" class=\"img__qZa\"></p>\n<video controls=\"\" preload=\"none\" playsinline=\"\" width=\"100%\" poster=\"/docs/img/blog/wan-teaser/06-poster.jpg\" src=\"/docs/video/wan-teaser/06.mp4\"></video>\n<p>光が白から夕方の金色へ変わり、影が伸びていきます。ただし<strong>影の形がトロフィーと合っていません</strong>（布の上に帯のような影が現れる）。物理的な正しさより雰囲気が優先されるので、影を主役にするなら注意が要ります。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"p07\">07 知性（光の回路）<a href=\"https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-1#p07\" class=\"hash-link\" aria-label=\"07 知性（光の回路） への直接リンク\" title=\"07 知性（光の回路） への直接リンク\" translate=\"no\">​</a></h3>\n<p>「知性」を、クリスタルの中を走る光の線で見せます。カメラは小さく回り込みます。ガイドは回り込みの角度を 45 度未満に抑えるよう勧めているので、30 度未満と書きました。</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Inside the crystal, fine lines of light trace and branch like a network, rising slowly from the</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">base to the tip, while refracted light glints across its facets. Orbiting camera movement, a slow</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">arc of less than 30 degrees.</span><br></div></code></pre></div></div>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"07 のコマの帯\" src=\"https://api.aicu.ai/docs/ja/assets/images/07-strip-857d5615020886bc550345a495502d85.jpg\" width=\"2400\" height=\"270\" class=\"img__qZa\"></p>\n<video controls=\"\" preload=\"none\" playsinline=\"\" width=\"100%\" poster=\"/docs/img/blog/wan-teaser/07-poster.jpg\" src=\"/docs/video/wan-teaser/07.mp4\"></video>\n<p><strong>一番「書いたとおり」に出た 1 本</strong>です。根から枝分かれする光の線が、下から上へトロフィーを満たしていきます。そのぶん線が文字の上にも重なるので、文字を読ませたいカットには向きません。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"p08\">08 コミュニティ（広がる光）<a href=\"https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-1#p08\" class=\"hash-link\" aria-label=\"08 コミュニティ（広がる光） への直接リンク\" title=\"08 コミュニティ（広がる光） への直接リンク\" translate=\"no\">​</a></h3>\n<p>「影響力」と「コミュニティへの貢献」を、トロフィーから外へ広がる光で表します。最後は引いて全体を見せます。</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Small sparks of golden light spread outward from the base of the trophy across the cloth like</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">ripples, multiplying as they travel toward the edges of the frame. The camera slowly pulls out</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">to reveal the whole scene.</span><br></div></code></pre></div></div>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"08 のコマの帯\" src=\"https://api.aicu.ai/docs/ja/assets/images/08-strip-3f53fcaa1f0e6b377e9b4233dac798d8.jpg\" width=\"2400\" height=\"270\" class=\"img__qZa\"></p>\n<video controls=\"\" preload=\"none\" playsinline=\"\" width=\"100%\" poster=\"/docs/img/blog/wan-teaser/08-poster.jpg\" src=\"/docs/video/wan-teaser/08.mp4\"></video>\n<p>光の輪が同心円状に布の上を広がり、カメラが大きく引きます。絵としての分かりやすさは 07 と並んで一番です。引いてトロフィーが小さくなると、<strong>文字は潰れて読めなくなります</strong>。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"p09\">09 音の式（効果音＋BGM）<a href=\"https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-1#p09\" class=\"hash-link\" aria-label=\"09 音の式（効果音＋BGM） への直接リンク\" title=\"09 音の式（効果音＋BGM） への直接リンク\" translate=\"no\">​</a></h3>\n<p>ガイドの音の式で、効果音（風・クリスタルの響き）と BGM（弦と金管のオーケストラ）を指定し、<code>No dialogue.</code> で台詞を止めます。</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">The white cloth ripples in the wind and light shimmers across the crystal trophy. Sound: wind</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">rustling through the leaves, a clear crystal chime as a flare passes the tip, and a slow, rising</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">orchestral score with strings and soft brass. No dialogue.</span><br></div></code></pre></div></div>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"09 のコマの帯\" src=\"https://api.aicu.ai/docs/ja/assets/images/09-strip-384aea0903da763649bedfe83dc08c2b.jpg\" width=\"2400\" height=\"270\" class=\"img__qZa\"></p>\n<video controls=\"\" preload=\"none\" playsinline=\"\" width=\"100%\" poster=\"/docs/img/blog/wan-teaser/09-poster.jpg\" src=\"/docs/video/wan-teaser/09.mp4\"></video>\n<p>映像は 02〜04 に近い穏やかな動きです。音について 1 つ分かったのは、<strong>音を指定しなかった 01〜08 にも音が付いている</strong>ことです。Wan 3.0 は何も書かなくても音を作ります。上映でナレーションや BGM を後から乗せるなら、生成時の音を差し替える前提で考えるか、ここで欲しい音をはっきり書いておくのが確実です。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"p10\">10 マルチショット（10 秒）<a href=\"https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-1#p10\" class=\"hash-link\" aria-label=\"10 マルチショット（10 秒） への直接リンク\" title=\"10 マルチショット（10 秒） への直接リンク\" translate=\"no\">​</a></h3>\n<p>ガイドのマルチショットの式で、3 つのショットを時刻つきで書きます。</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">A teaser for an international award, in three shots. Shot 1 [0-3 s]: close-up, light glides</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">along the crystal edge of the trophy, fixed camera. Shot 2 [3-6 s]: medium shot, the white cloth</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">ripples in the wind and golden caustics dance around the base, the camera moves left. Shot 3</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">[6-10 s]: the camera pulls out and rises to reveal the trophy standing in sunlight against the</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">green trees, and a lens flare blooms at its tip. Sound: soft wind, a crystal chime, an orchestral</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">swell. No dialogue.</span><br></div></code></pre></div></div>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"10 のコマの帯（1 秒ごと・10 コマ）\" src=\"https://api.aicu.ai/docs/ja/assets/images/10-strip-2c4850472866e1972f6faa1fc644b199.jpg\" width=\"4000\" height=\"225\" class=\"img__qZa\"></p>\n<video controls=\"\" preload=\"none\" playsinline=\"\" width=\"100%\" poster=\"/docs/img/blog/wan-teaser/10-poster.jpg\" src=\"/docs/video/wan-teaser/10.mp4\"></video>\n<p>3 つのショットに分かれ、2 つ目で台座の光の模様に寄り、最後は引いてフレアで終わります。構成はほぼ指定どおりです。ただし <strong>Shot 1 は寄りではなく、元の写真に近い引きの画</strong>で始まりました。最初のコマを写真に固定しているので、1 つ目のショットはどうしてもその構図から始まります。寄りから始めたいなら、寄りの画像を別に作って <code>first_frame</code> に渡すのが確実です。生成は 204 秒、14,000 AP でした。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"takeaways\">分かったこと<a href=\"https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-1#takeaways\" class=\"hash-link\" aria-label=\"分かったこと への直接リンク\" title=\"分かったこと への直接リンク\" translate=\"no\">​</a></h2>\n<table><thead><tr><th></th><th>結果</th></tr></thead><tbody><tr><td>抽象語だけ（01）</td><td>モデルが勝手にカットを割る。雰囲気は出るが、狙いどおりにはならない</td></tr><tr><td>動き＋カメラ（02〜05）</td><td>書いたカメラワークにはよく従う。寄り・左へ流す・見上げる、どれも出た</td></tr><tr><td>固定カメラ＋光の語彙（03）</td><td>一番安定。ループや背景映像向き</td></tr><tr><td>比喩を絵にする（07・08）</td><td>「光の回路」「広がる光」は書いたとおりに出る。代わりに文字が隠れたり潰れたりする</td></tr><tr><td>時間の表現（06）</td><td>光の色は変わるが、影の形は正確ではない</td></tr><tr><td>音</td><td>指定しなくても全部に音が付く。欲しい音は書く、要らなければ後で差し替える</td></tr><tr><td>マルチショット（10）</td><td>構成は従う。最初のショットは <code>first_frame</code> の構図に引っ張られる</td></tr></tbody></table>\n<p><strong>文字の入った被写体</strong>では、カメラを大きく動かさない（03）か、寄りで文字を見せる（02）のが安全でした。引きや光のエフェクトが重なるカット（07・08）は、文字の読めるカットと組み合わせて編集すると、ティザーとしてまとまります。</p>\n<p>音について 1 つ注意があります。手元の音声認識にかけると、04 と 08 で短い英語の言葉のようなものが検出されました。音声認識は BGM の上で言葉をでっち上げることがあるので、本当に台詞が入っているかは分かりません。<strong>上映に使う前に、必ず耳で確かめてください。</strong></p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"cost\">費用のまとめ<a href=\"https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-1#cost\" class=\"hash-link\" aria-label=\"費用のまとめ への直接リンク\" title=\"費用のまとめ への直接リンク\" translate=\"no\">​</a></h2>\n<table><thead><tr><th></th><th></th></tr></thead><tbody><tr><td>5 秒 × 9 本</td><td>7,000 AP × 9 = 63,000 AP</td></tr><tr><td>10 秒 × 1 本</td><td>14,000 AP</td></tr><tr><td>合計</td><td><strong>77,000 AP</strong>（約 7.7 ドル）</td></tr></tbody></table>\n<p>失敗した生成は課金されません（AP は開始時に預かり、失敗すると全額戻ります）。今回は 10 本とも 1 回で成功しました。</p>\n<p>⭐︎ 価格は原稿公開時（2026 年 11 月 12 日）の値です。現在の単価は <a class=\"\" href=\"https://api.aicu.ai/docs/ja/pricing\">料金</a> と <code>GET /v1/models</code> で確かめられます。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"related\">関連<a href=\"https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-1#related\" class=\"hash-link\" aria-label=\"関連 への直接リンク\" title=\"関連 への直接リンク\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><a class=\"\" href=\"https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-2\">Wan 3.0 でつくるキービジュアル (2) — FLF2V でループ素材とロゴへのトランジション</a></li>\n<li class=\"\"><a class=\"\" href=\"https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-3\">Wan 3.0 でつくるキービジュアル (3) — 白からロゴ、写真、ループ、白へ：FLF2V をつないで 1 本に</a></li>\n<li class=\"\"><a class=\"\" href=\"https://api.aicu.ai/docs/ja/video-api\">Video API</a> — 呼び出し方・最初と最後のコマ・キャラクターの指定</li>\n<li class=\"\"><a href=\"https://www.alibabacloud.com/help/en/model-studio/text-to-video-prompt\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Alibaba Cloud: Text-to-video / image-to-video prompt guide</a> — 今回使った式の出典</li>\n</ul>\n<hr>\n<p><strong>Special Thanks to Alibaba Wan 3.0</strong></p>",
            "url": "https://api.aicu.ai/docs/ja/blog/wan-3-0-key-visual-1",
            "title": "Wan 3.0 でつくるキービジュアル (1) — トロフィー写真 1 枚から、公式プロンプトガイドで 10 通りのティザー",
            "summary": "白い布の上に立つ、黄金色のクリスタルのトロフィー。「INTERNATIONAL AI CREATOR AWARD 2026 WINNER」の文字。背景は木漏れ日の緑",
            "date_modified": "2026-11-12T00:00:00.000Z",
            "author": {
                "name": "AICU API Team",
                "url": "https://api.aicu.ai"
            },
            "tags": [
                "video",
                "wan",
                "guide",
                "prompting"
            ]
        },
        {
            "id": "https://api.aicu.ai/docs/ja/blog/gemini-api-prepay-one-key",
            "content_html": "<p><img decoding=\"async\" loading=\"lazy\" alt=\"窓辺の木の机で、緑の髪の Nao Verde がノートパソコンを指さし、ピンクの髪の Elena Bloom が頬杖をついて笑顔でのぞきこんでいる。机の上には、針が緑を指している残量メーターと、硬貨と、 1 本の真鍮の鍵\" src=\"https://api.aicu.ai/docs/ja/assets/images/hero-6605a2d113b9c35c5377d5af42b4e206.jpg\" width=\"1536\" height=\"1024\" class=\"img__qZa\"></p>\n<p>Google AI Studio の Gemini API は、支払いが後払いから前払いに変わります。通知を受け取ったアカウントでは、2026年10月12日が対応の期限です。ご自分のキーで使い続ける方法と、api.aicu.ai の鍵 1 本にまとめる方法を、AiCuty の Nao Verde と Elena Bloom がご紹介します。</p>\n<!-- -->\n<p><em>2026年10月11日 ｜ Nao Verde × Elena Bloom</em></p>\n<p>🌸 <strong>Elena Bloom</strong>\nこんにちは！ AiCutyのエレナ・ブルームです♪ みなさん、GoogleのAI「Gemini」や、画像生成AI「Nano Banana」は使っていますか？ 今日は、これらのAPIを使ってアプリや作品を開発している方に、大切なお知らせがあります。Google AI Studioから、一部の開発者に「2026年10月12日までに、お支払い方法を変更してください」という通知が届いているんです。これまで動いていたアプリが突然動かなくなるかもしれないって、ちょっと心配ですよね。そこで今日は、AiCutyの技術担当、ナオくんに教えてもらいましょう！</p>\n<p>💚 <strong>Nao Verde</strong>\nやっほー、AiCutyの音楽と開発技術担当、ナオ・ヴェルデだよ。今回は少し地味だけど、開発者にとっては重要な話だな。GoogleのGemini APIで、後払いから前払いへの移行が進んでいるんだ。これ自体は今年3月から始まっている仕組みだけど、今回通知を受け取ったアカウントでは、10月12日が対応期限になっている。そして実は、<strong>AICUのAPIプラットフォーム「api.aicu.ai」でも、GeminiとNano Bananaに対応している</strong>んだ。Googleのキーをそのまま使う方法と、AICU APIにまとめる方法の両方を紹介するよ。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"10月12日何が変わるの\">10月12日、何が変わるの？<a href=\"https://api.aicu.ai/docs/ja/blog/gemini-api-prepay-one-key#10%E6%9C%8812%E6%97%A5%E4%BD%95%E3%81%8C%E5%A4%89%E3%82%8F%E3%82%8B%E3%81%AE\" class=\"hash-link\" aria-label=\"10月12日、何が変わるの？ への直接リンク\" title=\"10月12日、何が変わるの？ への直接リンク\" translate=\"no\">​</a></h2>\n<p>🌸 <strong>Elena</strong>\n「前払いに変わる」というのは、具体的にはどういうことなんでしょう？</p>\n<p>💚 <strong>Nao</strong>\nこれまで後払いだったアカウントでは、Gemini APIを使った分の料金があとから請求されていた。前払いになると、先にクレジットを購入しておいて、APIを使うたびにその残高から料金が引かれる仕組みになる。スマートフォンのプリペイド残高に近い考え方だな。大事なのは、<strong>前払い残高がゼロになると、有料のGemini APIを呼び出せなくなる</strong>こと。APIキーが正しくても、コードに問題がなくても、支払い状態が原因でリクエストが失敗する可能性があるんだ。</p>\n<p>🌸 <strong>Elena</strong>\n昨日まで動いていたプログラムが、明日には止まることもあるんですね。</p>\n<p>💚 <strong>Nao</strong>\nそういうこと。実際、Googleから2026年8月19日に届いた通知には、次のように書かれていた。</p>\n<blockquote>\n<p>2026 年 10 月 12 日より前に前払いへの移行とクレジットの購入を完了されなかった場合、サービスが中断されます。</p>\n</blockquote>\n<p>出典：Google AI Studio チームからAICUに届いた通知「2026 年 10 月 12 日までに Google AI Studio で Gemini API のお支払い方法を更新してください」（2026年8月19日）</p>\n<p>ただし、全員が10月12日に一斉移行するわけじゃない。今回の期限は、この通知を受け取ったアカウントについてのものだよ。Gemini APIの無料枠だけを使っている人は、今回の前払い移行に対応する必要はないとGoogleも案内している。まずは自分が対象かどうか、Google AI Studioで確認してみよう。</p>\n<p><a href=\"https://aistudio.google.com/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">https://aistudio.google.com/</a></p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"googleのapiキーを使い続けるには\">GoogleのAPIキーを使い続けるには？<a href=\"https://api.aicu.ai/docs/ja/blog/gemini-api-prepay-one-key#google%E3%81%AEapi%E3%82%AD%E3%83%BC%E3%82%92%E4%BD%BF%E3%81%84%E7%B6%9A%E3%81%91%E3%82%8B%E3%81%AB%E3%81%AF\" class=\"hash-link\" aria-label=\"GoogleのAPIキーを使い続けるには？ への直接リンク\" title=\"GoogleのAPIキーを使い続けるには？ への直接リンク\" translate=\"no\">​</a></h2>\n<p>🌸 <strong>Elena</strong>\nすでにGeminiでアプリを作っている方は、どうすればよいのでしょう？</p>\n<p>💚 <strong>Nao</strong>\n基本は3つ。まずGoogle AI Studioのお支払いページで対象の請求先を前払いに切り替える。次にクレジットを購入する。最後に、必要ならオートチャージを設定する。オートチャージは、残高が少なくなったとき自動でクレジットを補充してくれる機能だな。</p>\n<p>🌸 <strong>Elena</strong>\n便利そうですね。</p>\n<p>💚 <strong>Nao</strong>\n便利だけど注意もある。月間の自動購入上限を設定できるんだけど、そこに達すると追加購入が止まる（手動での購入は、この上限に数えられない）。想定外の出費を防げる反面、利用量が急に増えると残高不足でサービス停止につながることもある。開発用の小さなプロジェクトなら手動補充でもいいけど、常時稼働するアプリなら残高監視や通知まで考えたほうがいい。それから、Gemini APIの前払い残高はプロジェクト単位ではなく、Cloud Billingアカウント単位で管理される。複数のプロジェクトが同じ請求先を使っていれば、その残高を共有する仕組みだ。APIキーごとに独立した残高があるわけじゃないよ。</p>\n<p>Google公式ドキュメント\n<a href=\"https://ai.google.dev/gemini-api/docs/billing\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">https://ai.google.dev/gemini-api/docs/billing</a></p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"aicuでも実際に切り替えてみました\">AICUでも実際に切り替えてみました<a href=\"https://api.aicu.ai/docs/ja/blog/gemini-api-prepay-one-key#aicu%E3%81%A7%E3%82%82%E5%AE%9F%E9%9A%9B%E3%81%AB%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F\" class=\"hash-link\" aria-label=\"AICUでも実際に切り替えてみました への直接リンク\" title=\"AICUでも実際に切り替えてみました への直接リンク\" translate=\"no\">​</a></h2>\n<p>🌸 <strong>Elena</strong>\nAICUでも今回の切り替えを試したんですよね？</p>\n<p>💚 <strong>Nao</strong>\nうん。2026年10月11日、api.aicu.aiの画像生成で使っているGoogle AI Studioの請求設定を、実際に前払いへ切り替えたよ。管理画面には「前払いによるお支払いを使用する必要があります」という案内が表示されていた。そこから移行を確定して、クレジットを購入した。確認画面には、切り替えは確定するとすぐ反映されること、後払いへ戻せないこと、前払いにしても利用ティアは変わらないこと、購入したクレジットはGemini API専用で有効期限は購入から1年間であること、などが書かれていた。購入したクレジットは原則払い戻しできない。ただし、Googleの公式ドキュメントには、条件を満たして後払いアカウントへ移行する場合の例外も記載されている。</p>\n<p>🌸 <strong>Elena</strong>\nたくさん買えば安心、というわけでもないんですね。</p>\n<p>💚 <strong>Nao</strong>\nそうだな。必要な利用量を見ながら買うのがよさそうだ。そして切り替え後、本番環境でちゃんとテストもした。<strong>AICU APIから <code>nano-banana-2.1</code> と <code>nano-banana</code> をそれぞれ呼び出して、画像を1枚ずつ生成したんだ。</strong> どちらもHTTP 200で成功。<code>nano-banana-2.1</code> は約11.4秒、<code>nano-banana</code> は約10.9秒で画像が返ってきた。キャッシュを使わない生成で確認しているよ。</p>\n<p>🌸 <strong>Elena</strong>\nちゃんと画像が作れたんですね♪</p>\n<p>💚 <strong>Nao</strong>\nしかも重要なのは、<strong>呼び出す側のコードは1行も変更していない</strong>こと。Google側の支払い方法が変わっても、AICU APIを利用するアプリケーション側は、同じAPIを呼び続けられたんだ。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"geminiもnano-bananaもaicu-apiの鍵1本で使える\">GeminiもNano Bananaも、AICU APIの鍵1本で使える<a href=\"https://api.aicu.ai/docs/ja/blog/gemini-api-prepay-one-key#gemini%E3%82%82nano-banana%E3%82%82aicu-api%E3%81%AE%E9%8D%B51%E6%9C%AC%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B\" class=\"hash-link\" aria-label=\"GeminiもNano Bananaも、AICU APIの鍵1本で使える への直接リンク\" title=\"GeminiもNano Bananaも、AICU APIの鍵1本で使える への直接リンク\" translate=\"no\">​</a></h2>\n<p>🌸 <strong>Elena</strong>\nでも、Google AI Studioでそのまま使う方法があるのに、AICU APIを利用するメリットは何でしょうか？</p>\n<p>💚 <strong>Nao</strong>\nいちばん分かりやすいのは、<strong>APIキーと支払いの管理をまとめられること</strong>だな。AICU APIでは、GoogleのGeminiだけじゃなく、OpenAIのGPTシリーズや、さまざまなAIモデルを共通のAPIキーで利用できる。画像生成も同じで、Nano Bananaなどを同じAICU APIから呼び出せる。支払いも、AP（AICUポイント）という共通残高から引かれる仕組みだ。Google用、OpenAI用、そのほかのAIサービス用と、それぞれのキーや残高を管理する代わりに、AICU APIのキー1本で開発を進められる。もちろん、モデルごとに料金や機能は異なるから、全部が同じ価格になるわけではないよ。</p>\n<p>🌸 <strong>Elena</strong>\nいろんなAIを組み合わせて作品を作る人に便利なんですね。</p>\n<p>💚 <strong>Nao</strong>\nそういうこと。たとえば、文章の構成をGeminiで考えて、画像をNano Bananaで生成して、別のAIモデルで文章を整える。そういう組み合わせをするときに、認証や課金をまとめられるのは実務上かなり便利なんだ。利用できるモデルは<a href=\"https://api.aicu.ai/models\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">モデル一覧</a>から確認できるよ。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"pythonからgeminiを呼び出してみよう\">PythonからGeminiを呼び出してみよう<a href=\"https://api.aicu.ai/docs/ja/blog/gemini-api-prepay-one-key#python%E3%81%8B%E3%82%89gemini%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86\" class=\"hash-link\" aria-label=\"PythonからGeminiを呼び出してみよう への直接リンク\" title=\"PythonからGeminiを呼び出してみよう への直接リンク\" translate=\"no\">​</a></h2>\n<p>🌸 <strong>Elena</strong>\n実際にプログラムから利用するときは、どう書けばよいのでしょう？</p>\n<p>💚 <strong>Nao</strong>\n会話AIなら簡単だよ。AICU APIはOpenAI互換のチャットAPIを提供しているから、OpenAIのPython SDKを利用できる。たとえば、Gemini 3.6 Flashに日本でいちばん高い山を尋ねるなら、こんな感じ。あらかじめ、環境変数 <code>AICU_API_KEY</code> に自分のAPIキーを入れておこう。</p>\n<div class=\"language-python codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-python codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token keyword\" style=\"color:#00009f\">from</span><span class=\"token plain\"> openai </span><span class=\"token keyword\" style=\"color:#00009f\">import</span><span class=\"token plain\"> OpenAI</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">import</span><span class=\"token plain\"> os</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">client </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> OpenAI</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    base_url</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"https://api.aicu.ai/v1\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    api_key</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\">os</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">environ</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token string\" style=\"color:#e3116c\">\"AICU_API_KEY\"</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">res </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> client</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">chat</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">completions</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">create</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    model</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"gemini-3.6-flash\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    messages</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">            </span><span class=\"token string\" style=\"color:#e3116c\">\"role\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"user\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">            </span><span class=\"token string\" style=\"color:#e3116c\">\"content\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"日本でいちばん高い山を一語で答えてください。\"</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">print</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">res</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">choices</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token number\" style=\"color:#36acaa\">0</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">message</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">content</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><br></div></code></pre></div></div>\n<p>💚 <strong>Nao</strong>\nポイントは、接続先の <code>base_url</code> とAPIキー、それからモデル名だね。すでにOpenAI互換APIを利用しているプログラムなら、基本的な呼び出し方法を変えずに使える。10月11日にAICUの本番環境で試したところ、<code>gemini-3.6-flash</code> は「富士山」、<code>gemini-flash</code> は「富士」と回答した。どちらも2秒以内だったよ。1回の利用で消費したAPは、APIレスポンスの <code>X-AICU-AP-Cost</code> ヘッダから確認できる。Google公式SDKの <code>generateContent</code> をそのまま持ってくることはできないけど、OpenAI互換の形に直せば移行しやすい。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"nano-banana-21で画像を作ってみよう\">Nano Banana 2.1で画像を作ってみよう<a href=\"https://api.aicu.ai/docs/ja/blog/gemini-api-prepay-one-key#nano-banana-21%E3%81%A7%E7%94%BB%E5%83%8F%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86\" class=\"hash-link\" aria-label=\"Nano Banana 2.1で画像を作ってみよう への直接リンク\" title=\"Nano Banana 2.1で画像を作ってみよう への直接リンク\" translate=\"no\">​</a></h2>\n<p>🌸 <strong>Elena</strong>\n画像生成のNano Bananaも試してみたいです！</p>\n<p>💚 <strong>Nao</strong>\nもちろん。<code>nano-banana-2.1</code> はAICU APIの画像生成エンドポイントから呼び出せる。たとえば、机の上に置かれた青い陶器のカップを生成するなら、こんな感じ。</p>\n<div class=\"language-bash codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">curl -s -X POST https://api.aicu.ai/v1/images/generations \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H \"Authorization: Bearer $AICU_API_KEY\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H \"Content-Type: application/json\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -d '{</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    \"model\": \"nano-banana-2.1\",</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    \"prompt\": \"a blue ceramic cup on a wooden desk, morning light, product photo\"</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  }' \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  | python3 -c \"import sys,json,base64; open('out.jpg','wb').write(base64.b64decode(json.load(sys.stdin)['data'][0]['b64_json']))\"</span><br></div></code></pre></div></div>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"上のコマンドが実際に返した画像。朝の光が差す木の机に、湯気の立つ青い陶器のカップが置かれている\" src=\"https://api.aicu.ai/docs/ja/assets/images/cup-2d62446558671e9e9715365b030a4241.jpg\" width=\"1280\" height=\"714\" class=\"img__qZa\"></p>\n<p><em>上のコマンドを 2026年10月11日 に実行して返ってきた画像です（表示用に縮小しています）。</em></p>\n<p>💚 <strong>Nao</strong>\n応答に含まれる <code>b64_json</code> は画像データをBase64で表したもので、これをデコードすれば画像ファイルとして保存できる。今回の本番テストでは、10秒前後で画像が返ってきたよ。</p>\n<p>🌸 <strong>Elena</strong>\nたったこれだけで画像生成ができるんですね！</p>\n<p>💚 <strong>Nao</strong>\nそうだね。ただし、毎回同じ時間で生成できるとは限らないし、モデルの混雑や画像の内容によっても時間は変わる。それから、APIレスポンスに画像取得用のURLが含まれる場合も、ブラウザに直接貼るだけでは表示できないことがある。認証が必要なURLだからね。Webアプリに組み込む場合は、Base64の画像データを使うか、自分のサーバー側で安全に取得して配信する方法を選ぼう。APIキーをブラウザのJavaScriptに直接埋め込まないことも大切だ。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"apiの前払いはこれからのクリエイターに何を変える\">APIの前払いは、これからのクリエイターに何を変える？<a href=\"https://api.aicu.ai/docs/ja/blog/gemini-api-prepay-one-key#api%E3%81%AE%E5%89%8D%E6%89%95%E3%81%84%E3%81%AF%E3%81%93%E3%82%8C%E3%81%8B%E3%82%89%E3%81%AE%E3%82%AF%E3%83%AA%E3%82%A8%E3%82%A4%E3%82%BF%E3%83%BC%E3%81%AB%E4%BD%95%E3%82%92%E5%A4%89%E3%81%88%E3%82%8B\" class=\"hash-link\" aria-label=\"APIの前払いは、これからのクリエイターに何を変える？ への直接リンク\" title=\"APIの前払いは、これからのクリエイターに何を変える？ への直接リンク\" translate=\"no\">​</a></h2>\n<p>🌸 <strong>Elena</strong>\nAPIを使った作品制作では、お金の管理も大切なんですね。</p>\n<p>💚 <strong>Nao</strong>\nそうなんだ。AIを使ったアプリやサービスを公開するなら、モデルの性能だけじゃなく、<strong>APIを継続して呼び出せる状態をどう維持するか</strong>も開発の一部になる。前払いのAPIでは、残高が足りなくなるとサービスに影響が出る。今回のGoogleの変更は、開発者が自分のAPIキーや請求設定を整理する、いいきっかけになると思う。</p>\n<p>🌸 <strong>Elena</strong>\nGoogle AI Studioで引き続き使う方は、まずお支払い設定を確認ですね。</p>\n<p>💚 <strong>Nao</strong>\nうん。そして、もうひとつの選択肢がAICU APIだ。AICU APIもAPを事前購入して使う方式だから、残高管理そのものがなくなるわけじゃない。ただし、Googleやほかのプロバイダーの請求設定を、利用者がそれぞれ管理する必要はなくなる。AICU側で各サービスとの接続を維持して、利用者は共通のAPIキーとAP残高でモデルを使えるようにしている。今回も、Google側の前払い移行を済ませたあと、実際にNano Bananaで画像生成が成功するところまで確認した。もちろん、すべての上流サービスの停止を防げるという意味ではないけど、個々の開発者が管理しなければならないものは減らせるんだ。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"せっかくだからaicu-apiを使ってみませんか\">せっかくだから、AICU APIを使ってみませんか？<a href=\"https://api.aicu.ai/docs/ja/blog/gemini-api-prepay-one-key#%E3%81%9B%E3%81%A3%E3%81%8B%E3%81%8F%E3%81%A0%E3%81%8B%E3%82%89aicu-api%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%9B%E3%82%93%E3%81%8B\" class=\"hash-link\" aria-label=\"せっかくだから、AICU APIを使ってみませんか？ への直接リンク\" title=\"せっかくだから、AICU APIを使ってみませんか？ への直接リンク\" translate=\"no\">​</a></h2>\n<p>🌸 <strong>Elena</strong>\nここまで読んでくださってありがとうございます♪ 今回のGoogle AI Studioの変更は、ちょっと難しそうなお知らせでしたが、整理してみると、やることは明確ですね。GoogleのAPIキーをそのまま利用する方は、まず前払いへの移行が必要かどうかを確認しましょう。そして、Geminiだけでなく、Nano Bananaやほかの生成AIも使ってみたい方には、もうひとつの方法があります。<strong>AICU APIなら、GeminiもNano Bananaも、ほかのAIモデルも、共通のAPIキーとAP残高で利用できます！</strong></p>\n<p>💚 <strong>Nao</strong>\nAPIを使う目的は、APIキーを管理することじゃない。面白いものを作ったり、便利なアプリを開発したり、自分のアイデアを動く形にすることだと思う。だから、そのための接続や支払いの管理は、できるだけシンプルなほうがいい。AICU APIでは、今回のGeminiの前払い移行にも対応したよ。Pythonやcurlから試せるので、すでにAPIを使っている人も、これから始める人も、ぜひ触ってみてほしいな。</p>\n<p>🌸 <strong>Elena</strong>\n私も、いろんなAIを組み合わせて、新しい作品を作ってみたくなりました！ みなさんも、ぜひAICU APIを使ってみてくださいね♪</p>\n<ul>\n<li class=\"\">AICU API: <a href=\"https://api.aicu.ai/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">https://api.aicu.ai/</a></li>\n<li class=\"\">使えるモデルの一覧: <a href=\"https://api.aicu.ai/models\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">https://api.aicu.ai/models</a></li>\n<li class=\"\">最新のお知らせ: <a href=\"https://api.aicu.ai/news\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">https://api.aicu.ai/news</a></li>\n<li class=\"\">API仕様: <a href=\"https://api.aicu.ai/openapi.json\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">https://api.aicu.ai/openapi.json</a></li>\n</ul>\n<p>それでは、また次の記事でお会いしましょう！</p>\n<p>🌸 Elena Bloom ＆ 💚 Nao Verde\n<strong>「つくる人をつくる」AICU</strong></p>\n<hr>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"参考資料\">参考資料<a href=\"https://api.aicu.ai/docs/ja/blog/gemini-api-prepay-one-key#%E5%8F%82%E8%80%83%E8%B3%87%E6%96%99\" class=\"hash-link\" aria-label=\"参考資料 への直接リンク\" title=\"参考資料 への直接リンク\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\">Google AI Studio: <a href=\"https://aistudio.google.com/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">https://aistudio.google.com/</a></li>\n<li class=\"\">Google Gemini API 公式ドキュメント（Billing）: <a href=\"https://ai.google.dev/gemini-api/docs/billing\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">https://ai.google.dev/gemini-api/docs/billing</a></li>\n<li class=\"\">AICU API: <a href=\"https://api.aicu.ai/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">https://api.aicu.ai/</a></li>\n</ul>\n<p>※この記事は2026年10月11日時点の情報に基づいています。Google AI Studioの移行期限はアカウントへの通知によって異なる場合があります。AICU APIの提供モデル、利用料金、利用条件は変更される可能性があります。最新情報は各公式サイトをご確認ください。記事中のサンプルは、公開している形のまま定期的に実行して動作を確かめています。</p>",
            "url": "https://api.aicu.ai/docs/ja/blog/gemini-api-prepay-one-key",
            "title": "Gemini API が前払いに変わります。Gemini と Nano Banana を、1 本の鍵で使い続ける方法",
            "summary": "窓辺の木の机で、緑の髪の Nao Verde がノートパソコンを指さし、ピンクの髪の Elena Bloom が頬杖をついて笑顔でのぞきこんでいる。机の上には、針が緑を指している残量メーターと、硬貨と、 1 本の真鍮の鍵",
            "date_modified": "2026-10-11T00:00:00.000Z",
            "author": {
                "name": "AICU API Team",
                "url": "https://api.aicu.ai"
            },
            "tags": [
                "getting-started",
                "images",
                "llm",
                "pricing"
            ]
        },
        {
            "id": "https://api.aicu.ai/docs/ja/blog/one-key-six-calls",
            "content_html": "<p><img decoding=\"async\" loading=\"lazy\" alt=\"真鍮の鍵から 5 本の色の線が伸び、音の波形・絵筆・チェックボックス・吹き出し・フィルムのコマにつながっている挿絵\" src=\"https://api.aicu.ai/docs/ja/assets/images/hero-fe81d14f1b2f0b0be5aed60367ece8b8.jpg\" width=\"1408\" height=\"768\" class=\"img__qZa\"></p>\n<p>音声合成、画像生成、型のついた判断、そして OpenAI 互換のチャット。<a href=\"https://api.aicu.ai/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">api.aicu.ai</a> では、これらすべてが <strong>鍵 1 本</strong>の向こうにあります。この記事では、それを順番に全部叩いて、<strong>そのとき実際に引かれた AP</strong> をそのまま載せます。価格表からの引き写しではなく、レスポンスヘッダ <code>X-AICU-AP-Cost</code> の値です。</p>\n<p>記事全体の合計は <strong>1,185 AP、およそ 0.12 USD</strong> でした。</p>\n<!-- -->\n<blockquote>\n<p><strong>明日、会場でお会いしましょう — 9 月 23 日（水・祝）、浜松町。</strong> AICU Japan が <a href=\"https://www.genai-expo.com/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">生成AIなんでも展示会 Vol.6</a> に出展します。ブースは <strong>A-7 ／ A-8</strong>、12:00〜17:30、東京都立産業貿易センター 浜松町館 5F。この記事の内容はその場で全部お見せできますし、ブースは <a href=\"https://aicu.ai/award\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">『国際AIクリエイターアワード2026』</a> のエントリー受付コーナーも兼ねています。どうぞ目の前で壊しにきてください。</p>\n</blockquote>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"まず鍵を-1-本\">まず鍵を 1 本<a href=\"https://api.aicu.ai/docs/ja/blog/one-key-six-calls#%E3%81%BE%E3%81%9A%E9%8D%B5%E3%82%92-1-%E6%9C%AC\" class=\"hash-link\" aria-label=\"まず鍵を 1 本 への直接リンク\" title=\"まず鍵を 1 本 への直接リンク\" translate=\"no\">​</a></h2>\n<p><a href=\"https://api.aicu.ai/signup\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">api.aicu.ai/signup</a> で登録し、<a href=\"https://api.aicu.ai/dashboard/keys\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">api.aicu.ai/dashboard/keys</a> で鍵を発行します。ベータ期間中は、新しいアカウントに <strong>100,000 AP（約 10 USD）</strong> が入ります。この記事の内容を 80 回ぶん試せる量です。</p>\n<p>AP は前払いで、月額の従量契約はありません。<strong>1 AP = 0.0001 USD</strong>。選ぶプランも、買う席数もありません。鍵が失効しても何も消えません。利用履歴も残高もそのまま、鍵が 401 を返すようになるだけです。</p>\n<div class=\"language-bash codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">export AICU_API_KEY=aicu_...    # /dashboard/keys で発行した鍵</span><br></div></code></pre></div></div>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"1-日本語の読み上げ--5-ap\">1. 日本語の読み上げ — 5 AP<a href=\"https://api.aicu.ai/docs/ja/blog/one-key-six-calls#1-%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%AE%E8%AA%AD%E3%81%BF%E4%B8%8A%E3%81%92--5-ap\" class=\"hash-link\" aria-label=\"1. 日本語の読み上げ — 5 AP への直接リンク\" title=\"1. 日本語の読み上げ — 5 AP への直接リンク\" translate=\"no\">​</a></h2>\n<p>音声合成のエンドポイントは OpenAI の <code>/audio/speech</code> と同じボディを受け取ります。既存のクライアントは、ベース URL と鍵を差し替えるだけで動くことがほとんどです。</p>\n<div class=\"language-bash codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">curl -X POST https://api.aicu.ai/v1/audio/speech \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H \"Authorization: Bearer $AICU_API_KEY\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H 'Content-Type: application/json' \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -d '{\"input\": \"展示会でお会いできるのを楽しみにしています。\", \"voice\": \"elena\"}' \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  --output hello.mp3</span><br></div></code></pre></div></div>\n<p>日本語 22 文字、3.4 秒の音声で <strong>5 AP</strong>。既定のモデルは <code>eleven_multilingual_v2</code> です。</p>\n<audio controls=\"\" preload=\"none\" src=\"/docs/img/one-key/tts-v2.mp3\">お使いのブラウザは音声再生に対応していません。</audio>\n<p><code>voice</code> にはキャラクターの slug を渡します（<code>GET /v1/tts/voices</code> に鍵を付けて叩くと、使えるボイスの一覧が返ります）。お気に入りの ElevenLabs のボイス ID をそのまま渡すこともできます。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"2-同じ文をもう一度--0-ap\">2. 同じ文をもう一度 — 0 AP<a href=\"https://api.aicu.ai/docs/ja/blog/one-key-six-calls#2-%E5%90%8C%E3%81%98%E6%96%87%E3%82%92%E3%82%82%E3%81%86%E4%B8%80%E5%BA%A6--0-ap\" class=\"hash-link\" aria-label=\"2. 同じ文をもう一度 — 0 AP への直接リンク\" title=\"2. 同じ文をもう一度 — 0 AP への直接リンク\" translate=\"no\">​</a></h2>\n<p>まったく同じリクエストを 2 回目に投げると、返ってくる音声はバイト単位で同じ、待ち時間はほぼゼロ、そして <strong>無料</strong>です。</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">x-aicu-ap-cost: 0</span><br></div></code></pre></div></div>\n<p>音声はボイス・モデル・シード・本文そのもので照合してキャッシュしています。これは思ったより効きます。視聴者全員に同じ挨拶をする AITuber、同じ掛け声を繰り返すゲーム、イントロをループする什器 — どれも料金がかかるのは最初の 1 回だけです。</p>\n<p>ゼロ円の行が「課金の不具合」に見えないよう、<a href=\"https://api.aicu.ai/dashboard/history\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">利用履歴</a> ではキャッシュヒットを明示しています。失敗したリクエストも課金しません（予約した AP は全額戻します）。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"3-eleven_v3-と本文の中での演技指示--7-ap\">3. <code>eleven_v3</code> と、本文の中での演技指示 — 7 AP<a href=\"https://api.aicu.ai/docs/ja/blog/one-key-six-calls#3-eleven_v3-%E3%81%A8%E6%9C%AC%E6%96%87%E3%81%AE%E4%B8%AD%E3%81%A7%E3%81%AE%E6%BC%94%E6%8A%80%E6%8C%87%E7%A4%BA--7-ap\" class=\"hash-link\" aria-label=\"3-eleven_v3-と本文の中での演技指示--7-ap への直接リンク\" title=\"3-eleven_v3-と本文の中での演技指示--7-ap への直接リンク\" translate=\"no\">​</a></h2>\n<p><code>model</code> を渡すと切り替わります。<code>eleven_v3</code> は本文中のオーディオタグを読むので、ぴったりのボイスを探しまわる代わりに、<strong>文章の中で演技を指示</strong>できます。</p>\n<div class=\"language-bash codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">curl -X POST https://api.aicu.ai/v1/audio/speech \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H \"Authorization: Bearer $AICU_API_KEY\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H 'Content-Type: application/json' \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -d '{\"input\": \"[excited]展示会でお会いできるのを楽しみにしています。\",</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">       \"voice\": \"elena\", \"model\": \"eleven_v3\"}' \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  --output hello-v3.mp3</span><br></div></code></pre></div></div>\n<p><strong>7 AP</strong>。同じ文、違う芝居です。聴き比べてみてください。</p>\n<audio controls=\"\" preload=\"none\" src=\"/docs/img/one-key/tts-v3.mp3\">お使いのブラウザは音声再生に対応していません。</audio>\n<p>設計上の決め事をひとつ。<strong>知らない <code>model</code> 値は 400 を返します。黙って v2 に落としません</strong>。頼んでいない 200 は、エラーより厄介だからです。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"4-画像を-1-枚--1170-ap\">4. 画像を 1 枚 — 1,170 AP<a href=\"https://api.aicu.ai/docs/ja/blog/one-key-six-calls#4-%E7%94%BB%E5%83%8F%E3%82%92-1-%E6%9E%9A--1170-ap\" class=\"hash-link\" aria-label=\"4. 画像を 1 枚 — 1,170 AP への直接リンク\" title=\"4. 画像を 1 枚 — 1,170 AP への直接リンク\" translate=\"no\">​</a></h2>\n<p>この記事の冒頭の挿絵は、この API から出てきたものです。実際の呼び出しがこちらです。</p>\n<div class=\"language-bash codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">curl -X POST https://api.aicu.ai/v1/images/generations \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H \"Authorization: Bearer $AICU_API_KEY\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H 'Content-Type: application/json' \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -d '{\"model\": \"nano-banana\", \"size\": \"1536x1024\", \"n\": 1,</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">       \"prompt\": \"A single ornate brass key lying on warm cream paper, drawn as a clean editorial line illustration with soft watercolour shading. From the teeth of the key, five slender coloured threads fan out to the right and each ends in one small hand-drawn glyph: a sound wave, a paintbrush, a ticked checkbox, a speech bubble, and a film frame. Muted palette: brass, dusty rose, sage green, ochre, slate blue, terracotta. Generous empty space on the left. No text, no letters, no numbers, no logos, no watermark.\"}'</span><br></div></code></pre></div></div>\n<p><strong>1,170 AP</strong>、10.4 秒、<code>b64_json</code> で返ります。ボディは OpenAI と同形なので、<code>openai.images.generate()</code> がそのまま通ります。品質を段階で選びたいときは、同じエンドポイントで <code>gpt-image-2.5</code> も使えます（<a class=\"\" href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5\">GPT-Image-2.5 の記事</a> で別途測っています）。</p>\n<p>領収書の記事なので正直に書いておくと、この挿絵は <strong>1 回ボツにしていて、そのぶんの 1,170 AP も払っています</strong>。画像生成は試行の数だけかかりますし、それは履歴にそのまま出ます。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"5-型のついた判断--2-ap\">5. 型のついた判断 — 2 AP<a href=\"https://api.aicu.ai/docs/ja/blog/one-key-six-calls#5-%E5%9E%8B%E3%81%AE%E3%81%A4%E3%81%84%E3%81%9F%E5%88%A4%E6%96%AD--2-ap\" class=\"hash-link\" aria-label=\"5. 型のついた判断 — 2 AP への直接リンク\" title=\"5. 型のついた判断 — 2 AP への直接リンク\" translate=\"no\">​</a></h2>\n<p>いちばん知られていないのがこのエンドポイントです。チャットモデルは文章で答えるので、アプリ側は毎回その文章を解析して分岐に戻す必要があります。<code>/v1/jev</code> は <a href=\"https://typesafe.ai/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">TypeSafe AI</a> の Jev を中継して、<strong>型で</strong>答えます。選択（choice）・段階（score）・確からしさ（noul）の 3 つです。</p>\n<p>実際のお問い合わせを 1 件、そのまま入れてみます。</p>\n<div class=\"language-bash codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">curl -X POST https://api.aicu.ai/v1/jev \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H \"Authorization: Bearer $AICU_API_KEY\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H 'Content-Type: application/json' \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -d '{</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    \"state\": \"Customer wrote: The mp3 was generated but my credit balance did not go down. Is something broken?\",</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    \"questions\": {</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">      \"intent\": { \"type\": \"choice\", \"instructions\": \"What is this message mainly about?\",</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        \"criteria\": { \"billing\": \"About charges, credits or the balance\",</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">                      \"bug_report\": \"Something appears to be broken\",</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">                      \"feature_request\": \"Asking for something new\",</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">                      \"praise\": \"Positive feedback with no question\" } },</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">      \"urgency\": { \"type\": \"score\", \"instructions\": \"How urgent is this for the customer?\",</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        \"criteria\": [\"no rush\", \"answer this week\", \"answer today\", \"service is down\"] },</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">      \"needs_human\": { \"type\": \"noul\", \"instructions\": \"How likely is it that a human must reply?\" }</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    }</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  }'</span><br></div></code></pre></div></div>\n<p>返ってきた答え（抜粋）:</p>\n<div class=\"language-json codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-json codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token property\" style=\"color:#36acaa\">\"model\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"jev-1.13.0\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token property\" style=\"color:#36acaa\">\"answers\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token property\" style=\"color:#36acaa\">\"intent\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\">      </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"choice\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"billing\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"probabilities\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"billing\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token number\" style=\"color:#36acaa\">0.78</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"bug_report\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token number\" style=\"color:#36acaa\">0.22</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"confidence\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token number\" style=\"color:#36acaa\">0.71</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token property\" style=\"color:#36acaa\">\"urgency\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\">     </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"score\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token number\" style=\"color:#36acaa\">1.68</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"legend\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"0\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"no rush\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"1\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"answer this week\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"2\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"answer today\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"3\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"service is down\"</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"confidence\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token number\" style=\"color:#36acaa\">0.63</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token property\" style=\"color:#36acaa\">\"needs_human\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"noul\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token number\" style=\"color:#36acaa\">0.68</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token property\" style=\"color:#36acaa\">\"ap_cost\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token number\" style=\"color:#36acaa\">2</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><br></div></code></pre></div></div>\n<p>確率つきの答えが 3 つで <strong>2 AP</strong>。正規表現も、「JSON で返してください」というお願いも、モデルが喋りすぎたときのリトライも要りません。<code>answers.intent.choice</code> で分岐すれば終わりです。</p>\n<p>（この例は作り話ではありません。実際にいただいたお問い合わせに近い文面で、そして §2 のキャッシュヒットが、その答えでした。）</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"6-openai-互換のチャット--1-ap\">6. OpenAI 互換のチャット — 1 AP<a href=\"https://api.aicu.ai/docs/ja/blog/one-key-six-calls#6-openai-%E4%BA%92%E6%8F%9B%E3%81%AE%E3%83%81%E3%83%A3%E3%83%83%E3%83%88--1-ap\" class=\"hash-link\" aria-label=\"6. OpenAI 互換のチャット — 1 AP への直接リンク\" title=\"6. OpenAI 互換のチャット — 1 AP への直接リンク\" translate=\"no\">​</a></h2>\n<div class=\"language-bash codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">curl -X POST https://api.aicu.ai/v1/chat/completions \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H \"Authorization: Bearer $AICU_API_KEY\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H 'Content-Type: application/json' \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -d '{\"model\": \"deepseek-v3\",</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">       \"messages\": [{\"role\": \"user\", \"content\": \"Reply in one short sentence: what is an API key for?\"}]}'</span><br></div></code></pre></div></div>\n<blockquote>\n<p>An API key is used to authenticate and authorize access to an API.</p>\n</blockquote>\n<p>31 トークン、2.1 秒、<strong>1 AP</strong>。OpenAI の SDK なら 2 行です。</p>\n<div class=\"language-python codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-python codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token keyword\" style=\"color:#00009f\">from</span><span class=\"token plain\"> openai </span><span class=\"token keyword\" style=\"color:#00009f\">import</span><span class=\"token plain\"> OpenAI</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">client </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> OpenAI</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">base_url</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"https://api.aicu.ai/v1\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> api_key</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\">os</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">environ</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token string\" style=\"color:#e3116c\">\"AICU_API_KEY\"</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><br></div></code></pre></div></div>\n<p>いま通るモデルは <code>GET /v1/chat/models</code> で一覧できます。<a href=\"https://api.aicu.ai/models\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">api.aicu.ai/models</a> は同じ一覧に価格を添えたものです。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"お会計\">お会計<a href=\"https://api.aicu.ai/docs/ja/blog/one-key-six-calls#%E3%81%8A%E4%BC%9A%E8%A8%88\" class=\"hash-link\" aria-label=\"お会計 への直接リンク\" title=\"お会計 への直接リンク\" translate=\"no\">​</a></h2>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"この記事の 6 つの呼び出しの明細: 5 AP、0 AP、7 AP、1,170 AP、2 AP、1 AP、合計 1,185 AP\" src=\"https://api.aicu.ai/docs/ja/assets/images/ledger-ja-caf8e64f194661a96d97c838d5838f91.jpg\" width=\"1600\" height=\"1060\" class=\"img__qZa\"></p>\n<p>課金されるリクエストには、必ず 2 つのヘッダが返ります。</p>\n<table><thead><tr><th>ヘッダ</th><th>意味</th></tr></thead><tbody><tr><td><code>X-AICU-AP-Cost</code></td><td>このリクエストにかかった AP（キャッシュヒットなら <code>0</code>）</td></tr><tr><td><code>X-AICU-AP-Balance</code></td><td>引いたあとの残高</td></tr></tbody></table>\n<p>前者をログに残しておけば、請求書を待たずに自分でコスト計算ができます。同じ内容はエンドポイントごとに <a href=\"https://api.aicu.ai/dashboard/history\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">利用履歴</a> にも並びます。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"円建てでのお支払いについて\">円建てでのお支払いについて<a href=\"https://api.aicu.ai/docs/ja/blog/one-key-six-calls#%E5%86%86%E5%BB%BA%E3%81%A6%E3%81%A7%E3%81%AE%E3%81%8A%E6%94%AF%E6%89%95%E3%81%84%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6\" class=\"hash-link\" aria-label=\"円建てでのお支払いについて への直接リンク\" title=\"円建てでのお支払いについて への直接リンク\" translate=\"no\">​</a></h2>\n<p><strong>USD でのお支払いは、どなたでも問題ありません</strong>。個人の方も、個人事業主の方も、まず試してみたいチームも同じです。</p>\n<p>円建てパックは用途がもう少し限られていて、<strong>適格請求書（インボイス）・銀行振込・年度予算での購入</strong>が必要な日本の法人向けのものです。こちらは <strong>AICU Japan 株式会社（法人向け・円建・適格事業者）</strong> が販売し、換算レートは実勢に対して毎週見直して公表しています。<strong>9 月 30 日</strong>から、円建てパックは 1 USD = 180 円換算に改定されます。USD 建ての価格は変わりません。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"この先の予定\">この先の予定<a href=\"https://api.aicu.ai/docs/ja/blog/one-key-six-calls#%E3%81%93%E3%81%AE%E5%85%88%E3%81%AE%E4%BA%88%E5%AE%9A\" class=\"hash-link\" aria-label=\"この先の予定 への直接リンク\" title=\"この先の予定 への直接リンク\" translate=\"no\">​</a></h2>\n<p>ベータの日程です（いずれも 09:00 JST）。</p>\n<table><thead><tr><th>日付</th><th></th></tr></thead><tbody><tr><td><strong>10/7</strong></td><td>AP パックの購入を USD で開始。全アカウントに本番のご案内をメールします</td></tr><tr><td><strong>10/14</strong></td><td>ベータ鍵の新規発行を終了。以降に発行する鍵は本番の <code>aicu_live_</code> 鍵です</td></tr><tr><td><strong>10/21</strong></td><td>本番運用を開始。新規の鍵はカード登録が前提になります</td></tr><tr><td><strong>10/31</strong></td><td>ベータ鍵が失効します</td></tr></tbody></table>\n<p>失効しても何も消えませんし、鍵が切れる 1 週間前には所有者の方へメールでお知らせします。</p>\n<p>それまではベータが開いています。ご自分のプロジェクトに合うかどうかを確かめるいちばん早い方法は、<strong>12 セントぶんだけ使ってみること</strong>です。</p>\n<hr>\n<p><em>この記事の AP はすべて 2026 年 9 月 22 日に本番環境で実測した値です。ご自分の鍵で再現すれば、同じ数字になるはずです。</em></p>",
            "url": "https://api.aicu.ai/docs/ja/blog/one-key-six-calls",
            "title": "鍵 1 本、6 つの呼び出し、1,185 AP — AICU API の全部を一度に試す",
            "summary": "真鍮の鍵から 5 本の色の線が伸び、音の波形・絵筆・チェックボックス・吹き出し・フィルムのコマにつながっている挿絵",
            "date_modified": "2026-09-22T00:00:00.000Z",
            "author": {
                "name": "AICU API Team",
                "url": "https://api.aicu.ai"
            },
            "tags": [
                "getting-started",
                "tts",
                "images",
                "llm",
                "decisions",
                "pricing"
            ]
        },
        {
            "id": "https://api.aicu.ai/docs/ja/blog/slack-bot-on-raspberry-pi-4-with-aicu-api",
            "content_html": "<p>Written by <strong>AICU API Team</strong></p>\n<p>AICU 編集部の Slack ボット「AiCuty」は、Raspberry Pi 4（8GB）の Docker Compose 上で動いています。\n記事の初稿を書き、カバー画像を描き、X の投稿を引用カードにし、動画を文字起こしする 18 本のコマンドのうち、\n生成 AI を呼ぶものはすべて <strong>AICU API の鍵 1 本</strong>で動くように寄せました。\nこのページは、その構成と、各コマンドがどのエンドポイントをどう呼んでいるかの技術メモです。\n移植の経緯や運用の教訓は、しらいはかせの連載（note / 窓の杜）に譲ります。</p>\n<!-- -->\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"構成\">構成<a href=\"https://api.aicu.ai/docs/ja/blog/slack-bot-on-raspberry-pi-4-with-aicu-api#%E6%A7%8B%E6%88%90\" class=\"hash-link\" aria-label=\"構成 への直接リンク\" title=\"構成 への直接リンク\" translate=\"no\">​</a></h2>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Raspberry Pi 4 は入口と組み立てだけ。重い仕事は API へ\" src=\"https://api.aicu.ai/docs/ja/assets/images/aicuty-pi-architecture-c88eb0d27a9fee6f2de05e3f59cc765e.png\" width=\"1520\" height=\"968\" class=\"img__qZa\"></p>\n<ul>\n<li class=\"\">Raspberry Pi 4 Model B（8GB）、Debian 13、Docker Compose。ボットは Slack Socket Mode で接続するので、Pi 側にポート開放も Tunnel も要りません</li>\n<li class=\"\">常駐メモリ 106 MB、CPU 温度 61 ℃（アイドル相当）。Pi の CPU で LLM 推論や画像生成はしません</li>\n<li class=\"\">生成 AI の呼び出しは <code>https://api.aicu.ai/v1</code> に集約。鍵は 1 本（スコープ <code>llm</code> / <code>images</code> / <code>tts</code> / <code>x</code>）</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"コマンドと経路\">コマンドと経路<a href=\"https://api.aicu.ai/docs/ja/blog/slack-bot-on-raspberry-pi-4-with-aicu-api#%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A8%E7%B5%8C%E8%B7%AF\" class=\"hash-link\" aria-label=\"コマンドと経路 への直接リンク\" title=\"コマンドと経路 への直接リンク\" translate=\"no\">​</a></h2>\n<table><thead><tr><th>コマンド</th><th>エンドポイント</th><th>モデル</th><th>目安</th></tr></thead><tbody><tr><td><code>generate</code>（記事初稿＋カバー）</td><td><code>POST /v1/chat/completions</code> ＋ <code>POST /v1/images/edits</code></td><td><code>gpt-5.6-sol</code> ＋ <code>gpt-image-2.5-flare</code></td><td>本文 約 7,700 AP・53〜62 秒、カバー 5,100 AP・約 20 秒</td></tr><tr><td><code>preview</code>（内容分析）</td><td><code>POST /v1/chat/completions</code></td><td><code>gpt-5.6-sol</code></td><td>本文生成より軽い</td></tr><tr><td><code>xshot</code>（X の引用カード）</td><td><code>GET /v1/x/status/:id</code> ＋ ローカル描画（Pillow）</td><td>—</td><td>数秒。現在 0 AP、2026-09-23 から上流参照 1 回 100 AP</td></tr><tr><td><code>gpt-image2</code> 系（参照画像つき）</td><td><code>POST /v2.5/images/edits</code>（OpenAI SDK 同形）</td><td><code>gpt-image-2.5-flare</code> / <code>-sunburst</code></td><td>1536×1024 high 5,100 AP。flare 約 20 秒、sunburst 約 67 秒</td></tr><tr><td><code>whisper</code> <code>youtube</code>（文字起こし）</td><td><code>POST /v1/audio/transcriptions</code></td><td><code>whisper-large-v3-turbo</code></td><td>音声 10 秒 = 3 AP</td></tr></tbody></table>\n<p><code>banana</code>（Gemini 固有の画像モデル）だけは Gemini の鍵が要ります。<code>xheader</code> / <code>kdp</code> / <code>upload</code> / <code>members</code> などはローカル処理と R2 で、API を呼びません。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"x-の投稿を-1-回で引用カードにする\">X の投稿を 1 回で引用カードにする<a href=\"https://api.aicu.ai/docs/ja/blog/slack-bot-on-raspberry-pi-4-with-aicu-api#x-%E3%81%AE%E6%8A%95%E7%A8%BF%E3%82%92-1-%E5%9B%9E%E3%81%A7%E5%BC%95%E7%94%A8%E3%82%AB%E3%83%BC%E3%83%89%E3%81%AB%E3%81%99%E3%82%8B\" class=\"hash-link\" aria-label=\"X の投稿を 1 回で引用カードにする への直接リンク\" title=\"X の投稿を 1 回で引用カードにする への直接リンク\" translate=\"no\">​</a></h2>\n<p>X は未ログインのアクセスに投稿ページを返さなくなったため（HTTP 403）、ブラウザのスクリーンショットは使えなくなりました。\n<code>GET /v1/x/status/:id</code> は本文・著者・投稿日時に加えて添付メディアを返すので、カードはボット側で組めます。</p>\n<div class=\"language-bash codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">curl https://api.aicu.ai/v1/x/status/2099311063212994603 \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H \"Authorization: Bearer $AICU_API_KEY\"</span><br></div></code></pre></div></div>\n<div class=\"language-json codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-json codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token property\" style=\"color:#36acaa\">\"id\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"2099311063212994603\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token property\" style=\"color:#36acaa\">\"text\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"台風14号の進路予想を更新しました …\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token property\" style=\"color:#36acaa\">\"author\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"username\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"wni_jp\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"name\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"ウェザーニュース\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"profile_image_url\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"https://pbs.twimg.com/…\"</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token property\" style=\"color:#36acaa\">\"created_at\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"2026-09-14T01:35:35.000Z\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token property\" style=\"color:#36acaa\">\"media\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"type\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"photo\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"url\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"https://pbs.twimg.com/media/….png\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"width\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token number\" style=\"color:#36acaa\">800</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token property\" style=\"color:#36acaa\">\"height\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token number\" style=\"color:#36acaa\">600</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><br></div></code></pre></div></div>\n<ul>\n<li class=\"\"><code>media[]</code> は添付の順。無ければ <code>[]</code>。<code>type</code> は <code>photo</code> / <code>video</code> / <code>animated_gif</code>。動画は <code>url</code> が mp4、サムネイルは <code>preview_image_url</code></li>\n<li class=\"\"><code>alt_text</code> は元の投稿に代替テキストがあるときだけ付きます</li>\n<li class=\"\">同じ id は 10 分間サーバ側でキャッシュされ、その間の再取得は無料</li>\n<li class=\"\"><code>id</code> は <code>x.com/&lt;user&gt;/status/&lt;id&gt;</code> の末尾の数字。X の API キーは要りません</li>\n</ul>\n<p>ボット側は <code>media[0]</code> を本文の下に貼り（高さ 560 px 上限）、<code>created_at</code> を JST に直し、出典 URL を添えるだけです。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"画像生成を-openai-sdk-のまま向ける\">画像生成を OpenAI SDK のまま向ける<a href=\"https://api.aicu.ai/docs/ja/blog/slack-bot-on-raspberry-pi-4-with-aicu-api#%E7%94%BB%E5%83%8F%E7%94%9F%E6%88%90%E3%82%92-openai-sdk-%E3%81%AE%E3%81%BE%E3%81%BE%E5%90%91%E3%81%91%E3%82%8B\" class=\"hash-link\" aria-label=\"画像生成を OpenAI SDK のまま向ける への直接リンク\" title=\"画像生成を OpenAI SDK のまま向ける への直接リンク\" translate=\"no\">​</a></h2>\n<p><code>POST /v2.5/images/edits</code> は OpenAI の <code>images.edit()</code> と同じ multipart を受けます。SDK の <code>base_url</code> を変えるだけで動きます。</p>\n<div class=\"language-python codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-python codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token keyword\" style=\"color:#00009f\">from</span><span class=\"token plain\"> openai </span><span class=\"token keyword\" style=\"color:#00009f\">import</span><span class=\"token plain\"> OpenAI</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">client </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> OpenAI</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">base_url</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"https://api.aicu.ai/v2.5\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> api_key</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\">os</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">environ</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token string\" style=\"color:#e3116c\">\"AICU_API_KEY\"</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">img </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> client</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">images</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">edit</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">model</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-image-2.5-flare\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> image</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token builtin\">open</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"ref.png\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"rb\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">                         prompt</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"記事カバー。参照画像の人物をそのまま、背景を秋の書店に\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">                         size</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"1536x1024\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> quality</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"high\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><br></div></code></pre></div></div>\n<p><code>quality</code> は <code>low</code> / <code>medium</code> / <code>high</code>。<code>xhigh</code> / <code>max</code> も 2026-09-21 から使えますが、<strong>60 秒を超えると結果はメールで届く</strong>ため、Slack にその場で返すボットには向きません。\n<code>/v1/images/edits</code> は AICU 独自の JSON（<code>reference_image</code> に base64）なので、SDK からは <code>/v2.5</code> を使ってください。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"文字起こしを-pi-の-cpu-から外す\">文字起こしを Pi の CPU から外す<a href=\"https://api.aicu.ai/docs/ja/blog/slack-bot-on-raspberry-pi-4-with-aicu-api#%E6%96%87%E5%AD%97%E8%B5%B7%E3%81%93%E3%81%97%E3%82%92-pi-%E3%81%AE-cpu-%E3%81%8B%E3%82%89%E5%A4%96%E3%81%99\" class=\"hash-link\" aria-label=\"文字起こしを Pi の CPU から外す への直接リンク\" title=\"文字起こしを Pi の CPU から外す への直接リンク\" translate=\"no\">​</a></h2>\n<p>Pi 4 の faster-whisper（small）は 48 秒の音声に約 5 分かかります。同じ音声を API に投げると数秒で、15 AP です。</p>\n<div class=\"language-bash codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">curl https://api.aicu.ai/v1/audio/transcriptions \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H \"Authorization: Bearer $AICU_API_KEY\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -F model=whisper-large-v3-turbo -F file=@clip.mp3 -F response_format=srt</span><br></div></code></pre></div></div>\n<p>yt-dlp と ffmpeg で音声を切り出すところまでが Pi の仕事です。1 リクエスト 30 MB / 30 分まで。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"料金2026-09-14-時点1-usd--10000-ap課金は-http-200-のみ\">料金（2026-09-14 時点・1 USD = 10,000 AP・課金は HTTP 200 のみ）<a href=\"https://api.aicu.ai/docs/ja/blog/slack-bot-on-raspberry-pi-4-with-aicu-api#%E6%96%99%E9%87%912026-09-14-%E6%99%82%E7%82%B91-usd--10000-ap%E8%AA%B2%E9%87%91%E3%81%AF-http-200-%E3%81%AE%E3%81%BF\" class=\"hash-link\" aria-label=\"料金（2026-09-14 時点・1 USD = 10,000 AP・課金は HTTP 200 のみ） への直接リンク\" title=\"料金（2026-09-14 時点・1 USD = 10,000 AP・課金は HTTP 200 のみ） への直接リンク\" translate=\"no\">​</a></h2>\n<table><thead><tr><th>用途</th><th>エンドポイント</th><th>料金</th></tr></thead><tbody><tr><td>画像生成（GPT-Image-2.5 Flare / Sunburst）</td><td><code>/v1/images/generations</code> <code>/v1/images/edits</code> <code>/v2.5/images/edits</code></td><td>1024×1024: low 700 / medium 1,600 / high 6,400 AP。1536×1024: 1,300 / 2,300 / 5,100 AP</td></tr><tr><td>X の投稿 1 件（添付つき）</td><td><code>/v1/x/status/:id</code></td><td>現在 0 AP。2026-09-23 から上流参照 1 回 100 AP（10 分キャッシュ、ヒットは 0）</td></tr><tr><td>X のプロフィール</td><td><code>/v1/x/user/:username</code></td><td>現在 0 AP。2026-09-23 から 100 AP</td></tr><tr><td>X のタイムライン・検索</td><td><code>/v1/x/timeline/:username</code> <code>/v1/x/search</code></td><td>2,250 AP/回</td></tr><tr><td>文字起こし</td><td><code>/v1/audio/transcriptions</code></td><td>音声 10 秒 = 3 AP</td></tr></tbody></table>\n<p>X の投稿取得は 9 月 13 日の告知で 10 AP としていましたが、添付メディアまで返す拡張に合わせて 100 AP に改めました（改訂告知 9 月 14 日、発効の 9 日前）。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"仕様\">仕様<a href=\"https://api.aicu.ai/docs/ja/blog/slack-bot-on-raspberry-pi-4-with-aicu-api#%E4%BB%95%E6%A7%98\" class=\"hash-link\" aria-label=\"仕様 への直接リンク\" title=\"仕様 への直接リンク\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\">X: <a href=\"https://api.aicu.ai/skills/x\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">https://api.aicu.ai/skills/x</a></li>\n<li class=\"\">文字起こし: <a href=\"https://api.aicu.ai/skills/stt\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">https://api.aicu.ai/skills/stt</a></li>\n<li class=\"\">画像: <a href=\"https://api.aicu.ai/docs/image-api\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">https://api.aicu.ai/docs/image-api</a></li>\n<li class=\"\">OpenAPI: <a href=\"https://api.aicu.ai/openapi.json\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">https://api.aicu.ai/openapi.json</a></li>\n</ul>",
            "url": "https://api.aicu.ai/docs/ja/blog/slack-bot-on-raspberry-pi-4-with-aicu-api",
            "title": "Raspberry Pi 4 の Slack ボットから AICU API を使う — 生成・X 読み取り・文字起こしを鍵 1 本で",
            "summary": "Written by AICU API Team",
            "date_modified": "2026-09-14T00:00:00.000Z",
            "author": {
                "name": "AICU API Team",
                "url": "https://api.aicu.ai"
            },
            "tags": [
                "x",
                "images",
                "stt",
                "gateway",
                "raspberry-pi"
            ]
        },
        {
            "id": "https://api.aicu.ai/docs/ja/blog/aicutybench-gpt-image-2-5",
            "content_html": "<p>AICU 公式キャラクター <strong>AiCuty</strong> を、GPT-Image-2.5 が<strong>どれだけ確実に再現できるか</strong>を測りました。\n主観の「なんとなく似てる」ではなく、<strong>正本のデザイン仕様（プロンプト＝設計図）を判定軸に、生成物を機械採点して歩留まりを出す</strong>——\nこれを <strong>AiCutyBench</strong> として、再現可能な形でまとめています。この記事はその過程と結果の記録です。</p>\n<!-- -->\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"なぜ歩留まりで測るのか\">なぜ「歩留まり」で測るのか<a href=\"https://api.aicu.ai/docs/ja/blog/aicutybench-gpt-image-2-5#%E3%81%AA%E3%81%9C%E6%AD%A9%E7%95%99%E3%81%BE%E3%82%8A%E3%81%A7%E6%B8%AC%E3%82%8B%E3%81%AE%E3%81%8B\" class=\"hash-link\" aria-label=\"なぜ「歩留まり」で測るのか への直接リンク\" title=\"なぜ「歩留まり」で測るのか への直接リンク\" translate=\"no\">​</a></h2>\n<p>キャラクター API の価値は「1 枚きれいに出る」ことではなく、<strong>何度呼んでも同じキャラが出ること</strong>です。\nGPT-Image-2.5 には seed がないため、再現性は「同じ設計図（プロンプト）から、どれくらいの確率で合格品が出るか」＝<strong>歩留まり</strong>で評価するのが正直です。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"方法aicutybench\">方法（AiCutyBench）<a href=\"https://api.aicu.ai/docs/ja/blog/aicutybench-gpt-image-2-5#%E6%96%B9%E6%B3%95aicutybench\" class=\"hash-link\" aria-label=\"方法（AiCutyBench） への直接リンク\" title=\"方法（AiCutyBench） への直接リンク\" translate=\"no\">​</a></h2>\n<ol>\n<li class=\"\"><strong>グラウンドトゥルース＝正本プロンプト</strong>。AiCuty の各キャラには公式リポジトリに「設計図」としてのプロンプトがあり（<a href=\"https://github.com/aicuai/AiCuty\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">github.com/aicuai/AiCuty</a>）、\nそこから「変えても残る特徴」を判定軸として抜き出します（例: Mei なら高いサイドポニー・星のヘアピン・そばかす・スカート下のショートパンツ…の 8 項目）。</li>\n<li class=\"\"><strong>生成</strong>: 正本プロンプトを <strong>text-to-image</strong>（参照画像なし）で <code>gpt-image-2.5-flare</code> / <code>sunburst</code> に渡す。</li>\n<li class=\"\"><strong>採点</strong>: 生成物を GPT-4o Vision に渡し、<strong>判定軸ごとに present / partial / absent</strong> を判定させ、総合スコア（0–100）を出す。</li>\n<li class=\"\"><strong>歩留まり</strong>: 同条件で N 枚生成し、<strong>スコア 85 以上を合格</strong>として合格率を出す。</li>\n</ol>\n<p>主観を排し、同じ手順を誰が回しても同じ数字が出る設計です（スクリプトは AiCuty リポジトリの <code>bench/</code> に置いています）。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"結果-1-歩留まり正本プロンプト--text-to-image\">結果 1: 歩留まり（正本プロンプト → text-to-image）<a href=\"https://api.aicu.ai/docs/ja/blog/aicutybench-gpt-image-2-5#%E7%B5%90%E6%9E%9C-1-%E6%AD%A9%E7%95%99%E3%81%BE%E3%82%8A%E6%AD%A3%E6%9C%AC%E3%83%97%E3%83%AD%E3%83%B3%E3%83%97%E3%83%88--text-to-image\" class=\"hash-link\" aria-label=\"結果 1: 歩留まり（正本プロンプト → text-to-image） への直接リンク\" title=\"結果 1: 歩留まり（正本プロンプト → text-to-image） への直接リンク\" translate=\"no\">​</a></h2>\n<p><strong>GPT-Image-2.5 Flare（6 人 × 各 10 枚 ＝ 60 枚）</strong></p>\n<table><thead><tr><th>キャラ</th><th>合格</th><th>歩留まり</th><th>平均スコア</th><th>各回のスコア</th></tr></thead><tbody><tr><td><strong>Mei Soleil</strong></td><td>10 / 10</td><td><strong>100%</strong></td><td>92</td><td>100 90 95 85 87 95 90 95 87 95</td></tr><tr><td><strong>Saki Noire</strong></td><td>10 / 10</td><td><strong>100%</strong></td><td>100</td><td>100 95 100 100 100 100 100 100 100 100</td></tr><tr><td><strong>Elena Bloom</strong></td><td>10 / 10</td><td><strong>100%</strong></td><td>99</td><td>100 95 95 100 100 100 100 95 100 100</td></tr><tr><td><strong>Nao Verde</strong></td><td>10 / 10</td><td><strong>100%</strong></td><td>98</td><td>95 100 100 90 100 100 95 100 95 100</td></tr><tr><td><strong>Mina Azure</strong></td><td>10 / 10</td><td><strong>100%</strong></td><td>100</td><td>100 100 100 100 100 100 100 100 100 100</td></tr><tr><td><strong>Marsha Arancia</strong></td><td>10 / 10</td><td><strong>100%</strong></td><td>100</td><td>100 100 100 100 100 100 100 100 100 100</td></tr><tr><td><strong>合計</strong></td><td><strong>60 / 60</strong></td><td><strong>100%</strong></td><td>98</td><td>—</td></tr></tbody></table>\n<p><strong>GPT-Image-2.5 Sunburst（各 5 枚）</strong></p>\n<table><thead><tr><th>キャラ</th><th>合格</th><th>歩留まり</th><th>平均スコア</th><th>各回のスコア</th></tr></thead><tbody><tr><td><strong>Mei Soleil</strong></td><td>5 / 5</td><td><strong>100%</strong></td><td>95</td><td>100 100 87 100 90</td></tr><tr><td><strong>Saki Noire</strong></td><td>5 / 5</td><td><strong>100%</strong></td><td>99</td><td>100 100 100 100 95</td></tr></tbody></table>\n<ul>\n<li class=\"\"><strong>6 人全員・60 枚すべてが合格（歩留まり 100%）</strong>。「正本プロンプトを渡せば、ほぼ毎回そのキャラが出る」が数字で言えました。</li>\n<li class=\"\">Mei のスコアのばらつき（85〜100）は、主に<strong>そばかす</strong>の有無。細部の取りこぼしが起きるのはここです。</li>\n<li class=\"\">Saki（濃色・情報量の多い衣装・左目にかかる前髪・指を唇に）は<strong>ほぼ毎回満点</strong>。複雑な設計でも、設計図が明確なら再現できます。</li>\n<li class=\"\">Elena・Nao も最低 90〜95 で、減点はどの回も 1 項目分（partial）程度。合格ライン 85 を割った回はありません。</li>\n<li class=\"\">Mina・Marsha は <strong>10 枚とも満点</strong>。色数が少なく輪郭のはっきりした設計ほど安定します。</li>\n<li class=\"\">Sunburst は平均スコアがわずかに高い（Mei 92 → 95）が、歩留まりは同じ。</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"結果-2-quality-5-段階meiflare10241024\">結果 2: quality 5 段階（Mei・Flare・1024×1024）<a href=\"https://api.aicu.ai/docs/ja/blog/aicutybench-gpt-image-2-5#%E7%B5%90%E6%9E%9C-2-quality-5-%E6%AE%B5%E9%9A%8Emeiflare10241024\" class=\"hash-link\" aria-label=\"結果 2: quality 5 段階（Mei・Flare・1024×1024） への直接リンク\" title=\"結果 2: quality 5 段階（Mei・Flare・1024×1024） への直接リンク\" translate=\"no\">​</a></h2>\n<table><thead><tr><th>quality</th><th>出力画像トークン</th><th>生成時間</th><th>忠実度</th></tr></thead><tbody><tr><td>low</td><td>196</td><td>15.3 s</td><td>87</td></tr><tr><td>medium</td><td>439</td><td>13.1 s</td><td>90</td></tr><tr><td>high</td><td>1,756</td><td>21.6 s</td><td>88</td></tr><tr><td><strong>xhigh</strong></td><td>3,122</td><td>29.2 s</td><td><strong>100</strong></td></tr><tr><td>max</td><td>7,024</td><td>51.9 s</td><td><strong>100</strong></td></tr></tbody></table>\n<ul>\n<li class=\"\">出力トークン（＝生成コストの実体）は <strong>low → max で約 36 倍</strong>。</li>\n<li class=\"\">トークン数は<strong>サイズではなく形状</strong>で変わり、正方形がいちばん高い。同じ high でも 1024×1024 = 1,756、1920×1088 = 1,325（画素数は約 2 倍なのに少ない）、1728×800 = 893、1536×512 = 535。<strong>横長バナーは正方形より安い</strong>。この表の数字は 1024×1024 のもの。</li>\n<li class=\"\">忠実度は low〜high でほぼ横ばい、<strong>xhigh で満点</strong>に跳ね上がる。max は xhigh の約 2.3 倍のトークンで忠実度は同じ。</li>\n<li class=\"\">実務の目安: <strong>速く回すなら medium、細部まで確実に再現したいなら xhigh</strong>。max は必要な時だけ。</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"途中で分かったこと正直に\">途中で分かったこと（正直に）<a href=\"https://api.aicu.ai/docs/ja/blog/aicutybench-gpt-image-2-5#%E9%80%94%E4%B8%AD%E3%81%A7%E5%88%86%E3%81%8B%E3%81%A3%E3%81%9F%E3%81%93%E3%81%A8%E6%AD%A3%E7%9B%B4%E3%81%AB\" class=\"hash-link\" aria-label=\"途中で分かったこと（正直に） への直接リンク\" title=\"途中で分かったこと（正直に） への直接リンク\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>「作り直し」はダメ</strong>。既存のリファレンスシートを \"Recreate\" させると、レイアウトごと描き直して崩れる。絵は<strong>作り直さず高画質化</strong>し、<strong>文字は画像生成に任せず PIL で合成</strong>する二段構えが正解（文字は画像モデルが崩す）。</li>\n<li class=\"\"><strong>正本プロンプトを使うと細部が来る</strong>。単体の参照画像＋汎用プロンプトでは Mei のショートパンツがスカートになった。正本の設計図プロンプトにしたら、ショートパンツまで再現された。</li>\n<li class=\"\"><strong>多人数同時は楽器・衣装の取り違えが起きる</strong>。6 人を 1 枚にすると、担当楽器（Mei＝ドラム、Mina＝キーボード、Saki＝ベース）が入れ替わることがある。<strong>キャラごとに楽器と衣装を明示</strong>し、直らない箇所は<strong>局所編集</strong>で 2 回目を回す。</li>\n<li class=\"\"><strong><code>input_fidelity</code> は GPT-Image-2.5 系（Flare / Sunburst）も gpt-image-2 も受け付けない</strong>（400 <code>invalid_input_fidelity_model</code>。gpt-image-1.5 系のパラメータ）。顔やロゴの忠実度は、プロンプトで参照画像の役割を書いて担保する。</li>\n<li class=\"\">Flare と Sunburst は同じ設定なら消費トークンが同じ。差は品質と待ち時間だけ。</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"商品化判断の材料として\">商品化判断の材料として<a href=\"https://api.aicu.ai/docs/ja/blog/aicutybench-gpt-image-2-5#%E5%95%86%E5%93%81%E5%8C%96%E5%88%A4%E6%96%AD%E3%81%AE%E6%9D%90%E6%96%99%E3%81%A8%E3%81%97%E3%81%A6\" class=\"hash-link\" aria-label=\"商品化判断の材料として への直接リンク\" title=\"商品化判断の材料として への直接リンク\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>正本プロンプト × GPT-Image-2.5 Flare で、6 キャラ・計 60 枚が歩留まり 100%（平均スコア 98）</strong>。Sunburst も 2 キャラ・10 枚で 100%。\n「呼ぶたびに同じキャラが出る」がキャラクター API の前提条件で、それは<strong>満たせました</strong>。</li>\n<li class=\"\">残る詰めどころは「そばかす」のような<strong>微細な特徴の取りこぼし</strong>（最低スコア 85、Mei）。xhigh 指定、または判定軸で落ちた特徴をプロンプトで強調して 2 回目を回す、で埋まります。</li>\n<li class=\"\"><strong>結論: キャラクター API の生成エンジンとして GPT-Image-2.5 は採用に足る</strong>、が AiCutyBench の答えです。\n採用の形（既定モデルの切替、quality の既定値、多人数構図の扱い）はこの結果をもとに決め、決まり次第この blog でお知らせします。</li>\n</ul>\n<hr>\n<p><em>AiCutyBench のスクリプト・正本プロンプト・判定軸・結果 CSV は <a href=\"https://github.com/aicuai/AiCuty\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">github.com/aicuai/AiCuty</a> の <code>bench/</code> にあります。同じ手順で再現できます。</em></p>",
            "url": "https://api.aicu.ai/docs/ja/blog/aicutybench-gpt-image-2-5",
            "title": "AiCutyBench — GPT-Image-2.5 は AiCuty を再現できるか（歩留まり実測）",
            "summary": "AICU 公式キャラクター AiCuty を、GPT-Image-2.5 がどれだけ確実に再現できるかを測りました。",
            "date_modified": "2026-09-12T00:00:00.000Z",
            "author": {
                "name": "AICU API Team",
                "url": "https://api.aicu.ai"
            },
            "tags": [
                "images",
                "gpt-image",
                "aicuty",
                "benchmark"
            ]
        },
        {
            "id": "https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part1",
            "content_html": "<p>OpenAI 公式「<strong>Image generation</strong>」ガイド（<a href=\"https://developers.openai.com/api/docs/guides/image-generation\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">原文</a>）の日本語訳です。\nPart 1 は <strong>概要／Image API と Responses API の選び方／画像生成／マルチターン／ストリーミング</strong>まで。\n編集・出力のカスタマイズ・対応モデルなどは Part 2 で続けます。</p>\n<p>api.aicu.ai は <strong>Image API（<code>/v1/images/generations</code> / <code>/v1/images/edits</code>）を OpenAI 互換で提供</strong>しています。\n<code>base_url</code> を <code>https://api.aicu.ai/v1</code>、キーを <code>aicu_live_...</code> にすれば、下の Image API の例はそのまま動きます。\nResponses API（会話内で画像を生成するツール）の例は OpenAI 直の呼び出しです。</p>\n<!-- -->\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"概要\">概要<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part1#%E6%A6%82%E8%A6%81\" class=\"hash-link\" aria-label=\"概要 への直接リンク\" title=\"概要 への直接リンク\" translate=\"no\">​</a></h2>\n<p>この API では、テキストプロンプトから <code>gpt-image-2.5-sunburst</code> と <code>gpt-image-2.5-flare</code> で画像を生成・編集できます。\n<strong>編集の精度が最重要なワークフローには Sunburst</strong>、<strong>速くて高品質な日常の生成には Flare</strong> を選びます。画像生成には 2 つの API があります。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"image-api\">Image API<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part1#image-api\" class=\"hash-link\" aria-label=\"Image API への直接リンク\" title=\"Image API への直接リンク\" translate=\"no\">​</a></h3>\n<p><a href=\"https://developers.openai.com/api/reference/resources/images\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Image API</a> は、役割の異なる 2 つのエンドポイントを提供します。</p>\n<ul>\n<li class=\"\"><strong>Generations</strong>: テキストプロンプトから画像を<strong>ゼロから生成</strong></li>\n<li class=\"\"><strong>Edits</strong>: 既存の画像を新しいプロンプトで<strong>部分的または全体的に変更</strong></li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"responses-api\">Responses API<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part1#responses-api\" class=\"hash-link\" aria-label=\"Responses API への直接リンク\" title=\"Responses API への直接リンク\" translate=\"no\">​</a></h3>\n<p><a href=\"https://developers.openai.com/api/reference/resources/responses/methods/create#responses-create-tools\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Responses API</a> は、会話やマルチステップのフローの一部として画像を生成できます。\n画像生成を<a href=\"https://developers.openai.com/api/docs/guides/tools?api-mode=responses\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">組み込みツール</a>として扱い、文脈内で画像の入出力を受け付けます。</p>\n<p>Image API に比べて次が加わります。</p>\n<ul>\n<li class=\"\"><strong>マルチターン編集</strong>: プロンプトで高忠実度の編集を繰り返し重ねられる</li>\n<li class=\"\"><strong>柔軟な入力</strong>: バイト列だけでなく、画像の <a href=\"https://developers.openai.com/api/reference/resources/files\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">File</a> ID も入力にできる</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"どちらの-api-を使うか\">どちらの API を使うか<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part1#%E3%81%A9%E3%81%A1%E3%82%89%E3%81%AE-api-%E3%82%92%E4%BD%BF%E3%81%86%E3%81%8B\" class=\"hash-link\" aria-label=\"どちらの API を使うか への直接リンク\" title=\"どちらの API を使うか への直接リンク\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>1 つのプロンプトから 1 枚を生成・編集するだけ</strong>なら Image API。</li>\n<li class=\"\"><strong>会話しながら編集できる画像体験</strong>を作るなら Responses API。</li>\n</ul>\n<p>Image API では <code>model</code> に <code>gpt-image-2.5-sunburst</code> または <code>gpt-image-2.5-flare</code> を直接指定します。\nResponses API では、トップレベルに対応するメインラインモデルを選び、画像生成ツールの <code>model</code> フィールドに <code>gpt-image-2.5-sunburst</code> / <code>gpt-image-2.5-flare</code> を指定します。</p>\n<p>どちらの API でも、品質・サイズ・形式・圧縮を調整して<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part1#\" class=\"\">出力をカスタマイズ</a>できます（Part 2）。</p>\n<div class=\"theme-admonition theme-admonition-info admonition_FoJG alert alert--info\"><div class=\"admonitionHeading_Fyt5\"><span class=\"admonitionIcon_R76F\"><svg viewBox=\"0 0 14 16\"><path fill-rule=\"evenodd\" d=\"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z\"></path></svg></span>備考</div><div class=\"admonitionContent_tCQf\"><p>GPT Image モデルを責任を持って使うため、利用前に開発者コンソールで\n<a href=\"https://help.openai.com/en/articles/10910291-api-organization-verification\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">API Organization Verification</a>\nを完了する必要がある場合があります。</p></div></div>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"画像を生成する\">画像を生成する<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part1#%E7%94%BB%E5%83%8F%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B\" class=\"hash-link\" aria-label=\"画像を生成する への直接リンク\" title=\"画像を生成する への直接リンク\" translate=\"no\">​</a></h2>\n<p><a href=\"https://developers.openai.com/api/reference/resources/images\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">画像生成エンドポイント</a>でテキストプロンプトから生成するか、\nResponses API の<a href=\"https://developers.openai.com/api/docs/guides/tools?api-mode=responses\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">画像生成ツール</a>で会話の一部として生成します。\n出力のカスタマイズ（サイズ・品質・形式・圧縮）は Part 2 を参照してください。</p>\n<p><code>n</code> パラメータで 1 リクエストに複数枚を生成できます（既定は 1 枚）。</p>\n<p><strong>Image API — 画像を生成する</strong>（api.aicu.ai では <code>base_url</code> を差し替えるだけ）</p>\n<div class=\"language-python codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-python codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token keyword\" style=\"color:#00009f\">from</span><span class=\"token plain\"> openai </span><span class=\"token keyword\" style=\"color:#00009f\">import</span><span class=\"token plain\"> OpenAI</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">import</span><span class=\"token plain\"> base64</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">client </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> OpenAI</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\">  </span><span class=\"token comment\" style=\"color:#999988;font-style:italic\"># api.aicu.ai なら OpenAI(base_url=\"https://api.aicu.ai/v1\", api_key=\"aicu_live_...\")</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">prompt </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> </span><span class=\"token triple-quoted-string string\" style=\"color:#e3116c\">\"\"\"</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token triple-quoted-string string\" style=\"color:#e3116c\">A children's book drawing of a veterinarian using a stethoscope to</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token triple-quoted-string string\" style=\"color:#e3116c\">listen to the heartbeat of a baby otter.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token triple-quoted-string string\" style=\"color:#e3116c\">\"\"\"</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">result </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> client</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">images</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">generate</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">model</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-image-2.5-sunburst\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> prompt</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\">prompt</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">image_base64 </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> result</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">data</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token number\" style=\"color:#36acaa\">0</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">b64_json</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">image_bytes </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> base64</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">b64decode</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">image_base64</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">with</span><span class=\"token plain\"> </span><span class=\"token builtin\">open</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"otter.png\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"wb\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"> </span><span class=\"token keyword\" style=\"color:#00009f\">as</span><span class=\"token plain\"> f</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    f</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">write</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">image_bytes</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><br></div></code></pre></div></div>\n<div class=\"language-bash codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">curl -X POST \"https://api.aicu.ai/v1/images/generations\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    -H \"Authorization: Bearer $AICU_API_KEY\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    -H \"Content-type: application/json\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    -d '{</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        \"model\": \"gpt-image-2.5-sunburst\",</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        \"prompt\": \"A children'\\''s book drawing of a veterinarian using a stethoscope to listen to the heartbeat of a baby otter.\"</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    }' | jq -r '.data[0].b64_json' | base64 --decode &gt; otter.png</span><br></div></code></pre></div></div>\n<div class=\"language-javascript codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-javascript codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token keyword module\" style=\"color:#00009f\">import</span><span class=\"token plain\"> </span><span class=\"token imports maybe-class-name\">OpenAI</span><span class=\"token plain\"> </span><span class=\"token keyword module\" style=\"color:#00009f\">from</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"openai\"</span><span class=\"token punctuation\" style=\"color:#393A34\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword module\" style=\"color:#00009f\">import</span><span class=\"token plain\"> </span><span class=\"token imports\">fs</span><span class=\"token plain\"> </span><span class=\"token keyword module\" style=\"color:#00009f\">from</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"fs\"</span><span class=\"token punctuation\" style=\"color:#393A34\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">const</span><span class=\"token plain\"> openai </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> </span><span class=\"token keyword\" style=\"color:#00009f\">new</span><span class=\"token plain\"> </span><span class=\"token class-name\">OpenAI</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">const</span><span class=\"token plain\"> result </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> </span><span class=\"token keyword control-flow\" style=\"color:#00009f\">await</span><span class=\"token plain\"> openai</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token property-access\">images</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token method function property-access\" style=\"color:#d73a49\">generate</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token literal-property property\" style=\"color:#36acaa\">model</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-image-2.5-sunburst\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token literal-property property\" style=\"color:#36acaa\">prompt</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"A children's book drawing of a veterinarian using a stethoscope to listen to the heartbeat of a baby otter.\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">fs</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token method function property-access\" style=\"color:#d73a49\">writeFileSync</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"otter.png\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token maybe-class-name\">Buffer</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token keyword module\" style=\"color:#00009f\">from</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">result</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token property-access\">data</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token number\" style=\"color:#36acaa\">0</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token property-access\">b64_json</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"base64\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">;</span><br></div></code></pre></div></div>\n<p>（原文には Go / Java / C# / Ruby / CLI の例もあります。）</p>\n<p><strong>Responses API — 画像を生成する</strong>（OpenAI 直）</p>\n<div class=\"language-python codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-python codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token keyword\" style=\"color:#00009f\">from</span><span class=\"token plain\"> openai </span><span class=\"token keyword\" style=\"color:#00009f\">import</span><span class=\"token plain\"> OpenAI</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">import</span><span class=\"token plain\"> base64</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">client </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> OpenAI</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">response </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> client</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">responses</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">create</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    model</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-6-astra\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token builtin\">input</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"Generate an image of gray tabby cat hugging an otter with an orange scarf\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    tools</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_generation\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"model\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-image-2.5-sunburst\"</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">image_data </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    output</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">result</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token keyword\" style=\"color:#00009f\">for</span><span class=\"token plain\"> output </span><span class=\"token keyword\" style=\"color:#00009f\">in</span><span class=\"token plain\"> response</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">output</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token keyword\" style=\"color:#00009f\">if</span><span class=\"token plain\"> output</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token builtin\">type</span><span class=\"token plain\"> </span><span class=\"token operator\" style=\"color:#393A34\">==</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_generation_call\"</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">if</span><span class=\"token plain\"> image_data</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token keyword\" style=\"color:#00009f\">with</span><span class=\"token plain\"> </span><span class=\"token builtin\">open</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"otter.png\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"wb\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"> </span><span class=\"token keyword\" style=\"color:#00009f\">as</span><span class=\"token plain\"> f</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        f</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">write</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">base64</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">b64decode</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">image_data</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token number\" style=\"color:#36acaa\">0</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><br></div></code></pre></div></div>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"マルチターンの画像生成\">マルチターンの画像生成<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part1#%E3%83%9E%E3%83%AB%E3%83%81%E3%82%BF%E3%83%BC%E3%83%B3%E3%81%AE%E7%94%BB%E5%83%8F%E7%94%9F%E6%88%90\" class=\"hash-link\" aria-label=\"マルチターンの画像生成 への直接リンク\" title=\"マルチターンの画像生成 への直接リンク\" translate=\"no\">​</a></h3>\n<p>Responses API では、画像生成の呼び出し結果を文脈に含める（画像 ID だけでも可）か、\n<a href=\"https://developers.openai.com/api/docs/guides/conversation-state?api-mode=responses#openai-apis-for-conversation-state\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\"><code>previous_response_id</code> パラメータ</a>を使って、\n複数ターンにわたる画像生成の会話を組み立てられます。プロンプトを練り直し、新しい指示を加え、会話の進行に合わせて画像を育てていけます。</p>\n<p>対応するツールモデルは、<strong>新しい画像を生成するか、文脈内の画像を編集するか</strong>を選べます。任意の <code>action</code> パラメータで制御します:\n<code>action: \"auto\"</code>（モデルに任せる・既定）、<code>action: \"generate\"</code>（常に新規生成）、<code>action: \"edit\"</code>（文脈に画像があるとき編集を強制）。</p>\n<p><strong>action で生成を強制する</strong></p>\n<div class=\"language-python codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-python codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">response </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> client</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">responses</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">create</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    model</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-6-astra\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token builtin\">input</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"Generate an image of gray tabby cat hugging an otter with an orange scarf\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    tools</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_generation\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"model\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-image-2.5-sunburst\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"action\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"generate\"</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><br></div></code></pre></div></div>\n<div class=\"theme-admonition theme-admonition-note admonition_FoJG alert alert--secondary\"><div class=\"admonitionHeading_Fyt5\"><span class=\"admonitionIcon_R76F\"><svg viewBox=\"0 0 14 16\"><path fill-rule=\"evenodd\" d=\"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z\"></path></svg></span>注記</div><div class=\"admonitionContent_tCQf\"><p>文脈に画像が無いのに <code>edit</code> を強制するとエラーになります。生成と編集の判断をモデルに任せるなら <code>action</code> は <code>auto</code> のままにします。</p></div></div>\n<p><strong>previous_response_id を使う</strong></p>\n<div class=\"language-python codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-python codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">response </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> client</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">responses</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">create</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    model</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-6-astra\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token builtin\">input</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"Generate an image of gray tabby cat hugging an otter with an orange scarf\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    tools</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_generation\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"model\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-image-2.5-sunburst\"</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token comment\" style=\"color:#999988;font-style:italic\"># ...最初の画像を保存...</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token comment\" style=\"color:#999988;font-style:italic\"># フォローアップ</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">response_fwup </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> client</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">responses</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">create</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    model</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-6-astra\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    previous_response_id</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\">response</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token builtin\">id</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token builtin\">input</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"Now make it look realistic\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    tools</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_generation\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"model\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-image-2.5-sunburst\"</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><br></div></code></pre></div></div>\n<p><strong>画像 ID を使う</strong></p>\n<div class=\"language-python codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-python codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">response </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> client</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">responses</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">create</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    model</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-6-astra\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token builtin\">input</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"Generate an image of gray tabby cat hugging an otter with an orange scarf\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    tools</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_generation\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"model\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-image-2.5-sunburst\"</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">image_generation_calls </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token plain\">o </span><span class=\"token keyword\" style=\"color:#00009f\">for</span><span class=\"token plain\"> o </span><span class=\"token keyword\" style=\"color:#00009f\">in</span><span class=\"token plain\"> response</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">output </span><span class=\"token keyword\" style=\"color:#00009f\">if</span><span class=\"token plain\"> o</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token builtin\">type</span><span class=\"token plain\"> </span><span class=\"token operator\" style=\"color:#393A34\">==</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_generation_call\"</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token comment\" style=\"color:#999988;font-style:italic\"># フォローアップ: 前の画像生成呼び出しの id を文脈に渡す</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">response_fwup </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> client</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">responses</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">create</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    model</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-6-astra\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token builtin\">input</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"role\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"user\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"content\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"input_text\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"text\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"Now make it look realistic\"</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_generation_call\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"id\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> image_generation_calls</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token number\" style=\"color:#36acaa\">0</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token builtin\">id</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    tools</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_generation\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"model\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-image-2.5-sunburst\"</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><br></div></code></pre></div></div>\n<p>結果のイメージ: 「灰色のトラ猫がオレンジのマフラーのカワウソを抱きしめる」→ 2 ターン目「写実的にして」で、同じ構図のまま写実化された画像が返ります。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"ストリーミング\">ストリーミング<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part1#%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0\" class=\"hash-link\" aria-label=\"ストリーミング への直接リンク\" title=\"ストリーミング への直接リンク\" translate=\"no\">​</a></h3>\n<p>Responses API と Image API はどちらも<strong>画像生成のストリーミング</strong>に対応しています。生成途中の<strong>部分画像</strong>を受け取れるので、体験がインタラクティブになります。</p>\n<p><code>partial_images</code> パラメータで <strong>0〜3 枚</strong>の部分画像を受け取れます。</p>\n<ul>\n<li class=\"\"><code>partial_images</code> を 0 にすると、最終画像だけを受け取ります。</li>\n<li class=\"\">1 以上でも、最終画像の生成が速い場合は指定枚数より少ない部分画像しか届かないことがあります。</li>\n</ul>\n<p><strong>Responses API — 画像をストリームする</strong></p>\n<div class=\"language-python codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-python codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">stream </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> client</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">responses</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">create</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    model</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-6-astra\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token builtin\">input</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"Draw a gorgeous image of a river made of white owl feathers, snaking its way through a serene winter landscape\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    stream</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token boolean\" style=\"color:#36acaa\">True</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    tools</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_generation\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"model\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-image-2.5-sunburst\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"partial_images\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token number\" style=\"color:#36acaa\">2</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">for</span><span class=\"token plain\"> event </span><span class=\"token keyword\" style=\"color:#00009f\">in</span><span class=\"token plain\"> stream</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token keyword\" style=\"color:#00009f\">if</span><span class=\"token plain\"> event</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token builtin\">type</span><span class=\"token plain\"> </span><span class=\"token operator\" style=\"color:#393A34\">==</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"response.image_generation_call.partial_image\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        save_base64_image</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string-interpolation string\" style=\"color:#e3116c\">f\"river-partial-</span><span class=\"token string-interpolation interpolation punctuation\" style=\"color:#393A34\">{</span><span class=\"token string-interpolation interpolation\">event</span><span class=\"token string-interpolation interpolation punctuation\" style=\"color:#393A34\">.</span><span class=\"token string-interpolation interpolation\">partial_image_index</span><span class=\"token string-interpolation interpolation punctuation\" style=\"color:#393A34\">}</span><span class=\"token string-interpolation string\" style=\"color:#e3116c\">.png\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> event</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">partial_image_b64</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token keyword\" style=\"color:#00009f\">elif</span><span class=\"token plain\"> event</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token builtin\">type</span><span class=\"token plain\"> </span><span class=\"token operator\" style=\"color:#393A34\">==</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"response.completed\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        image_data </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token plain\">o</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">result </span><span class=\"token keyword\" style=\"color:#00009f\">for</span><span class=\"token plain\"> o </span><span class=\"token keyword\" style=\"color:#00009f\">in</span><span class=\"token plain\"> event</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">response</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">output </span><span class=\"token keyword\" style=\"color:#00009f\">if</span><span class=\"token plain\"> o</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token builtin\">type</span><span class=\"token plain\"> </span><span class=\"token operator\" style=\"color:#393A34\">==</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_generation_call\"</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token keyword\" style=\"color:#00009f\">if</span><span class=\"token plain\"> image_data</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">            save_base64_image</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"river-final.png\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> image_data</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token number\" style=\"color:#36acaa\">0</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><br></div></code></pre></div></div>\n<p><strong>Image API — 画像をストリームする</strong></p>\n<div class=\"language-python codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-python codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">stream </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> client</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">images</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">generate</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    prompt</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"Draw a gorgeous image of a river made of white owl feathers, snaking its way through a serene winter landscape\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    model</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-image-2.5-sunburst\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    stream</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token boolean\" style=\"color:#36acaa\">True</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    partial_images</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token number\" style=\"color:#36acaa\">2</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">for</span><span class=\"token plain\"> event </span><span class=\"token keyword\" style=\"color:#00009f\">in</span><span class=\"token plain\"> stream</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token keyword\" style=\"color:#00009f\">if</span><span class=\"token plain\"> event</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token builtin\">type</span><span class=\"token plain\"> </span><span class=\"token operator\" style=\"color:#393A34\">==</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_generation.partial_image\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token keyword\" style=\"color:#00009f\">with</span><span class=\"token plain\"> </span><span class=\"token builtin\">open</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string-interpolation string\" style=\"color:#e3116c\">f\"river</span><span class=\"token string-interpolation interpolation punctuation\" style=\"color:#393A34\">{</span><span class=\"token string-interpolation interpolation\">event</span><span class=\"token string-interpolation interpolation punctuation\" style=\"color:#393A34\">.</span><span class=\"token string-interpolation interpolation\">partial_image_index</span><span class=\"token string-interpolation interpolation punctuation\" style=\"color:#393A34\">}</span><span class=\"token string-interpolation string\" style=\"color:#e3116c\">.png\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"wb\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"> </span><span class=\"token keyword\" style=\"color:#00009f\">as</span><span class=\"token plain\"> f</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">            f</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">write</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">base64</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">b64decode</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">event</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">b64_json</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><br></div></code></pre></div></div>\n<p>結果のイメージ: 部分画像 1 → 部分画像 2 → 最終画像、の順にだんだん精細になっていきます。</p>\n<div class=\"theme-admonition theme-admonition-tip admonition_FoJG alert alert--success\"><div class=\"admonitionHeading_Fyt5\"><span class=\"admonitionIcon_R76F\"><svg viewBox=\"0 0 12 16\"><path fill-rule=\"evenodd\" d=\"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z\"></path></svg></span>api.aicu.ai での長い生成</div><div class=\"admonitionContent_tCQf\"><p>api.aicu.ai では、100 秒を超える生成は <code>stream</code> の <code>X-AICU-Image-Id</code> で id を受け取り、<code>GET /v1/images/status/:id</code> でポーリングして回収できます（Cloudflare のエッジ制限を越えるため）。<code>status/:id</code> は API キーが要ります。Cloudflare Pages Function から呼ぶ場合、<code>stream: true</code> で応答本文を途中で捨てる（<code>body.cancel</code>）と 502 になった実例があるので、Pages Function では <code>stream</code> を使わず同期応答の <code>id</code> を控えるか、<code>flare</code> のように 100 秒に収まるモデルを既定にしてください。</p></div></div>\n<hr>\n<p><em>Part 2（出力のカスタマイズ・画像の編集・マスク・透過・対応モデル・制約）に続きます。原文: <a href=\"https://developers.openai.com/api/docs/guides/image-generation\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Image generation</a>。</em></p>",
            "url": "https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part1",
            "title": "GPT-Image-2.5 画像生成ガイド（日本語訳・Part 1）",
            "summary": "OpenAI 公式「Image generation」ガイド（原文）の日本語訳です。",
            "date_modified": "2026-09-12T00:00:00.000Z",
            "author": {
                "name": "AICU API Team",
                "url": "https://api.aicu.ai"
            },
            "tags": [
                "images",
                "gpt-image",
                "guide",
                "api"
            ]
        },
        {
            "id": "https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part2",
            "content_html": "<p>OpenAI 公式「<strong>Image generation</strong>」ガイド（<a href=\"https://developers.openai.com/api/docs/guides/image-generation\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">原文</a>）の日本語訳、Part 2 です。\n<strong>プロンプトの自動改稿／画像の編集（参照画像・マスク）／出力のカスタマイズ／制限／モデレーション／対応モデル／コストと待ち時間</strong>を扱います。\nPart 1（概要・API 選択・生成・マルチターン・ストリーミング）は<a class=\"\" href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part1\">こちら</a>。</p>\n<p>api.aicu.ai は Image API（<code>/v1/images/generations</code> / <code>/v1/images/edits</code>）を OpenAI 互換で提供しており、参照画像・マスク・<code>moderation</code> はそのまま使えます。</p>\n<!-- -->\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"改稿されたプロンプトrevised-prompt\">改稿されたプロンプト（Revised prompt）<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part2#%E6%94%B9%E7%A8%BF%E3%81%95%E3%82%8C%E3%81%9F%E3%83%97%E3%83%AD%E3%83%B3%E3%83%97%E3%83%88revised-prompt\" class=\"hash-link\" aria-label=\"改稿されたプロンプト（Revised prompt） への直接リンク\" title=\"改稿されたプロンプト（Revised prompt） への直接リンク\" translate=\"no\">​</a></h2>\n<p>Responses API の画像生成ツールでは、メインラインモデル（例: gpt-5.5）が<strong>性能向上のためにプロンプトを自動で改稿</strong>します。\n改稿後のプロンプトは、画像生成呼び出しの <code>revised_prompt</code> フィールドで確認できます。</p>\n<div class=\"language-json codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-json codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token property\" style=\"color:#36acaa\">\"id\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"ig_123\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token property\" style=\"color:#36acaa\">\"type\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_generation_call\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token property\" style=\"color:#36acaa\">\"status\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"completed\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token property\" style=\"color:#36acaa\">\"revised_prompt\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"A gray tabby cat hugging an otter. The otter is wearing an orange scarf. Both animals are cute and friendly, depicted in a warm, heartwarming style.\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token property\" style=\"color:#36acaa\">\"result\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"...\"</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><br></div></code></pre></div></div>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"画像を編集する\">画像を編集する<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part2#%E7%94%BB%E5%83%8F%E3%82%92%E7%B7%A8%E9%9B%86%E3%81%99%E3%82%8B\" class=\"hash-link\" aria-label=\"画像を編集する への直接リンク\" title=\"画像を編集する への直接リンク\" translate=\"no\">​</a></h2>\n<p>画像編集エンドポイントでできること:</p>\n<ul>\n<li class=\"\">既存の画像を編集する</li>\n<li class=\"\">他の画像を<strong>参照</strong>として新しい画像を生成する</li>\n<li class=\"\">画像と、置き換える領域を示す<strong>マスク</strong>をアップロードして、画像の一部を編集する</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"参照画像から新しい画像を作る\">参照画像から新しい画像を作る<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part2#%E5%8F%82%E7%85%A7%E7%94%BB%E5%83%8F%E3%81%8B%E3%82%89%E6%96%B0%E3%81%97%E3%81%84%E7%94%BB%E5%83%8F%E3%82%92%E4%BD%9C%E3%82%8B\" class=\"hash-link\" aria-label=\"参照画像から新しい画像を作る への直接リンク\" title=\"参照画像から新しい画像を作る への直接リンク\" translate=\"no\">​</a></h3>\n<p>1 枚以上の画像を参照にして新しい画像を生成できます。例では 4 枚の入力画像（ボディローション・石けん・お香セット・バスボム）から、\nそれらを詰めたギフトバスケットの画像を作ります。</p>\n<p>Responses API では入力画像を 3 通りで渡せます: <strong>完全な URL</strong>／<strong>Base64 データ URL</strong>／<strong>File ID</strong>（Files API で作成）。</p>\n<div class=\"language-python codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-python codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token keyword\" style=\"color:#00009f\">from</span><span class=\"token plain\"> openai </span><span class=\"token keyword\" style=\"color:#00009f\">import</span><span class=\"token plain\"> OpenAI</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">import</span><span class=\"token plain\"> base64</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">client </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> OpenAI</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">def</span><span class=\"token plain\"> </span><span class=\"token function\" style=\"color:#d73a49\">encode_image</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">file_path</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token keyword\" style=\"color:#00009f\">with</span><span class=\"token plain\"> </span><span class=\"token builtin\">open</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">file_path</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"rb\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"> </span><span class=\"token keyword\" style=\"color:#00009f\">as</span><span class=\"token plain\"> image_file</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token keyword\" style=\"color:#00009f\">return</span><span class=\"token plain\"> base64</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">b64encode</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">image_file</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">read</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">decode</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"utf-8\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">def</span><span class=\"token plain\"> </span><span class=\"token function\" style=\"color:#d73a49\">create_file</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">file_path</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token keyword\" style=\"color:#00009f\">with</span><span class=\"token plain\"> </span><span class=\"token builtin\">open</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">file_path</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"rb\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"> </span><span class=\"token keyword\" style=\"color:#00009f\">as</span><span class=\"token plain\"> file_content</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        result </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> client</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">files</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">create</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token builtin\">file</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\">file_content</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> purpose</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"vision\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token keyword\" style=\"color:#00009f\">return</span><span class=\"token plain\"> result</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token builtin\">id</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">prompt </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> </span><span class=\"token triple-quoted-string string\" style=\"color:#e3116c\">\"\"\"Generate a photorealistic image of a gift basket on a white background</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token triple-quoted-string string\" style=\"color:#e3116c\">labeled 'Relax &amp; Unwind' with a ribbon and handwriting-like font,</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token triple-quoted-string string\" style=\"color:#e3116c\">containing all the items in the reference pictures.\"\"\"</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">base64_image1 </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> encode_image</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"body-lotion.png\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">base64_image2 </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> encode_image</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"soap.png\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">file_id1 </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> create_file</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"bath-bomb.png\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">file_id2 </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> create_file</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"incense-kit.png\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">response </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> client</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">responses</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">create</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    model</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-6-astra\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token builtin\">input</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token string\" style=\"color:#e3116c\">\"role\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"user\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token string\" style=\"color:#e3116c\">\"content\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">            </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"input_text\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"text\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> prompt</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">            </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"input_image\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_url\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string-interpolation string\" style=\"color:#e3116c\">f\"data:image/png;base64,</span><span class=\"token string-interpolation interpolation punctuation\" style=\"color:#393A34\">{</span><span class=\"token string-interpolation interpolation\">base64_image1</span><span class=\"token string-interpolation interpolation punctuation\" style=\"color:#393A34\">}</span><span class=\"token string-interpolation string\" style=\"color:#e3116c\">\"</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">            </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"input_image\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_url\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string-interpolation string\" style=\"color:#e3116c\">f\"data:image/png;base64,</span><span class=\"token string-interpolation interpolation punctuation\" style=\"color:#393A34\">{</span><span class=\"token string-interpolation interpolation\">base64_image2</span><span class=\"token string-interpolation interpolation punctuation\" style=\"color:#393A34\">}</span><span class=\"token string-interpolation string\" style=\"color:#e3116c\">\"</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">            </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"input_image\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"file_id\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> file_id1</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">            </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"input_image\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"file_id\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> file_id2</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    tools</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_generation\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"model\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-image-2.5-sunburst\"</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">image_data </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token plain\">o</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">result </span><span class=\"token keyword\" style=\"color:#00009f\">for</span><span class=\"token plain\"> o </span><span class=\"token keyword\" style=\"color:#00009f\">in</span><span class=\"token plain\"> response</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">output </span><span class=\"token keyword\" style=\"color:#00009f\">if</span><span class=\"token plain\"> o</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token builtin\">type</span><span class=\"token plain\"> </span><span class=\"token operator\" style=\"color:#393A34\">==</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_generation_call\"</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">if</span><span class=\"token plain\"> image_data</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token keyword\" style=\"color:#00009f\">with</span><span class=\"token plain\"> </span><span class=\"token builtin\">open</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"gift-basket.png\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"wb\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"> </span><span class=\"token keyword\" style=\"color:#00009f\">as</span><span class=\"token plain\"> f</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        f</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">write</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">base64</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">b64decode</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">image_data</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token number\" style=\"color:#36acaa\">0</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">else</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token keyword\" style=\"color:#00009f\">print</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">response</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">output_text</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><br></div></code></pre></div></div>\n<p>Image API（api.aicu.ai 互換）なら、<code>/v1/images/edits</code> に <code>image[]</code> として複数枚を multipart で渡します:</p>\n<div class=\"language-bash codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">curl -X POST \"https://api.aicu.ai/v1/images/edits\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H \"Authorization: Bearer $AICU_API_KEY\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -F model=\"gpt-image-2.5-sunburst\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -F \"image[]=@body-lotion.png\" -F \"image[]=@soap.png\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -F \"image[]=@bath-bomb.png\" -F \"image[]=@incense-kit.png\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -F prompt=\"Generate a photorealistic image of a gift basket on a white background labeled 'Relax &amp; Unwind' with a ribbon and handwriting-like font, containing all the items in the reference pictures.\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  | jq -r '.data[0].b64_json' | base64 --decode &gt; gift-basket.png</span><br></div></code></pre></div></div>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"マスクで画像を編集する\">マスクで画像を編集する<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part2#%E3%83%9E%E3%82%B9%E3%82%AF%E3%81%A7%E7%94%BB%E5%83%8F%E3%82%92%E7%B7%A8%E9%9B%86%E3%81%99%E3%82%8B\" class=\"hash-link\" aria-label=\"マスクで画像を編集する への直接リンク\" title=\"マスクで画像を編集する への直接リンク\" translate=\"no\">​</a></h3>\n<p>マスクで<strong>編集する領域</strong>を示せます。GPT Image でマスクを使うと、編集を導く追加の指示がモデルに送られます。</p>\n<p>GPT Image の<strong>マスクは完全にプロンプトベース</strong>です。モデルはマスクを手がかりにしますが、その形状を完全な精度で守るとは限りません。\n複数の入力画像がある場合、マスクは<strong>1 枚目</strong>に適用されます。</p>\n<div class=\"language-python codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-python codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">fileId </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> create_file</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"sunlit_lounge.png\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">maskId </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> create_file</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"mask.png\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">response </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> client</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">responses</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">create</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    model</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-6-astra\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token builtin\">input</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token string\" style=\"color:#e3116c\">\"role\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"user\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token string\" style=\"color:#e3116c\">\"content\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">            </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"input_text\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">             </span><span class=\"token string\" style=\"color:#e3116c\">\"text\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"generate an image of the same sunlit indoor lounge area with a pool but the pool should contain a flamingo\"</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">            </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"input_image\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"file_id\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> fileId</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    tools</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token string\" style=\"color:#e3116c\">\"type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_generation\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token string\" style=\"color:#e3116c\">\"model\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-image-2.5-sunburst\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token string\" style=\"color:#e3116c\">\"quality\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"high\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token string\" style=\"color:#e3116c\">\"input_image_mask\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"file_id\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> maskId</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><br></div></code></pre></div></div>\n<p>例: 「プールのある日当たりのよいラウンジ」の画像＋プール部分のマスク → プールにフラミンゴ（浮き輪）が置き換わった画像。</p>\n<h4 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"マスクの要件\">マスクの要件<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part2#%E3%83%9E%E3%82%B9%E3%82%AF%E3%81%AE%E8%A6%81%E4%BB%B6\" class=\"hash-link\" aria-label=\"マスクの要件 への直接リンク\" title=\"マスクの要件 への直接リンク\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\">編集する画像とマスクは<strong>同じ形式・同じサイズ</strong>（50MB 未満）。</li>\n<li class=\"\">マスク画像は<strong>アルファチャンネル</strong>を含む必要があります。画像編集ツールで作る場合は、アルファ付きで保存してください。</li>\n<li class=\"\">白黒画像から、プログラムでアルファチャンネルを付けることもできます:</li>\n</ul>\n<div class=\"language-python codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-python codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token keyword\" style=\"color:#00009f\">from</span><span class=\"token plain\"> PIL </span><span class=\"token keyword\" style=\"color:#00009f\">import</span><span class=\"token plain\"> Image</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">from</span><span class=\"token plain\"> io </span><span class=\"token keyword\" style=\"color:#00009f\">import</span><span class=\"token plain\"> BytesIO</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token comment\" style=\"color:#999988;font-style:italic\"># 1. 白黒マスクをグレースケールで読む</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">mask </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> Image</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token builtin\">open</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"mask.png\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">convert</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"L\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token comment\" style=\"color:#999988;font-style:italic\"># 2. RGBA に変換してアルファの器を作る</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">mask_rgba </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> mask</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">convert</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"RGBA\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token comment\" style=\"color:#999988;font-style:italic\"># 3. マスク自身でアルファを埋める</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">mask_rgba</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">putalpha</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">mask</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token comment\" style=\"color:#999988;font-style:italic\"># 4-5. PNG で保存</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">buf </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> BytesIO</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">mask_rgba</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">save</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">buf</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token builtin\">format</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"PNG\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">with</span><span class=\"token plain\"> </span><span class=\"token builtin\">open</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"mask_alpha.png\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"wb\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"> </span><span class=\"token keyword\" style=\"color:#00009f\">as</span><span class=\"token plain\"> f</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    f</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">write</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">buf</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">getvalue</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><br></div></code></pre></div></div>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"出力のカスタマイズ\">出力のカスタマイズ<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part2#%E5%87%BA%E5%8A%9B%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA\" class=\"hash-link\" aria-label=\"出力のカスタマイズ への直接リンク\" title=\"出力のカスタマイズ への直接リンク\" translate=\"no\">​</a></h2>\n<p>設定できる出力オプション:</p>\n<ul>\n<li class=\"\"><strong>Size</strong>: 画像の寸法（例: 1024x1024、1024x1536）</li>\n<li class=\"\"><strong>Quality</strong>: レンダリング品質（例: low、medium、high）</li>\n<li class=\"\"><strong>Format</strong>: 出力ファイル形式</li>\n<li class=\"\"><strong>Compression</strong>: JPEG / WebP の圧縮率（0–100%）</li>\n<li class=\"\"><strong>Background</strong>: 透過・不透過・自動</li>\n</ul>\n<p><code>size</code> <code>quality</code> <code>background</code> は <code>auto</code> に対応し、プロンプトに応じてモデルが最適な値を選びます。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"サイズと品質\">サイズと品質<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part2#%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%A8%E5%93%81%E8%B3%AA\" class=\"hash-link\" aria-label=\"サイズと品質 への直接リンク\" title=\"サイズと品質 への直接リンク\" translate=\"no\">​</a></h3>\n<p><code>gpt-image-2.5-sunburst</code> と <code>gpt-image-2.5-flare</code> は <strong><code>xhigh</code> と <code>max</code></strong> の品質設定を追加しました。既定はどちらも <code>auto</code>。以前の GPT Image モデルは <code>high</code> までです。</p>\n<table><thead><tr><th>設定</th><th>選択肢</th></tr></thead><tbody><tr><td>推奨サイズ</td><td>1024x1024（正方）、1536x1024（横）、1024x1536（縦）</td></tr><tr><td>Quality</td><td>low、medium、high、xhigh、max、auto</td></tr></tbody></table>\n<p>両モデルとも <code>1536x864</code> のような任意寸法（<code>幅x高さ</code>）に対応します。幅・高さは <strong>16 の倍数</strong>、縦横比は <strong>1:3〜3:1</strong>、各辺 <strong>3840px 以下</strong>、\n総ピクセル数は <strong>655,360〜8,294,400（4K）</strong>。2560x1440 を超える解像度は実験的です。</p>\n<p>透過背景は <code>background: \"transparent\"</code> と <code>output_format: \"png\"</code> または <code>\"webp\"</code> を指定します。\n下書きには <code>quality: \"low\"</code>、最終アセットは高い設定を比較して、ディテール・待ち時間・コストの均衡点を探します。</p>\n<div class=\"theme-admonition theme-admonition-note admonition_FoJG alert alert--secondary\"><div class=\"admonitionHeading_Fyt5\"><span class=\"admonitionIcon_R76F\"><svg viewBox=\"0 0 14 16\"><path fill-rule=\"evenodd\" d=\"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z\"></path></svg></span>api.aicu.ai の現状</div><div class=\"admonitionContent_tCQf\"><p>api.aicu.ai でも <code>xhigh</code> / <code>max</code> が使えます（<strong>2026-09-21 追記</strong>。それまでは価格未設定のため 400 <code>quality_not_priced</code> を返していました）。1024×1024 で <code>xhigh</code> 11,400 AP・<code>max</code> 25,600 AP。ただし <strong>60 秒を超えることがあり、その場合は結果がメールで届きます</strong>。アプリの中でそのまま待つ用途には <code>low</code> / <code>medium</code> / <code>high</code> を使ってください。詳細は <a class=\"\" href=\"https://api.aicu.ai/docs/ja/pricing\">料金</a> を参照。</p></div></div>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"出力形式\">出力形式<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part2#%E5%87%BA%E5%8A%9B%E5%BD%A2%E5%BC%8F\" class=\"hash-link\" aria-label=\"出力形式 への直接リンク\" title=\"出力形式 への直接リンク\" translate=\"no\">​</a></h3>\n<p>Image API は Base64 エンコードの画像データを返します。既定は <code>png</code>、<code>jpeg</code> / <code>webp</code> も指定できます。\n<code>jpeg</code> / <code>webp</code> では <code>output_compression</code>（0–100%）で圧縮率を指定できます（例: <code>output_compression=50</code> で 50% 圧縮）。\n<strong><code>jpeg</code> は <code>png</code> より速い</strong>ので、待ち時間が気になるなら優先してください。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"制限事項\">制限事項<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part2#%E5%88%B6%E9%99%90%E4%BA%8B%E9%A0%85\" class=\"hash-link\" aria-label=\"制限事項 への直接リンク\" title=\"制限事項 への直接リンク\" translate=\"no\">​</a></h2>\n<p>GPT Image は強力で汎用的ですが、次の制限があります。</p>\n<ul>\n<li class=\"\"><strong>待ち時間</strong>: 複雑なプロンプトは処理に最大 2 分かかることがあります。</li>\n<li class=\"\"><strong>文字の描画</strong>: 大きく改善しましたが、正確な配置と鮮明さで苦戦することがあります。</li>\n<li class=\"\"><strong>一貫性</strong>: 繰り返し登場するキャラクターやブランド要素の視覚的一貫性を、複数回の生成で保てないことがあります。</li>\n<li class=\"\"><strong>構図の制御</strong>: 指示追従は向上しましたが、レイアウトに敏感な構図で要素を正確に配置するのは難しい場合があります。</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"コンテンツモデレーション\">コンテンツモデレーション<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part2#%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E3%83%A2%E3%83%87%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3\" class=\"hash-link\" aria-label=\"コンテンツモデレーション への直接リンク\" title=\"コンテンツモデレーション への直接リンク\" translate=\"no\">​</a></h2>\n<p>すべてのプロンプトと生成画像は、コンテンツポリシーに従ってフィルタリングされます。</p>\n<p>GPT Image の画像生成では、<code>moderation</code> パラメータで厳しさを制御できます。</p>\n<ul>\n<li class=\"\"><code>auto</code>（既定）: 年齢に不適切な可能性のある一部カテゴリの生成を制限する標準のフィルタリング</li>\n<li class=\"\"><code>low</code>: より制限の緩いフィルタリング</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"ブロックされたリクエストとエラーの扱い\">ブロックされたリクエストとエラーの扱い<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part2#%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%95%E3%82%8C%E3%81%9F%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%81%A8%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AE%E6%89%B1%E3%81%84\" class=\"hash-link\" aria-label=\"ブロックされたリクエストとエラーの扱い への直接リンク\" title=\"ブロックされたリクエストとエラーの扱い への直接リンク\" translate=\"no\">​</a></h3>\n<p>画像生成の失敗も他の API エラーと同様に扱います: HTTP ステータス／SDK の例外型を確認し、リクエスト ID を記録し、認証・クォータ・レート制限・サーバー障害はエラーコードガイドを参照。\n<strong>一時的なレート制限・サーバー障害はバックオフして再試行</strong>し、クォータエラーやリクエスト変更が必要なユーザーエラーは自動再試行しません。</p>\n<p>ユーザー側で修正できる失敗は <code>error.type = \"image_generation_user_error\"</code> を返すことがあります。プロンプトや入力画像を変えずに自動再試行しないでください。\nプログラムでは <code>error.code</code> を安定した判別子として使います。</p>\n<p><code>error.code = \"moderation_blocked\"</code> のとき、任意の <code>error.moderation_details</code> が付くことがあります:</p>\n<div class=\"language-json codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-json codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token property\" style=\"color:#36acaa\">\"error\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token property\" style=\"color:#36acaa\">\"type\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"image_generation_user_error\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token property\" style=\"color:#36acaa\">\"code\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"moderation_blocked\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token property\" style=\"color:#36acaa\">\"moderation_details\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">      </span><span class=\"token property\" style=\"color:#36acaa\">\"moderation_stage\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"input\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">      </span><span class=\"token property\" style=\"color:#36acaa\">\"categories\"</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token string\" style=\"color:#e3116c\">\"harassment\"</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><br></div></code></pre></div></div>\n<p><code>moderation_details</code> は、内部の分類ラベルやスコアを露出せずに、粗いデバッグ文脈を提供します。</p>\n<ul>\n<li class=\"\"><code>moderation_stage</code>: <code>input</code>（プロンプト・入力側でブロック）／<code>output</code>（生成画像・出力側でブロック）／<code>unknown</code>（判定困難な稀なケース）</li>\n<li class=\"\"><code>categories</code>: 粗い公開ラベル（例: <code>harassment</code>、<code>self-harm</code>、<code>sexual</code>、<code>violence</code>）</li>\n</ul>\n<p>多くのアプリでは、エンドユーザー向けメッセージは汎用にとどめ、<code>moderation_details</code> は開発者ログ・サポート・分析・軽い修正ヒントに使います。</p>\n<div class=\"language-javascript codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-javascript codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token keyword control-flow\" style=\"color:#00009f\">try</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token keyword control-flow\" style=\"color:#00009f\">await</span><span class=\"token plain\"> openai</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token property-access\">images</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token method function property-access\" style=\"color:#d73a49\">generate</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token literal-property property\" style=\"color:#36acaa\">model</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-image-2.5-sunburst\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token literal-property property\" style=\"color:#36acaa\">prompt</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"Create a poster humiliating my coworker with insulting captions\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token plain\"> </span><span class=\"token keyword control-flow\" style=\"color:#00009f\">catch</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">error</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token keyword control-flow\" style=\"color:#00009f\">if</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">error</span><span class=\"token operator\" style=\"color:#393A34\">?.</span><span class=\"token plain\">code </span><span class=\"token operator\" style=\"color:#393A34\">!==</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"moderation_blocked\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"> </span><span class=\"token keyword control-flow\" style=\"color:#00009f\">throw</span><span class=\"token plain\"> error</span><span class=\"token punctuation\" style=\"color:#393A34\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token keyword\" style=\"color:#00009f\">const</span><span class=\"token plain\"> md </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> error</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token property-access\">error</span><span class=\"token operator\" style=\"color:#393A34\">?.</span><span class=\"token plain\">moderation_details</span><span class=\"token punctuation\" style=\"color:#393A34\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token keyword\" style=\"color:#00009f\">const</span><span class=\"token plain\"> categories </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> md</span><span class=\"token operator\" style=\"color:#393A34\">?.</span><span class=\"token plain\">categories </span><span class=\"token operator\" style=\"color:#393A34\">??</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token keyword\" style=\"color:#00009f\">const</span><span class=\"token plain\"> stage </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> md</span><span class=\"token operator\" style=\"color:#393A34\">?.</span><span class=\"token plain\">moderation_stage</span><span class=\"token punctuation\" style=\"color:#393A34\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token keyword\" style=\"color:#00009f\">let</span><span class=\"token plain\"> hint </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"This request could not be completed because it did not meet safety requirements.\"</span><span class=\"token punctuation\" style=\"color:#393A34\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token keyword control-flow\" style=\"color:#00009f\">if</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">categories</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token method function property-access\" style=\"color:#d73a49\">includes</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"harassment\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"> hint </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"Try removing abusive or targeting language and focus on neutral visual details instead.\"</span><span class=\"token punctuation\" style=\"color:#393A34\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token keyword control-flow\" style=\"color:#00009f\">else</span><span class=\"token plain\"> </span><span class=\"token keyword control-flow\" style=\"color:#00009f\">if</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">stage </span><span class=\"token operator\" style=\"color:#393A34\">===</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"input\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"> hint </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"Try revising the prompt or input images and submit the request again.\"</span><span class=\"token punctuation\" style=\"color:#393A34\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token keyword control-flow\" style=\"color:#00009f\">else</span><span class=\"token plain\"> </span><span class=\"token keyword control-flow\" style=\"color:#00009f\">if</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">stage </span><span class=\"token operator\" style=\"color:#393A34\">===</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"output\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"> hint </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"The generated result was blocked by a safety check. Try changing the prompt and generating again.\"</span><span class=\"token punctuation\" style=\"color:#393A34\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token console class-name\">console</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token method function property-access\" style=\"color:#d73a49\">error</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"Image generation blocked\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token plain\"> </span><span class=\"token literal-property property\" style=\"color:#36acaa\">request_id</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> error</span><span class=\"token operator\" style=\"color:#393A34\">?.</span><span class=\"token plain\">requestID</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token literal-property property\" style=\"color:#36acaa\">code</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> error</span><span class=\"token operator\" style=\"color:#393A34\">?.</span><span class=\"token plain\">code</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token literal-property property\" style=\"color:#36acaa\">moderation_details</span><span class=\"token operator\" style=\"color:#393A34\">:</span><span class=\"token plain\"> md </span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  </span><span class=\"token console class-name\">console</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token method function property-access\" style=\"color:#d73a49\">log</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">hint</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><br></div></code></pre></div></div>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"対応モデル\">対応モデル<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part2#%E5%AF%BE%E5%BF%9C%E3%83%A2%E3%83%87%E3%83%AB\" class=\"hash-link\" aria-label=\"対応モデル への直接リンク\" title=\"対応モデル への直接リンク\" translate=\"no\">​</a></h2>\n<p>Responses API で画像生成を使う場合、<strong>gpt-5 以降</strong>のモデルは画像生成ツールに対応しているはずです。使いたいモデルの詳細ページで対応を確認してください。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"コストと待ち時間openai-公式の公表値\">コストと待ち時間（OpenAI 公式の公表値）<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part2#%E3%82%B3%E3%82%B9%E3%83%88%E3%81%A8%E5%BE%85%E3%81%A1%E6%99%82%E9%96%93openai-%E5%85%AC%E5%BC%8F%E3%81%AE%E5%85%AC%E8%A1%A8%E5%80%A4\" class=\"hash-link\" aria-label=\"コストと待ち時間（OpenAI 公式の公表値） への直接リンク\" title=\"コストと待ち時間（OpenAI 公式の公表値） への直接リンク\" translate=\"no\">​</a></h2>\n<p>Responses API のリクエストは、画像生成コストに加えてメインラインモデルのトークン使用量も含みます。</p>\n<p><strong>GPT Image 2.5 の 2 モデルは同じトークン単価</strong>です: 画像入力 $8 / 1M、画像入力（キャッシュ）$2 / 1M、<strong>画像出力 $30 / 1M</strong>、テキスト入力 $5 / 1M、テキスト入力（キャッシュ）$1.25 / 1M。\n（最新は <a href=\"https://openai.com/api/pricing/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">OpenAI の料金ページ</a>。）</p>\n<p>レスポンスの <code>usage</code> で、プロンプト・サイズ・品質ごとのトークン消費を測ってください。<strong>単価が同じでも 1 枚あたりのコストは同じではありません</strong>——トークン消費量はモデルと品質設定で変わります。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"出力トークンの目安\">出力トークンの目安<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part2#%E5%87%BA%E5%8A%9B%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3%E3%81%AE%E7%9B%AE%E5%AE%89\" class=\"hash-link\" aria-label=\"出力トークンの目安 への直接リンク\" title=\"出力トークンの目安 への直接リンク\" translate=\"no\">​</a></h3>\n<p>モデル・品質・サイズから出力トークンと画像出力コストを見積もれます。<code>gpt-image-2.5-*</code> の品質は low / medium / high / xhigh / max、<code>gpt-image-2</code> は low / medium / high。\n同じ品質設定でもモデルによってトークン数は異なり、画像出力トークンの単価は共通です。見積もりには <code>auto</code> でなく明示的な quality と size を使います。</p>\n<ul>\n<li class=\"\">例（公式の計算機）: <code>gpt-image-2.5</code> の <strong>low・1024x1024 → 出力 196 トークン ≈ $0.00588 / 枚</strong>（画像出力 $30 / 1M 換算。テキスト・画像入力トークンと部分画像は除く）。<strong>この換算は 1024x1024 限定</strong>です。出力トークンは画素数ではなく形状で決まり、正方形がいちばん高く、横長ほど安くなります（実測: high で 1024×1024 = 1,756、1920×1088 = 1,325、1728×800 = 893、1536×512 = 535）。横長バナーは正方形より安い、と覚えておくと見積もりが狂いません。</li>\n<li class=\"\"><strong>部分画像のコスト</strong>: <code>partial_images</code> でストリーミングする場合、部分画像 1 枚につき <strong>追加で 100 画像出力トークン</strong>がかかります。</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"以前の-gpt-image-モデル\">以前の GPT Image モデル<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part2#%E4%BB%A5%E5%89%8D%E3%81%AE-gpt-image-%E3%83%A2%E3%83%87%E3%83%AB\" class=\"hash-link\" aria-label=\"以前の GPT Image モデル への直接リンク\" title=\"以前の GPT Image モデル への直接リンク\" translate=\"no\">​</a></h3>\n<p>以下は Sunburst / Flare <strong>ではなく</strong>以前のモデルの情報です。新規の統合では GPT Image 2.5 を使ってください。</p>\n<p><code>gpt-image-2</code> の <code>quality</code> は low / medium / high に加えて <code>auto</code>（既定）も指定できます。また <strong><code>input_fidelity</code> は GPT-Image-2.5 系（Flare / Sunburst）と gpt-image-2 のどちらも受け付けません</strong>（400 <code>invalid_input_fidelity_model</code>。gpt-image-1.5 系のパラメータ）。参照画像の忠実度はプロンプトで役割を書いて担保します。</p>\n<p><code>gpt-image-2</code> より前のモデルは、まず専用の画像トークンを生成してから画像を描きます。待ち時間もコストも、描画に必要なトークン数に比例します（大きいサイズ・高い品質ほど多い）。</p>\n<table><thead><tr><th>品質</th><th>正方（1024×1024）</th><th>縦（1024×1536）</th><th>横（1536×1024）</th></tr></thead><tbody><tr><td>Low</td><td>272</td><td>408</td><td>400</td></tr><tr><td>Medium</td><td>1056</td><td>1584</td><td>1568</td></tr><tr><td>High</td><td>4160</td><td>6240</td><td>6208</td></tr></tbody></table>\n<p>入力トークン（プロンプトのテキスト、編集時の入力画像）も加算されます。<code>gpt-image-2</code> は画像入力を常に高忠実度で処理するため、参照画像つきの編集は入力トークンが増えます。\n最終コスト＝入力テキストトークン＋（編集時）入力画像トークン＋画像出力トークン。</p>\n<p><strong>旧モデルの 1 枚あたり価格例（OpenAI 公表）</strong></p>\n<table><thead><tr><th>モデル</th><th>品質</th><th>1024x1024</th><th>1024x1536</th><th>1536x1024</th></tr></thead><tbody><tr><td>GPT Image 2</td><td>Low / Medium / High</td><td>$0.006 / $0.053 / $0.211</td><td>$0.005 / $0.041 / $0.165</td><td>$0.005 / $0.041 / $0.165</td></tr><tr><td>GPT Image 1.5</td><td>Low / Medium / High</td><td>$0.009 / $0.034 / $0.133</td><td>$0.013 / $0.05 / $0.2</td><td>$0.013 / $0.05 / $0.2</td></tr><tr><td>GPT Image 1</td><td>Low / Medium / High</td><td>$0.011 / $0.042 / $0.167</td><td>$0.016 / $0.063 / $0.25</td><td>$0.016 / $0.063 / $0.25</td></tr><tr><td>GPT Image 1 Mini</td><td>Low / Medium / High</td><td>$0.005 / $0.011 / $0.036</td><td>$0.006 / $0.015 / $0.052</td><td>$0.006 / $0.015 / $0.052</td></tr></tbody></table>\n<p>非正方の大きい解像度が、同じ品質の小さい／正方の解像度より<strong>少ない</strong>出力トークンになることもあります。</p>\n<hr>\n<p><em>本記事は OpenAI 公式ガイドの日本語訳です。掲載の料金は OpenAI の公表値で、AICU API の従量課金（AP）とは別です。原文: <a href=\"https://developers.openai.com/api/docs/guides/image-generation\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Image generation</a>。</em></p>",
            "url": "https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-image-generation-guide-ja-part2",
            "title": "GPT-Image-2.5 画像生成ガイド（日本語訳・Part 2）",
            "summary": "OpenAI 公式「Image generation」ガイド（原文）の日本語訳、Part 2 です。",
            "date_modified": "2026-09-12T00:00:00.000Z",
            "author": {
                "name": "AICU API Team",
                "url": "https://api.aicu.ai"
            },
            "tags": [
                "images",
                "gpt-image",
                "guide",
                "api"
            ]
        },
        {
            "id": "https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-prompting-guide-ja",
            "content_html": "<p>OpenAI 公式の <strong>GPT Image 2.5 プロンプトガイド</strong>（<a href=\"https://developers.openai.com/api/docs/guides/image-prompting\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">原文</a>）を日本語訳しました。\nモデルの選び方、効果的なプロンプトの書き方、編集で細部を保つコツをまとめた実務ガイドです。\n例のプロンプトは<strong>そのまま使える起点</strong>なので、英語のまま掲載し、自分の画像・要件に合わせて調整してください。</p>\n<!-- -->\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"概要\">概要<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-prompting-guide-ja#%E6%A6%82%E8%A6%81\" class=\"hash-link\" aria-label=\"概要 への直接リンク\" title=\"概要 への直接リンク\" translate=\"no\">​</a></h2>\n<p>必要な画像から出発し、被写体・構図・スタイル・制約を記述します。編集では「何を変え」「何を変えないか」を明確にし、\n一度に一つずつ調整して結果を確認します。</p>\n<p>GPT Image 2.5 には 2 つのモデルがあります。<strong>GPT Image 2.5 Flare</strong> は速度に最適化した小型モデルで、画質は GPT Image 2 相当。\n<strong>GPT Image 2.5 Sunburst</strong> は品質に最適化したベースモデルで、GPT Image 2 より高画質。<strong>両モデルとも精密な編集と被写体維持が向上</strong>しています。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"モデルの選び方\">モデルの選び方<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-prompting-guide-ja#%E3%83%A2%E3%83%87%E3%83%AB%E3%81%AE%E9%81%B8%E3%81%B3%E6%96%B9\" class=\"hash-link\" aria-label=\"モデルの選び方 への直接リンク\" title=\"モデルの選び方 への直接リンク\" translate=\"no\">​</a></h2>\n<p>新しいワークフローでは、<strong>速度優先なら Flare</strong>、<strong>厳しい品質要件が優先なら Sunburst</strong> から始めます。要件を満たしたら、待ち時間を減らせないか検討します。</p>\n<p>既存モデルからの移行では、いまの画質を出発点にします。両モデルとも生成・編集・透過背景に対応します。</p>\n<table><thead><tr><th>いまのワークフロー</th><th>まず試すもの</th></tr></thead><tbody><tr><td>検証済みの GPT Image 2 ワークフローが既に品質要件を満たしている</td><td><strong>Flare</strong>。品質を保ったまま待ち時間を減らせるか確認</td></tr><tr><td>GPT Image 2 では品質が足りない複雑なユースケース</td><td><strong>Sunburst</strong>。まず必要な品質が出ることを確認</td></tr></tbody></table>\n<p>Sunburst が要件を満たしたら、同じプロンプト・入力で <strong>Flare</strong> を試し、同等の品質かつ待ち時間が改善するなら Flare へ切り替えます。\nSunburst の品質優位が必要な場合はそのまま使います。<strong>応答時間と品質は自分のワークロードで測定</strong>してください（あるワークロードの速度改善が他でも同じとは限りません）。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"モデルパラメータ\">モデルパラメータ<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-prompting-guide-ja#%E3%83%A2%E3%83%87%E3%83%AB%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF\" class=\"hash-link\" aria-label=\"モデルパラメータ への直接リンク\" title=\"モデルパラメータ への直接リンク\" translate=\"no\">​</a></h2>\n<p>API パラメータはプロンプトとは別に設定します。</p>\n<table><thead><tr><th>パラメータ</th><th>GPT Image 2.5 の設定</th></tr></thead><tbody><tr><td><code>model</code></td><td><code>gpt-image-2.5-flare</code>（小型）/ <code>gpt-image-2.5-sunburst</code>（ベース）</td></tr><tr><td><code>quality</code></td><td><code>auto</code>（既定）/ <code>low</code> / <code>medium</code> / <code>high</code> / <code>xhigh</code> / <code>max</code></td></tr><tr><td><code>size</code></td><td><code>auto</code> または任意解像度。定番: <code>1024x1024</code>（正方）、<code>1536x1024</code>（横）、<code>1024x1536</code>（縦）、<code>2048x2048</code>（2K 正方）、<code>2048x1152</code>（2K 横）、<code>3840x2160</code>（4K 横）、<code>2160x3840</code>（4K 縦）</td></tr><tr><td><code>background</code></td><td><code>auto</code> / <code>opaque</code> / <code>transparent</code></td></tr></tbody></table>\n<p>任意解像度 <code>幅x高さ</code> の制約:</p>\n<ul>\n<li class=\"\">各辺は <strong>3,840px 以下</strong></li>\n<li class=\"\">各辺は <strong>16 の倍数</strong></li>\n<li class=\"\">長辺 : 短辺は <strong>3:1 以下</strong></li>\n<li class=\"\">総ピクセル数は <strong>655,360〜8,294,400</strong></li>\n<li class=\"\">3,686,400 px（2560x1440）超は<strong>実験的</strong></li>\n</ul>\n<p>品質は上記のモデル選択後に調整します。最初の比較では、両モデルが対応する品質設定を<strong>明示的に固定</strong>し、プロンプト・参照画像・出力サイズも揃えます\n（同じ品質ラベルでも、モデル間で画質・応答時間が同じとは限りません）。</p>\n<p>不足なら高い品質設定を試し、要件を満たしたら低い設定でも許容できるか試します。<code>xhigh</code> / <code>max</code> は<strong>待ち時間の予算内で、満たせない品質要件を改善する時だけ</strong>使います。</p>\n<div class=\"theme-admonition theme-admonition-note admonition_FoJG alert alert--secondary\"><div class=\"admonitionHeading_Fyt5\"><span class=\"admonitionIcon_R76F\"><svg viewBox=\"0 0 14 16\"><path fill-rule=\"evenodd\" d=\"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z\"></path></svg></span>api.aicu.ai での <code>xhigh</code> / <code>max</code></div><div class=\"admonitionContent_tCQf\"><p>api.aicu.ai でも <code>xhigh</code> / <code>max</code> が使えます（<strong>2026-09-21 追記</strong>。それまでは価格未設定のため 400 <code>quality_not_priced</code> を返していました）。1024×1024 で <code>xhigh</code> 11,400 AP・<code>max</code> 25,600 AP。ただし <strong>60 秒を超えることがあり、その場合は結果がメールで届きます</strong>。アプリの中でそのまま待つ用途には <code>low</code> / <code>medium</code> / <code>high</code> を使ってください。詳細は <a class=\"\" href=\"https://api.aicu.ai/docs/ja/pricing\">料金</a> を参照。</p></div></div>\n<p>透過アセットは <code>background=\"transparent\"</code> を明示し、PNG か WebP を使います。デコード後のアルファチャンネル（髪・ガラス・影・輪郭）を確認します。<code>output_compression</code> は JPEG / WebP のみ（PNG には使わない）。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"既存ワークフローの移行\">既存ワークフローの移行<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-prompting-guide-ja#%E6%97%A2%E5%AD%98%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC%E3%81%AE%E7%A7%BB%E8%A1%8C\" class=\"hash-link\" aria-label=\"既存ワークフローの移行 への直接リンク\" title=\"既存ワークフローの移行 への直接リンク\" translate=\"no\">​</a></h2>\n<ol>\n<li class=\"\"><strong>ベースラインを保存</strong>: 代表的な本番プロンプトと参照画像（難しい編集・正確なテキスト・顔・製品形状・透過アセットを含む）、現行モデル・設定・結果を記録。</li>\n<li class=\"\"><strong>最初の候補を選ぶ</strong>: GPT Image 2 で足りていれば Flare から（待ち時間改善を確認）。複雑用途で足りなければ Sunburst から（まず品質を確認）。最初の比較はプロンプト・参照・寸法・出力形式を固定。</li>\n<li class=\"\"><strong>完全な結果を確認</strong>: 指示追従、同一性・製品維持、テキスト精度、意図しない変化、透過を比較。<strong>同じ要求を繰り返して一貫性を測る</strong>。編集は個別ステップと連続シーケンスの両方を検証。</li>\n<li class=\"\"><strong>品質が通ってから待ち時間を評価</strong>: Sunburst で始めて要件を満たしたら、同じ要件で Flare を評価。品質が許容でき待ち時間が改善する時だけ切替。</li>\n<li class=\"\"><strong>一度に一設定だけ調整</strong>: プロンプト書き換えより先に品質レベルを比較。通常・遅い応答、失敗、リトライ、<strong>受理画像あたりのコスト</strong>を測る。速いモデルが安いと決めつけず、現行料金を確認。</li>\n<li class=\"\"><strong>ワークフロー単位で段階展開</strong>: 受理基準を通ったら少量のトラフィックから始め、同じ指標を監視して徐々に拡大。ロールバック用に旧モデルを残す。</li>\n</ol>\n<p>繰り返し編集は、保つはずの細部を変えてしまうことがあります。制約を<strong>再掲</strong>し、各結果を確認。ピクセル単位で不変にしたい領域は、プロンプト頼みでなく<strong>承認済みの編集を元画像に合成</strong>します。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"プロンプトの基本8-原則\">プロンプトの基本（8 原則）<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-prompting-guide-ja#%E3%83%97%E3%83%AD%E3%83%B3%E3%83%97%E3%83%88%E3%81%AE%E5%9F%BA%E6%9C%AC8-%E5%8E%9F%E5%89%87\" class=\"hash-link\" aria-label=\"プロンプトの基本（8 原則） への直接リンク\" title=\"プロンプトの基本（8 原則） への直接リンク\" translate=\"no\">​</a></h2>\n<ol>\n<li class=\"\"><strong>結果を定義する</strong>: 被写体と用途（製品写真・広告・図解など）を挙げ、構図・アスペクト比・重要な配置制約を指定。複雑なら「シーン／被写体／詳細／制約」のラベル付き節に整理。</li>\n<li class=\"\"><strong>保守しやすい形式を選ぶ</strong>: 短文・記述段落・JSON 風・命令・タグ、どれでも同じ意図を表せる。特殊構文に頼らず、<strong>読みやすく更新しやすい形式</strong>を選ぶ。</li>\n<li class=\"\"><strong>見える詳細を記述</strong>: 素材・照明・色・視覚媒体を挙げる。目的なら「photorealistic」「real photograph」を明示。カメラ諸元は「見た目のヒント」であって物理シミュレーションの保証ではない。広角・シネマ・低照度・雨・ネオンは、雰囲気語だけでなく<strong>規模・空気感・色</strong>を指定。</li>\n<li class=\"\"><strong>人物と動作を指定</strong>: 身体のフレーミング、相対サイズ、視線、物との関わり。「full body visible, feet included」「looking down at the open book」「hands naturally gripping the handlebars」のように具体的に。</li>\n<li class=\"\"><strong>正確なテキストを指定</strong>: 必要な文言を<strong>引用符</strong>で囲み、位置とタイポグラフィを記述。珍しい語・ブランド名は一文字ずつ綴る。余計なテキストは禁止と伝え、出力の綴り・可読性を確認。小さな文字・密な情報は medium と high を比較。</li>\n<li class=\"\"><strong>変更と制約を分ける</strong>: 編集は「change only X」と言い、保つ詳細（同一性・幾何・レイアウト・照明・ラベル）を列挙。除外（不要なテキスト・ロゴ・透かし）も明示。精密な局所編集では、彩度・コントラスト・矢印・カメラ角度・周囲の物も「不変」と指定。</li>\n<li class=\"\"><strong>参照に役割を割り当てる</strong>: 各入力を番号と用途（被写体・スタイル・服・背景）で識別。どう組み合わせ、どの要素をどこへ動かすかを説明。</li>\n<li class=\"\"><strong>意図的に反復する</strong>: 前の出力を次の編集入力に渡し、<strong>一度に一つ</strong>変更し、保つ詳細を再掲。「same style as before」等は文脈を運ぶが、ドリフトしたら重要な制約を再掲。指示を足す前に結果を比較。</li>\n</ol>\n<p>以下の例はそれぞれ別の技法を示します。プロンプトは起点として、自分の画像・要件に合わせて調整してください。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"画像生成の例\">画像生成の例<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-prompting-guide-ja#%E7%94%BB%E5%83%8F%E7%94%9F%E6%88%90%E3%81%AE%E4%BE%8B\" class=\"hash-link\" aria-label=\"画像生成の例 への直接リンク\" title=\"画像生成の例 への直接リンク\" translate=\"no\">​</a></h2>\n<p>各例の設定と、そのまま使えるプロンプト（英語）を掲載します。</p>\n<p><strong>スタイルと照明の制御</strong>（<code>size=\"1024x1536\"</code>, <code>quality=\"medium\"</code>）— 被写体・フレーミング・光・質感で写真を記述し、過度なレタッチを明示的に除外。</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Create a photorealistic candid photograph of an elderly sailor standing on a small fishing boat.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">He has weathered skin with visible wrinkles, pores, and sun texture, and a few faded traditional sailor tattoos on his arms.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">He is calmly adjusting a net while his dog sits nearby on the deck. Shot like a 35mm film photograph, medium close-up at eye level, using a 50mm lens.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Soft coastal daylight, shallow depth of field, subtle film grain, natural color balance.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">The image should feel honest and unposed, with real skin texture, worn materials, and everyday detail. No glamorization, no heavy retouching.</span><br></div></code></pre></div></div>\n<p><strong>プロセスを図解する</strong>（<code>1024x1536</code>, <code>medium</code>）— 図・情報グラフィックはラベルと事実関係も検証。</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Create a detailed Infographic of the functioning and flow of an automatic coffee machine like a Jura.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">From bean basket, to grinding, to scale, water tank, boiler, etc.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">I'd like to understand technically and visually the flow.</span><br></div></code></pre></div></div>\n<p><strong>正確なテキストを描画</strong>（<code>1024x1536</code>, <code>medium</code>）— 文言を引用し、出現回数と視覚処理を指定。</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Give me a cool in culture ad / fashion shot for a brand called Thread.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">It's a hip young street brand. The ad shows a group of friends hanging out together with the tagline \"Yours to Create.\"</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Make it feel like a polished campaign image for a youth streetwear audience: stylish, contemporary, energetic, and tasteful.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Use clean composition, strong color direction, natural poses, and premium fashion photography cues.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Render the tagline exactly once, clearly and legibly, integrated into the ad layout.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">No extra text, no watermarks, no unrelated logos.</span><br></div></code></pre></div></div>\n<p><strong>再利用できるロゴを設計</strong>（<code>1024x1536</code>, <code>medium</code>, <code>background=\"transparent\"</code>, <code>output_format=\"png\"</code>, <code>n=1</code>）— ブランドと形状を記述、小さくても読める構図に。<code>n</code> で複数バリエーション。</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Create an original, non-infringing logo for a company called Field &amp; Flour, a local bakery.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">The logo should feel warm, simple, and timeless. Use clean, vector-like shapes, a strong silhouette, and balanced negative space.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Favor simplicity over detail so it reads clearly at small and large sizes. Flat design, minimal strokes, no gradients unless essential.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Fully transparent background. Deliver a single centered logo with generous padding, clean alpha edges, and no solid backdrop, scenery, checkerboard, or watermark.</span><br></div></code></pre></div></div>\n<p><strong>歴史・実世界の文脈</strong>（<code>1024x1536</code>, <code>medium</code>）— 場所と日付で時代設定。衣装・演出・環境の史実性を確認。</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Create a realistic outdoor crowd scene in Bethel, New York on August 16, 1969.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Photorealistic, period-accurate clothing, staging, and environment.</span><br></div></code></pre></div></div>\n<p><strong>物語をコマ漫画に</strong>（<code>1024x1536</code>, <code>medium</code>）— 物語を「1 コマ 1 ビート」の明確な視覚に分解。</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Create a short vertical comic-style reel with 4 panels.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Panel 1: The owner leaves through the front door. The pet is framed in the window behind them, small against the glass, eyes wide, paws pressed high, the house suddenly quiet.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Panel 2: The door clicks shut. Silence breaks. The pet slowly turns toward the empty house, posture shifting, eyes sharp with possibility.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Panel 3: The house transformed. The pet sprawls across the couch like it owns the place, crumbs nearby, sunlight cutting across the room like a spotlight.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Panel 4: The door opens. The pet is seated perfectly by the entrance, alert and composed, as if nothing happened.</span><br></div></code></pre></div></div>\n<p><strong>UI プレビュー</strong>（<code>1024x1536</code>, <code>medium</code>）— 「既に存在する製品」として記述。レイアウト・階層・余白・実際の UI 要素に集中し、コンセプトアート語を避ける。</p>\n<p><strong>科学・教育ビジュアル</strong>（<code>1536x1024</code>, <code>high</code>）— 授業設計ブリーフのように、対象・学習目標・形式・必須ラベル・科学的制約を定義。密なラベルは <code>high</code>。</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Create a simple biology diagram titled \"Cellular Respiration at a Glance\" for high school students.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Show how glucose turns into energy inside a cell. Include glycolysis, the Krebs cycle, and the electron transport chain.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Use arrows to connect the steps, and label the main molecules: glucose, pyruvate, ATP, NADH, FADH2, CO2, O2, and H2O.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Make it look like a clean classroom handout or slide, with a white background, simple icons, clear labels, and easy-to-read text.</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Avoid tiny text, extra decoration, or anything that makes the diagram hard to understand.</span><br></div></code></pre></div></div>\n<p><strong>スライド・図表・チャート</strong>（<code>1536x864</code>, <code>high</code>）— 「成果物の仕様書」として、正確なテキスト・データを与える。小さな文字・凡例・軸・脚注があるなら <code>high</code>。数値・出典はダミーであり、使用前に検証済みデータに差し替える。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"画像編集の例\">画像編集の例<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-prompting-guide-ja#%E7%94%BB%E5%83%8F%E7%B7%A8%E9%9B%86%E3%81%AE%E4%BE%8B\" class=\"hash-link\" aria-label=\"画像編集の例 への直接リンク\" title=\"画像編集の例 への直接リンク\" translate=\"no\">​</a></h2>\n<p><code>client.images.edit</code>（参照入力画像つき）を使います。マスクが要る局所編集はマスク編集を参照。</p>\n<ul>\n<li class=\"\"><strong>レイアウトを保って翻訳</strong>（<code>1024x1536</code>, <code>high</code>）: <code>Translate the text in the infographic to Spanish. Do not change any other aspect of the image.</code></li>\n<li class=\"\"><strong>スタイル転写</strong>（<code>1024x1536</code>, <code>medium</code>）: 参照画像に「パレット／質感／媒体」の役割を割り当て、新しい被写体は別に記述。<code>Use the same style from the input image and generate a man riding a motorcycle on a white background.</code></li>\n<li class=\"\"><strong>同一性を保って服だけ変える</strong>（<code>1024x1536</code>, <code>medium</code>）: 人物写真＋服の参照を渡し、「顔・肌・体型・ポーズは不変、服だけ変更」と明示。</li>\n<li class=\"\"><strong>参照を合成</strong>（<code>1024x1536</code>, <code>medium</code>）: <code>image 1</code>=シーン、<code>image 2</code>=対象、動かす要素と保つ要素を指定。</li>\n<li class=\"\"><strong>透過の切り抜き</strong>（<code>1024x1536</code>, <code>medium</code>, <code>background=\"transparent\"</code>, <code>output_format=\"png\"</code>）: プロンプトで被写体の分離を要求し、API で透過を指定。市松模様は透過ではない。</li>\n<li class=\"\"><strong>線画→写実</strong>（<code>1024x1536</code>, <code>medium</code>）: レイアウト・比率・遠近を保ち、素材と照明で写実化。<code>Do not add new elements or text.</code></li>\n<li class=\"\"><strong>物体を消す</strong>（<code>1024x1536</code>, <code>medium</code>）: <code>Remove the flower from man's hand. Do not change anything else.</code></li>\n<li class=\"\"><strong>人物をシーンに挿入</strong>（<code>1024x1536</code>, <code>medium</code>）: 同一性を保ちつつ新しいシーンへ。保つ顔の特徴と比率を明示（gpt-image-2 では <code>input_fidelity</code> を省く＝常に高忠実度）。</li>\n<li class=\"\"><strong>ターンをまたいで洗練</strong>: 1 つの出力を次の入力にし、変更は毎回一つに絞る。</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"そのほかのワークフロー\">そのほかのワークフロー<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-prompting-guide-ja#%E3%81%9D%E3%81%AE%E3%81%BB%E3%81%8B%E3%81%AE%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC\" class=\"hash-link\" aria-label=\"そのほかのワークフロー への直接リンク\" title=\"そのほかのワークフロー への直接リンク\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>部屋の家具を変える</strong>（<code>1536x1024</code>, <code>medium</code>）: カメラ角度・照明・影・周囲を保ち、1 つの物だけ差し替える「外科的な写実」。</li>\n<li class=\"\"><strong>ホリデーカード</strong>（<code>1024x1536</code>, <code>medium</code>）: シーン・情感・素材・照明・正確なコピーを記述。カード文言は verbatim で。</li>\n<li class=\"\"><strong>コレクタブル商品</strong>（<code>1024x1536</code>, <code>medium</code>）: 素材・パッケージ・印刷の鮮明さを製品写真の語彙で。オリジナルで非侵害に。</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"キャラクターの一貫性を保つ\">キャラクターの一貫性を保つ<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-prompting-guide-ja#%E3%82%AD%E3%83%A3%E3%83%A9%E3%82%AF%E3%82%BF%E3%83%BC%E3%81%AE%E4%B8%80%E8%B2%AB%E6%80%A7%E3%82%92%E4%BF%9D%E3%81%A4\" class=\"hash-link\" aria-label=\"キャラクターの一貫性を保つ への直接リンク\" title=\"キャラクターの一貫性を保つ への直接リンク\" translate=\"no\">​</a></h2>\n<p>複数の挿絵がある本などでは、<strong>再利用できるキャラクター参照</strong>を作り、シーン・ポーズ・ページをまたいで見た目を保ちます。\nまずキャラの外見・比率・衣装・トーンを確立し（generation）、続く各シーンで<strong>外見の制約を再掲</strong>しながら環境と物語だけ変えます（edit）。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"大量生成バッチのサンプル--apiaicuai\">大量生成（バッチ）のサンプル — api.aicu.ai<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-prompting-guide-ja#%E5%A4%A7%E9%87%8F%E7%94%9F%E6%88%90%E3%83%90%E3%83%83%E3%83%81%E3%81%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB--apiaicuai\" class=\"hash-link\" aria-label=\"大量生成（バッチ）のサンプル — api.aicu.ai への直接リンク\" title=\"大量生成（バッチ）のサンプル — api.aicu.ai への直接リンク\" translate=\"no\">​</a></h2>\n<p>Flare は「ラピッドプロトタイピング・大量生成」に向いています。api.aicu.ai は OpenAI 互換なので、\n<strong>同じプロンプトの複数バリエーションや、多数のプロンプトを一括で回す</strong>のも簡単です。下は同時実行で\nまとめて生成する Python サンプル（<code>AICU_API_KEY</code> を使用）。</p>\n<div class=\"language-python codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-python codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token keyword\" style=\"color:#00009f\">import</span><span class=\"token plain\"> os</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> base64</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> concurrent</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">futures </span><span class=\"token keyword\" style=\"color:#00009f\">as</span><span class=\"token plain\"> cf</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> urllib</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">request</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> json</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">API </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"https://api.aicu.ai/v1/images/generations\"</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">KEY </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> os</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">environ</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token string\" style=\"color:#e3116c\">\"AICU_API_KEY\"</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token plain\">          </span><span class=\"token comment\" style=\"color:#999988;font-style:italic\"># aicu_live_...</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">def</span><span class=\"token plain\"> </span><span class=\"token function\" style=\"color:#d73a49\">generate</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">i</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> prompt</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    body </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> json</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">dumps</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token punctuation\" style=\"color:#393A34\">{</span><span class=\"token string\" style=\"color:#e3116c\">\"model\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"gpt-image-2.5-flare\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">                       </span><span class=\"token string\" style=\"color:#e3116c\">\"size\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"1024x1024\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"quality\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"high\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">                       </span><span class=\"token string\" style=\"color:#e3116c\">\"prompt\"</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> prompt</span><span class=\"token punctuation\" style=\"color:#393A34\">}</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">encode</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    req </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> urllib</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">request</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">Request</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">API</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> data</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\">body</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> method</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token string\" style=\"color:#e3116c\">\"POST\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    req</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">add_header</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"Authorization\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string-interpolation string\" style=\"color:#e3116c\">f\"Bearer </span><span class=\"token string-interpolation interpolation punctuation\" style=\"color:#393A34\">{</span><span class=\"token string-interpolation interpolation\">KEY</span><span class=\"token string-interpolation interpolation punctuation\" style=\"color:#393A34\">}</span><span class=\"token string-interpolation string\" style=\"color:#e3116c\">\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    req</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">add_header</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"Content-Type\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"application/json\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    d </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> json</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">load</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">urllib</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">request</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">urlopen</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">req</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> timeout</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token number\" style=\"color:#36acaa\">180</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token builtin\">open</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string-interpolation string\" style=\"color:#e3116c\">f\"out_</span><span class=\"token string-interpolation interpolation punctuation\" style=\"color:#393A34\">{</span><span class=\"token string-interpolation interpolation\">i</span><span class=\"token string-interpolation interpolation punctuation\" style=\"color:#393A34\">:</span><span class=\"token string-interpolation interpolation format-spec\">02d</span><span class=\"token string-interpolation interpolation punctuation\" style=\"color:#393A34\">}</span><span class=\"token string-interpolation string\" style=\"color:#e3116c\">.png\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:#e3116c\">\"wb\"</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">write</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">base64</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">b64decode</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">d</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token string\" style=\"color:#e3116c\">\"data\"</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token number\" style=\"color:#36acaa\">0</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token string\" style=\"color:#e3116c\">\"b64_json\"</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token keyword\" style=\"color:#00009f\">return</span><span class=\"token plain\"> i</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">prompts </span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:#393A34\">[</span><span class=\"token string-interpolation string\" style=\"color:#e3116c\">f\"a cute mascot robot, pose variation </span><span class=\"token string-interpolation interpolation punctuation\" style=\"color:#393A34\">{</span><span class=\"token string-interpolation interpolation\">i</span><span class=\"token string-interpolation interpolation punctuation\" style=\"color:#393A34\">}</span><span class=\"token string-interpolation string\" style=\"color:#e3116c\">, studio lighting, no text\"</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">           </span><span class=\"token keyword\" style=\"color:#00009f\">for</span><span class=\"token plain\"> i </span><span class=\"token keyword\" style=\"color:#00009f\">in</span><span class=\"token plain\"> </span><span class=\"token builtin\">range</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token number\" style=\"color:#36acaa\">10</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">]</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token comment\" style=\"color:#999988;font-style:italic\"># 同時 4 本で 10 枚を一括生成（大量生成・歩留まり評価にも使える形）</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"></span><span class=\"token keyword\" style=\"color:#00009f\">with</span><span class=\"token plain\"> cf</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token plain\">ThreadPoolExecutor</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">max_workers</span><span class=\"token operator\" style=\"color:#393A34\">=</span><span class=\"token number\" style=\"color:#36acaa\">4</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token plain\"> </span><span class=\"token keyword\" style=\"color:#00009f\">as</span><span class=\"token plain\"> ex</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">    </span><span class=\"token keyword\" style=\"color:#00009f\">for</span><span class=\"token plain\"> done </span><span class=\"token keyword\" style=\"color:#00009f\">in</span><span class=\"token plain\"> ex</span><span class=\"token punctuation\" style=\"color:#393A34\">.</span><span class=\"token builtin\">map</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token keyword\" style=\"color:#00009f\">lambda</span><span class=\"token plain\"> a</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"> generate</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token operator\" style=\"color:#393A34\">*</span><span class=\"token plain\">a</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> </span><span class=\"token builtin\">enumerate</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token plain\">prompts</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><span class=\"token punctuation\" style=\"color:#393A34\">:</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        </span><span class=\"token keyword\" style=\"color:#00009f\">print</span><span class=\"token punctuation\" style=\"color:#393A34\">(</span><span class=\"token string\" style=\"color:#e3116c\">\"done\"</span><span class=\"token punctuation\" style=\"color:#393A34\">,</span><span class=\"token plain\"> done</span><span class=\"token punctuation\" style=\"color:#393A34\">)</span><br></div></code></pre></div></div>\n<ul>\n<li class=\"\">残高（AP）は成功呼び出しに応じて消費され、<strong>残高ゼロで自動停止</strong>します（想定外の請求は出ません）。</li>\n<li class=\"\">100 秒を超える生成は、<code>stream</code> の <code>X-AICU-Image-Id</code> で id を受け取り <code>/v1/images/status/:id</code> でポーリングして回収できます（大量・高解像度で有効）。</li>\n</ul>\n<div class=\"theme-admonition theme-admonition-note admonition_FoJG alert alert--secondary\"><div class=\"admonitionHeading_Fyt5\"><span class=\"admonitionIcon_R76F\"><svg viewBox=\"0 0 14 16\"><path fill-rule=\"evenodd\" d=\"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z\"></path></svg></span>バッチと料金について（OpenAI 公式）</div><div class=\"admonitionContent_tCQf\"><p><strong>GPT-Image-2.5（Flare / Sunburst）には「バッチ料金」の設定がありません</strong>。＝非同期 Batch モードは無く、標準の同期生成のみ。<strong>十分に高速だから</strong>バッチ枠を設けていない、という位置づけです（バッチ枠があるのは旧 <code>gpt-image-2</code>）。\nまた <strong>Flare と Sunburst は同一料金</strong>（画像 入力 $8 / キャッシュ $2 / 出力 $30、テキスト $5 / $1.25・いずれも 1M tokens 単位）。<strong>価格差はなく、違いは「品質」と「待ち時間」だけ</strong>。だから「大量生成」は上のように<strong>同時実行</strong>で回すのが実務的です。（最新の公式料金は <a href=\"https://openai.com/api/pricing/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">OpenAI API pricing</a>。）</p></div></div>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"結果を確認する\">結果を確認する<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-prompting-guide-ja#%E7%B5%90%E6%9E%9C%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B\" class=\"hash-link\" aria-label=\"結果を確認する への直接リンク\" title=\"結果を確認する への直接リンク\" translate=\"no\">​</a></h2>\n<p>使う前に、要件に照らして確認します。</p>\n<ul>\n<li class=\"\">必要なテキストは正確・可読か。図のラベルと関係は正しいか。</li>\n<li class=\"\">同一性・製品形状・ラベル・参照の細部は保たれているか。</li>\n<li class=\"\">編集は<strong>要求した箇所だけ</strong>を変えたか。</li>\n<li class=\"\">透過が必要なら、塗られた背景でなく<strong>アルファチャンネル</strong>を含むか。</li>\n</ul>\n<p>プロンプトやモデルを変えるときは、代表的な入力で<strong>品質・待ち時間・コスト</strong>を比較します（現行の料金は <a href=\"https://openai.com/api/pricing/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">OpenAI の公式料金ページ</a> を参照）。</p>\n<hr>\n<p><em>本記事は OpenAI 公式「GPT Image 2.5 prompting guide」の日本語訳です（<a href=\"https://developers.openai.com/api/docs/guides/image-prompting\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">原文</a>）。例のプロンプトは起点として自由に調整してください。</em></p>",
            "url": "https://api.aicu.ai/docs/ja/blog/gpt-image-2-5-prompting-guide-ja",
            "title": "GPT-Image-2.5 プロンプトガイド（日本語訳）",
            "summary": "OpenAI 公式の GPT Image 2.5 プロンプトガイド（原文）を日本語訳しました。",
            "date_modified": "2026-09-12T00:00:00.000Z",
            "author": {
                "name": "AICU API Team",
                "url": "https://api.aicu.ai"
            },
            "tags": [
                "images",
                "gpt-image",
                "guide",
                "prompting"
            ]
        },
        {
            "id": "https://api.aicu.ai/docs/ja/blog/aicuty-gpt-image-2-5-verify",
            "content_html": "<p>AICU 公式キャラクター <strong>AiCuty</strong> の 6 人を題材に、画像生成担当の <strong>メイ・ソレイユ</strong> と\nリーダーの <strong>エレナ・ブルーム</strong> が <code>gpt-image-2.5-flare</code> を実際に叩いてみました。\n使ったプロンプトもそのまま載せるので、同じことが再現できます。</p>\n<!-- -->\n<blockquote>\n<p><strong>メイ</strong>: ではいってみよー！ 今日は新しい <code>gpt-image-2.5-flare</code> で、AiCuty のみんなを作ってみるよ。\n<strong>エレナ</strong>: よろしくね。参照は <a href=\"https://github.com/aicuai/AiCuty\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">github.com/aicuai/AiCuty</a> の公式リファレンス。\n全部ホンモノの結果だよ。API は <code>POST /v1/images/edits</code>、<code>model</code> に <code>gpt-image-2.5-flare</code> を渡すだけ。</p>\n</blockquote>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"1-まずは一人ずつ\">1. まずは一人ずつ<a href=\"https://api.aicu.ai/docs/ja/blog/aicuty-gpt-image-2-5-verify#1-%E3%81%BE%E3%81%9A%E3%81%AF%E4%B8%80%E4%BA%BA%E3%81%9A%E3%81%A4\" class=\"hash-link\" aria-label=\"1. まずは一人ずつ への直接リンク\" title=\"1. まずは一人ずつ への直接リンク\" translate=\"no\">​</a></h2>\n<blockquote>\n<p><strong>メイ</strong>: 各メンバーを、公式リファレンスから 1 枚ずつ。顔・髪・衣装・色をどれだけ保てるか、だね。</p>\n</blockquote>\n<p>生成条件（全部この設定。再現するときはここを合わせてね）:</p>\n<table><thead><tr><th>項目</th><th>値</th></tr></thead><tbody><tr><td>model</td><td><code>gpt-image-2.5-flare</code></td></tr><tr><td>endpoint</td><td><code>POST /v1/images/edits</code>（参照画像を <code>image[]</code> に渡す）</td></tr><tr><td>size</td><td><code>1024x1024</code></td></tr><tr><td>quality</td><td><code>high</code>（api.aicu.ai の既定。<code>xhigh</code> / <code>max</code> は 2026-09-21 から利用可・60 秒超はメール送達）</td></tr><tr><td>所要時間</td><td>1 枚あたりおよそ 20 秒（1024² high の実測 21.6 秒）</td></tr><tr><td>usage</td><td>出力 1,756 トークン前後（1024² high。横長にすると減る）</td></tr><tr><td><code>input_fidelity</code></td><td>指定しない（2.5 系と gpt-image-2 は受け付けない。400 になる）</td></tr></tbody></table>\n<p>使ったプロンプト（各キャラのリファレンスを <code>image[]</code> に渡す）:</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Full-body portrait of this AiCuty character. Keep the face, hairstyle,</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">outfit and colors faithful to the reference. Friendly confident pose,</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">clean soft-lit studio background. No text, no watermark.</span><br></div></code></pre></div></div>\n<div style=\"display:grid;grid-template-columns:repeat(3,1fr);gap:8px\"><p><img decoding=\"async\" loading=\"lazy\" alt=\"Elena Bloom\" src=\"https://api.aicu.ai/docs/ja/assets/images/ElenaBloom-2.5-flare-e451a1d43516c7ed5b6c55f3a00380fa.png\" width=\"1024\" height=\"1024\" class=\"img__qZa\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Nao Verde\" src=\"https://api.aicu.ai/docs/ja/assets/images/NaoVerde-2.5-flare-ea9463de7eb75ebf22f117e1e7337e0e.png\" width=\"1024\" height=\"1024\" class=\"img__qZa\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Saki Noire\" src=\"https://api.aicu.ai/docs/ja/assets/images/SakiNoire-2.5-flare-7a0d33ca07fee1da3af0dc4a23666772.png\" width=\"1024\" height=\"1024\" class=\"img__qZa\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Mei Soleil\" src=\"https://api.aicu.ai/docs/ja/assets/images/MeiSoleil-2.5-flare-546a1ac28d08a6742671aea7571181ab.png\" width=\"1024\" height=\"1024\" class=\"img__qZa\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Mina Azure\" src=\"https://api.aicu.ai/docs/ja/assets/images/MinaAzure-2.5-flare-201b51ccf77d3d03f6d63281c9d3fc0a.png\" width=\"1024\" height=\"1024\" class=\"img__qZa\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Marsha Arancia\" src=\"https://api.aicu.ai/docs/ja/assets/images/MarshaArancia-2.5-flare-8024d9e134f6a2ebf8bcf4d0d5b3e2d4.png\" width=\"1024\" height=\"1024\" class=\"img__qZa\"></p><blockquote>\n<p><strong>エレナ</strong>: 私の髪飾りも、マーシャの新衣装もちゃんと来てるね。\n<strong>メイ</strong>: そうなの！ リファレンスの特徴をよく拾ってくれるようになったんだよ。</p>\n</blockquote></div>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"2-6-人いっしょに多人数同時\">2. 6 人いっしょに（多人数同時）<a href=\"https://api.aicu.ai/docs/ja/blog/aicuty-gpt-image-2-5-verify#2-6-%E4%BA%BA%E3%81%84%E3%81%A3%E3%81%97%E3%82%87%E3%81%AB%E5%A4%9A%E4%BA%BA%E6%95%B0%E5%90%8C%E6%99%82\" class=\"hash-link\" aria-label=\"2. 6 人いっしょに（多人数同時） への直接リンク\" title=\"2. 6 人いっしょに（多人数同時） への直接リンク\" translate=\"no\">​</a></h2>\n<blockquote>\n<p><strong>メイ</strong>: ここが本番！ 多人数は顔の混同とか人数の間違いが起きやすい難所なんだ。6 人を 1 枚にしてみるよ。</p>\n</blockquote>\n<p>プロンプト（6 人分のリファレンスを <code>image[]</code> にまとめて渡す）:</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Group shot of these six AiCuty idol characters standing together as a unit,</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Halloween night in a neon Shibuya-like city at sunset, jack-o-lanterns and</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">playful ghosts, cinematic lighting. Keep each character's face, hairstyle,</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">outfit and colors faithful to the six reference images. Cheerful confident</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">poses. Landscape composition. No text, no watermark.</span><br></div></code></pre></div></div>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"AiCuty 6 together — Halloween\" src=\"https://api.aicu.ai/docs/ja/assets/images/AiCuty-6-together-2.5-flare-9475bdd33fadbc206df07eed335ab901.png\" width=\"1536\" height=\"1024\" class=\"img__qZa\"></p>\n<blockquote>\n<p><strong>メイ</strong>: ……あれ？ わたし、ショートパンツのはずがスカートになってる！ 見た目はかわいいけど、\n再現性でいうとちょっと残念ショットだね。こういうときは <strong>もう一回まわしてみるよ！</strong>\nプロンプトに「wearing shorts, not a skirt」って足すのも効くんだ。\n<strong>エレナ</strong>: 6 人が 1 枚にちゃんと並ぶのはすごいけどね。細かい衣装は 2 回目でそろえていこ。</p>\n</blockquote>\n<p>ステージ版はこう指定したよ:</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">An idol-unit key visual of these six AiCuty characters performing together</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">on a bright concert stage, dynamic band formation, colorful stage lighting</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">and confident expressions. Each of the six must match their own reference</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">exactly, with no mixing between characters, exactly six. Wide cinematic</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">landscape. No text.</span><br></div></code></pre></div></div>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"AiCuty 6 together — Key Visual\" src=\"https://api.aicu.ai/docs/ja/assets/images/verify-keyvisual-6-9024d5cdae93fcb7da2aaf4085d97c28.png\" width=\"1536\" height=\"1024\" class=\"img__qZa\"></p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"3-服だけ着替える局所編集\">3. 服だけ着替える（局所編集）<a href=\"https://api.aicu.ai/docs/ja/blog/aicuty-gpt-image-2-5-verify#3-%E6%9C%8D%E3%81%A0%E3%81%91%E7%9D%80%E6%9B%BF%E3%81%88%E3%82%8B%E5%B1%80%E6%89%80%E7%B7%A8%E9%9B%86\" class=\"hash-link\" aria-label=\"3. 服だけ着替える（局所編集） への直接リンク\" title=\"3. 服だけ着替える（局所編集） への直接リンク\" translate=\"no\">​</a></h2>\n<blockquote>\n<p><strong>メイ</strong>: 変えたいところ以外はそのまま、っていうのが得意になったの。エレナの 1 枚を入力に、<strong>衣装だけ</strong>変えてみるね。</p>\n</blockquote>\n<p>プロンプト（さっき作ったエレナの画像を <code>image[]</code> に渡す）:</p>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Change ONLY her outfit to a cute Halloween witch costume (hat and cape).</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">Keep her face, hairstyle, pose, and the background exactly the same as the</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">input. No text.</span><br></div></code></pre></div></div>\n<div style=\"display:grid;grid-template-columns:repeat(2,1fr);gap:8px\"><p><img decoding=\"async\" loading=\"lazy\" alt=\"Elena — original\" src=\"https://api.aicu.ai/docs/ja/assets/images/ElenaBloom-2.5-flare-e451a1d43516c7ed5b6c55f3a00380fa.png\" width=\"1024\" height=\"1024\" class=\"img__qZa\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Elena — 衣装だけ Halloween\" src=\"https://api.aicu.ai/docs/ja/assets/images/verify-localedit-Elena-halloween-28aed8338d26374659cac7e02a0f8942.png\" width=\"1024\" height=\"1024\" class=\"img__qZa\"></p></div>\n<blockquote>\n<p><strong>エレナ</strong>: 顔と雰囲気は私のまま、服だけ変わってる。表情差分やコスチューム替えが作りやすいね。</p>\n</blockquote>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"4-スプライトシート同じキャラで-9-ポーズ\">4. スプライトシート（同じキャラで 9 ポーズ）<a href=\"https://api.aicu.ai/docs/ja/blog/aicuty-gpt-image-2-5-verify#4-%E3%82%B9%E3%83%97%E3%83%A9%E3%82%A4%E3%83%88%E3%82%B7%E3%83%BC%E3%83%88%E5%90%8C%E3%81%98%E3%82%AD%E3%83%A3%E3%83%A9%E3%81%A7-9-%E3%83%9D%E3%83%BC%E3%82%BA\" class=\"hash-link\" aria-label=\"4. スプライトシート（同じキャラで 9 ポーズ） への直接リンク\" title=\"4. スプライトシート（同じキャラで 9 ポーズ） への直接リンク\" translate=\"no\">​</a></h2>\n<blockquote>\n<p><strong>メイ</strong>: ゲーム素材みたいに、わたしを 3×3 のポーズ集にしてみるよ。</p>\n</blockquote>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">A 3x3 sprite sheet of this exact character showing nine different full-body</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">poses and expressions (idle, waving, jumping, surprised, thinking, pointing,</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">victory sign, bowing, cheering). Keep the character's face, hairstyle, outfit</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">and colors identical in every cell. Evenly spaced grid, clean flat</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">illustration, plain light background. No text.</span><br></div></code></pre></div></div>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Mei — sprite sheet 3x3\" src=\"https://api.aicu.ai/docs/ja/assets/images/verify-sprite-Mei-94624e1b0fd3b8e1541afbe40e29bc02.png\" width=\"1024\" height=\"1024\" class=\"img__qZa\"></p>\n<blockquote>\n<p><strong>エレナ</strong>: 待機もジャンプもびっくりも、全部メイのまま！</p>\n</blockquote>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"5-1-枚から-4-コマ物語\">5. 1 枚から 4 コマ物語<a href=\"https://api.aicu.ai/docs/ja/blog/aicuty-gpt-image-2-5-verify#5-1-%E6%9E%9A%E3%81%8B%E3%82%89-4-%E3%82%B3%E3%83%9E%E7%89%A9%E8%AA%9E\" class=\"hash-link\" aria-label=\"5. 1 枚から 4 コマ物語 への直接リンク\" title=\"5. 1 枚から 4 コマ物語 への直接リンク\" translate=\"no\">​</a></h2>\n<blockquote>\n<p><strong>メイ</strong>: エレナのリファレンスから、起きる → 出会う → 作る → 完成、の 4 コマ。</p>\n</blockquote>\n<div class=\"language-text codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">A 2x2 four-panel manga telling a short story with this exact character:</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">panel 1 she wakes up sleepy, panel 2 she discovers AI image generation on a</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">laptop and is amazed, panel 3 she creates art excitedly, panel 4 she smiles</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">proudly holding the finished picture. Keep her face, hairstyle, outfit and</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">colors consistent across all four panels. Clean anime/manga style.</span><br></div></code></pre></div></div>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Elena — 4-panel story\" src=\"https://api.aicu.ai/docs/ja/assets/images/verify-panels-Elena-6835cc7191e903255d8c92d16042c916.png\" width=\"1024\" height=\"1024\" class=\"img__qZa\"></p>\n<blockquote>\n<p><strong>エレナ</strong>: コマごとに表情が変わるのに、私は私のまま。絵コンテやショート漫画に使えそう。\n<strong>メイ</strong>: 完璧じゃない絵も出るけど、プロンプトを足したりもう一回まわせば近づけられるよ。\nこれ全部 api.aicu.ai の <code>POST /v1/images/edits</code> に <code>model: gpt-image-2.5-flare</code> で叩けるから、\nぜひ試してみてね（<a class=\"\" href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5\">GPT-Image-2.5 の技術レポートはこちら</a>）。\nじゃ またね！ いつも元気な AiCuty 画像生成担当、メイ・ソレイユでした〜！バイバイ！👋💛</p>\n</blockquote>",
            "url": "https://api.aicu.ai/docs/ja/blog/aicuty-gpt-image-2-5-verify",
            "title": "AiCuty で GPT-Image-2.5 を試してみた — メイ×エレナ",
            "summary": "AICU 公式キャラクター AiCuty の 6 人を題材に、画像生成担当の メイ・ソレイユ と",
            "date_modified": "2026-09-11T00:00:00.000Z",
            "author": {
                "name": "AICU API Team",
                "url": "https://api.aicu.ai"
            },
            "tags": [
                "images",
                "gpt-image",
                "aicuty"
            ]
        },
        {
            "id": "https://api.aicu.ai/docs/ja/blog/gpt-image-2-5",
            "content_html": "<p>Written by <strong>Mei Soleil 🌟</strong>（AiCuty・画像生成担当）&amp; <strong>AICU API Team</strong></p>\n<p>OpenAI が 2026-09-08 に <strong>ChatGPT Images 2.5</strong> を発表し、API に 2 つの新しい画像モデル\n<strong>GPT-Image-2.5 Flare</strong> と <strong>GPT-Image-2.5 Sunburst</strong> が追加されました。この記事では、\n公式ドキュメントの内容をそのまま日本語 API マニュアルに翻訳し、<strong>AICU API（api.aicu.ai）での\n使い方</strong>をまとめた<strong>技術レポート</strong>です。</p>\n<p>出典（公式）:\n<a href=\"https://openai.com/ja-JP/index/introducing-chatgpt-images-2-5/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">ご紹介 ChatGPT Images 2.5</a> ／\n<a href=\"https://developers.openai.com/api/docs/models/gpt-image-2.5-flare\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">API Docs: gpt-image-2.5-flare</a> ／\n<a href=\"https://developers.openai.com/api/docs/models/gpt-image-2.5-sunburst\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">gpt-image-2.5-sunburst</a> ／\n<a href=\"https://developers.openai.com/api/docs/guides/image-generation\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Image generation guide</a></p>\n<!-- -->\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"2--25-で何が変わったか\">2 → 2.5 で何が変わったか<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5#2--25-%E3%81%A7%E4%BD%95%E3%81%8C%E5%A4%89%E3%82%8F%E3%81%A3%E3%81%9F%E3%81%8B\" class=\"hash-link\" aria-label=\"2 → 2.5 で何が変わったか への直接リンク\" title=\"2 → 2.5 で何が変わったか への直接リンク\" translate=\"no\">​</a></h2>\n<p>OpenAI の発表（公式）を要約すると、GPT-Image-2.5 は次の点で GPT-Image-2 を上回ります。</p>\n<ul>\n<li class=\"\"><strong>参照写真の忠実度</strong> — 参照写真の被写体（人・場所・特徴）をより忠実に保ちながら、新しい\n場面・スタイル・構図へ変換できる。参照画像を軸にしたワークフローの信頼性が上がる。</li>\n<li class=\"\"><strong>精密な編集</strong> — 複雑な被写体・背景でも、ほかのディテールを変えずに<strong>指定箇所だけ</strong>を\n正確に編集できる（商品・背景・コピーなど 1 要素だけの更新）。</li>\n<li class=\"\"><strong>複数ターン編集の一貫性</strong> — 長い会話でも以前の変更を保ったまま編集を重ねられ、画質が劣化\nしにくい。</li>\n<li class=\"\"><strong>応答速度</strong> — 生成の待ち時間を <strong>Images 2.0 比で最大 50% 短縮</strong>（Flare）。</li>\n<li class=\"\"><strong>品質段階の追加</strong> — <code>xhigh</code> と <code>max</code> が増え、<strong>任意解像度</strong>（16 の倍数・縦横比 1:3〜3:1・\n最長辺 3840px）にも対応。</li>\n<li class=\"\"><strong>透明背景・複雑なレイアウト・スタイル再現性</strong>の向上。</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"api-の-2-モデル--flare-と-sunburst-の使い分け\">API の 2 モデル — Flare と Sunburst の使い分け<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5#api-%E3%81%AE-2-%E3%83%A2%E3%83%87%E3%83%AB--flare-%E3%81%A8-sunburst-%E3%81%AE%E4%BD%BF%E3%81%84%E5%88%86%E3%81%91\" class=\"hash-link\" aria-label=\"API の 2 モデル — Flare と Sunburst の使い分け への直接リンク\" title=\"API の 2 モデル — Flare と Sunburst の使い分け への直接リンク\" translate=\"no\">​</a></h2>\n<table><thead><tr><th></th><th><strong>GPT-Image-2.5 Flare</strong></th><th><strong>GPT-Image-2.5 Sunburst</strong></th></tr></thead><tbody><tr><td>位置づけ</td><td>標準・<strong>ほとんどの用途の推奨</strong></td><td>高度・精密ワークフロー向け</td></tr><tr><td>特徴</td><td>GPT-Image-2 より高品質、<strong>待ち時間 50% 短縮</strong></td><td>生成時間を長く取り、編集を<strong>より厳密に制御</strong></td></tr><tr><td>向いている用途</td><td>クリエイター/ソーシャル、製品体験、画像検索、高速プロトタイピング、大量生成</td><td>キャンペーンクリエイティブ、洗練された商品画像、制作・編集ワークフロー</td></tr><tr><td>モデル ID</td><td><code>gpt-image-2.5-flare</code></td><td><code>gpt-image-2.5-sunburst</code></td></tr></tbody></table>\n<p>迷ったら <strong>Flare</strong>。厳密な編集制御や高精度が要る制作物だけ <strong>Sunburst</strong> を選ぶ、が基本です。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"api-マニュアル公式ドキュメントの日本語訳\">API マニュアル（公式ドキュメントの日本語訳）<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5#api-%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%E5%85%AC%E5%BC%8F%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E6%97%A5%E6%9C%AC%E8%AA%9E%E8%A8%B3\" class=\"hash-link\" aria-label=\"API マニュアル（公式ドキュメントの日本語訳） への直接リンク\" title=\"API マニュアル（公式ドキュメントの日本語訳） への直接リンク\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"エンドポイント\">エンドポイント<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5#%E3%82%A8%E3%83%B3%E3%83%89%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88\" class=\"hash-link\" aria-label=\"エンドポイント への直接リンク\" title=\"エンドポイント への直接リンク\" translate=\"no\">​</a></h3>\n<table><thead><tr><th>エンドポイント</th><th>用途</th></tr></thead><tbody><tr><td><code>POST /v1/images/generations</code></td><td>テキストから画像生成</td></tr><tr><td><code>POST /v1/images/edits</code></td><td>参照画像つき生成・編集（inpainting 対応）</td></tr></tbody></table>\n<p>両モデルとも上記2つに対応します。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"パラメータgenerations--edits-共通\">パラメータ（generations / edits 共通）<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5#%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BFgenerations--edits-%E5%85%B1%E9%80%9A\" class=\"hash-link\" aria-label=\"パラメータ（generations / edits 共通） への直接リンク\" title=\"パラメータ（generations / edits 共通） への直接リンク\" translate=\"no\">​</a></h3>\n<table><thead><tr><th>パラメータ</th><th>値</th><th>説明</th></tr></thead><tbody><tr><td><code>model</code></td><td><code>gpt-image-2.5-flare</code> / <code>gpt-image-2.5-sunburst</code></td><td>モデル</td></tr><tr><td><code>prompt</code></td><td>文字列</td><td>生成指示</td></tr><tr><td><code>n</code></td><td>整数（既定 1）</td><td>生成枚数</td></tr><tr><td><code>size</code></td><td><code>1024x1024</code> / <code>1536x1024</code> / <code>1024x1536</code>、または任意の <code>幅x高さ</code></td><td>任意解像度は <strong>16 の倍数</strong>・<strong>縦横比 1:3〜3:1</strong>・<strong>最長辺 3840px</strong>・総ピクセル 655,360〜8,294,400</td></tr><tr><td><code>quality</code></td><td><code>low</code> / <code>medium</code> / <code>high</code> / <code>xhigh</code> / <code>max</code> / <code>auto</code>（既定）</td><td>2.5 で <code>xhigh</code> <code>max</code> が追加</td></tr><tr><td><code>background</code></td><td><code>transparent</code> / <code>opaque</code> / <code>auto</code></td><td>透過 PNG は <code>transparent</code></td></tr><tr><td><code>output_format</code></td><td><code>png</code>（既定）/ <code>jpeg</code> / <code>webp</code></td><td></td></tr><tr><td><code>output_compression</code></td><td>0–100</td><td>jpeg / webp のみ</td></tr><tr><td><code>moderation</code></td><td><code>auto</code>（既定）/ <code>low</code></td><td><code>low</code> は制限が緩い</td></tr></tbody></table>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"編集editsで追加されるパラメータ\">編集（edits）で追加されるパラメータ<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5#%E7%B7%A8%E9%9B%86edits%E3%81%A7%E8%BF%BD%E5%8A%A0%E3%81%95%E3%82%8C%E3%82%8B%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF\" class=\"hash-link\" aria-label=\"編集（edits）で追加されるパラメータ への直接リンク\" title=\"編集（edits）で追加されるパラメータ への直接リンク\" translate=\"no\">​</a></h3>\n<table><thead><tr><th>パラメータ</th><th>値</th><th>説明</th></tr></thead><tbody><tr><td><code>image</code></td><td>画像ファイル、または<strong>参照画像の配列</strong></td><td>キャラクター一貫性・スタイル参照に使う</td></tr><tr><td><code>mask</code></td><td>アルファ付き PNG</td><td>置き換える領域を示す。<strong>元画像と同じ寸法</strong>・<strong>50MB 未満</strong></td></tr><tr><td><code>input_fidelity</code></td><td><code>low</code> / <code>high</code></td><td>参照画像への忠実度</td></tr></tbody></table>\n<p>編集の画像入力はファイルアップロードのほか、Responses API 経由なら base64 データ URL や\nFiles API の File ID でも渡せます。</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"課金の考え方\">課金の考え方<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5#%E8%AA%B2%E9%87%91%E3%81%AE%E8%80%83%E3%81%88%E6%96%B9\" class=\"hash-link\" aria-label=\"課金の考え方 への直接リンク\" title=\"課金の考え方 への直接リンク\" translate=\"no\">​</a></h3>\n<p>GPT-Image-2.5 はトークン課金です（テキスト出力は課金されず、画像出力のトークンが中心）。\n最新の単価は OpenAI 公式ページを参照してください（<a href=\"https://openai.com/api/pricing/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">OpenAI API pricing</a>）。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"aicu-apiapiaicuaiでの使い方\">AICU API（api.aicu.ai）での使い方<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5#aicu-apiapiaicuai%E3%81%A7%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9\" class=\"hash-link\" aria-label=\"AICU API（api.aicu.ai）での使い方 への直接リンク\" title=\"AICU API（api.aicu.ai）での使い方 への直接リンク\" translate=\"no\">​</a></h2>\n<p>AICU API は <strong>OpenAI 互換</strong>です。キー（<code>aicu_live_...</code>）を用意し、<code>model</code> に上記 ID を渡すだけで\n切り替えられます（<strong>リリース後</strong>。下記「リリース予定」参照）。</p>\n<div class=\"language-bash codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"># テキストから生成（Flare 推奨）</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">curl -X POST https://api.aicu.ai/v1/images/generations \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H \"Authorization: Bearer aicu_live_xxx\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H \"Content-Type: application/json\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -d '{</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        \"model\": \"gpt-image-2.5-flare\",</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        \"prompt\": \"a cheerful mascot character, studio lighting, clean background\",</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        \"size\": \"1024x1024\",</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">        \"quality\": \"high\"</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">      }'</span><br></div></code></pre></div></div>\n<div class=\"language-bash codeBlockContainer_TjPC theme-code-block\" style=\"--prism-color:#393A34;--prism-background-color:#f6f8fa\"><div class=\"codeBlockContent_dWZH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_T9K6 thin-scrollbar\" style=\"color:#393A34;background-color:#f6f8fa\"><code class=\"codeBlockLines_xlQU\"><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\"># 参照画像つき（キャラクター一貫性）— 精密な編集は Sunburst</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">curl -X POST https://api.aicu.ai/v1/images/edits \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -H \"Authorization: Bearer aicu_live_xxx\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -F model=\"gpt-image-2.5-sunburst\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -F \"image[]=@reference.png\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -F input_fidelity=\"high\" \\</span><br></div><div class=\"token-line\" style=\"color:#393A34\"><span class=\"token plain\">  -F prompt=\"Keep the character's appearance. Change only the background to a night city.\"</span><br></div></code></pre></div></div>\n<p><code>character</code>（キャラクタープリセット）でも 2.5 を指定できます（<code>gpt-image-2.5-flare</code> プリセットを\n用意予定）。100 秒を超える生成は非同期経路（<code>/v1/images/status/:id</code> でポーリング）で受け取れます。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"提供状況\">提供状況<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5#%E6%8F%90%E4%BE%9B%E7%8A%B6%E6%B3%81\" class=\"hash-link\" aria-label=\"提供状況 への直接リンク\" title=\"提供状況 への直接リンク\" translate=\"no\">​</a></h2>\n<p><strong>GPT-Image-2.5（Flare / Sunburst）は api.aicu.ai で利用可能</strong>です。<code>/v1/images/models</code> に\n<code>gpt-image-2.5-flare</code> / <code>gpt-image-2.5-sunburst</code> が並び、上記 curl が通ります（OpenAI 互換）。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"aicuty-6-人で試す-gpt-image-25-flare\">AiCuty 6 人で試す GPT-Image-2.5 Flare<a href=\"https://api.aicu.ai/docs/ja/blog/gpt-image-2-5#aicuty-6-%E4%BA%BA%E3%81%A7%E8%A9%A6%E3%81%99-gpt-image-25-flare\" class=\"hash-link\" aria-label=\"AiCuty 6 人で試す GPT-Image-2.5 Flare への直接リンク\" title=\"AiCuty 6 人で試す GPT-Image-2.5 Flare への直接リンク\" translate=\"no\">​</a></h2>\n<p>AICU 公式キャラクター <strong>AiCuty</strong> の 6 人を、それぞれの<strong>公式リファレンス</strong>（<a href=\"https://github.com/aicuai/AiCuty\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">github.com/aicuai/AiCuty</a>）から\n<code>gpt-image-2.5-flare</code> で生成しました。参照忠実度（顔・髪・衣装・色を保つ）を、実際のキャラクターで確かめています。</p>\n<div style=\"display:grid;grid-template-columns:repeat(3,1fr);gap:8px\"><p><img decoding=\"async\" loading=\"lazy\" alt=\"Elena Bloom\" src=\"https://api.aicu.ai/docs/ja/assets/images/ElenaBloom-2.5-flare-e451a1d43516c7ed5b6c55f3a00380fa.png\" width=\"1024\" height=\"1024\" class=\"img__qZa\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Nao Verde\" src=\"https://api.aicu.ai/docs/ja/assets/images/NaoVerde-2.5-flare-ea9463de7eb75ebf22f117e1e7337e0e.png\" width=\"1024\" height=\"1024\" class=\"img__qZa\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Saki Noire\" src=\"https://api.aicu.ai/docs/ja/assets/images/SakiNoire-2.5-flare-7a0d33ca07fee1da3af0dc4a23666772.png\" width=\"1024\" height=\"1024\" class=\"img__qZa\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Mei Soleil\" src=\"https://api.aicu.ai/docs/ja/assets/images/MeiSoleil-2.5-flare-546a1ac28d08a6742671aea7571181ab.png\" width=\"1024\" height=\"1024\" class=\"img__qZa\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Mina Azure\" src=\"https://api.aicu.ai/docs/ja/assets/images/MinaAzure-2.5-flare-201b51ccf77d3d03f6d63281c9d3fc0a.png\" width=\"1024\" height=\"1024\" class=\"img__qZa\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Marsha Arancia\" src=\"https://api.aicu.ai/docs/ja/assets/images/MarshaArancia-2.5-flare-8024d9e134f6a2ebf8bcf4d0d5b3e2d4.png\" width=\"1024\" height=\"1024\" class=\"img__qZa\"></p></div>\n<p><strong>6 人同時</strong>（複数リファレンスを 1 回の生成に渡した集合ショット）:</p>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"AiCuty 6 together — Halloween\" src=\"https://api.aicu.ai/docs/ja/assets/images/AiCuty-6-together-2.5-flare-9475bdd33fadbc206df07eed335ab901.png\" width=\"1536\" height=\"1024\" class=\"img__qZa\"></p>\n<div class=\"theme-admonition theme-admonition-note admonition_FoJG alert alert--secondary\"><div class=\"admonitionHeading_Fyt5\"><span class=\"admonitionIcon_R76F\"><svg viewBox=\"0 0 14 16\"><path fill-rule=\"evenodd\" d=\"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z\"></path></svg></span>実装メモ</div><div class=\"admonitionContent_tCQf\"><p><code>gpt-image-2.5-flare</code> は <code>images/edits</code> で参照画像を受け取れますが、<strong><code>input_fidelity</code> パラメータは\n非対応</strong>（指定すると 400）。参照忠実度はモデル側で担保されます（<code>gpt-image-2</code> とはここが異なります）。</p></div></div>\n<hr>\n<p><em>この記事は公式ドキュメント（2026-09-08 発表）の日本語訳と、AICU API での使い方をまとめた技術レポートです。</em></p>",
            "url": "https://api.aicu.ai/docs/ja/blog/gpt-image-2-5",
            "title": "GPT-Image-2.5（Flare / Sunburst）を試す — API マニュアル翻訳",
            "summary": "Written by Mei Soleil 🌟（AiCuty・画像生成担当）& AICU API Team",
            "date_modified": "2026-09-11T00:00:00.000Z",
            "author": {
                "name": "AICU API Team",
                "url": "https://api.aicu.ai"
            },
            "tags": [
                "images",
                "gpt-image",
                "release",
                "pricing"
            ]
        },
        {
            "id": "https://api.aicu.ai/docs/ja/blog/japanese-stt-benchmark",
            "content_html": "<p>AICU API の文字起こし（<code>POST /v1/audio/transcriptions</code>）のバックエンド選定のため、<strong>同じ日本語音声・同じ正解文</strong>で主要 STT API を測りました。結論: <strong>ElevenLabs Scribe が CER（文字誤り率）15.31% で最良</strong>。AICU API に高精度レーンとして追加する評価を進めています。</p>\n<!-- -->\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"方法--正解文がある音源を使う\">方法 — 正解文が「ある」音源を使う<a href=\"https://api.aicu.ai/docs/ja/blog/japanese-stt-benchmark#%E6%96%B9%E6%B3%95--%E6%AD%A3%E8%A7%A3%E6%96%87%E3%81%8C%E3%81%82%E3%82%8B%E9%9F%B3%E6%BA%90%E3%82%92%E4%BD%BF%E3%81%86\" class=\"hash-link\" aria-label=\"方法 — 正解文が「ある」音源を使う への直接リンク\" title=\"方法 — 正解文が「ある」音源を使う への直接リンク\" translate=\"no\">​</a></h2>\n<p>ベンチマークで一番難しいのは正解文の用意です。今回は AiCuty の新メンバー、<a href=\"https://aicu.jp/study\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">マーシャ・アランチャの AICU STUDY ナビゲーター就任記事</a>（3,023字）を、<strong>マーシャ自身の声（AICU API TTS・<code>voice: \"marsha\"</code>）で読み上げて音源化</strong>しました。8.2分・mp3 7.9MB。原稿がそのまま正解文になるので、CER を機械的に計算できます。</p>\n<ul>\n<li class=\"\">CER = 文字誤り率（低いほど良い）。NFKC 正規化 + 記号・空白除去後の Levenshtein 距離 / 正解文字数</li>\n<li class=\"\">各社に<strong>同一ファイルを1回ずつ</strong> POST。固有名詞ヒント（<code>prompt</code>）も同一</li>\n<li class=\"\">TTS 読みのクセ（例:「AiCuty」の発音）は全社共通のハンデ = <strong>相対比較</strong>として読んでください</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"結果\">結果<a href=\"https://api.aicu.ai/docs/ja/blog/japanese-stt-benchmark#%E7%B5%90%E6%9E%9C\" class=\"hash-link\" aria-label=\"結果 への直接リンク\" title=\"結果 への直接リンク\" translate=\"no\">​</a></h2>\n<table><thead><tr><th>プロバイダ / モデル</th><th>CER</th><th>処理時間</th><th>定価（音声1時間）</th></tr></thead><tbody><tr><td><strong>ElevenLabs Scribe (scribe_v1)</strong></td><td><strong>15.31%</strong></td><td>16.7s</td><td>$0.22〜0.40</td></tr><tr><td>OpenAI whisper-1</td><td>21.89%</td><td>29.4s</td><td>$0.36</td></tr><tr><td>OpenAI gpt-4o-mini-transcribe</td><td>23.40%</td><td>16.9s</td><td>$0.18</td></tr><tr><td>whisper-large-v3-turbo（AICU API 現行バックエンド経由）</td><td>64.97%</td><td>9.9s</td><td>—</td></tr></tbody></table>\n<p>現行バックエンド経由の 64.97% は、モデル性能ではなく<strong>長尺音声の内部分割の縫い目で本文の約4割が欠落した</strong>ことによるものです（同系モデルの whisper-1 は 21.89%）。この経路の扱いは見直し中で、まず <a href=\"https://api.aicu.ai/skills/stt\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\"><code>/skills/stt</code></a> に上限（1リクエスト 30MB / 30分）と分割レシピを明記しました。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"scribe-の何が良かったか\">Scribe の何が良かったか<a href=\"https://api.aicu.ai/docs/ja/blog/japanese-stt-benchmark#scribe-%E3%81%AE%E4%BD%95%E3%81%8C%E8%89%AF%E3%81%8B%E3%81%A3%E3%81%9F%E3%81%8B\" class=\"hash-link\" aria-label=\"Scribe の何が良かったか への直接リンク\" title=\"Scribe の何が良かったか への直接リンク\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>欠落がない</strong>: 8.2分を通しても脱落なし。長尺に強い（仕様上 1ファイル 10時間 / 3GB まで）</li>\n<li class=\"\"><strong>話し言葉に強い</strong>: 「……と名乗ったところで気づいたんだけど」のような口語・言い淀みを正確に拾う</li>\n<li class=\"\">単語・文字単位タイムスタンプ、話者分離（最大32人）、笑い声などの音声イベントタグ</li>\n</ul>\n<p>弱点も書いておくと、人名をローマ字化する癖がありました（「マーシャ・アランチャ」→ <em>Marcia Arancja</em>）。字幕用途では後処理辞書で吸収できる範囲です。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_RHNx\" id=\"aicu-api-はどうするか\">AICU API はどうするか<a href=\"https://api.aicu.ai/docs/ja/blog/japanese-stt-benchmark#aicu-api-%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8B%E3%81%8B\" class=\"hash-link\" aria-label=\"AICU API はどうするか への直接リンク\" title=\"AICU API はどうするか への直接リンク\" translate=\"no\">​</a></h2>\n<ol>\n<li class=\"\"><strong>自動フォールバックはしません</strong>。バックエンドは <code>model</code> パラメータで明示的に選べる形にします（黙って別モデルに切り替わるのが一番怖い、というのが私たちの設計原則です）</li>\n<li class=\"\">Scribe の<strong>高精度レーン追加を評価中</strong>（価格は別途告知）</li>\n<li class=\"\"><strong>価格改定の予告</strong>: 文字起こしは 2026-09-09 05:00 UTC から <strong>音声10秒 = 3 AP</strong>（1時間 ≈ $0.11、cost×3 ポリシー）になります。詳細は <a href=\"https://api.aicu.ai/news\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">News</a> へ</li>\n</ol>\n<p>再現スクリプトと詳細ログはリポジトリの <code>scripts/stt-benchmark.py</code> / <code>docs/internal/stt-benchmark-2026-08.md</code>（社内）にあります。第2回は実会議音声で測ります。</p>\n<p><em>音源に協力してくれたマーシャ・アランチャ（AiCuty 編集・出版担当 / <a href=\"https://aicu.jp/study\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">AICU STUDY</a> ナビゲーター）に感謝。</em></p>",
            "url": "https://api.aicu.ai/docs/ja/blog/japanese-stt-benchmark",
            "title": "日本語STTを同一音源でベンチマークした — ElevenLabs Scribe が頭一つ抜けた",
            "summary": "AICU API の文字起こし（POST /v1/audio/transcriptions）のバックエンド選定のため、同じ日本語音声・同じ正解文で主要 STT API を測りました。結論: ElevenLabs Scribe が CER（文字誤り率）15.31% で最良。AICU API に高精度レーンとして追加する評価を進めています。",
            "date_modified": "2026-08-25T00:00:00.000Z",
            "author": {
                "name": "AICU API Team",
                "url": "https://api.aicu.ai"
            },
            "tags": [
                "stt",
                "benchmark",
                "audio"
            ]
        }
    ]
}