cv.cm

AI · AI画像

画像生成AI(text-to-image)の仕組みと上手な使い方は?

約9分で読めます

結論

テキストから画像を作るAIは、プロンプトを数値にエンコードし、その数値に合う絵を、多くの場合ランダムな状態から少しずつノイズを取り除いて作り上げます。結果は、プロンプト、画像サイズ、ステップ数、ガイダンスの強さ、シードで制御します。良い手順は、小さな画像を大量に素早く生成し、シードを固定してプロンプトを磨き、最良の1枚を編集してアップスケールする流れです。

AI 画像生成を開く

プロンプトから絵になるまで

テキストから画像を作るシステムの多くは、3つの部品でできています。テキストエンコーダーがプロンプトの意味を捉えた数値のリストに変換し、画像生成部がその数値を条件に絵を作り、デコーダーが生成部の内部表現を実際のピクセルに変換します。

現時点で最も一般的な生成部は、拡散モデルです。純粋なランダムノイズから始め、複数のステップを重ねて、テキストに導かれながら毎回少しずつノイズを予測して取り除きます。Stable Diffusionの系統である潜在拡散モデルは、これをフルサイズのピクセルではなく圧縮された空間で行うため、実行コストがずっと小さくなります。そのほか、自己回帰型のシステムもあります。言語モデルが単語を書くように、画像をトークン列として1つずつ作っていく方式で、たとえばJanus-Proがこの方式です。どちらもユーザーが与える入力は同じなので、以下のワークフローはどちらにも当てはまります。

  1. プロンプトがトークンに分割されてエンコードされます。
  2. シードからランダムな開始点が作られます。
  3. 生成部が決められたステップ数だけ開始点を磨き、各ステップでプロンプトの方向に引き寄せます。
  4. デコーダーが、選んだサイズで最終的な画像を出力します。

重要な設定

名称はツールによって異なり、ホスティング型サービスの多くは一部を隠しています。見える場合は、次のものを覚えておく価値があります。

設定制御する内容実用的なアドバイス
プロンプトモデルが描こうとするもの被写体を先に、次に場所、スタイル、照明、カメラ。画像プロンプトのガイドを参照。
ネガティブプロンプトモデルが遠ざけるもの短く具体的に:文字、透かし、余分な指など。特になければ空のままでよい。
サイズ/アスペクト比出力のピクセル数と形モデルが学習したサイズを使う。大幅に大きいサイズでは被写体が重複しやすい。拡大はアップスケールで行う。
ステップ数磨き上げのパス数ある程度までは細部が増え、それ以降は時間がかかるだけ。まずはツールの既定値で。
ガイダンス(CFGスケール)画像がプロンプトにどれだけ厳密に従うか低いとプロンプトから外れ、高すぎるときつい印象や彩度過多になる。まずは既定値で。
シードランダムな開始点同じ環境で同じシード、プロンプト、設定ならほぼ同じ画像になる。プロンプトの調整中は固定する。
サンプラー/スケジューラーノイズ除去に使う計算方法速度と質感に少し影響する。変えるなら最後に。
バッチサイズ1回の実行で作る枚数まとめて複数枚生成して選ぶほうが、1枚ずつやり直すより速い。

ガイダンスは、各ステップで、プロンプトありの予測とプロンプトなしの予測を比べ、その差の方向にさらに押し出すことで働きます。プロンプトの強さを調整するダイヤルのように感じられ、高くしすぎると何もかもが誇張されるのはそのためです。

アイデアから完成画像までの手順

  1. 目的を1文で書きます。何に使う画像か、形(正方形の投稿、16:9のバナー、9:16のスマホ壁紙)、必ず写すべきこと1つ。
  2. 被写体、アクション、場所、スタイル、照明、構図を入れてプロンプトを書きます。
  3. ランダムなシードで、小さな画像を4〜8枚まとめて生成します。見るのは細部ではなく構図です。
  4. 最良の1枚を選び、そのシードを控えます。以降はシードを固定します。
  5. プロンプトの1点(照明、レンズ、色)だけを変えて比較します。シードを固定していれば、違いはあなたの言葉から生まれます。
  6. 構図が決まったら、最初から生成し直さず、インペイントや画像から画像で部分的な問題を直します。
  7. 完成画像を必要なサイズにアップスケールし、等倍で顔、手、文字を確認します。
  8. 後でバリエーションを作れるよう、プロンプト、シード、モデル、設定をファイルの隣に記録しておきます。

手順5の小さな例です。シードは同じまま、実行ごとに照明の語句だけを変えています。

seed 1234
A: a lighthouse on a rocky coast, wide shot, overcast soft light
B: a lighthouse on a rocky coast, wide shot, golden hour, warm rim light
C: a lighthouse on a rocky coast, wide shot, blue hour, lamp glowing

開始のノイズが同じなので、A、B、Cは似たレイアウトを保ち、照明だけを比較できます。毎回違うシードを使うと、異なる構図同士を比べることになってしまいます。

サイズと解像度の選び方

各モデルは特定のサイズ付近で学習されています。初期のStable Diffusionは主に512×512ピクセルで学習され、新しいモデルは1024×1024前後といくつかのアスペクト比で学習されています。学習サイズよりはるかに大きい画像を要求すると、余った空間をモデルが知っているもので埋めるため、頭が2つになったり水平線が二重になったりと、被写体が繰り返されることがよくあります。

安全なやり方は、ネイティブサイズで生成してから、AIアップスケーラーで拡大することです。たとえば cv.cm のAI画像生成は、自己回帰モデルで自分のGPU上に384ピクセルの画像を作り、Real-ESRGANで2倍または4倍に拡大できます。アップスケーラーは輪郭や質感をくっきりさせますが、物を足したり悪い構図を直したりはできないので、先にレイアウトを固めましょう。

画像生成がいまだに苦手なこと

  • 画像内の文字:特に長い語句や非ラテン文字では、綴りを間違えたり文字を作り出したりします。正確さが必要な文字は、後で編集ソフトで足しましょう。
  • 手と数:指の余分や融合は以前より減りましたが、まだ出ます。正確な数(7羽の鳥)や位置関係(〜の左、〜の後ろ)もよく間違えます。
  • 複数の別人:ある人物の特徴が別の人物に混ざります。シーンを段階的に組み立てるか、参照画像を使いましょう。
  • 同じキャラクターを2回描く:参照画像、固定した記述、ファインチューニングを使わなければ、新しい実行は新しい人物になります。一貫したキャラクターのガイドを参照してください。
  • 一般的な見た目への偏り:細かく指定しないと、モデルは学習データで最も頻出する顔、場所、スタイルに戻ります。年齢、地域、体型、場所を明示しましょう。
  • 実在の人物、ブランド、ロゴ:多くのサービスがブロックしており、ツールが許可していても法的リスクが生じることがあります。

ホスティング型サービスか、ローカルモデルか

Midjourney、GPT image、Imagen、オンラインのStable DiffusionやFLUXサービスなどのホスティング型ツールは、始めやすく大規模なモデルを動かせますが、プロンプトをサーバーに送り、そのコンテンツルールと規約に従う必要があります。ローカルのツールは自分のGPUでモデルを動かします。何も端末の外に出ず、すべての設定が見えますが、モデルがメモリに収まる必要があり、たいてい小さめです。

観点ホスティング型サービスローカルまたはブラウザ内モデル
プライバシープロンプトと画像が提供元に送られる端末の外に出ない
画質通常は大きく強力なモデル小さめのモデルで、ハードウェア次第
制御一部の設定は隠されているすべての設定が見える
コスト無料枠またはサブスクリプションダウンロード後は無料。電力とGPUを使う

よくある質問

画像生成AIは拡散モデルのことですか?

いつもそうとは限りません。現時点で最も一般的な方式は拡散ですが、画像をトークン列として生成する自己回帰型の画像生成モデルもあります。使い方はどちらも同じです。

同じプロンプトなのに毎回違う画像になるのはなぜですか?

実行のたびに、シードで決まる新しいランダムノイズから始まるからです。モデルや設定とともにシードを固定すれば、同じ、またはとても似た画像を再現できます。

CFG(ガイダンススケール)はいくつにすればよいですか?

まずツールの既定値から始めます。画像がプロンプトの一部を無視するなら少し上げ、色がきつい、細部がやりすぎだと感じたら下げます。

AI生成画像は商用利用できますか?

ツールの規約と所在地の法律によります。商用利用を認めるサービスは多いものの、純粋にAIだけで作った画像への著作権保護は、国によって限られます。規約と著作権のガイドを確認してください。

AI画像が小さな正方形になりがちなのはなぜですか?

モデルは特定のサイズで学習されており、大きな画像の生成には多くのメモリと時間がかかるためです。ネイティブサイズで生成し、最終的な解像度はAIアップスケーラーで出しましょう。

AIチュートリアル一覧