HN 日本語サマリー

← 一覧へ戻る
AI・機械学習

AI画像生成の実践ガイド:拡散モデルからエージェントまで

A practical guide to AI image generation, from diffusion to agents (danielball.com)

227 pointsby westsmith71 コメント

要約

この記事は、AI画像生成の仕組み、拡散モデルやマルチモーダルモデルの違い、歴史、そしてChatGPTでの利用法やコードへの統合方法について解説する実践的なガイドです。プロンプトのコツやコスト、ピクセルアート生成の注意点、エージェントとの連携方法なども網羅しています。

全文翻訳

AI画像生成

[画像: 1990年代風のバーガーとシェイクのポスター、AI生成]

これはAI画像生成に関する私の一般的なガイドです。モデルの仕組みを大まかに説明し、さまざまな種類、簡単な歴史、ChatGPTで実際に何が得られるか、そして画像生成を独自のコードやエージェントに組み込む方法をカバーしています。

Pythonからいくつかの画像プロバイダーを呼び出した私の個人的な実験に基づいています。ピクセルアートのスプライト、写実的なカードテーブルの背景、そしてAI生成に見えないものを作ろうとした一連のレストランポスターを生成しました。ここにあるすべての画像は、それらの実験から来ています。

TLDR

  • ほとんどのモデルはノイズから始まり、それをクリーンアップします。 テキストがクリーンアップを指示します。新しいモデルは、チャットモデルが文を計画するように画像を計画します。
  • コンテンツではなくキャンバスに料金を払います。 同じサイズの詳細な油絵と同じ料金で、平らな木製のテーブルができます。
  • ChatGPTは最も簡単な入り口であり、最も制御が難しいです。 ワンオフの画像や会話形式の編集に最適です。繰り返し行う必要があるものについてはAPIを使用してください。
  • 価格は100倍以上異なります。 数セント未満から15セント以上まで。モデルをローカルで実行するコストはゼロです。最も安いモデルが常に最も安い結果をもたらすとは限りません。
  • APIはあなたを置き去りにします。 モデルは数週間の通知で廃止され、プロバイダーはパラメータを静かに無視します。モデルを構成に含め、実際に何が得られたかを記録してください。
  • 見た目ではなく、どのように作られたかを説明してください。 カメラ、フィルム、印刷プロセス、レイアウトは、「素晴らしい」や「超詳細」よりも良い結果をもたらします。
  • スペルと指はもはや見分けるポイントではありません。 今の決め手はセンスです。輝きすぎ、ドラマチックすぎ、そして何も普通であることが許されない。
  • エージェントはこれを得意とします。 マルチモーダルエージェントはプロンプトを作成し、APIを呼び出し、結果を見て、もう一度試すことができます。あなたはまだセンスを提供する必要があります。
  • 最良のパイプラインはハイブリッドです。 AIにクリエイティブな部分をやらせます。サイズ変更、透明度、パレット、レイアウトなどの正確な部分は通常のコードに任せます。

簡単な歴史

  • 2014年 - GAN。 Ian Goodfellowの敵対的生成ネットワークは、1つが画像を生成し、もう1つが偽物を見つける2つのネットワークを競わせます。それらは説得力のある合成顔を生成しますが、テキストで指示するのは困難です。
  • 2015年 - DeepDream。 GoogleのInceptionism実験は、画像認識を逆転させます。結果はサイケデリックな犬の顔でいっぱいになります。なぜなら、ネットワークは犬が多く含まれるデータセットでトレーニングされたからです。
  • 2018年 - AIアートがオークションに。 ぼやけたGANの肖像画「Edmond de Belamy」がクリスティーズで432,500ドルで落札され、最高予想額の40倍以上になりました。
  • 2019年 - 存在しない顔。 NVIDIAのStyleGANは、thispersondoesnotexist.comを支えています。リフレッシュごとに新しい写実的な偽の顔が表示されます。
  • 2021年 - DALL-E。 OpenAIはテキストと画像を1つのモデルにリンクします。文を入力すると画像を取得できます。たとえ小さくてぼやけたものであってもです。
  • 2022年 - ブレークアウト年。 DALL-E 2、Midjourney、Stable Diffusionが数ヶ月以内にすべて登場します。Stable Diffusionはオープンソースで、約7GBのビデオメモリを搭載したゲーミングPCで実行でき、これはファインチューンとツールの巨大なコミュニティを活性化させます。
  • 2023年 - 写実性と読みやすいテキスト。 Midjourneyの白いパファージャケットを着た教皇の画像は、インターネットの多くを欺きました。Ideogramは、実際に読めるテキストでローンチされました。SDXLはオープンモデルの基準を引き上げ、DALL-E 3はChatGPTに統合されました。
  • 2024年 - Fluxと反動。 Stable Diffusionの元研究者たちはBlack Forest Labsを設立し、Fluxをリリースしました。これはデフォルトのオープンウェイトモデルになりました。一方、AIポスターは手抜き(後述こちら)の代名詞となりました。
  • 2025年 - ネイティブ画像モデル。 OpenAIはGPT-4o自体に画像生成を組み込み、「スタジオジブリ」トレンドがソーシャルメディアを席巻します。GoogleのGemini 2.5 Flash Image(Nano Bananaとニックネーム)は、会話形式の編集を1枚あたり0.039ドルで安価にします。
  • 2026年 - 豊富さと入れ替わり。 OpenAIはAPIでDALL-Eを停止します。OpenRouterだけでも、12社から60以上の画像モデルがリストアップされており、古いモデルは数ヶ月ごとに廃止されています。
指が6本と意味不明なテキスト

数年間、AI画像を識別する最も簡単な方法は、指の数を数えるか、背景の看板を読もうとすることでした。どちらの問題も現在ではほとんど解決されており、なぜそれらが起こったのかは、これらのモデルがどのように機能するかを多く物語っています。

手は複雑で、柔軟性があり、写真ではしばしば部分的に隠れています。カップの後ろ、ポケットの中、フレームの外側半分。モデルは手の形をテクスチャとして学習しましたが、指の数までは学習しませんでした。2023年3月のMidjourney v5が転換点になったと広く報告されました。専門家は、より明確な手の写真、より大きなモデル、およびより高い解像度を備えた、よりよくキュレーションされたトレーニングデータが原因だと推測しました。完璧ではありませんでした。背景の人々はしばらくの間エイリアンのような解剖学的構造を持っていました。

テキストにはより具体的な原因がありました。ほとんどのモデルは、単語のチャンクではなく文字の塊に分割するトークナイザーを介してプロンプトを読み取ります。モデルは「chocolate」がc-h-o-c-o-l-a-t-eと綴られていることを認識しないため、文字ごとに描画できません。2022年の論文Character-Aware Models Improve Visual Text Renderingは、モデルに個々の文字へのアクセスを提供することで問題の多くが解決されることを示しました。元Google Imagenの研究者を含むチームが開発したIdeogramは、2023年にテキストをセールスポイントにしました。2025年までに、チャットボットと同等の言語理解能力を持つOpenAIとGoogleのマルチモーダルモデルが登場し、読みやすいテキストが一般的になりました。

修正は段階的に行われ、その間、古い問題が現実世界に漏れ出しました。2024年2月のグラスゴーでのWilly’s Chocolate Experienceのポスターは、「catgacating」や「exarserdray」といった意味不明な言葉を約束しました。イベント自体は写真とはかけ離れていたため、人々は警察を呼びました。長文テキストはまだ完全に解決されていません。2025年12月、Nano Banana Proは「Lived experience」をLiver experienceと誤って表示しました。それ以外は良いインフォグラフィックでした。

仕組み

これらのモデルをうまく使うために数学が必要なわけではありません。しかし、驚きのほとんどを説明してくれるので、大まかな仕組みを理解しておく必要があります。

拡散モデル

ほとんどの画像モデルは拡散モデルです。トレーニング中、それらは画像からノイズを除去することを学習します。写真を撮り、少しの静電気を加え、モデルにクリーンなバージョンがどのように見えたかを予測するように教えます。これをあらゆるレベルのノイズで数十億回繰り返します。

生成するには、それを逆に実行します。純粋な静電気から始めて、数ステップにわたって少しずつノイズを除去します。テキストエンコーダーは、プロンプトを数値に変換し、各ステップをそれに一致する画像を生成するように誘導します。

実践において重要な2つの詳細があります。

  • 圧縮された空間で動作します。 Latent diffusionは、Stable Diffusionの背後にあるアプローチで、最終的な画像の辺の長さの約8分の1の内部キャンバスにペイントし、それをデコードします。そのため、32 x 32の画像を要求できません。内部キャンバスは4 x 4になります。
  • ステップは時間を消費します。 ステップ数が多いほど遅くなりますが、ある時点までは通常良くなります。「Distilled」モデル(Flux SchnellやSDXL Turboなど)は、30ステップではなく4ステップで良好な画像を生成するようにトレーニングされています。
マルチモーダルモデル

新しいアプローチは、言語も理解するモデルの内部に画像生成を配置します。同じモデルがプロンプトを読み取り、画像を生成するため、指示に従うこと、テキストをレンダリングすること、および提供された画像を編集することに優れています。GPT Image、Geminiの画像モデル、MetaのMuseはこの方法で動作します。一部のモデルは描画前にレイアウトを推論するため、プロンプトが配置に関するものである場合に大きな違いが生じます。

マルチモーダルモデルは内部的には拡散モデルなのか?

多くの場合、部分的にそうであり、マーケティングが示唆するよりも境界線は曖昧です。

OpenAIのGPT-4o画像生成のローンチ投稿は、ハイブリッドを示唆しています。言語モデルは、文を書くのと同じ方法でトークンのシーケンスとして画像を計画し、拡散スタイルのデコーダーが最終的なピクセルをペイントします。GoogleはGemini画像モデルの仕組みを公開していません。逆に、Fluxのような最新の「拡散」モデルは、テキストと画像を一緒に処理するトランスフォーマーブロックを使用しており、これはチャットモデルと同じビルディングブロックです。

したがって、有用な区別は数学ではなく、画像モデルが言語をどれだけ深く理解しているかです。それが、指示追従、読みやすいテキスト、編集を可能にします。

比較
拡散モデル (Flux, SDXL, Imagen)マルチモーダルモデル (GPT Image, Gemini, Muse)
コストの要因解像度とステップ数画像トークン、通常はサイズと品質ティアごとに固定
強み安価、高速、ローカル実行可能、シードによる再現性指示に従う、テキストをレンダリングする、参照画像から編集する
弱みプロンプトを文字通りに受け取る傾向があるシード制御がなく、出力サイズが固定されていることが多い
オープンウェイト?しばしば滅多にない
シード

拡散モデルが開始するランダムなノイズはシードによって設定されます。同じシード、同じプロンプト、同じモデルで同じ画像が得られます。それがバッチを再現可能にする理由です。多くのホスト型モデルはシードを無視または拒否するため、確認なしにシードに依存するものを構築しないでください。

画像生成の種類

「画像生成」はいくつかの異なるジョブをカバーします。ほとんどのプロバイダーは一部をサポートしていますが、すべてではありません。

タイプ何をするか使用例試せる場所
テキストから画像へプロンプトが画像になるコンセプトアート、背景、プレースホルダーOpenAI画像ガイド
画像編集既存の画像に対して「マグカップを青くする」最初からやり直さずにデザインを反復するGemini画像ドキュメント
参考画像キャラクター、製品、スタイルを一貫させる8つのポーズで同じ騎士Gemini画像ドキュメント
インペインティングマスクされた領域を再生成するオブジェクトを削除する、手を修正するDiffusersインペインティングガイド
アウトペインティング画像を端を超えて拡張する正方形をバナーに変換するComfyUIインペイントとアウトペイントの例
構造制御スケッチ、ポーズ、深度マップに従うレイアウトを正確に合わせるControlNetとDiffusers ControlNetガイド
ファインチューニング (LoRA)オープンモデルに新しいスタイルや被写体を教える一貫したハウススタイルや製品Diffusers LoRAトレーニング
アップスケーリング高解像度でディテールを追加する安価なバッチから選んだものを仕上げるReal-ESRGAN
背景除去被写体を切り抜く透明なスプライトと製品写真rembg
テキストからベクトルへピクセルではなくSVGを生成するアイコンとロゴRecraft

タイル可能なテクスチャは特別言及する価値があります。通常のモデルでは、シームレスなタイルを確実に生成できません。それには、それ用にトレーニングされたモデルまたはLoRA、あるいはツールのタイリングオプションが必要です。

利用方法

ルート例適しているもの注意点
チャットアプリChatGPT, Geminiワンオフ画像、クイック編集制御が少ない、利用制限
クリエイティブツールMidjourney, Adobe Firefly, Canvaデザイナー、洗練された結果サブスクリプション、自動化が難しい
直接APIOpenAI, Google Gemini and Vertex AI本番コード各APIは異なる
アグリゲーターOpenRouter, Replicate, fal.ai多くのモデルを1つのキーで試す一部マークアップあり、モデルは入れ替わる
ローカルFluxまたはSDXLとmfluxまたはComfyUI無料バルク生成、完全な制御適切なGPUまたはApple Siliconが必要、遅い

私の実験では、サブスクリプションは意図的に避けました。すべてAPI経由の従量課金か、ローカル実行でした。

ChatGPTで得られるもの

ほとんどの人がAI画像生成を初めて体験するのは、ChatGPTにリクエストを入力することです。何を得ているのかを知っておく価値があります。

ChatGPTはOpenAI独自のGPT Imageモデルを使用しており、2025年3月からチャットに統合されています。

DALL-Eはまだ存在しますか? あまり。DALL-E 3は2023年10月から2025年3月までのChatGPTの画像ジェネレーターでした。その後、OpenAIはDALL-E 2と3をAPIから削除しました(2026年5月12日)。この名前は主にAI画像の一般的な用語として残っています。

得意なこと

  • 会話。 「光を暖かくして」や「マグカップを左に移動して」と言えば、最初からやり直すのではなく編集します。
  • 指示に従うこと。 レイアウト、数、特定の詳細を古い拡散モデルよりもよく扱います。
  • テキスト。 看板、ポスター、ラベルは通常正しく綴られています。
  • 参照。 写真やスケッチをアップロードすると、それに基づいて作業します。

苦手なこと

  • 制御。 アスペクト比がいくつかあり、シードはなく、バッチを実行する方法もありません。正確に1024 x 512を要求することはできません。
  • 速度。 各画像は数秒から1分以上かかり、特に無料プランでは利用制限があります。
  • ハウススタイル。 そのままにしておくと、認識可能な外観に流れます。2025年のモデルは、「ピスフィルター」というニックネームの暖かい黄色がかった色合いで知られていました。デフォルトに任せるのではなく、照明と色を説明してください。
  • コンテンツルール。 特定のコンテキストでの実在の有名人や、著作権で保護されたキャラクターのクローンコピーなど、一部のリクエストは拒否されます。

来歴。 OpenAIは、ヘルプセンターによると、C2PAメタデータとSynthIDウォーターマークの両方を画像に追加しています。GoogleはGemini画像にSynthIDを追加しています。メタデータは簡単に削除できます。ウォーターマークはスクリーンショットでもより長く残りますが、画像がAIであるか否かを証明しようとする場合は、どちらも信頼できるものではありません。

ChatGPTかAPIか? 同じファミリーのモデルが、画像あたりの課金でOpenAIのAPIを通じて利用できます。APIでは、固定リストからのサイズ、品質ティア、コードからのバッチ処理、一部のモデルでは透明な背景が利用できます。数枚以上の画像が必要な場合や、同じ種類の画像を繰り返し生成する必要がある場合は、APIを使用してください。GeminiアプリとGemini APIも同様の話です。

コスト

キャンバスに料金を払う

私が発見した最も役立つメンタルモデルは、大きなキャンバスしか持たず、キャンバスごとに料金を請求し、すべての平方インチを同じように丁寧に描く画家です。平らな青い空も、顔と同じくらいの労力がかかります。

  • 単純な画像は安くありません。 モデルは画像全体で同じ作業を行います。
  • 小さく生成することはできません。 モデルは、おおよそ512から1600ピクセルで最もよく機能します。32 x 32のスプライトの場合、大きな画像を生成して自分で縮小します。
  • 小さいサイズを要求しても役に立たないことが多いです。 Gemini 2.5 Flash Imageは、512 x 512を要求したときに1024 x 1024を返しましたが、価格は同じでした。
請求される4つの方法
請求モデル例サイズを小さくすると役立ちますか?
画像ごとの定額Gemini 2.5 Flash Image, Recraftいいえ
画像ごと、サイズと品質で階層化新しいGeminiモデル, OpenAI GPT Image少し。最小ティアはほとんどのニーズにとって依然として大きなキャンバスです
メガピクセルまたはGPU秒ごとReplicate, fal.ai, OpenRouterのほとんどのモデルはい
あなた自身の電気代ローカルFluxはい、そして速度が節約できるものです
2026年10月現在の状況
オプション画像あたりの概算コスト適しているもの
ローカル Flux Schnell0ドル、プラスあなたの時間プロンプトの繰り返しとバルクバッチ
Replicateまたはfal.ai上のFlux Schnell~$0.003安価なクラウドバッチ
Recraft V4.1 Flash (OpenRouter)~$0.007高速で安価なイラスト
FLUX 3 Image Klein (OpenRouter)~$0.009安価な写実性
Meta Muse Image (OpenRouter)~$0.01レイアウト指示に従う
OpenAI GPT Image 1.5低: $0.009, 中: $0.034, 高: $0.133OpenAIからの品質ティア
Gemini 2.5 Flash Image~$0.039、Batch API経由で半額キャラクターの一貫性と編集
Nano Banana 2 (Gemini 3.1 Flash Image)0.5Kで~$0.045, 1Kで~$0.067新しくより良いが、より高価
Nano Banana Pro (Gemini 3 Pro Image)~$0.134〜最終的な、ヒーロー品質

新しいフラッグシップモデルは、画像あたりのコストが高くなります。市場の安価な部分はオープンウェイトモデルと「フラッシュ」「ミニ」「ライト」ティアです。OpenRouterのモデルリストは、現在の価格を比較するのに最も簡単な場所です。

利用可能な画像あたりのコスト

画像あたりの価格だけでは誤解を招きます。

利用可能な画像あたりのコスト = (画像あたりの価格 x 必要な試行回数) + あなたの時間

10回の試行が必要な無料のローカルモデルは、1回で正しく生成される0.039ドルのモデルに負ける可能性があります。私の実験では、1セント多くかかるモデルが数回のやり直しを節約しました。

効果的なプロンプト作成

見た目ではなくカメラを説明する

ゲーム用のカードテーブルの背景が必要でした。つまり、テーブルは真上から見下ろし、端にいくつかの小道具があり、中央はカードのために空けておく必要がありました。

「真上から見た」とだけ言うだけでは不十分です。モデルは写真から学習しますが、ほとんどのテーブルの写真は角度をつけて撮影されています。最初の試みでは、壁と窓のあるテーブルが後ろにあり、すべての小道具が片側に集まったきれいな画像が返ってきました。

2つの変更でほとんどの問題が解決しました。

  1. カメラを説明する。 「等角投影のフラットレイ。カメラはパースペクティブも地平線もなく、テーブルトップにまっすぐ下を向いています。テーブルの表面はフレームの端から端までを完全に占めています。壁、窓、床、テーブルの端は見えません。」
  2. 配置を明記する。 「これらを片側や角に集めるのではなく、4つの端(上、下、左、右)すべてに配置してください。それぞれ小さく、画像の端で切り取られるようにしてください。」

ここでは、パイン材のキッチンテーブルに対する同じプロンプトを、両方の変更を加えて、2つの異なるモデルで実行した結果を示します。

どちらもトップダウンになりました。Fluxは小道具をそのままにして角に押しやります。推論してから描画するマルチモーダルモデルであるMuseは、各端に1つのアイテムを配置し、それぞれを切り取り、中央を空けました。

AI画像はマーケティングで最も批判される

ポスター、チラシ、インフォグラフィックはAI画像の最も一般的な用途の1つです。また、安っぽく見えることも最も多い場所です。

  • 意味不明なテキスト。 Willy’s Chocolate Experienceのポスターは「catgacating」や「exarserdray」を約束しました。イベント自体は写真とはかけ離れていたため、人々は警察を呼びました。
  • センスが悪い。 A24のCivil WarのAI生成ポスターは、2024年4月に批判を浴びました。映画に登場しないシーンが描かれ、シカゴのランドマークが間違った角度で再建されているなどの明らかなエラーがありました。多くの怒りは、アーティストに支払う代わりにAIを使用したスタジオに対するものでした。
  • 事実誤認。 Karen Spinnerの研究論文をインフォグラフィックに変換する実験は、すべてのプロンプトとソース素材が示された素晴らしい例です。結果は「基本的に使用可能」でしたが、6回の試行の後でした。その過程で、モデルは単語をスペルミスし、空白に関する指示を無視し、見つけたすべての隙間を埋めました。彼女のアドバイスは、コピーを短くし、すべてを校正することでした。
AI生成に見えないポスターを作成する

そこで私は自分自身に挑戦を課しました。レストランのポスターで、すぐにAIだとわかるようなものではないものを作れるだろうか?

最初の試みは、スクリーン印刷されたトラットリアのポスターでした。外観を説明するのではなく、実際の印刷プロセスを説明しました。未コート紙に3つのフラットスポットインク、わずかなずれ、写真ではなくスキャン、オフセンターの構成、そして名前の付いたデザインの伝統。

[画像: Trattoria Brunoのスクリーン印刷スタイルのポスター、スパゲッティとワインカラフェの線画プレート付き]

インクのテクスチャは説得力があります。下の行はきれいなデジタルタイプに見えますが、折り目のしわは多すぎるかもしれません。

より難しいテストは、食べ物が本物に見える90年代のバーガーポスターでした。AIの食べ物は完璧すぎ、光沢がありすぎ、英雄的すぎることがよくあります。私は1996年の中判フィルム写真と、不完全な食べ物(例:歪んだバンズ、色あせた冬のトマト)を意図的に要求しました。

最初のバージョンは食べ物は良かったのですが、「ヴィンテージ」フィルターのように見え、コミック風のレタリングと偽の傷がありました。実際の1996年のポスターはクリーンで企業的だったはずです。

そこで私はそれを退屈にしました。新品同様のスキャン、初期Photoshopのグラデーション付きのフラットな赤い背景、わずかに均一すぎるドロップシャドウ付きの切り抜き製品写真、そしてプレーンな太字イタリック体。私はそれを「有能で少し平凡」に見えるようにさえ頼みました。それは、一見しただけでは通り過ぎるでしょう。シェイクが2010年代に見られるドーム型カップに入っているため、まだ1996年ではありません。

バランスを取るために、私が考えうる最悪のバージョンを依頼しました。Unreal Engine、ボリューメトリックゴッドレイ、浮遊する材料、そして銀河。それは、下のバンズがないパティを12枚、ガラスのないシェイクを1つ、宇宙から降ってくるフライドポテトを生成しました。古いAIポスター(2年前)とは異なり、最近はスペルが正しいです。今の決め手はスペルではありません。すべての要素が最大になっていることです。

プロンプト作成のヒント
  • どのように作られたかを説明する。 カメラの位置、レンズ、フィルムストック、照明セットアップ、印刷プロセス、スキャンは、モデルに具体的な制約を与えます。
  • 誇張表現を省く。 「素晴らしい」「超詳細」「8K」は、モデルをAIらしいルックに直接押し込みます。
  • レイアウトについて率直に言う。 フレームを何が満たしているか、何が見えるか、各要素がどこに行くかを伝えます。
  • 実際のデザインは控えめです。 「少し平凡」と頼むことは、どんなに詳細にするよりも効果がありました。
  • テキストは短く正確に。 引用符で囲み、「書かれている通りにすべての単語を正確に綴ってください」と追加し、結果を校正してください。
  • 時代ごとの詳細を名前で指定する。 モデルは、古いものを指定しない限り、現代のオブジェクトに流れます。
  • 2つか3つ生成する。 同じプロンプトのバリアントはしばしば大きく異なり、1セントあたりなので、プロンプトを書き直すよりも安価です。
  • バッチ用のテンプレートを固定する。 カテゴリのすべての資産に対して同じスタイル接尾辞とシードを使用すると、バッチがドリフトしません。

ピクセルアート

ピクセルアートとゲームスプライトは、画像モデルにとって最も簡単な仕事のように見えます。小さく、シンプルで、色が少ない。しかし、AI画像生成が予想以上に難しいことの素晴らしい例となります。

ピクセルアートはフォーマットではなくスタイル

Gemini 2.5 Flash Imageのピクセルアートの騎士は、7.5秒かかり、約0.039ドルでした。クリーンで説得力のあるレトロな感じです。

[画像: 剣と盾を持った8ビットピクセルアートの騎士]

しかし、それはスプライトではなく、スプライトの1024 x 1024の画像です。「ピクセル」はサイズが揺らぎ、真のグリッドに配置されず、実際のパレットよりもはるかに多くの色を使用しています。「ソリッド」のマゼンタの背景は、わずかに変化するピンクでした。使用可能にするには、背景を削除し、最近傍補間によるダウンサンプリングでグリッドにスナップし、パレットを削減する必要があり、これらすべてを通常のコードで行いました。

1枚のキャンバスに多数のスプライト

キャンバスごとに料金を支払い、スプライトがその一部しか必要としない場合、当然の行動は、1つの画像に多数のスプライトを要求することです。より安価で、モデルがすべてを同じパレットと照明で一度に描画するため、より一貫性があります。

異なるオブジェクトのセットには驚くほど効果的です。100個のファンタジーインベントリアイコンを要求し、156個(約140個がユニーク)を1回の0.039ドルの呼び出しで取得しました。アイコンあたり約0.00025ドルです。通常のコードが形状でスライスし、背景を削除し、クリーンなグリッドに再パックします。

1人のキャラクターをさまざまなポーズで描く場合、すぐにうまくいかなくなります。4 x 4のグリッドでは、同じ騎士の約13のユニークなポーズが得られました。10 x 10を要求すると、同じ騎士が120回スタンプされました。

7回の呼び出しと約0.27ドルから学んだことは次のとおりです。

  • オブジェクトのセットでは約10 x 10、キャラクターのポーズでは4 x 4がスイートスポットです。 それ以上を要求すると、多様性と品質の両方が低下しました。
  • モデルがグリッドを選択します。 8 x 8を要求しましたが、6 x 6になりました。固定グリッドでスライスしないでください。形状でスプライトを見つけてください。
  • すべてを同じスケールで。 各スプライトが独自のセルを埋めるようにリサイズされると、アニメーションフレーム間でキャラクターが拡大・縮小します。
ピクセルアートを適切に行う

私がやったのは、一般的なモデルでの基本的な実験でした。ピクセルアート(非常に特殊な種類の画像生成)が必要な場合は、より良い方法があります。

PixelLabはゲーム開発者向けに作られています。ピクセルアートのように見える大きな画像ではなく、実際のサイズでスプライトを描画します。パレット、アウトライン、カメラアングル、透明度はプロンプトの言葉ではなく設定であり、キャラクターのアニメーションや回転が可能です。サブスクリプションなので、ここでは使用しませんでした。Retro Diffusionも同様の商用オプションです。

自分でやる場合は、ピクセルアート用にトレーニングされたモデルアドオン(例:Pixel Art XL)を使用し、結果をクリーンなグリッドに縮小してパレットをコードで修正します。PixelOEは、AIなしで任意の画像をピクセルアートに変換することもできます。これは静止画にはうまく機能します。一貫したアニメーションは、商用ツールがまだ先行している分野です。

境界線はどこにあるか

ベクトルも、実際よりも簡単に見えるフォーマットです。LLMはSVGコードを安価に記述できますが、画像を見ずに記述するため、キャラクターは粗雑になります。しかし、Recraftのような専用のテキストからベクトルへのモデルは、ラスタ画像よりもはるかに優れていますが、コストが高くなります。

ピクセルアートからの一般的な教訓は、AIは「これはどのように見えるべきか?」には優れていますが、「この正確なものをこの正確なセルに配置する」には劣るということです。重要なのは、出力がどれほどシンプルに見えるかではありません。クリエイティブな部分か構造的な部分か、どちらが難しいかです。モデルをクリエイティブな部分に、コードを構造に使用してください。

画像生成をコーディングプロジェクトに統合する

各プロバイダーの前に薄いインターフェースを置く

すべてのAPIは異なります。OpenAIには画像エンドポイントがあります。Geminiはチャットスタイルの応答内に画像を返します。OpenRouterにはモデルに応じて2つのエンドポイントがあります。ローカルFluxはPythonライブラリまたはコマンドラインツールです。これらすべてを単一の関数で隠蔽することで、プロバイダーの切り替えが設定変更になります。

from dataclasses import dataclass, field
from typing import Protocol

from PIL import Image


@dataclass
class GenerationResult:
    image: Image.Image
    provider: str
    model: str
    prompt: str
    seed: int | None = None
    cost_usd: float | None = None
    metadata: dict = field(default_factory=dict)


class ImageProvider(Protocol):
    def generate(self, prompt: str, *, width: int, height: int, seed: int | None = None) -> GenerationResult: ...

各プロバイダーの癖は、独自のモジュール内に保持してください。Base64デコード、奇妙なパラメータ名、フォールバックエンドポイントは、アプリコードには属しません。

地面が動くことを想定する

これらはすべて、数ヶ月のうちに私に起こりました。

  • モデルが消滅した。 使用を計画していたFlux 2モデルが、計画と構築の間にOpenRouterから消えました。Imagen 4はGemini APIでシャットダウンされました。Gemini 2.5 Flash Imageとgpt-image-1には、通知期間が数週間しかないものもあり、廃止日が設定されました。Geminiの廃止ページはブックマークする価値があります。
  • エンドポイントが変更された。 OpenRouterは専用画像モデルを/api/v1/imagesエンドポイントに移動しました。古い方法で呼び出すと404が返されます。私のコードは現在、一方を試して、もう一方にフォールバックします。
  • パラメータが無視されたり拒否されたりした。 Geminiはサイズとシードを無視しました。OpenAIは、いくつかの固定サイズの最も近いものにスナップします。FLUX 3 Kleinはシードを outright に拒否します。Museは1024 x 1024を要求したときに1600 x 1600を返しました。

したがって、プロバイダーとモデルをコードではなく構成に保存してください。要求した内容を信頼するのではなく、返ってきた内容のサイズと形式を確認してください。定期的なスモークテストを実行して、ユーザーよりも早く廃止を知ることができるようにしてください。

すべてをログに記録する

プロンプト、モデル、パラメータ、出力サイズ、期間、および各画像のコストを記録します。コストレポートは一貫性がありません。OpenRouterは請求額を返します。OpenAIとGeminiはトークン数を返し、計算はユーザーに任せます。一部は何も返しません。独自のログなしでは、月額請求書からいくら使ったかを知るだけです。

プロンプトとパラメータを各画像と一緒に保持すると、数ヶ月後に良い結果を再現または調整することもできます。

生成を遅く、失敗するジョブとして扱う
  • 遅いです。 数秒から1分まで。Webリクエスト内で行わないでください。ジョブキューに入れ、完了したらユーザーに通知してください。
  • 失敗します。 タイムアウト、レート制限、コンテンツ拒否、時折空の応答。バックオフで再試行しますが、同じプロンプトを再試行するのではなく、拒否を最終的なものとして扱います。
  • 呼び出しごとにコストがかかります。 プロンプトとパラメータのハッシュで結果をキャッシュします。ユーザーが生成をトリガーできるようにするすべてのものに、ユーザーごとの制限を設定してください。
コードで正確な作業を行う

モデルはクリエイティブな部分にのみ使用してください。背景除去(rembg)、リサイズ、パレット削減、クロッピング、テキストの合成、スプライトシートのパックはすべて、Pythonで無料で、高速で、決定論的です。ほとんどのモデルは実際の透明度を生成できないため、プレーンな背景で生成してから削除してください。OpenAIのGPT Imageモデルの一部は、透明な背景オプションを備えた例外です。

画像に価格や日付のような正確なテキストが必要な場合は、テキストなしでアートワークを生成し、コードでテキストを追加することを検討してください。それが正しく綴られていることを保証する唯一の方法です。

お金を使わずにテストする

単体テストでは、固定画像を返すダミープロバイダーを使用します。実際のAPI呼び出しは、少数のスモークテストにのみ使用してください。開発中は安価なモデルを使用し、本番構成ではより良いモデルに切り替えてください。

エージェントとの統合

画像生成とAIエージェントはうまく連携します。マルチモーダルエージェントは、詳細なプロンプトを作成し、モデルを呼び出し、結果を評価し、もう一度試すことができます。そのループは、かつて人間を必要とした部分です。

Claudeは画像を生成しない

Claudeコードを使用している場合、組み込みモデルは写真や絵画のようなラスタ画像を生成しないことに留意してください。Anthropicのヘルプセンターはそれを明確に述べています。Claudeは画像を閲覧・分析でき、SVGやHTMLのようなコードで図やグラフ、インタラクティブなビジュアルを描画できます。

そのモデルはテキスト、コード、エージェントに焦点を当てています。Claudeは、詳細なプロンプトの作成や、結果が要件に合っているかの判断など、画像生成の周辺部分に非常に優れています。専門の画像モデルにツールを介して接続し、それぞれが得意なことを行わせます。

連携する3つの方法
  1. コマンドラインツール。 最も簡単なオプション。エージェントがシェルコマンドを実行できる場合、`python -m image_gen generate --model meta/muse-image --prompt