IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特表2024-534744生成ニューラルネットワークの列を使用した画像の生成
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-26
(54)【発明の名称】生成ニューラルネットワークの列を使用した画像の生成
(51)【国際特許分類】
   G06T 11/80 20060101AFI20240918BHJP
   G06N 3/0475 20230101ALI20240918BHJP
【FI】
G06T11/80 A
G06N3/0475
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023578976
(86)(22)【出願日】2023-05-19
(85)【翻訳文提出日】2024-02-21
(86)【国際出願番号】 US2023022971
(87)【国際公開番号】W WO2023225344
(87)【国際公開日】2023-11-23
(31)【優先権主張番号】63/344,038
(32)【優先日】2022-05-19
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】チトワン・サハリア
(72)【発明者】
【氏名】ウィリアム・チャン
(72)【発明者】
【氏名】モハマド・ノルージー
(72)【発明者】
【氏名】サウラブ・サクセーナ
(72)【発明者】
【氏名】イ・リ
(72)【発明者】
【氏名】ジェイ・ハ・ファン
(72)【発明者】
【氏名】デイヴィッド・ジェームズ・フリート
(72)【発明者】
【氏名】ジョナサン・ホ
【テーマコード(参考)】
5B050
【Fターム(参考)】
5B050BA13
5B050CA07
5B050DA10
5B050EA07
5B050EA13
5B050EA18
5B050EA19
5B050FA02
5B050FA05
5B050FA09
5B050GA08
(57)【要約】
画像を生成するための、コンピュータ記憶媒体に符号化されたコンピュータプログラムを含む、方法、システム、および装置。一態様では、方法は、自然言語でのテキストトークンの列を含む入力テキストプロンプトを受け取るステップと、入力テキストプロンプトのコンテキスト埋め込みのセットを生成するために、テキストエンコーダニューラルネットワークを使用して入力テキストプロンプトを処理するステップと、入力テキストプロンプトによって描写される場面を描く最終的な出力画像を生成するために、生成ニューラルネットワークの列を通じてコンテキスト埋め込みを処理するステップとを含む。
【特許請求の範囲】
【請求項1】
1つまたは複数のコンピュータによって実行される方法であって、
自然言語でのテキストトークンの列を備える入力テキストプロンプトを受け取るステップと、
前記入力テキストプロンプトのコンテキスト埋め込みのセットを生成するために、テキストエンコーダニューラルネットワークを使用して前記入力テキストプロンプトを処理するステップと、
前記入力テキストプロンプトによって描写される場面を描く最終的な出力画像を生成するために、生成ニューラルネットワークの列を通じて前記コンテキスト埋め込みを処理するステップとを備え、生成ニューラルネットワークの前記列が、
前記コンテキスト埋め込みを受け取り、
最初の解像度を有する最初の出力画像を出力として生成するために、前記コンテキスト埋め込みを処理する
ように構成される、最初の生成ニューラルネットワークと、
(i)前記コンテキスト埋め込みと、(ii)それぞれの入力解像度を有し、前記列の中の先行する生成ニューラルネットワークによって出力として生成される、それぞれの入力画像とを備える、それぞれの入力を受け取り、
前記それぞれの入力解像度よりも高いそれぞれの出力解像度を有するそれぞれの出力画像を出力として生成するために、前記それぞれの入力を処理する
ように各々構成される、1つまたは複数の後続の生成ニューラルネットワークとを備える、方法。
【請求項2】
前記テキストエンコーダニューラルネットワークが、自己注意エンコーダニューラルネットワークである、請求項1に記載の方法。
【請求項3】
前記列の中の前記生成ニューラルネットワークが、(i)それぞれの訓練テキストプロンプトと、(ii)前記それぞれの訓練テキストプロンプトによって描写される場面を描くそれぞれのグラウンドトゥルース画像とを各々含む、訓練例のセットについて合同訓練されており、
前記テキストエンコーダニューラルネットワークが、事前訓練されており、前記列の中の前記生成ニューラルネットワークの前記合同訓練の間に凍結されたままに保たれた、請求項1から2のいずれか一項に記載の方法。
【請求項4】
前記列の中の各生成ニューラルネットワークが、拡散ベースの生成ニューラルネットワークである、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記拡散ベースの生成ニューラルネットワークが、分類器なしの誘導を使用して訓練されている、請求項4に記載の方法。
【請求項6】
各々の後続の拡散ベースの生成ニューラルネットワークに対して、前記それぞれの出力画像を出力として生成するために前記それぞれの入力を処理するステップが、
前記それぞれの出力解像度を有する潜在画像をサンプリングするステップと、
ステップの列にわたって前記潜在画像を前記それぞれの出力画像へとノイズ除去するステップとを備え、ノイズ除去する前記ステップが、ステップの前記列の中の最後のステップではない各ステップに対して、
前記ステップに対する潜在画像を受け取るステップと、
前記ステップに対する推定画像を生成するために前記ステップに対する前記それぞれの入力および前記潜在画像を処理するステップと、
前記ステップに対する前記推定画像のピクセル値を動的に閾値設定するステップと、
前記ステップに対する前記推定画像およびランダムにサンプリングされたノイズを使用して、次のステップに対する潜在画像を生成するステップと
を備える、請求項4から5のいずれか一項に記載の方法。
【請求項7】
ステップの前記列の中の前記最後のステップに対して、
前記最後のステップに対する潜在画像を受け取るステップと、
前記それぞれの出力画像を生成するために、前記最後のステップに対する前記それぞれの入力および前記潜在画像を処理するステップとをさらに備える、請求項6に記載の方法。
【請求項8】
前記ステップに対する前記推定画像を生成するために前記ステップに対する前記それぞれの入力および前記潜在画像を処理するステップが、
前記それぞれの出力解像度を有するそれぞれのサイズ変更された入力画像を生成するために、前記それぞれの入力画像をサイズ変更するステップと、
前記ステップに対する連結画像を生成するために、前記ステップに対する前記潜在画像を前記それぞれのサイズ変更された入力画像と連結するステップと、
前記ステップに対する前記推定画像を生成するために、前記コンテキスト埋め込みへの相互注意を用いて前記ステップに対する前記連結画像を処理するステップとを備える、請求項6から7のいずれか一項に記載の方法。
【請求項9】
前記ステップに対する前記推定画像の前記ピクセル値を動的に閾値設定するステップが、
前記ステップに対する前記推定画像の前記ピクセル値に基づいて、制限閾値を決定するステップと、
前記制限閾値を使用して、前記ステップに対する前記推定画像の前記ピクセル値を閾値設定するステップとを備える、請求項6から8のいずれか一項に記載の方法。
【請求項10】
前記ステップに対する前記推定画像の前記ピクセル値に基づいて前記制限閾値を決定するステップが、
前記ステップに対する前記推定画像の中の特定のパーセンタイルの絶対ピクセル値に基づいて前記制限閾値を決定するステップを備える、請求項9に記載の方法。
【請求項11】
前記制限閾値を使用して前記ステップに対する前記推定画像の前記ピクセル値を閾値設定するステップが、
前記ステップに対する前記推定画像の前記ピクセル値を[-κ,κ]によって定義される範囲に制限するステップを備え、κが前記制限閾値である、請求項9から10のいずれか一項に記載の方法。
【請求項12】
前記制限閾値を使用して前記ステップに対する前記推定画像の前記ピクセル値を閾値設定するステップが、
前記ステップに対する前記推定画像の前記ピクセル値を制限した後、前記ステップに対する前記推定画像の前記ピクセル値を前記制限閾値で割るステップをさらに備える、請求項11に記載の方法。
【請求項13】
各々の後続の生成ニューラルネットワークが、ノイズ条件付け拡張を前記それぞれの入力画像に適用する、請求項1から12のいずか一項に記載の方法。
【請求項14】
前記最終的な出力画像が、前記列の中の最終的な生成ニューラルネットワークの前記それぞれの出力画像である、請求項1から13のいずれか一項に記載の方法。
【請求項15】
各々の後続の生成ニューラルネットワークが、それぞれのk×k入力画像を受け取り、それぞれの4k×4k出力画像を生成する、請求項1から14のいずれか一項に記載の方法。
【請求項16】
1つまたは複数のコンピュータによって実行される方法であって、
ノイズ分布からノイズ入力をサンプリングするステップと、
最終的な出力画像を生成するために、生成ニューラルネットワークの列を通じて前記ノイズ入力を処理するステップとを備え、生成ニューラルネットワークの前記列が、
前記ノイズ入力を受け取り、
最初の解像度を有する最初の出力画像を出力として生成するために、前記ノイズ入力を処理する
ように構成される、最初の生成ニューラルネットワークと、
(i)前記ノイズ入力と、(ii)それぞれの入力解像度を有し、前記列の中の先行する生成ニューラルネットワークによって出力として生成される、それぞれの入力画像とを備える、それぞれの入力を受け取り、
前記それぞれの入力解像度よりも高いそれぞれの出力解像度を有するそれぞれの出力画像を出力として生成するために、前記それぞれの入力を処理する
ように各々構成される、1つまたは複数の後続の生成ニューラルネットワークとを備える、方法。
【請求項17】
前記列の中の各生成ニューラルネットワークが、拡散ベースの生成ニューラルネットワークである、請求項16に記載の方法。
【請求項18】
前記拡散ベースの生成ニューラルネットワークが、分類器なしの誘導を使用して訓練されている、請求項16から17のいずれか一項に記載の方法。
【請求項19】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から18のいずれか一項に記載の方法を実行させる命令を記憶する、1つまたは複数の記憶デバイスとを備える、システム。
【請求項20】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から18のいずれか一項に記載の方法を実行させる命令を記憶する、1つまたは複数のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、ニューラルネットワークを使用して画像を処理することに関する。
【背景技術】
【0002】
ニューラルネットワークは、受け取られた入力に対する出力を予測するために非線形単位の1つまたは複数の層を利用する機械学習モデルである。一部のニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワークの中の次の層、すなわち次の隠れ層または出力層への入力として使用される。ネットワークの各層は、パラメータのそれぞれのセットの現在の値に従って、受け取られた入力から出力を生成する。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Colin Raffel他, Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. JMLR, 21(140), 2020
【非特許文献2】Alexander Quinn Nichol and Prafulla Dhariwal、「Improved denoising diffusion probabilistic models」、International Conference on Machine Learning、PMLR、2021年
【非特許文献3】Jonathan Ho、Ajay Jain、およびPieter Abbeel、「Denoising Diffusion Probabilistic Models」、NeurIPS、2020年
【非特許文献4】Jiaming Song、Chenlin Meng、およびStefano Ermon、「Denoising diffusion implicit models」、arXiv preprint arXiv:2010.02502 (2020)
【非特許文献5】Tim SalimansおよびJonathan Ho、「Progressive Distillation for Fast Sampling of Diffusion Models」、ICLR、2022年
【非特許文献6】Chenlin Meng他、「On distillation of guided diffusion models」、arXiv preprint arXiv:2210.03142 (2022)
【非特許文献7】Karras、Tero他、「Elucidating the design space of diffusion-based generative models」、arXiv preprint arXiv:2206.00364 (2022)
【発明の概要】
【課題を解決するための手段】
【0004】
本明細書は、テキストエンコーダニューラルネットワークと、生成ニューラルネットワークの列とを使用して、条件付け入力から画像を生成する、1つまたは複数の位置にある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装される画像生成システムを説明する。以下の説明は、テキストプロンプト(またはテキストプロンプトのコンテキスト埋め込みのセット)の形式の条件付け入力を説明するが、他の実装形態では、条件付け入力は、異なるタイプのデータ、たとえば、ノイズ分布からサンプリングされたノイズ入力、既存の画像、既存の画像の埋め込み、ビデオ、ビデオの埋め込み、画像に対する望まれるオブジェクトカテゴリの数値表現、画像が描くべき場面を特徴付けるオーディオ信号、画像を描写する発話を含むオーディオ信号、オーディオ信号の埋め込み、これらの組合せなどであり得る。本明細書で開示される方法およびシステムは、高解像度の画像を生成するために、あらゆる条件付けられた画像生成問題に適用され得る。
【0005】
一態様では、1つまたは複数のコンピュータによって実行される方法が提供される。方法は、自然言語でのテキストトークンの列を含む入力テキストプロンプトを受け取るステップと、入力テキストプロンプトのコンテキスト埋め込みのセットを生成するために、テキストエンコーダニューラルネットワークを使用して入力テキストプロンプトを処理するステップと、入力テキストプロンプトによって描写される場面を描く最終的な出力画像を生成するために、生成ニューラルネットワークの列を通じてコンテキスト埋め込みを処理するステップとを含む。生成ニューラルネットワークの列は、最初の生成ニューラルネットワークおよび1つまたは複数の後続の生成ニューラルネットワークを含む。最初の生成ニューラルネットワークは、コンテキスト埋め込みを受け取り、最初の解像度を有する最初の出力画像を出力として生成するために、コンテキスト埋め込みを処理するように構成される。1つまたは複数の後続の生成ニューラルネットワークは、(i)コンテキスト埋め込みと、(ii)それぞれの入力解像度を有し、列の中の先行する生成ニューラルネットワークによって出力として生成される、それぞれの入力画像とを含む、それぞれの入力を受け取り、それぞれの入力解像度よりも高いそれぞれの出力解像度を有するそれぞれの出力画像を出力として生成するために、それぞれの入力を処理するように各々構成される。
【0006】
方法のいくつかの実装形態では、テキストエンコーダニューラルネットワークは、自己注意エンコーダニューラルネットワークである。
【0007】
方法のいくつかの実装形態では、列の中の生成ニューラルネットワークは、(i)それぞれの訓練テキストプロンプトと、(ii)それぞれの訓練テキストプロンプトによって描写される場面を描くそれぞれのグラウンドトゥルース画像とを各々含む、訓練例のセットについて合同訓練されており、テキストエンコーダニューラルネットワークは、事前訓練されており、列の中の生成ニューラルネットワークの合同訓練の間は凍結されたままに保たれた。
【0008】
方法のいくつかの実装形態では、列の中の各生成ニューラルネットワークは、拡散ベースの生成ニューラルネットワークである。
【0009】
方法のいくつかの実装形態では、拡散ベースの生成ニューラルネットワークは、分類器なしの誘導を使用する。
【0010】
方法のいくつかの実装形態では、各々の後続の拡散ベースの生成ニューラルネットワークについて、それぞれの出力画像を出力として生成するためにそれぞれの入力を処理するステップは、それぞれの出力解像度を有する潜在画像をサンプリングするステップと、ステップの列にわたって潜在画像をそれぞれの出力画像へとノイズ除去するステップとを含む。ステップの列にわたって潜在画像をノイズ除去するステップは、ステップの列の中の最後のステップではない各ステップに対して、そのステップに対する潜在画像を受け取るステップと、そのステップに対する推定画像を生成するために、そのステップに対するそれぞれの入力および潜在画像を処理するステップと、そのステップに対する推定画像のピクセル値を動的に閾値設定するステップと、そのステップに対する推定画像およびランダムにサンプリングされたノイズを使用して次のステップに対する潜在画像を生成するステップとを含む。
【0011】
方法のいくつかの実装形態では、ステップの列にわたって潜在画像をノイズ除去するステップは、ステップの列の中の最後のステップに対して、最後のステップに対する潜在画像を受け取るステップと、それぞれの出力画像を生成するために最後のステップに対するそれぞれの入力および潜在画像を処理するステップとを含む。
【0012】
方法のいくつかの実装形態では、そのステップに対する推定画像を生成するためにそのステップに対するそれぞれの入力および潜在画像を処理するステップは、それぞれの出力解像度を有するそれぞれのサイズ変更された入力画像を生成するために、それぞれの入力画像をサイズ変更するステップと、そのステップに対する連結画像を生成するために、そのステップに対する潜在画像をそれぞれのサイズ変更された入力画像と連結するステップと、そのステップに対する推定画像を生成するために、コンテキスト埋め込みへの相互注意を用いてそのステップに対する連結画像を処理するステップとを含む。
【0013】
方法のいくつかの実装形態では、そのステップに対する推定画像のピクセル値を動的に閾値設定するステップは、そのステップに対する推定画像のピクセル値に基づいて制限閾値を決定するステップと、制限閾値を使用してそのステップに対する推定画像のピクセル値を閾値設定するステップとを含む。
【0014】
方法のいくつかの実装形態では、そのステップに対する推定画像のピクセル値に基づいて制限閾値を決定するステップは、そのステップに対する推定画像の中の特定のパーセンタイルの絶対ピクセル値に基づいて制限閾値を決定するステップを含む。
【0015】
方法のいくつかの実装形態では、制限閾値を使用してそのステップに対する推定画像のピクセル値を閾値設定するステップは、そのステップに対する推定画像のピクセル値を[-κ,κ]によって定義される範囲に制限するステップを含み、κは制限閾値である。
【0016】
方法のいくつかの実装形態では、制限閾値を使用してそのステップに対する推定画像のピクセル値を閾値設定するステップは、そのステップに対する推定画像のピクセル値を制限した後に、そのステップに対する推定画像のピクセル値を制限閾値で割るステップをさらに含む。
【0017】
方法のいくつかの実装形態では、各々の後続の生成ニューラルネットワークは、ノイズ条件付け拡張(noise conditioning augmentation)をそれぞれの入力画像に適用する。
【0018】
方法のいくつかの実装形態では、最終的な出力画像は、列の中の最後の生成ニューラルネットワークのそれぞれの出力画像である。
【0019】
方法のいくつかの実装形態では、各々の後続の生成ニューラルネットワークは、それぞれのk×k入力画像を受け取り、それぞれの4k×4k出力画像を生成する。
【0020】
第2の態様において、1つまたは複数のコンピュータによって実行される方法が提供される。方法は、ノイズ分布からノイズ入力をサンプリングするステップと、最終的な出力画像を生成するために、生成ニューラルネットワークの列を通じてノイズ入力を処理するステップとを含む。生成ニューラルネットワークの列は、最初の生成ニューラルネットワークおよび1つまたは複数の後続の生成ニューラルネットワークを含む。最初の生成ニューラルネットワークは、ノイズ入力を受け取り、最初の解像度を有する最初の出力画像を出力として生成するために、ノイズ入力を処理するように構成される。1つまたは複数の後続の生成ニューラルネットワークは、(i)ノイズ入力と、(ii)それぞれの入力解像度を有し、列の中の先行する生成ニューラルネットワークによって出力として生成される、それぞれの入力画像とを含む、それぞれの入力を受け取り、それぞれの入力解像度よりも高いそれぞれの出力解像度を有するそれぞれの出力画像を出力として生成するために、それぞれの入力を処理するように各々構成される。
【0021】
方法のいくつかの実装形態では、列の中の各生成ニューラルネットワークは、拡散ベースの生成ニューラルネットワークである。
【0022】
方法のいくつかの実装形態では、拡散ベースの生成ニューラルネットワークは、分類器なしの誘導を使用する。
【0023】
第3の態様では、システムが提供される。システムは、1つまたは複数のコンピュータと、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに上述の方法のいずれかを実行させる命令を記憶する、1つまたは複数の記憶デバイスとを含む。
【0024】
第4の態様では、システムが提供される。システムは、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに上述の方法のいずれかを実行させる命令を記憶する、1つまたは複数のコンピュータ可読記憶媒体を含む。
【0025】
本明細書で説明される主題は、以下の利点の1つまたは複数を実現するように、特定の実施形態において実装され得る。
【0026】
説明される画像生成システムは、テキストプロンプトによって描写される場面を描く高解像度の画像を生成することができる。すなわち、画像生成システムは、テキストプロンプトによって正確に表題を付けられた高解像度の画像を効果的に生成することができる。テキストプロンプトを各々条件とし得る生成ニューラルネットワーク(GNN)の列(または「カスケード」)を利用することによって、システムは、画像の解像度を反復的に上げることができ、単一のニューラルネットワークが画像を所望の出力解像度で直接生成する必要なく、高解像度の画像が生成され得ることを確実にする。この方式でGNNをカスケード接続することは、それらのサンプル品質を大きく改善するとともに、より低い解像度で生じるあらゆるアーティファクト、たとえば歪み、チェッカーボードアーティファクトなどを補償することができる。
【0027】
システムのモジュール的な性質により、この反復的な向上手順は、高忠実度の画像を任意の所望の解像度で生成するために使用され得る。システムは、画像を所望の解像度で生成するために、任意の適切なタイプの生成モデルを各々実装する、かつ、任意の適切な数のニューラルネットワーク層、ネットワークパラメータおよび/またはハイパーパラメータを各々有する、任意の適切な数のGNNを利用することができる。推論時の性能改善の他に、システムのモジュール性は、訓練の間の大きな利益も実現する。たとえば、訓練エンジンは、GNNの列を並列に合同訓練することができ、これは、高度な最適化と訓練時間の削減を容易にする。すなわち、列の中の各GNNは、ある性質、たとえば、特定の出力解像度、忠実度、知覚品質、効率的な復号(またはノイズ除去)、高速なサンプリング、アーティファクトの低減などをGNNに与えるために、訓練エンジンによって独立に最適化され得る。
【0028】
高度なテキストと画像の整合を伴う高忠実度のtext-to-image合成を実現するために、システムは、事前訓練されたテキストエンコーダニューラルネットワークを使用して、テキストプロンプトを処理し、テキストプロンプトのコンテキスト埋め込みのセット(または列)を生成することができる。テキストプロンプトは、場面を(たとえば、自然言語でのテキストトークンの列として)描写することができ、コンテキスト埋め込みは、計算的に修正可能な形式で(たとえば、数値のセットもしくはベクトル、英数字値、記号、または他の符号化された表現として)場面を表現することができる。訓練エンジンは、テキストプロンプトと推測時に生成される画像との整合を改善するために、GNNの列が訓練されるときにテキストエンコーダを凍結されたままに保つこともできる。凍結されたテキストエンコーダは特に効果的であることがあり、それは、たとえば、テキスト-画像訓練ペアにより描写される特定の場面への偏りがテキストエンコーダにあることにより、テキストエンコーダが並列に訓練された場合には実現可能ではない可能性のある、場面の言語符号化の深層学習を、GNNの列が行うことを可能にし得るからである。さらに、テキストベースの訓練セットは、現在利用可能なテキスト-画像訓練セットよりも一般に豊富で洗練されており、これは、テキストエンコーダが事前訓練され、その後、高度に最適化された方式で実装されることを可能にする。たとえば、Colin Raffel他、「Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. JMLR, 21(140), 2020.」により提供されるT5テキストエンコーダを参照されたい。テキストエンコーダを凍結することには、コンテキスト埋め込みのオフライン計算などのいくつかの他の利点があり、訓練の間の計算またはメモリのフットプリントは無視できるものになる。いくつかの実装形態では、訓練エンジンは、GNNの列が訓練された後で事前訓練されたテキストエンコーダを精密に調整し、これは、場合によっては、さらに良好なテキストと画像の整合を可能にし得る。
【0029】
システムは、テキストプロンプトによって描写される場面を描く最終的な出力画像を生成するために、GNNの列を使用してコンテキスト埋め込みを処理することができる。具体的には、最初のGNNは、テキストプロンプトのコンテキスト埋め込みを受け取ることができる。最初のGNNは、最初の解像度を有する最初の出力画像を生成するために、コンテキスト埋め込みを処理することができる。たとえば、最初の出力画像は、比較的低い解像度(たとえば、64×64ピクセル)で最初のGNNによって生成され得る。最初の出力画像は、所望の最終的な解像度を有する最終的な出力画像が得られるまで、解像度を向上させながらそれぞれの出力画像を生成するために、列の中の各々の後続のGNNによって反復的に処理され得る。たとえば、最終的な出力画像は、比較的高い解像度(1024×1024ピクセル)で列の中の最後のGNNによって生成され得る。より具体的には、各々の後続のGNNは、コンテキスト埋め込みと、列の中の先行するGNNによって出力として生成されたそれぞれの入力画像とを含む、それぞれの入力を受け取り、それぞれの入力画像よりも高い解像度を有するそれぞれの出力画像を生成するために、それぞれの入力を処理することができる。たとえば、システムは、入力画像と比べて出力画像の解像度を上げるために、最初のGNNのために基本画像生成モデルを使用し、後続のGNNのために超解像モデルを使用することができる。場合によっては、後続のGNNは、ノイズ条件付け拡張をその入力画像に適用することがあり、これは入力画像をわずかに壊す。これは、後続のGNNが、先行するGNNが生成した可能性のあるエラーおよび/またはアーティファクトを訂正することを可能にし得る。システムは、その入力画像に適用される条件付け拡張の大きさを指定する信号を後続のGNNに提供することもできる。
【0030】
GNNの列の中の各GNNは、それがその説明される機能を実行すること、すなわち、それぞれの出力画像を生成するためにテキストプロンプトおよび/またはそれぞれの入力画像のコンテキスト埋め込みのセットを処理することを可能にする、任意の適切なニューラルネットワークアーキテクチャを有し得る。具体的には、GNNは、任意の適切なタイプのニューラルネットワーク層(たとえば、全結合層、畳み込み層、自己注意層など)を、任意の適切な数(たとえば、5層、25層、または100層)、および任意の適切な構成で(たとえば、層の線形な列として)接続された状態で含み得る。
【0031】
いくつかの実装形態では、画像生成システムは、GNNの各々に対して拡散ベースのモデルを使用するが、生成モデルの任意の組合せ、たとえば、変分オートエンコーダ(VAE)、敵対的生成ネットワーク(GAN)などがシステムによって利用され得る。拡散モデルは、その制御可能性とスケーラビリティにより、モジュール式のシステムの環境では特に有効であり得る。たとえば、一部の生成モデルと比べて、拡散モデルは、所与の訓練データセットに関して、計算的に扱いやすい目的関数について訓練エンジンによって効率的に訓練され得る。これらの目的関数は、拡散ベースのGNN(DBGNN)の速度と性能を高めるために、ならびに、さらに性能を改善する分類器なしの誘導および漸進的蒸留(progressive distillation)などの技法を可能にするために、訓練エンジンによって単純に最適化され得る。
【0032】
態様の中でもとりわけ、本明細書は、高解像度のtext-to-imageモデルとして画像生成システムを拡張するための方法を説明する。DBGNNでは、安定性のために、および、高速で高品質なサンプリングのための分類器なしの誘導と組み合わせた漸進的蒸留を容易にするために、v-parametrizationがシステムによって実施され得る。この画像生成システムは、高忠実度の画像を生成することが可能であるだけではなく、様々な芸術的様式で多様な画像とテキストを生成する能力を含む、高度な制御可能性と世界の知識も有する。
【0033】
本明細書で説明される画像生成システムは、任意の適切な位置、たとえばユーザデバイス(たとえば、モバイルデバイス)上、またはデータセンターの中の1つまたは複数のコンピュータ上などで実装され得る。画像生成システムのモジュール性は、複数のデバイスが互いに別々にシステムの個々のコンポーネントを実装することを可能にする。具体的には、列の中の異なるGNNが、異なるデバイスで実行されることが可能であり、それらの出力および/または入力を互いに(たとえば、遠隔通信を介して)送信することができる。一例として、テキストエンコーダおよびGNNのサブセットはクライアントデバイス(たとえば、モバイルデバイス)上で実装されてもよく、GNNの残りは(たとえば、データセンターの中の)遠隔デバイス上で実装されてもよい。クライアントデバイスは、入力(たとえば、テキストプロンプト)を受け取り、特定の解像度の出力画像を生成するためにテキストエンコーダおよびGNNのサブセットを使用してテキストプロンプトを処理することができる。クライアントデバイスは次いで、入力として遠隔デバイスにおいて受け取られる出力(たとえば、出力画像およびテキストプロンプトのコンテキスト埋め込みのセット)を送信することができる。遠隔デバイスは次いで、受け取られた画像よりも高い解像度を有する最終的な出力画像を生成するために、GNNの残りを使用して入力を処理することができる。
【0034】
ユーザは、たとえば、インターフェース、たとえばグラフィカルユーザインターフェース、またはアプリケーションプログラミングインターフェース(API)によって、入力を画像生成システムに提供することによって、画像生成システムと対話することができる。具体的には、ユーザは、(i)画像を生成せよとの要求と、(ii)生成されるべき画像の内容を描写するプロンプト(たとえば、テキストプロンプト)とを含む、入力を提供することができる。入力を受け取ったことに応答して、画像生成システムは、要求に応答した画像を生成し、たとえばユーザのユーザデバイスで表示するために、またはデータ記憶デバイスに記憶するために、画像をユーザに提供することができる。場合によっては、画像生成システムは、たとえばデータ通信ネットワーク(たとえば、インターネット)によって、ユーザのユーザデバイスに生成された画像を送信することができる。
【0035】
本明細書の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載される。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになる。
【図面の簡単な説明】
【0036】
図1A】テキストプロンプトから画像を生成することができる例示的な画像生成システムのブロック図である。
図1B】テキストプロンプトから画像を生成するための例示的なプロセスの流れ図である。
図2A】例示的な生成ニューラルネットワークの列のブロック図である。
図2B】生成ニューラルネットワークの列を使用してコンテキスト埋め込みのセットを処理するための例示的なプロセスの流れ図である。
図3A】生成ニューラルネットワークの列を合同訓練することができる例示的な訓練エンジンのブロック図である。
図3B】生成ニューラルネットワークの列を合同訓練するための例示的なプロセスの流れ図である。
図4】例示的なU-Netアーキテクチャのブロック図である。
図5A】Efficient U-Netアーキテクチャのための例示的なResNetBlockのブロック図である。
図5B】Efficient U-Netアーキテクチャのための例示的なDBlockのブロック図である。
図5C】Efficient U-Netアーキテクチャのための例示的なUBlockのブロック図である。
図5D】超解像モデルとして実装される例示的なEfficient U-Netアーキテクチャのブロック図である。
図6A】ノイズから画像を生成することができる例示的な画像生成システムのブロック図である。
図6B】ノイズから画像を生成するための例示的なプロセスの流れ図である。
図6C】生成ニューラルネットワークの列を使用してノイズ入力を処理するための例示的なプロセスの流れ図である。
図7】画像生成システムによってテキストプロンプトから生成される様々な画像を示す図である。
【発明を実施するための形態】
【0037】
様々な図面における同様の参照番号および指定は同様の要素を示す。
【0038】
本明細書は、高度なフォトリアリズム、忠実性、および深い言語理解を伴うtext-to-image生成を実現するために、テキストエンコーダニューラルネットワーク(たとえば、大規模言語モデル(LLM))の力を生成ニューラルネットワーク(たとえば、拡散ベースのモデル)の列と組み合わせる画像生成システムを紹介する。モデル訓練のために画像-テキストデータを主に使用する従来の作業とは対照的に、本明細書で説明される提案は、テキストのみのコーパスで事前訓練されたテキストエンコーダからのコンテキスト埋め込みが、text-to-image生成に効果的であるというものである。
【0039】
画像生成システムの例はまた、生成画像モデリングおよび生成モデリングに関する数々の利点と知見を全体として実証し、それらは、限定はされないが以下のことを含む。
1. 高解像度画像の生成に対する生成ニューラルネットワーク(たとえば、拡散ベースのモデル)の列または「カスケード」の有効性。
2. 拡散ベースのモデルにおけるテキストエンコーダ凍結の条件付けおよび分類器なしの誘導の有効性。
3. 動的閾値設定(dynamic thresholding)と呼ばれる、フォトリアリスティックで詳細な画像を生成するための、新しい拡散ベースのサンプリング技法の有効性。
4. 誘導された拡散モデルのためのv-prediction parameterizationおよび漸進的蒸留などの追加の設計の選択肢。
5. 収束が速くメモリ効率の高い、Efficient U-Netと呼ばれる新しいアーキテクチャを含む、いくつかのニューラルネットワークアーキテクチャの選択肢。
【0040】
以下で説明されるように、画像生成システムは、テキストプロンプトによって描写される場面を描く画像の解像度を漸進的に高めるために、生成ニューラルネットワーク(GNN)の列を使用する。このようにして、システムは、自然な画像および/または他の画像の分布とよく一致する画像を生成することができる。たとえば、GNNの列は、テキストプロンプト(または他の条件付け入力)で条件付けられた複数の解像度の画像にわたって同時分布をモデル化することができ、これは、GNNの列を訓練するために使用される訓練セットにおける画像の分布に基づく(以下でより詳しく説明される)。
【0041】
本明細書では、「場面」という用語は、何らかの方法で相互作用していてもいなくてもよい、1つまたは複数の物体または一般的な「もの」のあらゆる集合体を一般に指す。たとえば、場面は、環境において互いに相互作用している複数の物体を含んでもよく、たとえば、「星空の下でマグカップのコーヒーに飛び込むイチゴ」、または「月に向かう宇宙船に乗っている脳」、または「白いゴマで満たされたイチゴのマグカップ。マグカップは黒いチョコレートの海に浮いている」。場面は、背景もしくは背景幕のない、または単一色の背景もしくは背景幕のある単一の物体を含んでもよく、たとえば、「背景が白い、鳥のような形の薄い針金から作られた極小の動く彫刻のスタジオでとられた写真」。場面は、文字、または色、形、線などの抽象芸術を含んでもよく、たとえば、「文字「Imagen」を形成する青い枠」。図7に示されるように、画像において描かれテキストプロンプトによって描写され得る場面のタイプは多様であり、現実世界の環境から抽象的なものにまでわたり得る。テキストプロンプトは、場面の中のすべての物体を明確に描写しなくてもよいことに留意されたい。たとえば、テキストプロンプトは、場面が呼び起こすべき雰囲気、たとえば「幸せは晴れた日だ」、または「未知のものの恐怖」を描写することができる。一般に、テキストプロンプトは、それが視覚的な特性を描写するかどうかにかかわらず、あらゆるテキストを含み得る。
【0042】
画像に参照するとき、「解像度」という用語は、画像の空間解像度であり、視覚的に弁別可能なままでありながら画像の中の線が互いにどれだけ近づけるかということを一般に指す。すなわち、画像において1本の線に見えることなく、2本の線が互いにどれだけ近づけるかである。いくつかの実装形態では、解像度はピクセル解像度で特定されてもよく、これは、この場合、画像に対する単位長当たり(または単位面積当たり)の独立したピクセルの数に相当し、必ずしも、画像に対する単位長当たり(または単位面積当たり)のピクセルの総数ではない。具体的には、第1の画像は、第2の画像よりも高いピクセル数を有し得るが、それでも第2の画像よりも解像度が悪い。たとえば、画像のピクセルを単にアップサンプリングすると、ピクセル数は増えるが、解像度は上がらない。一般に、相対長さスケールは、画像間の解像度の明確な比較を有するとも考えられる。たとえば、2048×1536の独立したピクセルをもつデジタル画像は、28.5インチワイドで見られる場合は低い解像度(約72ピクセルパーインチ(ppi))に見えることがあるが、7インチワイドで見られる場合は高い解像度(約300ppi)に見えることがある。相対長さスケールとは、画像が(たとえば、ディスプレイ上で)見られる長さスケールを一般に指し、画像において描写される場面の長さスケールを必ずしも指さない。たとえば、惑星の運動を描写する画像と原子の運動を描写する画像は、それぞれの場面において異なる長さスケールを有し得るが、見られるときには同じ相対長さスケールを有し得る。
【0043】
図1Aは、例示的な画像生成システム100のブロック図を示す。画像生成システム100は、以下で説明されるシステム、コンポーネント、および技法が実装される、1つまたは複数の位置における1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されるシステムの例である。
【0044】
上層において、画像生成システム100は、テキストエンコーダニューラルネットワーク110、生成ニューラルネットワーク(GNN)の列121、およびいくつかの実装形態では、ポストプロセッサ130を含む。システム100は、テキストプロンプト102を入力として受け取り、最終的な画像108を出力として生成するように構成される。
【0045】
より具体的には、システム100は、場面を描写するテキストプロンプト(T)102を受け取ることができる。テキストプロンプト102は、自然言語T=(T1,T2,…)の中の複数のテキストトークンT1,2,…を含むテキスト列であり得る。たとえば、図1Aに示されるように、テキストプロンプト102は、「雪の中で空手の帯を巻いているドラゴンフルーツ」を含み得る。一般に、テキストプロンプト102はあらゆる特定の場面を描写することができ、システム100は、(たとえば、訓練エンジンによって)適切に訓練されるとき、場面を忠実に描写する高解像度の画像を生成することが可能である。テキストプロンプト102は、システム100によって生成される最終的な画像108に様々なスタイル、改変、および/または特性を与える、「滑らか」、「スタジオ照明」、「ピクセルアート」、「ゴッホのスタイルで」などのテキスト修飾子も含み得る。その上、システム100は、とりわけ、3次元(3D)画像、フォトリアリスティックな画像、漫画の画像、抽象的な視覚化、点群画像、様々なモダリティの医療画像などの、様々な異なるタイプの画像を生成することができる。たとえば、システム100は、限定はされないが、磁気共鳴画像法(MRI)画像、コンピュータ断層撮影(CT)画像、超音波画像、x線画像などを含む、医療画像を生成することができる。
【0046】
テキストエンコーダ110は、テキストプロンプト102のコンテキスト埋め込み(u)のセットを生成するためにテキストプロンプト102を処理するように構成される。いくつかの実装形態では、テキストエンコーダ110は、事前訓練された自然言語テキストエンコーダ、たとえば、とりわけT5-XXL、CLIPテキストエンコーダ、大規模言語モデル(LLM)などのT5テキストエンコーダである。たとえば、テキストエンコーダ110は、たとえば、自己注意層とそれに続くパーセプトロン層とを含む、トランスフォーマーモデルなどの自己注意エンコーダであり得る。コンテキスト埋め込み104は、システム100による処理のために計算的に修正可能な表現を提供する、テキストプロンプト102の符号化された表現とも呼ばれ得る。たとえば、コンテキスト埋め込み104は、値(たとえば、UNICODEまたはBase64符号化における)、英数字値、記号、または任意の便利な符号化の、セット、ベクトル、もしくはアレイであり得る。
【0047】
GNN121の列は、それぞれの入力(c)を受け取るように各々構成される複数のGNN120を含む。各GNN120は、それぞれの出力画像
【数1】
を生成するようにそれぞれの入力を処理するように構成される。一般に、列121は、最初の出力画像(たとえば、低解像度の)を生成する最初のGNNと、最初の出力画像の解像度を漸進的に高める1つまたは複数の後続のGNNとを含む。たとえば、各々の後続のGNNは、解像度を高めるための超解像モデルを含み得る。したがって、最初のGNNのそれぞれの入力はコンテキスト埋め込み104を含むが、各々の後続のGNNのそれぞれの入力は、列121の中の先行するGNNによって生成される出力画像を含む。場合によっては、各々の後続のGNNへのそれぞれの入力は、直前のGNNだけではなく、列121においてより浅い深さで生成される1つまたは複数の出力画像を含み得る。そのような事例は、本明細書で概説される技法を使用しても実現され得る。いくつかの実装形態では、後続のGNNの1つまたは複数のそれぞれの入力はコンテキスト埋め込み104も含み、これは後続のGNNがテキストプロンプト102について条件付けられることを可能にする。さらなる実装形態では、各々の後続のGNNのそれぞれの入力はコンテキスト埋め込み104を含み、これは、場合によってはシステム100の性能を改善することができ、たとえば、それにより、各々の後続のGNNはテキストプロンプト102について強く条件付けられるそれぞれの出力画像を生成する。場合によっては、後続のGNNの1つまたは複数へのそれぞれの入力は、異なるテキストプロンプトのコンテキスト埋め込みのセットなどの異なる条件付け信号を含み得る。これらの場合、後続のGNNは、異なるテキストプロンプトに基づく異なるタイプの出力画像へとその入力画像を変更し、および/または、複数のテキストプロンプトの混成である出力画像を生成することができる。たとえば、最初のGNNは、テキストプロンプト「猫の写真」に関連するコンテキスト埋め込みのセットを受け取ってもよく、後続のGNNの1つまたは複数は、テキストプロンプト「猫の油絵」に関連するコンテキスト埋め込みのセットを受け取ってもよい。そのような事例は、本明細書で概説される技法を使用して、たとえば、以下でより詳しく説明されるノイズ条件付け拡張を伴う実装形態においても実現され得る。
【0048】
システム100は、(あったとしても)わずかなアーティファクトとともに高解像度の出力画像106を生成するために、列121を通じてコンテキスト埋め込み104を処理する。出力画像106は普通は最終的な出力画像、すなわち、列121の中の最後のGNNのそれぞれの出力画像であるが、より一般的には、列121の中のあらゆるGNN120によって提供され得る。
【0049】
いくつかの実装形態では、出力画像106は、最終的な画像(x)108を生成するためにポストプロセッサ130によってさらに処理される。たとえば、ポストプロセッサ130は、画像効果の中でもとりわけ、画像強調、モーションブラー、フィルタリング、輝度、レンズフレア、ブライトニング、シャープニング、コントラストなどの変換を出力画像106に対して実行することができる。ポストプロセッサ130によって実行される変換の一部またはすべてが、GNN120が(たとえば、訓練エンジンによって)適切に訓練されるとき、列121によっても実行され得る。たとえば、GNN120は、これらの変換を学習し、それらをテキストプロンプト102に含まれるそれぞれのテキスト修飾子と関連付けることができる。いくつかの実装形態では、システム100はポストプロセッサ130を含まず、列121によって生成される出力画像106は最終的な画像108である。代替として、システム100はポストプロセッサ130を無効にすることができ、それにより、ポストプロセッサ130によって出力画像106に対して実行される変換は一致演算と等価となる。
【0050】
いくつかの実装形態では、ポストプロセッサ130は、画像分類および/または画像品質分析などの分析を出力画像106に対して実行し得る。ポストプロセッサ130は、畳み込みニューラルネットワーク(CNN)、再帰ニューラルネットワーク(RNN)などの1つまたは複数のニューラルネットワーク、ならびに/または、そのような分類および/もしくは分析を実行するための画像エンコーダを含み得る。たとえば、ポストプロセッサ130は、出力画像106を視覚的埋め込みのセットへと符号化して、それをコンテキスト埋め込み104と比較することによって、テキストプロンプト102によって描写される場面を出力画像106が正確に描いているかどうかを決定することができる。これらの場合、ポストプロセッサ130は、事前訓練されたテキスト-画像エンコーダペア、たとえばCLIPテキスト-画像エンコーダペアなどの、テキストエンコーダ110と対にされた画像エンコーダを含み得る。これは、視覚的埋め込みをコンテキスト埋め込み104と比較することによる、列121のゼロショット(または半教師あり)訓練の手段にもなる。言い換えると、列121は、視覚的埋め込みへと符号化されるとコンテキスト埋め込み104を忠実に再構築する出力画像106を生成することによって、(ラベリングされたテキスト-画像訓練セットだけではなく)テキストベースの訓練セットから出力画像106を生成するように(たとえば、訓練エンジンによって)訓練され得る。別の例として、ポストプロセッサ130は、CNNおよび/またはRNNを使用して、ならびに目的画像品質分析(IQA)を使用して、出力画像106の解像度が高いかどうか、空間的コヒーレンスが高いかどうか、アーティファクトが少ないかどうかなどを決定することができる。
【0051】
最終的な画像108は、テキストプロンプト102によって描写される場面を描き、最終的な解像度Rでシステム100によって出力される。たとえば、図1Aに示されるように、最終的な画像108は、雪の中で空手の帯を巻いているドラゴンフルーツである。したがって、最終的な画像108は、図1Aの対応するテキストプロンプト102によって正確に表題を付けられる。図7は、画像生成システム100によってテキストプロンプトから生成され得る画像の他の例を示す。
【0052】
最終的な解像度Rは、画像108の情報の内容の尺度、すなわち画像108の次元である。上で言及されたように、解像度はピクセル解像度に対応してもよく、すなわち、あらかじめ定められた長さ(またはあらかじめ定められた面積)にわたる独立したピクセルの数R=Nx×Nyである。したがって、画像は、特定の範囲におけるピクセル値(たとえば、RGBまたはCMYKカラーチャンネルに対応する)のNx×Nyサイズのアレイを含んでもよく、たとえば、ピクセル値は[-1,1]の間にあり、より(独立した)ピクセルはより高い解像度をもたらす。多くの場合、最終的な画像108の最終的な解像度Rは出力画像106の解像度Rに等しいが、これらは、いくつかの実装形態では、たとえばポストプロセッサ130が出力画像106をサイズ変更する場合、異なることがある。
【0053】
参考として、図1Aおよび図7において描かれる例示的な画像は、1024×1024ピクセルの解像度で生成された。例示的な画像は、基本画像生成モデルを利用する最初のDBGNNと超解像モデルを利用する2つの後続のDBGNNとを含む、3つの拡散ベースのGNN(DBGNN)の列を実装する画像生成システムによって生成された。最初のDBGNNは、64×64という最初の解像度で最初の出力画像を生成し、2つの後続のDBGNNは、4×4の係数で解像度を逐次上げて、それにより、第1の後続のDBGNNは64×64→256×256を実施し、第2の後続のDBGNNは256×256→1024×1024を実施する。合計された全体で30億個のニューラルネットワークパラメータに対して、最初のDBGNNは20億個のパラメータを有し、第1の後続のDBGNNは6億個のパラメータを有し、第2の後続のDBGNNは4億個のパラメータを有する。
【0054】
図1Bは、テキストプロンプトによって描写される場面を描く最終的な画像を生成するための例示的なプロセス200の流れ図である。便宜的に、プロセス200は、1つまたは複数の位置にある1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラムされる画像生成システム、たとえば図1Aの画像生成システム100は、プロセス200を実行することができる。
【0055】
システムは、自然言語でのテキストトークンの列を含む入力テキストプロンプトを受け取る(210)。
【0056】
システムは、入力テキストプロンプトのコンテキスト埋め込みのセットを生成するために、テキストエンコーダニューラルネットワークを使用して入力テキストプロンプトを処理する(220)。
【0057】
システムは、入力テキストプロンプトによって描写される場面を描く最終的な出力画像を生成するために、生成ニューラルネットワークの列を通じてコンテキスト埋め込みを処理する(230)。
【0058】
一般に、列121は、GNN120のための複数のタイプの生成モデルのいずれをも利用することができる。そのような生成モデルは、限定はされないが、とりわけ、拡散ベースのモデル、敵対的生成ネットワーク(GAN)、変分オートエンコーダ(VAE)、自己回帰モデル、エネルギーベースのモデル、ベイジアンネットワーク、フローベースのモデル、これらのモデルのいずれかの階層的なバージョン(たとえば、連続時間または離散時間)を含む。
【0059】
広く言うと、列121の目標は、高度な制御可能性をもつ、すなわち条件付け入力(たとえば、テキストプロンプト)について強く条件付けられる、高解像度の画像の新しい実体を生成することである。上で説明されたように、列121の中の各GNN120は、それぞれの出力画像
【数2】
を生成するために、それぞれの条件付け入力cを処理し、それぞれの入力cは、テキストプロンプトのコンテキスト埋め込み(u)のセットおよび/または列121において先行するGNNによって生成される出力画像を含む。ただし、コンテキスト埋め込みは、ノイズ入力、既存の画像、ビデオ、オーディオ波形、これらのいずれかの埋め込み、これらの組合せなどの、異なる条件付け入力によっても置き換えられ得る。本明細書はtext-to-image生成に全般に関係するが、本明細書で開示される画像生成システムはそのように限定されない。画像生成システムは、条件付け入力を列121へと変更することによって、あらゆる条件付けられた画像生成問題に適用され得る。そのような実装形態の例は、例示的な画像生成システム101がノイズから画像を生成することを示す、図6A図6Cに関して説明される。
【0060】
列121の文脈では、複数の解像度で条件付けられた画像を生成する能力は有利であることがあり、それは、列121が、各々の個々のGNNを比較的単純なものに保ちながら、複数の異なる空間的スケールで学習することを可能にするからである。これは、出力画像において空間的コヒーレンスを維持することに関して重要であることがあり、それは、異なる長さスケールにおける特徴は、列121の中の異なる段階で捉えられ得るからである。たとえば、(i=0)最初のGNNおよび(i=1,2,…,n)後続のGNNを含む列121の合同分布は、マルコフ連鎖として表現され得る。
【数3】
【0061】
ここで、x(i)は特定の解像度R(i)の画像に対応し、R(i)>R(i-1)およびpθ(x(i)|c(i))はc(i)=(x(i-1),u)で条件付けられた特定のGNN120のそれぞれの尤度分布である。これを、単一のGNN生成画像を用いて、最高の解像度pθ(x(n)|u)と直接比較する。単一のGNNが学習の際に用いるデータの量は、GNN121の列よりも小さい大きさのオーダーであり得る。その上、列121は、各解像度に関連するデータが並列に学習されることを可能にする。簡潔にするために、特定のGNN120を特定する上付き文字(i)は、別様に重要ではない限り省略される。
【0062】
強く条件付けられた出力画像を生成するために、GNN120は、データ、たとえば1つまたは複数のテキスト-画像訓練セットから導出されるデータの対応するペア(x,c)の条件付き確率を最大にするものとして、その尤度分布pθ(x|c)をパラメータ化することができる。言い換えると、GNN120は、対応する訓練入力cのもとでグラウンドトゥルース出力画像xの確率を最大化する、または、訓練データ(x,c)に依存する何らかの目的関数Lθ(x,c)を少なくとも最適化する、パラメータ化を実施することができる。ここで、θは、尤度分布の関数形式を記述するGNN120のネットワークパラメータのそれぞれのセットである。明確にするために、GNN120によって実際に生成される出力画像は、画像xが
【数5】
によって「推定される」ことを表記するハット記号
【数4】
を有し得る。以下でより詳しく説明されるように、GNN120は、実装形態に応じて種々の方法で推定
【数6】
を生成することができる。
【0063】
GNN120は、画像の埋め込み、符号化、または「ラベル」としても知られている、画像xの潜在表現zにわたる中間分布をモデル化することによって、尤度のパラメータ化を容易にする。たとえば、潜在変数zは、特定の条件付け入力cによって特定されるような特定のタイプの画像を生成するために、GNN120によって使用され得る。潜在空間は、異なる画像からの情報を合成し、混合し、圧縮する手段もGNN120に提供できるので、列121は、訓練セットに存在するいずれのものとも表面上似ていない画像の新しい実体を生成することができる。
【0064】
まず、潜在空間への移動を考える。すなわち、潜在表現zにわたる尤度pθ(x|c)を無視すると、積分の関係
pθ(x|c)=∫pθ(x,z|c)dz
が得られ、pθ(x,z|c)はcで条件付けられたxとzの合同分布である。多くの場合、潜在表現zの次元は対応する画像xの次元、すなわち画像の解像度R以下であり、これは画像の圧縮された表現を可能にする。連鎖規則を使用すると、合同分布を
pθ(x,z|c)= pθ(x|z,c)pθ(z|c)
と表現することができ、pθ(z|c)はcのもとでの事前分布zであり、一方、pθ(x|z,c)はzおよびcのもとでのxの条件付き分布である。条件付き分布は、GNN120が潜在表現zのもとで画像xを反転させることを可能にし、一方、事前分布は、GNN120が潜在表現自体の生成モデルを実現することを可能にする。事前分布をモデル化することは、たとえば、GNN120が条件付け入力cを潜在表現zと強く相関付けようとするときに有利であることがあり、それにより、pθ(z|c)はcの周りに高度に限局される。GNN120は、とりわけ、自己回帰事前分布、拡散事前分布、正規分布などの、様々な異なる事前分布をモデル化することができる。
【0065】
したがって、出力画像
【数7】
を生成するために、GNN120は、条件付け入力cを処理し、事前分布z~pθ(z|c)から潜在変数をサンプリングすることができる。GNN120は次いで、潜在変数zを処理して、条件付き分布pθ(x|z,c)から出力画像
【数8】
を生成することができ、これはcによって規定されるような画像タイプと一般に関連付けられる。GNN120は、多くの異なる方法で条件付き分布から出力画像
【数9】
を生成することができる。たとえば、GNN120は、条件付き分布
【数10】
から画像をサンプリングし、条件付き分布の平均
【数11】
を返し、最も確率の高い画像
【数12】
を返し、あるアルゴリズムを使用して複数の高確率の画像および/または複数の画像のサンプルから選ぶことなどができる。出力画像
【数13】
は一般に、ネットワークパラメータθ、サンプリングされた潜在変数z、および条件付け入力cの関数なので、GNN120は、cと強く相関する画像の新しい実体を生成することが可能である。具体的には、GNN120は、入力cに基づいて、ランダムにサンプリングされた潜在変数zを画像xへと効率的に復号するパラメータ化θを実施することができる。したがって、列121の各段階における画像生成プロセスは、条件付けられた復号プロセスとして理解され得る。
【0066】
いくつかの実装形態では、GNN120は、標準的な正規分布pθ(z|c)=p(z)=N(z;0,I)として事前分布をモデル化し、正規分布
【数14】
として条件付き分布をモデル化してもよく、ここでμθ(z,c)および
【数15】
はそれぞれ、zおよびcの関数として、平均および分散である。この場合、GNN120は、条件付き分布の平均および/または分散を出力として生成し、そして、平均および/または分散から出力画像
【数16】
を決定することができる。これは、簡単なニューラルネットワークアーキテクチャ(たとえば、超解像モデル)を促進でき、ぞれは、GNN120が、事前分布をモデル化することなく、または条件付き分布を直接参照することなく、zおよびcから確定的に
【数17】
を生成することができるからである。その上、このパラメータ化は、そうされなければ微分不可能であろう確率変数項の最適化(たとえば、勾配降下法を介した)を可能にする。たとえば、再パラメータ化トリックを使用した後、条件付き分布からのサンプルは
【数18】
と等価であり、ここでε~N(0,I)であり、
【数19】
は要素ごとの積を表す。別の例として、条件付き分布の平均を返すことは、
【数20】
と同じである。したがって、GNN120は、少なくとも一部、入力としてzおよびcを取り込み出力としてμθ(z,c)および/またはσθ(z,c)を生成するニューラルネットワークとして実現され得る。
【0067】
条件付き分布および事前分布の具体的な形式は、特定のGNN120によって実装される生成モデル、ならびにその仮定、アーキテクチャ、パラメータ化、および訓練方式に一般に依存する。たとえば、目的関数Lθ(x,c)のタイプ、訓練セットのタイプと量、および訓練セットの統計が、特定のモデルの収束に影響を及ぼし得る。いずれの場合でも、訓練エンジンは、条件付き分布および/または事前分布を決定するために、期待値最大化法(EM)アルゴリズムを使用してそのネットワークパラメータθに関してGNN120の尤度pθ(x|c)を最大化することができる。
【0068】
ただし、EMアルゴリズムおよびいくつかの目的関数Lθ(x,c)は、場合によっては、たとえば、訓練エンジンがかなり大きい訓練セットを使用するとき、事前分布および/または条件付き分布が特に複雑であるときなどに、計算的に扱いにくいことがある。これらの場合、訓練エンジンは、訓練の間に、たとえば訓練エンジンが証拠の下限(ELBO:evidence lower bound)を最大化するときに、計算を高速化できる潜在表現にわたる事後分布qφ(z|x,c)を同時にモデル化することができる。事後分布は、データ(x,c)がどのように潜在表現zへと符号化されるかを記述する。ここで、φは、それぞれのGNN120または別のニューラルネットワーク、たとえば識別ニューラルネットワーク(DNN)に含まれ得るネットワークパラメータの別のセットである。GNN120は、訓練の間に事前分布の代わりに事後分布からサンプリングすることができ、これは、たとえば、訓練エンジンがθとφに関して目的関数
【数21】
を同時に最適化するとき、適切なパラメータ化θに収束するのに必要な潜在変数zの数を大きく減らすことができる。訓練の後、GNN120は、事前分布からのサンプリングを続けることができる。いくつかの実装形態では、訓練エンジンは、事後分布を正規分布
【数22】
としてモデル化することができ、ここでμθ(x,c)および
【数23】
は、xおよびcの関数として、それぞれ平均および分散である。条件付き分布に関して上で言及されたように、この形式のパラメータ化は、そうされなければ微分不可能であろう確率変数項の最適化(たとえば、勾配降下法を介した)を助けることができる。参考として、条件付き分布pθ(x|z,c)は事後分布qφ(z|x,c)と組み合わせて、普通は変分オートエンコーダ(VAE)と呼ばれ、θはデコーダパラメータであり、φはエンコーダパラメータである。
【0069】
いくつかの実装形態では、GNN120は、画像生成および/または訓練の間にノイズ条件付け拡張を使用する。具体的には、列121の中の各々の後続のGNNは、ノイズ条件付け拡張をそれぞれの入力画像に適用することができ、これは画像をある程度壊す。これは、列121の中の異なるGNN120の並列訓練を容易にするのを助けることができ、それは、列121のある段階の出力画像と後続の段階を訓練するのに使用される入力との間のドメインギャップ(たとえば、アーティファクトによる)への感受性を減らすからである。たとえば、GNN120は、訓練の間に、ガウスノイズ拡張(たとえば、ガウスノイズおよび/またはブラー)をランダムな信号対雑音比で入力画像に適用することができる。推論時に、GNN120は、少量の拡張を表す固定された信号対雑音比(たとえば、約3から5)を使用することができ、これは、構造の大半を保ちながら前の段階からの出力画像にあるアーティファクトを取り除くのを助ける。代替として、GNN120は、最高品質の推定を決定するために、推論の際に信号対雑音比の様々な値にわたって掃引することができる。
【0070】
潜在表現から強く条件付けられた出力画像を生成することができる、拡散ベースのGNN(DBGNN)120の例が以下で説明される。拡散モデルには一般に、(i)離散時間階層および(ii)連続時間階層という2つの変種がある。いずれの手法もGNN120によって実施され得る。しかしながら、連続時間拡散モデルでは、離散時間バージョンよりもエラーが少なくなり得る。たとえば、連続時間拡散モデルは、場合によっては、離散時間バージョンよりも改善された証拠の下限(ELBO)を有し得る。
【0071】
連続時間において、潜在表現は、連続時間インデックスz={zt|t∈[0,1]}によってパラメータ化される。前進(符号化)プロセスは事後分布qφ(z|x,c)によって記述され、これはt=0においてデータ(x,c)で開始し、t=1において標準ガウスノイズで終了する。事後分布を、
qφ(z|x,c)=q(z|x)=q(zs,zt|x)=q(zt|zs)q(zs|x)
と表すことができ、0≦s<t≦1は打ち切られた連続時間間隔である。q(zt|x)は、DBGNN120が画像を潜在表現へとどのように符号化するかを記述する、xのもとでのztの(前進)事前分布である。q(zt|zs)は、時間t>sについてDBGNN120が新しい潜在変数ztをzsからどのように決定するかを記述する、zsからztへの前進遷移分布である。DBGNN120では、前進分布は通常、φおよびcとは無関係であると考えられる。言い換えると、前進(符号化)プロセスは、普通はDBGNN120により学習されず、線形ガウシアン
【数24】
に関して記述され得る。
【数25】
は、前進遷移分布の分散である。パラメータαtおよびσtは、その信号対雑音比の対数
【数26】
が、前進事前分布がt=1の時間において標準的な正規分布q(z1|x)=q(z1)=N(z1;0,I)に収束するまでtとともに単調に減少するような、ノイズスケジュールを規定する。とりわけ、線形ノイズスケジューリング、多項式ノイズスケジューリング、またはコサインノイズスケジューリングなどの、あらゆるノイズスケジュールがDBGNN120によって実施され得る。
【0072】
いくつかの実装形態では、DBGNN120はコサインノイズスケジューリング(たとえば、αt=cos(0.5πt)として)を使用し、これは高品質のサンプルを生み出すのに特に有効であり得る。様々なノイズスケジュールについての議論は、Alexander Quinn Nichol and Prafulla Dhariwal、「Improved denoising diffusion probabilistic models」、International Conference on Machine Learning、PMLR、2021年により与えられる。他の実装形態では、DBGNN120は、たとえば分散
【数27】
をパラメータ化することによって、ノイズスケジュールを仮定するのではなくノイズスケジュールを学習することができる。この実装形態では、前進プロセスが学習されるモデルである。DBGNN120はまた、潜在変数の分散がすべてのtにわたり類似する大きさにとどまるように、分散保存ノイズスケジュール
【数28】
を利用してもよい。
【0073】
DBGNN120は、逆の時間方向において前進プロセスを一致させ、t=1から開始してt=0で終了するようにztを生成することによって、生成モデルを学習する。生成モデルを学習することは、すべてのtに対してzt~q(zt|x)をノイズ除去して推定
【数29】
を得ることを学習することへと縮約され得る。zttx+σtεに対して再パラメータ化トリックを使用した後、この学習されたノイズ除去は、以下の形式の目的関数Lθ(x,c)により表現され得る。
【数30】
【0074】
ここで、(x,c)は画像-入力データペアであり、ε~N(0,I)は標準的な正規分布からサンプリングされ、t~U(0,1)は0から1にわたる均一な分布からサンプリングされる。Wtは、tの特定の値に対する推定の品質に影響を与えるためにDBGNN120によって使用され得る加重係数である。DBGNN120は、目的関数
【数31】
を最小化するパラメータ化を実現することができ、これは一般にELBO、したがって尤度pθ(x|c)を最大化する。代替として、DBGNN120は、すべての訓練ペアにわたって平均される目的関数を最小化するパラメータ化
【数32】
を実現することができる。平均された目的関数は、推定の品質を改善することができるが、尤度が犠牲になる。いくつかの実装形態では、訓練データのある特徴量を強調すること、訓練データからの特定の例を強調することなどのために、たとえば前進プロセスが学習される場合、DBGNN120は、この目的関数の変動を利用し、および/または目的関数に追加の損失項を組み込んでもよいことに留意されたい。たとえば、代替または追加として、目的関数はL1損失を含むことができ、このとき、二乗されたノルム
【数33】
が絶対的なノルム||…||2で置き換えられる。目的関数は、pノルム、いくつかのピクセルを重み付ける合成ノルムなどの他の適切なノルムも、
【数34】
とxとの間の誤差を特徴付ける損失項として含み得る。
【0075】
適切なパラメータ化θを学習した後、DBGNN120は次いで、条件付け入力cに基づいて潜在表現から出力画像
【数35】
を生成することができる。逆進(復号)プロセスは、合同分布pθ(x,z|c)によって記述され、これはt=1における標準ガウスノイズで開始し、t=0でcについて条件付けられた出力画像
【数36】
で終了する。s<tであることに留意すると、合同分布は次のように表現され得る。
pθ(x,z|c)=pθ(x,zs,zt|c)=pθ(x|zs,c)pθ(zs|zt,c)pθ(zt|c)
【0076】
pθ(zt|c)は、DBGNN120がcを潜在変数ztへとどのように符号化するかを決定する、cのもとでのztの(逆進)事前分布である。ノイズスケジュールにより、逆進事前分布は、t=1の時間において標準的な正規分布pθ(z1|c)=p(z1)=N(z1;0,I)に収束するので、逆進プロセスの開始時にcについて条件付けられない。前進プロセスと同様に、pθ(zs|zt,c)は、cのもとでのztからzsまでの逆進遷移分布であり、一方、pθ(x|zt,c)は、ztとcのもとでのxの条件付き分布である。
【0077】
逆進遷移分布は
【数37】
から決定され得る。
【0078】
逆進遷移分布は、時間s<tについて、cについて条件付けられて、DBGNN120が所与の潜在変数ztから新しい潜在変数zsをどのように決定するかを記述する。この場合、q(zs|zt,x)=q(zt|zs)q(zs|x)/q(zt|x)は、前進プロセスの逆転された記述であり、以下の形式の正規分布に関して表現され得る。
【数38】
【数39】
はztおよびxの関数としての逆転された記述の平均であり、これは
【数40】
と表現され得る。
【数41】
は逆転された記述の分散である。
【0079】
条件付き分布pθ(x|zt,c)は、DBGNN120が条件付け入力cに基づいて潜在変数ztを画像xへとどのように復号するかを記述する。逆進プロセスを完了した後、DBGNN120は、最後の時間ステップt=0において条件付き分布pθ(x|z0,c)から出力画像
【数42】
を生成し得る。DBGNN120は、様々な方法で、たとえば、条件付き分布からのサンプリング、条件付き分布の平均を返すこと、最高の確率の画像を返すこと、あるアルゴリズムを使用して複数の高確率の画像から選ぶこと、および/または画像の複数のサンプルなどを用いて、条件付き分布から出力画像
【数43】
を生成することができる。DBGNN120は、種々の異なる方法で条件付き分布をモデル化することもできる。しかしながら、DBGNN120の条件付き分布は一般に正規分布ではなく、これはそれからのモデリングおよびサンプリングを難しくすることがある。この問題を軽減できる様々なサンプリング方法が以下で説明される。(たとえば、画像生成および/または訓練の間に)ノイズ条件付け拡張を伴う実装形態では、各々の後続のDBGNNへのそれぞれの入力cは、後続のDBGNNの入力画像に適用される拡張の強さを制御する信号
【数44】
も含み得る。
【0080】
逆進プロセスの間に潜在変数をサンプリングするために、DBGNN120は、逆進プロセスのエントロピーに対する下限および上限から導出されるサンプリング分散を伴う離散時間祖先サンプラを使用することができる。祖先サンプラのさらなる詳細は、Jonathan Ho、Ajay Jain、およびPieter Abbeel、「Denoising Diffusion Probabilistic Models」、NeurIPS、2020年によって提供される。祖先サンプラは、t=1において逆進事前分布z1~N(z1;0,I)で開始し、時間s<tについてpθ(zs|zt,c)を用いて遷移を計算する際、以下の更新ルールに従う。
【数45】
【0081】
εは標準ガウスノイズであり、γはサンプラの偶然性を制御するハイパーパラメータであり、s、tは1から0まで均一に離隔された列に従う。更新ルールは、DBGNN120が、z0に達するまで以前の潜在変数ztおよび以前の推定
【数46】
から新しい潜在変数zsを生成することを可能にし、z0において、推定
【数47】
が出力画像
【数48】
としてDBGNN120によって生成される。この実装形態は特に効率的であることがあり、それは、DBGNN120が標準ガウスノイズをサンプリングし、推定
【数49】
を出力として直接生成することができ、DBGNN120はそれを使用して、zsを決定して次のステップにおいてプロセスを繰り返すことができる。上で説明されたように、これは、DBGNN120が、逆進遷移および条件付き分布を直接参照することなく、ztおよびcから確定的に推定
【数50】
を生成することを可能にし、単純なニューラルネットワークアーキテクチャ(たとえば、超解像モデル)を促進する。したがって、DBGNN120は、少なくとも一部、ztおよびcを入力として取り込むニューラルネットワークとして実現されてもよく、出力として
【数51】
を生成する。
【0082】
祖先サンプラの代わりに、DBGNN120は、Jiaming Song、Chenlin Meng、およびStefano Ermon、「Denoising diffusion implicit models」、arXiv preprint arXiv:2010.02502 (2020)により説明されるようなdeterministic denoising diffusion implicit model (DDIM)サンプラを使用することができる。DDIMサンプラは、標準的な正規分布からのサンプルが、ノイズ除去モデルを使用して画像データ分布からサンプルへとどのように確定的に変換され得るかを記述する、確率フロー常微分方程式(ODE)のための数値積分ルールである。
【0083】
いくつかの実装形態では、DBGNN120は、画像生成および/または訓練の間にv-predictionパラメータ化を使用する。この場合、DBGNN120は、画像xの推定
【数53】
を直接生成する代わりに、補助パラメータvttε-σtxの推定
【数52】
を生成する。DBGNN120は次いで、補助パラメータの推定から画像の推定
【数54】
を決定する。xの代わりにvを推定することは一般に、数値的な安定性を改善するとともに、漸進的蒸留などの計算技法をサポートする。漸進的蒸留は、遅い教師拡散モデルをより高速な生徒モデルへと蒸留することによって、tにわたるサンプリングステップの数を反復的に半分にするアルゴリズムであり、これはサンプリングレートを数桁高速化することができる。たとえば、一部の最新のサンプルは、8192個ものサンプリングステップをとることがあるが、DBGNN120が漸進的蒸留を使用するとわずか4ステップまたは8ステップに減らされ得る。DDIMサンプラは、高速サンプリングのための漸進的蒸留と組み合わせると有用であり得る。したがって、DBGNN120は一般に、v-parametrizationを実施するとき、漸進的蒸留を使用する。その上、列121の中のより高い解像度で動作するあらゆる後続のDBGNNに対して、v-parametrizationは、高解像度拡散モデルに影響を及ぼし得る、色を変えるアーティファクトを避けることができ、他のパラメータ化(たとえば、ε-parametrization)とともに現れることがある時間的な色の変化を避けることができる。拡散モデルのためのv-parametrizationおよび漸進的蒸留に関する詳細な議論は、Tim SalimansおよびJonathan Ho、「Progressive Distillation for Fast Sampling of Diffusion Models」、ICLR、2022年により提供される。参考として、前述の目的関数LθにおけるWt=1+exp(λt)の加重係数は、標準的なv-parametrizationのための等価な目的と同じである。
【0084】
いくつかの実装形態では、DBGNN120は、画像生成および/または訓練の間に分類器なしの誘導を使用する。分類器なしの誘導は、所与の条件入力cに関する出力画像
【数55】
の忠実性を改善することができ、
【数57】
を使用して推定
【数56】
を調整することと同じである。
【0085】
ωは誘導の重みであり、
【数58】
は条件付きモデルの推定であり、
【数59】
は条件なしモデルの推定である。訓練エンジンは、条件付け入力cを省略することによって、条件付きモデルを用いて条件なしモデルを合同訓練することができる。具体的には、訓練の間、訓練エンジンはDBGNN120への条件付け入力c=0を定期的に(たとえば、ランダムに、アルゴリズムに従って)省略することができ、それにより、DBGNN120は、ある数の訓練反復の間、グラウンドトゥルース画像xについて条件なしで訓練される。たとえば、訓練エンジンは、画像-入力ペア(x,c)のセットについて条件的にDBGNN120を訓練し、次いで、たとえばグラウンドトゥルース画像についてDBGNN120を精密に調整することによって、セットの中のグラウンドトゥルース画像xについて条件なしでDBGNN120を訓練してもよい。上記の線形変換は、v-parametrization空間において、
【数60】
として等価に実行され得ることに留意されたい。ω>0に対して、この調整には、条件付け入力cの影響を過剰に強調する効果があり、これは、普通の条件付きモデルと比較してより多様性の低い、しかし一般により高品質な推定を生み出し得る。
【0086】
その上、大きな誘導の重み(たとえば、約5以上、約10以上、約15以上)は、テキストと画像の整合を改善することができるが、忠実性を下げることがあり、たとえば、飽和した、空白の、または不自然に見える画像を生み出す。たとえば、特定のサンプリングステップtにおける推定
【数61】
は、グラウンドトゥルース画像xの境界の外側で生成されてもよく、すなわち、範囲[-1,1]の外側のピクセル値を有する。これに対処するために、DBGNN120の1つまたは複数は、静的閾値設定または動的閾値設定を使用することができる。
【0087】
静的閾値設定とは、DBGNN120が各サンプリングステップtにおいてその推定
【数62】
を[-1,1]以内に制限する方法を指す。静的閾値設定は、DBGNN120が大きい誘導の重みを使用するときに推定の品質を改善し、空白画像の生成を防ぐことができる。
【0088】
動的閾値設定は、各サンプリングステップtにおいて、DBGNN120が制限閾値κを推定
【数63】
における絶対ピクセル値の特定のパーセンタイルpに設定する方法を指す。言い換えると、制限閾値κは、pによって定義される
【数65】
における値のある百分率よりも大きい
【数64】
の特定の値であり、|…|はピクセルごとの絶対値を示す。たとえば、pは、約90%以上、約95%以上、約99%以上、約99.5%以上、約99.9%以上、約99.95%以上であり得る。κ>1である場合、DBGNN120は、推定を範囲[-κ,κ]に制限し、次いで正規化するためにκで割る。動的閾値設定は、飽和したピクセル(たとえば、-1および1に近いピクセル)を内側に押し、それにより、各サンプリングステップにおいてピクセルが飽和するのを能動的に防ぐ。動的閾値設定は、DBGNN120が大きい誘導の重みを使用するとき、改善されたフォトリアリズムおよび画像とテキストの整合を一般にもたらす。
【0089】
代替または追加として、DBGNN120の1つまたは複数は、各サンプリングステップtにおいてωが高い誘導の重み(たとえば、約15)と低い誘導の重み(たとえば、約1)との間で振動することを可能にし得る。具体的には、DBGNN120の1つまたは複数は、ある数の初期のサンプリングステップに対しては不変の高い誘導の重みを使用し、その後は、高い誘導の重みと低い誘導の重みとの間で振動することができる。この振動方法は、特に列121の中の低解像度の段階において、出力画像
【数66】
において生成される飽和アーティファクトの数を減らすことができる。
【0090】
DDIMサンプラ、漸進的蒸留、および分類器なしの誘導を伴う実装形態では、DBGNN120は、2段階の蒸留手法を実現するために、確率的サンプラも組み込んでもよい。参考として、1段階の漸進的蒸留手法は、訓練されたDDIMサンプラを、知覚品質を大きく損なうことなく、より少ないサンプリングステップしか要しない拡散モデルに蒸留する。蒸留プロセスの各反復において、DBGNN120は、NステップのDDIMサンプラを、N/2ステップの新しいモデルへと蒸留する。DBGNN120は、各反復においてサンプリングステップtを半分にすることによって、この手順を反復する。Chenlin Meng他、「On distillation of guided diffusion models」、arXiv preprint arXiv:2210.03142 (2022)によって、この1段階の手法は、分類器なしの誘導を使用するサンプラに、ならびに、新しい確率的サンプラに拡張された。DBGNN120は、画像生成の改善のために、改変された2段階の手法を使用することができる。具体的には、第1の段階において、DBGNN120は、合同訓練された条件付きおよび条件なし拡散モデルからの合成出力と一致する単一の拡散モデルを学習し、合成係数は誘導の重みによって決定される。DBGNN120は次いで、第2の段階において、よりサンプリングステップの少ないモデルを生み出すために、漸進的蒸留をその単一のモデルに適用する。蒸留の後、DBGNN120は、確率的なNステップのサンプラを使用する。各ステップにおいて、DBGNN120はまず、元のステップサイズの2倍(すなわち、N/2ステップサンプラと同じステップサイズ)で1つの確定的なDDIM更新を適用し、次いで、元のステップサイズで1つの確率的ステップを後方に実行する(すなわち、前進拡散プロセスの後でノイズにより擾乱を与える)。この確率的な後方ステッピングは、Karras、Tero他、「Elucidating the design space of diffusion-based generative models」、arXiv preprint arXiv:2206.00364 (2022)によってより詳しく説明されている。この手法を使用して、DBGNN120は、出力画像の知覚品質にいかなる顕著な低下も伴わずに、はるかに少ないサンプリングステップ(たとえば、約8ステップ)へと蒸留することができる。
【0091】
図2Aは、例示的なGNNの列121のブロック図を示す。列121は、以下で説明されるシステム、コンポーネント、および技法が実装される1つまたは複数の位置にある1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されるシステムの例である。
【0092】
列121または「カスケード」は、処理パイプラインにおいて特定のステップを実行するように各々構成される複数のGNN120.0-nを含む。具体的には、列121は、最初の出力画像106.0を生成する最初のGNN120.0と、それに続く1つまたは複数の後続のGNN120.1-nとを含む。後続のGNN120.1-nは、最終的な出力画像106.nに達するまで、受け取られた入力画像に基づいてそれぞれの出力画像106.iを生成することによって、最初の画像106.0の解像度を漸進的に上げる。
【0093】
最初のGNN120.0は、入力c(0)=(u)としてテキストプロンプト102のコンテキスト埋め込み104のセットを受け取るように構成される。最初のGNN120.0は、最初の出力画像
【数67】
106.0を生成するために入力を処理するように構成される。最初の画像106.0は最初の解像度R(0)を有する。最初の解像度R(0)は、最初の出力画像106.0の次元にも対応し、一般に低次元である(たとえば、64×64ピクセル)。
【0094】
上で説明されたように、最初の出力画像106.0を生成するために、最初のGNN120.0は、その事前分布pθ(z(0)|c(0))から潜在表現z(0)をサンプリングすることができる。最初のGNN120.0は次いで、その条件付き分布pθ(x(0)|z(0),c(0))から最初の出力画像
【数68】
を生成するために、潜在変数z(0)を処理することができる。たとえば、最初のGNN120.0は、その条件付き分布から画像をサンプリングし、その条件付き分布の平均を返し、最高の確率の画像を返し、または、あるアルゴリズムを使用して複数の高確率の画像および/もしくはサンプリングされた画像から選ぶことができる。
【0095】
いくつかの実装形態では、最初のGNN120.0はDBGNNである。上で説明されたように、最初のDBGNN120.0は、最初の出力画像106.0を生成するために、t=1から開始してt=0で終了する、逆転されたプロセスを実行することができる。たとえば、最初のDBGNN120.0は、t=1においてその(逆進)事前分布
【数70】
から潜在表現
【数69】
をサンプリングし、祖先サンプラを使用して各サンプリングステップにおいて潜在変数
【数71】
を継続的に更新することができる。すなわち、最初のDBGNN120.0は、現在の潜在変数
【数72】
を処理し、現在の推定
【数73】
を生成することができる。最初のDBGNN120.0は次いで、s<tに対して更新ルールを使用して現在の推定から新しい潜在変数
【数74】
を決定することができる。最初のDBGNN120.0は、t=0において
【数75】
に達するまで潜在変数を更新し、その後、最初の出力画像
【数76】
として対応する推定を出力する。いくつかの実装形態では、最初のDBGNN120.0は、最初の出力画像
【数77】
を生成するとき、v-parametrization、漸進的蒸留、分類器なしの誘導、および/または静的閾値設定もしくは動的閾値設定の1つまたは複数を使用する。
【0096】
各々の後続するGNN120.iは、列121の中の先行するGNNによって出力として生成されるそれぞれの入力画像
【数79】
を含むそれぞれの入力
【数78】
を受け取るように構成される。各々の後続のGNN120.iは、それぞれの出力画像
【数80】
106.iを生成するためにそれぞれの入力を処理するように構成される。上で説明されたように、各々の後続のGNN120.iは、それらの入力画像
【数81】
にノイズ条件付け拡張、たとえばガウスノイズ条件付けも適用することができる。いくつかの実装形態では、後続のGNN120.iの1つまたは複数のそれぞれの入力
【数82】
は、テキストプロンプト102のコンテキスト埋め込み104も含む。さらなる実装形態では、各々の後続のGNN120.iのそれぞれの入力は、コンテキスト埋め込み104を含む。各々の後続のGNN120.iの入力画像
【数83】
および出力画像
【数84】
は、それぞれ、入力解像度R(i-1)および出力解像度R(i)を有する。出力解像度は、入力解像度よりも高い(R(i)>R(i-1))。その結果、出力画像106.0-nの解像度、およびしたがってそれらの次元は、一般的には高次元(たとえば、1024×1024ピクセル)である最終的な出力画像106.nの最終的な解像度R(n)に達するまで継続的に上がる(R(n)>R(n-1)>…>R(0))。たとえば、各々の後続のGNN120.iは、k×kピクセルを有するそれぞれの入力画像(たとえば、kピクセルの幅およびkピクセルの高さを有する画像)を受け取り、2k×2kピクセル、または3k×3kピクセル、または4k×4kピクセル、または5k×5kピクセルなどを有するそれぞれの出力画像を生成し得る。
【0097】
上で説明されたように、出力画像106.iを生成するために、後続のGNN120.iは、その事前分布pθ(z(i)|c(i))から潜在表現z(i)をサンプリングすることができる。後続のGNN120.iは次いで、その条件付き分布pθ(x(i)|z(i),c(i))から出力画像
【数85】
を生成するために、潜在変数z(i)を処理することができる。たとえば、後続のGNN120.iは、その条件付き分布から画像をサンプリングし、その条件付き分布の平均を返し、最高の確率の画像を返し、または、あるアルゴリズムを使用して複数の高確率の画像および/もしくはサンプリングされた画像から選ぶことができる。
【0098】
いくつかの実装形態では、各々の後続のGNN120.iはDBGNNである。上で説明されたように、後続のDBGNN120.iは、出力画像106.iを生成するために、t=1から開始してt=0で終了する逆転されたプロセスを実行することができる。たとえば、後続のDBGNN120.iは、t=1においてその(逆進)事前分布
【数87】
から潜在表現
【数86】
をサンプリングし、祖先サンプラを使用して各サンプリングステップにおいて潜在変数
【数88】
を継続的に更新することができる。すなわち、後続のDBGNN120.iは、現在の潜在変数
【数89】
を処理し、現在の推定
【数90】
を生成することができる。後続のDBGNN120.iは次いで、s<tに対して更新ルールを使用して現在の推定から新しい潜在変数
【数91】
を決定することができる。後続のDBGNN120.1は、t=0において
【数92】
に達するまで潜在変数を更新し、その後、出力画像
【数93】
として対応する推定を出力する。いくつかの実装形態では、後続のDBGNN120.iは、それぞれの出力画像
【数94】
を生成するとき、v-parametrization、漸進的蒸留、分類器なしの誘導、および/または静的閾値設定もしくは動的閾値設定の1つまたは複数を使用する。ノイズ条件付け拡張を伴う実装形態では、後続のDBGNN120.iの入力
【数95】
は、入力画像
【数97】
に適用される条件付け拡張の強さを制御する信号
【数96】
も含み得る。
【0099】
図2Bは、生成ニューラルネットワークの列を使用してテキストプロンプトのコンテキスト埋め込みのセットを処理するための例示的なプロセス230の流れ図である。便宜的に、プロセス230は、1つまたは複数の位置に位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラムされる生成ニューラルネットワークの列、たとえば図2Aの生成ニューラルネットワーク121の列は、プロセス230を実行することができる。
【0100】
生成ニューラルネットワークの列は、最初の生成ニューラルネットワークおよび1つまたは複数の後続の生成ニューラルネットワークを含む。
【0101】
最初の生成ニューラルネットワークは、コンテキスト埋め込みを受け取る(232)。
【0102】
最初の生成ニューラルネットワークは、最初の解像度を有する最初の出力画像を出力として生成するために、コンテキスト埋め込みを処理する(234)。
【0103】
各々の後続の生成ニューラルネットワークに対して:
【0104】
後続の生成ニューラルネットワークは、それぞれの入力解像度を有し列(236)の中の先行する生成ニューラルネットワークによって出力として生成される、それぞれの入力画像を含むそれぞれの入力を受け取る。いくつかの実装形態では、後続の生成ニューラルネットワークの1つまたは複数に対するそれぞれの入力は、コンテキスト埋め込みをさらに含む。いくつかの実装形態では、各々の後続の生成ニューラルネットワークに対するそれぞれの入力は、コンテキスト埋め込みを含む。
【0105】
後続の生成ニューラルネットワークは、それぞれの入力解像度よりも高いそれぞれの出力解像度を有するそれぞれの出力画像を出力として生成するために、それぞれの入力を処理する(238)。
【0106】
いくつかの実装形態では、列の中の各生成ニューラルネットワークは、拡散ベースの生成ニューラルネットワークである。
【0107】
図3は、GNNの列121を合同訓練することができる例示的な訓練エンジン300のブロック図を示す。訓練エンジン300は、以下で説明されるシステム、コンポーネント、および技法が実装される1つまたは複数の位置にある1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されるシステムの例である。
【0108】
訓練エンジン300は、たとえば、公に入手可能な訓練セットまたは任意の適切にラベリングされたテキスト-画像訓練セットから、訓練例310のセットを取得する。各訓練例310は、(i)特定の場面を描写するそれぞれの訓練テキストプロンプト(T)302と、(ii)特定の場面を描写する対応するグラウンドトゥルース画像(x)306とを含む。テキストエンコーダニューラルネットワーク110は、訓練テキストプロンプト302のコンテキスト埋め込み(u)304の対応するセットを生成するために、各訓練例310のそれぞれの訓練テキストプロンプト302を処理する。いくつかの実装形態では、テキストエンコーダ110は、GNN120.0-nの合同訓練の間に訓練エンジン300によって、事前訓練されて凍結されたままに保たれる(111)。他の実装形態では、テキストエンコーダ110は、訓練例310の1つまたは複数について事前訓練され精密に調整される。たとえば、訓練エンジン300はまず、凍結されたままに保たれている(111)テキストエンコーダ110を用いて列121の中の各GNN120を訓練し、次いで、訓練例30の1つまたは複数についてテキストエンコーダ110を精密に調整することができ、これは、場合によっては、さらに良いテキスト-画像の整合を生み出すことができる。具体的には、コンテキスト埋め込みu=uψはテキストエンコーダ110のネットワークパラメータψに依存するので、訓練エンジン300は、テキストエンコーダ110を精密に調整するために、ψに関して本明細書で説明される目的関数のいずれかをさらに最適化することができる。
【0109】
訓練エンジン300は、各訓練例310のグラウンドトゥルース画像306をGNN120.0-nの適切な入力解像度および出力解像度にサイズ変更する。これは、各GNN120.iに対する正しい解像度R(i)にスケーリングされた、グラウンドトゥルース出力画像x(i)306.iを生み出す。たとえば、訓練エンジン300は、空間的なサイズ変更および/またはクロッピングによって、GNN120.0-nの適切な解像度にグラウンドトゥルース画像xをサイズ変更することができる。サイズ変更の後、訓練エンジン300は、並列におよび/または個別に、列121の中の各GNN120.iを訓練することができる。これに留意すると、訓練エンジン300は、列121の中の異なるGNN120に対して異なる最適化方法(たとえば、確率的勾配降下(SGD)法)を使用して、それらのそれぞれのネットワークパラメータθを更新することもできる。たとえば、訓練エンジン300は、組合せの中でもとりわけ、最初のGNN120.0のためにAdafactorを使用し、後続のGNN120.1から120.nのためにAdamを使用することができる。SGD法の他の例は、限定はされないが、momentum、RMSProp、二次Newton-Raphsonアルゴリズムなどを含む。列121のモジュール性は、訓練エンジン300が、処理パイプライン全体に最良の性能をもたらすために各GNN120.iのための訓練方式を最適化することを可能にする。
【0110】
訓練エンジン300は、形式(x(0),c(0))の画像-入力データのペアについて最初のGNN120.0を訓練する。ここで、x(0)は、最初のGNN120.0の最初の解像度R(0)にサイズ設定されたグラウンドトゥルースの最初の出力画像306.0であり、c(0)=(u)は、対応する訓練テキストプロンプト302のコンテキスト埋め込み304を含むそれぞれの訓練入力である。最初のGNN120.0が適切な事前分布pθ(z(0)|c(0))および/または条件付き分布pθ(x(0)|z(0),c(0))を学習するために、訓練エンジン300は、EMアルゴリズムを使用して、最初のGNN120.0のネットワークパラメータθ(0)に関してデータの尤度pθ(x(0)|c(0))を最大化することができる。代替または追加として、訓練エンジン300は、たとえば確率的勾配降下法(SGD)を使用して、x(0)およびc(0)に依存するθ(0)に関して、適切な目的関数Lθ(x(0),c(0))を最適化することができる。いくつかの実装形態では、訓練エンジン300は、最初のGNN120.0に対する事後分布qφ(z(0)|x(0),c(0))を導入し、たとえばELBOに対応する、θ(0)およびφ(0)に関して適切な目的関数を最適化する。最初のGNN120.0がDBGNNであるとき、訓練エンジン300は、以下の形式の目的関数を最小化することができ、
【数98】
ε~N(0,I)は標準的な正規分布からサンプリングされ、t~U(0,1)は0から1にわたる均一な分布からサンプリングされる。上で説明されたように、最初のDBGNN120.0は、訓練の間に、v-parametrization、漸進的蒸留、分類器なしの誘導、および/または静的閾値設定もしくは動的閾値設定の1つまたは複数を使用することができる。
【0111】
訓練エンジン300は、形式(x(i),c(i))の画像-入力データのペアについて後続のGNN120.iを訓練する。ここで、x(i)は、後続のGNN120.iの出力解像度R(i)にサイズ設定されるグラウンドトゥルース出力画像306.iであり、c(i)=(x(i-1))は、出力解像度R(i-1)にサイズ設定された、列121の中の先行するGNNのグラウンドトゥルース出力画像x(i-1)を含む訓練入力である。上で説明されたように、訓練エンジン300は、ノイズ条件付け拡張、たとえばガウスノイズ条件付けをx(i-1)に適用することもできる。いくつかの実装形態では、訓練入力c(i)=(x(i-1),u)は、対応する訓練テキストプロンプト302のコンテキスト埋め込み304も含む。後続のGNN120.iが適切な事前分布pθ(z(i)|c(i))および/または条件付き分布pθ(x(i)|z(i),c(i))を学習するために、訓練エンジン300は、EMアルゴリズムを使用して、後続のGNN120.iのネットワークパラメータθ(i)に関して、データの尤度pθ(x(i)|c(i))を最大化することができる。代替または追加として、訓練エンジン300は、たとえばSGD降下法を使用して、x(i)およびc(i)に依存するθ(i)に関して、適切な目的関数Lθ(x(i),c(i))を最適化することができる。いくつかの実装形態では、訓練エンジン300は、後続のGNN120.iに対するそれぞれの事後分布qφ(z(i)|x(i),c(i))を導入し、たとえばELBOに対応する、θ(i)およびφ(i)に関して適切な目的関数を最適化する。後続のGNN120.1がDBGNNであるとき、訓練エンジン300は、以下の形式の目的関数を最小化することができ、
【数99】
【0112】
ε~N(0,I)は標準的な正規分布からサンプリングされ、t~U(0,1)は0から1にわたる均一な分布からサンプリングされる。上で説明されたように、後続のDBGNN120.iは、訓練の間に、v-parametrization、漸進的蒸留、分類器なしの誘導、および/または静的閾値設定もしくは動的閾値設定の1つまたは複数を使用することができる。ノイズ条件付け拡張を伴う実装形態では、後続のDBGNN120.iは、x(i-1)に適用される条件付け拡張の強さを制御する訓練入力
【数101】
に信号
【数100】
を追加することもできる。
【0113】
図3Bは、生成ニューラルネットワークの列を合同訓練するための例示的なプロセス400の流れ図である。便宜的に、プロセス400は、1つまたは複数の位置にある1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラムされる訓練エンジン、たとえば図3Aの訓練エンジン300は、プロセス400を実行することができる。
【0114】
訓練エンジンは、(i)それぞれの訓練テキストプロンプトと、(ii)それぞれの訓練テキストプロンプトによって描写される場面を描くそれぞれのグラウンドトゥルース画像とを各々含む、訓練例のセットを取得する(410)。
【0115】
訓練エンジンは、訓練テキストプロンプトのコンテキスト埋め込みの対応するセットを生成するために、テキストエンコーダニューラルネットワークを使用して各訓練例のそれぞれの訓練テキストプロンプトを処理する(420)。いくつかの実装形態では、テキストエンコーダニューラルネットワークは、生成ニューラルネットワークの合同訓練の間に訓練エンジンによって事前訓練されて凍結されたままに保たれる。
【0116】
列の中の各生成ニューラルネットワークに対して、訓練エンジンは、生成ニューラルネットワークのための対応するグラウンドトゥルース出力画像を生成するために、各訓練例のそれぞれのグラウンドトゥルース画像をサイズ変更する(430)。
【0117】
訓練エンジンは、コンテキスト埋め込みのそれぞれのセットおよび各訓練例のグラウンドトゥルース出力画像について生成ニューラルネットワークを合同訓練する(440)。
【0118】
図4は、GNN120によって実装され得る例示的なU-Netアーキテクチャのブロック図を示す。たとえば、最初のGNN120.0は、基本画像生成モデルとしてU-Netアーキテクチャを実装することができ、1つまたは複数の後続のGNN120.1-nは、超解像モデルとしてU-Netアーキテクチャを実装することができる。説明を簡単にするために、図4のU-Netアーキテクチャは、拡散モデルおよび正方形解像度画像に関して以下で説明されるが、アーキテクチャは、任意のタイプの生成モデルおよび長方形解像度の画像のために利用され得る。たとえば、図4のアーキテクチャは、GNN120の条件付き分布の平均と分散をモデル化するために使用され得る。別の例として、図4のアーキテクチャは、長方形解像度の画像についてダウンサンプリングおよびアップサンプリングを実行するために、異なるサイズの畳み込みカーネルおよびストライドを用いて適合され得る。図4の破線は任意選択の層を示す。
【0119】
図4に見られるように、DBGNN120は、サンプリングステップtで画像(zt)705.t
の潜在表現を処理するように構成される、入力ブロック512(たとえば、1つまたは複数の線形層および/または畳み込み層を含む)を含み得る。この場合、潜在画像705.tは、DBGNN120のための出力画像106と同じ解像度(N×N)を有する。後続のDBGNN120.1-nは、入力画像105をサイズ変更し、その後、出力解像度(N×N)を有する連結画像を生成するためにチャネルごとに潜在画像705.tへと連結することによって、(解像度M×Mの)それぞれの入力画像105について条件付けられ得る。たとえば、後続のDBGNN120.1-nは、潜在画像705.tへとチャネルごとに連結する前に、双線形またはバイキュービックサイズ変更を使用して、入力画像105をその出力解像度にアップサンプリングすることができる。したがって、後続のDBGNN120.1-nは、潜在画像705.tに「積層される」それぞれの入力画像105を含む連結画像を処理する。最初のDBNN120.0は、入力画像について条件付けられず、したがって、潜在画像705.tを直接処理する。後続のDBGNN120.1-nは、たとえば、いくつかの特徴を先鋭化または強調するために入力画像105の前処理されたバージョンを処理することによって、種々の方法でそれぞれの入力画像105について条件付けられ得る。後続のDBGNN120.1-nは、たとえば色を変えるために、何らかの指定された方法で入力画像105を訂正または改変することもできる。
【0120】
入力ブロック512の後には、一連のK+1個のダウンサンプリングブロック(DBlock)510-0から510-Kがある。各DBlock510は、先行するブロックによって出力として生成されるそれぞれの入力画像を受け取るように構成される。各DBlock510は、入力画像に対して相対的に2×2の係数でダウンサンプリングされるそれぞれの出力画像を生成するために入力画像を処理するように構成される。DBlock510の後には、一連のK+1個のアップサンプリングブロック(UBlock)520-0から510-Kがある。各UBlock520は、先行するブロックによって出力として生成されるそれぞれの入力画像を受け取るように構成される。各UBlock520は、入力画像に対して相対的に2×2の係数によってアップサンプリングされるそれぞれの出力画像を生成するためにそれぞれの入力画像を処理するように構成される。DBlock510およびUBlock520は、それぞれの入力画像をダウンサンプリングおよびアップサンプリングするために、適切なストライドを用いて1つまたは複数の畳み込み層を実装することができる。UBlock520は、スキップ接続を介して、UBlock520の入力解像度に対応するそれぞれのDBlock510の出力画像も受け取ることができる。いくつかの実装形態では、スキップ接続は
【数102】
の係数でスケーリングされ、これはDBGNN120の性能を改善することができる。
【0121】
DBGNN120は、より高い解像度のブロック(たとえば、ブロック510-0、510-1、520-0、および520-1)からより低い解像度のブロック(たとえば、ブロック510-(K-1)、510-K、520-(K-1)、および520-K)にそのネットワークパラメータを変えることもできる。より低い解像度のブロックは通常はより多くのチャネルを有するので、これは、DBGNN120が、メモリと計算についての重大なコストを伴うことなく、より多くのネットワークパラメータを通じてモデル容量を増やすことを可能にする。
【0122】
DBlock510およびUBlock520の1つまたは複数は、1つまたは複数の自己注意層を使用して注意機構(たとえば、相互注意)を介して、コンテキスト埋め込み(u)104について条件付けられ得る。代替または追加として、DBlock510およびUBlock520の1つまたは複数は、1つまたは複数の中間層(たとえば、1つまたは複数のプーリング層)を使用してコンテキスト埋め込みのプーリングされたベクトルを介してコンテキスト埋め込み104について条件付けられ得る。いくつかの実装形態では、DBlock510およびUBlock520の1つまたは複数は、たとえば、特定の色もしくはテクスチャーの性質、または物体の位置に関する、出力画像において予想される他の視覚的特徴について条件付けられてもよく、それらのすべてが訓練画像から訓練エンジン300によって取得され得る。
【0123】
最後に、最後のUBlock520-0の出力画像は、サンプリングステップtのための推定画像706.tを生成するために、出力ブロック522(たとえば、1つまたは複数の密層を含む)によって処理され得る。DBGNN120は次いで、更新ルール(たとえば、祖先サンプラ更新ルール)を使用して、次のサンプリングステップs<tに対する潜在画像(zs)705.sを決定するために、現在の推定706.tを使用することができる。
【0124】
DBGNN120は、最後のサンプリングステップt=0に達する前に、新しい潜在変数705.sなどについて上記のプロセスを繰り返し、その後、出力画像106として現在の推定画像706.tを生み出すことができる。したがって、DBGNN120は、t=1のサンプリングステップにおいてランダムにサンプリングされた潜在画像z1を、最後のサンプリングステップt=0において出力される出力画像106へと反復的にノイズ除去することができる。
【0125】
図5A図5Cは、Efficient U-Netアーキテクチャのための例示的なニューラルネットワーク層ブロックのブロック図を示す。図5A図5Cの層ブロックは、メモリ効率を改善し、推論時間を減らし、そのようなアーキテクチャを利用してGNN120の収束速度を高めるために、図4に示されるU-Netアーキテクチャにおいて実装され得る。
【0126】
図5Aは、Efficient U-Netアーキテクチャのための例示的な残差ブロック(ResNetBlock)500のブロック図である。ResNetBlock500は、グループ正規化(GroupNorm)層502、スウィッシュ活性化層504、畳み込み(Conv)層506-1、別のGroupNorm層502、別のスウィッシュ層504、および別のConv層506-1という、層の列を通じて入力画像を処理する。Conv層506-2は、同じ入力画像を処理する層の列と並列である。ResNetBlock500の出力画像を生成するために、層の列とConv層202のそれぞれの出力画像が加算される。ResNetBlock500のハイパーパラメータは、チャネルの数である(channels:int)。
【0127】
図5Bは、Efficient U-Netアーキテクチャのための例示的なダウンサンプリングブロック(DBlock)210のブロック図である。
【0128】
DBlock510は、Conv層506-3、CombineEmbs層513、図5Aに従って構成される1つまたは複数のResNetBlock500、およびSelfAttention層514という層の列を含む。Conv層506-3は、DBlock510のためのダウンサンプリング動作を実行する。CombineEmbs層513(たとえば、プーリング層)は、DBlock510のためのテキストプロンプト条件付けを行うために、条件付き埋め込み103(たとえば、コンテキスト埋め込み104のプーリングされたベクトル、拡散サンプリングステップ)を受け取ることができる。1つまたは複数のResNetBlock500は、DBlock510のために畳み込み動作を実行する。SelfAttention層514は、さらなるテキストプロンプト条件付けを行うために、コンテキスト埋め込み104に対して相互注意などのDBlock510のための注意機構を実行することができる。たとえば、コンテキスト埋め込み104は、SelfAttention層514の鍵-値のペアに連結され得る。
【0129】
DBlock510のハイパーパラメータは、ダウンサンプリングがある場合のDBlock510のストライド(stride:Optional[Tuple[int,int]])、DBlock510当たりのResNetBlock500の数(numResNetBlocksPerBlock:int)、およびチャネルの数(channels:int)を含む。図5Bの破線のブロックは任意選択であり、たとえば、あらゆるDBlock510がダウンサンプリングする必要があるのではなく、または自己注意を必要とするのではない。
【0130】
典型的なU-Net DBlockでは、ダウンサンプリング動作は、畳み込み演算の後に起こることに留意されたい。この場合、Conv層506-3を介して実施されるダウンサンプリング動作は、1つまたは複数のResNetBlock500を介して畳み込み演算が実施される前に起こる。この逆転した順序は、性能低下をほとんどまたはまったく伴わずに、DBlock210の前進パスの速度を大きく改善することができる。
【0131】
図5Cは、Efficient U-Netアーキテクチャのための例示的なアップサンプリングブロック(UBlock)520のブロック図である。
【0132】
UBlock520は、CombineEmbs層513、図5に従って構成される1つまたは複数のResNetBlock500、SelfAttention層514、およびConv層506-3という層の列を含む。CombineEmbs層513(たとえば、プーリング層)は、UBlock520のためのテキストプロンプト条件付けを行うために、条件付き埋め込み103(たとえば、コンテキスト埋め込み104のプーリングされたベクトル、拡散時間ステップ)を受け取ることができる。1つまたは複数のResNetBlock500は、UBlock520のための畳み込み演算を実行する。SelfAttention層514は、さらなるテキストプロンプト条件付けを行うために、コンテキスト埋め込み104に対する相互注意などの、UBlock520のための注意機構を実行することができる。たとえば、コンテキスト埋め込み104は、SelfAttention層514の鍵-値ペアに連結され得る。Conv層506-3は、UBlock520のためのアップサンプリング動作を実行する。
【0133】
UBlock520のハイパーパラメータは、アップサンプリングがある場合のUBlock520のストライド(stride:Optional[Tuple[int,int]])、UBlock520当たりのResNetBlock500の数(numResNetBlocksPerBlock:int)、およびチャネルの数(channels:int)を含む。図5Cの破線のブロックは任意選択であり、たとえば、あらゆるUBlock520がダウンサンプリングする必要があるのではなく、または自己注意を必要とするのではない。
【0134】
典型的なU-Net UBlockでは、アップサンプリング動作は、畳み込み演算の前に起こることに留意されたい。この場合、Conv層506-3を介して実施されるアップサンプリング動作は、1つまたは複数のResNetBlock500を介して畳み込み演算が実施された後に起こる。この逆転した順序は、性能低下をほとんどまたはまったく伴わずに、UBlock510の前進パスの速度を大きく改善することができる。
【0135】
図5Dは、後続のGNN120.1-nによって実装され得る例示的なEfficient U-Netアーキテクチャのブロック図を、64×64→256×256の入力対出力画像アップスケーリングのための超解像モデルとして示す。図5Dのアーキテクチャは図4と同様に配置され、Conv層506-4として構成される入力ブロック512、図5Bに従って構成される一連の5つのDBlock510-0から510-4、図5Cに従って構成される一連の5つのUBlock520-0から520-4、および密層516として構成される出力ブロック522を有する。
【0136】
図6Aは、ノイズから画像を生成することができる例示的な画像生成システム101のブロック図を示す。画像生成システム101は、以下で説明されるシステム、コンポーネント、および技法が実装される1つまたは複数の位置にある1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されるシステムの例である。
【0137】
本明細書は全般にtext-to-image生成を対象とするが、本明細書で開示される画像生成システムは、そのように限定されず、あらゆる条件付けられた画像生成問題に適用され得る。たとえば、図6Aに示される画像生成システム101はノイズから画像を生成することができ、これは、図1Aの画像生成システム100への条件付け入力を変更すること、たとえば、テキストプロンプト102をノイズ入力114で置き換えることと同じである。一般に、条件付け入力は、既存の画像、ビデオ、オーディオ波形、これらのいずれかの埋め込み、これらの組合せなどの、あらゆる望まれる入力であり得る。
【0138】
画像生成システム101は、ノイズ分布p(v)140からノイズ入力(v)114をサンプリングすることができる。たとえば、ノイズ分布140は、二項分布、正規分布、ポアソン分布、ベータ分布、クマラスワミー分布、または任意の望まれるノイズ(または確率)分布であり得る。システム101は、ユーザにより生成されるクエリまたは自動的に生成されるクエリなどのクエリに応答して、ノイズ入力114をサンプリングし得る。たとえば、システム101は、ランダム画像を生成せよとのクエリを受け取り、その後、ノイズ分布140からノイズ入力114をサンプリングし得る。システム101は、最終的な出力画像106.nを生成するために、GNNの列121を通じてノイズ入力114を処理し、最終的な出力画像は、いくつかの実装形態では、最終的な画像108を生成するためにポストプロセッサ130によってさらに処理される。上で説明されたように、ポストプロセッサ130は、出力画像106.nに変換を適用して、出力画像106.nに対して画像分類を行い、および/または出力画像106.nに対して画像品質分析を行うなどしてもよい。この場合、最終的な画像108は、列121が特定の場面を描写するテキストプロンプト102ではなくランダムノイズ入力114について条件付けられるので、ランダムな場面を描く。
【0139】
要約すると、列121は、最初のGNN120.0および1つまたは複数の後続のGNN120.1-nを含む。最初のGNN120.0は、条件付け入力c(0)=(v)としてノイズ入力を受け取るように構成される。最初のGNN120.0は、最初の出力画像
【数103】
106.0を生成するために条件付け入力を処理するように構成される。最初の出力画像106.0は最初の解像度R(0)を有する。各々の後続のGNN120.iは、列121の中の先行するGNNによって出力として生成されるそれぞれの入力画像
【数105】
を含むそれぞれの入力
【数104】
を受け取るように構成される。各々の後続のGNN120.iは、それぞれの出力画像
【数106】
106.iを生成するためにそれぞれの入力を処理するように構成される。いくつかの実装形態では、後続のGNN120.iの1つまたは複数のそれぞれの入力は、ノイズ入力
【数107】
も含む。さらなる実装形態では、各々の後続のGNN120.iのそれぞれの入力は、ノイズ入力114を含む。各々の後続のGNN120.iの入力画像
【数108】
および出力画像
【数109】
は、それぞれ、入力解像度R(i-1)および出力解像度R(i)を有する。出力解像度は入力解像度よりも高い(R(i)>R(i-1))。GNN120.0-nは、条件付け入力c(i)に基づいて出力画像
【数110】
を生成するために、GNNおよびDBGNNのために上で説明された技法のいずれかを利用することができる。GNN120.0-nは、図4および図5A図5Dに関して説明されたニューラルネットワークアーキテクチャのいずれかを利用することもできる。
【0140】
訓練エンジン(たとえば、図3Aの訓練エンジン300)は、テキストと同様の方式でノイズから出力画像
【数111】
を生成するために列121を訓練することができる。訓練は図3Aにおいて概説される訓練方式へのわずかな変更を伴い、それは、訓練セットが、ラベリングされたテキスト-画像のペアではなくラベリングされていない画像を一般に含むからである。それでも、訓練エンジンは画像の非常に大きなセットについてシステム101の列121を訓練することができ、それは、画像はラベリングされる必要がないからである。たとえば、訓練エンジンは、大きい公開のデータベースからラベリングされていない画像を取得することができる。
【0141】
この場合、訓練エンジンは、合同分布(x,v)~p(x,v)から合同で、グラウンドトゥルース画像とノイズ入力のペアをサンプリングすることができる。合同分布p(x,v)=p(x|v)p(v)はデータの統計を記述する。ここで、p(v)はノイズ分布140であり、p(x|v)はvのもとでのxの尤度である。この尤度は、ランダムにサンプリングされたノイズ入力vをグラウンドトゥルース画像xと関連付けるために、種々の方法で訓練エンジンによってモデル化され得る。たとえば、訓練エンジンは、正規分布p(x|v)=N(x;μ(v),Σ(v))として尤度をモデル化してもよく、それにより、xはμ(v)の周りに限局され、vと高度に相関する。データペア(x,v)をサンプリングした後、訓練エンジンは次いで、サンプリングされたグラウンドトゥルース画像xをGNN120.0-nの適切な入力解像度および出力解像度にサイズ変更することができる。
【0142】
訓練エンジンは、形式(x(0),c(0))のサンプリングされた画像-入力ペアについて最初のGNN120.0を訓練することができる。ここで、x(0)は、最初のGNN120.0の最初の解像度R(0)にサイズ設定されたグラウンドトゥルースの初期の出力画像であり、c(0)=(v)は、対応するノイズ入力114を含むそれぞれの訓練入力である。訓練エンジンは、形式(x(i),c(i))のサンプリングされた画像-入力ペアについて後続のGNN120.iを訓練することができる。ここで、x(i)は、後続のGNN120.iの出力解像度R(i)にサイズ設定されたグラウンドトゥルース出力画像であり、c(i)=(x(i-1))は、その出力解像度R(i-1)にサイズ設定された、列121の中の先行するGNNのグラウンドトゥルース出力画像x(i-1)を含む訓練入力である。いくつかの実装形態では、訓練入力c(i)=(x(i-1),v)は、対応するノイズ入力114も含む。訓練エンジンは、画像-入力データペアについて列121を訓練するために、GNNおよびDBGNNについて上で説明された技法のいずれかを使用することができる。
【0143】
図6Bは、ノイズから画像を生成するための例示的なプロセスの流れ図である。便宜的に、プロセス600は、1つまたは複数の位置に位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラムされる画像生成システム101、たとえば図6Aの画像生成システム101は、プロセス600を実行することができる。
【0144】
システムは、ノイズ分布からノイズ入力をサンプリングする(610)。ノイズ分布は、たとえばガウスノイズ分布であり得る。ノイズ入力はノイズ画像であってもよく、たとえば、このとき、ノイズ画像の中の各ピクセル値はノイズ分布からサンプリングされる。
【0145】
システムは、最終的な出力画像を生成するために、生成ニューラルネットワークの列を通じてノイズ入力を処理する(620)。生成ニューラルネットワークの列を使用してノイズから画像を生成するための例示的なプロセスは、図6Cを参照して以下でより詳しく説明される。
【0146】
図6Cは、生成ニューラルネットワークの列を使用してノイズから画像を生成するための例示的なプロセスの流れ図である。便宜的に、プロセス620は、1つまたは複数の位置に位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラムされる生成ニューラルネットワークの列、たとえば図6Aの生成ニューラルネットワーク121の列は、プロセス620を実行することができる。
【0147】
生成ニューラルネットワークの列は、最初の生成ニューラルネットワークおよび1つまたは複数の後続の生成ニューラルネットワークを含む。
【0148】
最初の生成ニューラルネットワークは、ノイズ入力を受け取る(622)。
【0149】
最初の生成ニューラルネットワークは、最初の解像度を有する最初の出力画像を出力として生成するために、ノイズ入力を処理する(624)。
【0150】
各々の後続の生成ニューラルネットワークに対して:
【0151】
後続の生成ニューラルネットワークは、それぞれの入力解像度を有し、列の中の先行する生成ニューラルネットワークによって出力として生成される、それぞれの入力画像を含むそれぞれの入力を受け取る(626)。いくつかの実装形態では、後続の生成ニューラルネットワークの1つまたは複数のそれぞれの入力は、ノイズ入力をさらに含む。いくつかの実装形態では、各々の後続の生成ニューラルネットワークのそれぞれの入力はノイズ入力を含む。
【0152】
後続の生成ニューラルネットワークは、それぞれの入力解像度よりも高いそれぞれの出力解像度を有するそれぞれの出力画像を出力として生成するために、それぞれの入力を処理する(628)。
【0153】
いくつかの実装形態では、列の中の各生成ニューラルネットワークは、拡散ベースの生成ニューラルネットワークである。拡散ベースの生成ニューラルネットワークの実装形態の例は、たとえば図1Bを参照して、本明細書全体で説明される。
【0154】
本明細書は、システムおよびコンピュータプログラムコンポーネントに関連して「構成される」という用語を使用する。1つまたは複数のコンピュータのシステムが特定の動作または活動を実行するように構成されることは、動作中にシステムにその動作または活動を実行させる、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せがシステムにインストールされていることを意味する。1つまたは複数のコンピュータプログラムが特定の動作または活動を実行するように構成されることは、データ処置装置によって実行されると、装置にその動作または活動を実行させる命令を1つまたは複数のプログラムが含むことを意味する。本明細書で説明される主題および機能的動作の実施形態は、本明細書で開示される構造およびそれらの構造的な均等物を含めて、デジタル電子回路で、有形に具現化されるコンピュータソフトウェアもしくはファームウェアで、コンピュータハードウェアで、またはそれらの1つまたは複数の組合せで実装され得る。本明細書で説明される主題の実施形態は、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、1つまたは複数のコンピュータプログラムとして、すなわち、有形の非一時的記憶媒体に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアスアクセスメモリデバイス、またはそれらの1つまたは複数の組合せであり得る。代替または追加として、プログラム命令は、データ処理装置による実行のための適切な受信機装置への送信のために、情報を符号化するために生成される、人工的に生成された伝播信号、たとえば、機械で生成された電気信号、光信号、または電磁信号に符号化され得る。
【0155】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例としてプログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するための、すべての種類の装置、デバイス、および機械を包含する。また、装置は、専用の論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)もしくはASIC(特定用途向け集積回路)であってもよく、またはさらにそれを含んでもよい。任意選択で、装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つまたは複数の組合せを構成するコードを含み得る。
【0156】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、もしくはコードとも呼ばれ、または記述されることがあるコンピュータプログラムは、コンパイルされた言語もしくは解釈された言語、または宣言型言語もしくは手続型言語を含む、任意の形式のプログラミング言語で書かれてもよく、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境において使用するのに適した他のユニットとしてを含めて、任意の形式で展開され得る。プログラムは、ファイルシステムにおけるファイルに相当することがあるが、そうである必要はない。プログラムは、他のプログラムもしくはデータ、たとえば、マークアップ言語ドキュメントに記憶される1つまたは複数のスクリプトを保持するファイルの一部分に、対象のプログラムに専用の単一のファイルに、または複数の協調するファイル、たとえば、1つまたは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイルに記憶され得る。コンピュータプログラムは、1つのコンピュータ上で実行されるように、または、1つの場所に位置する、もしくは、複数の場所に分散しておりデータ通信ネットワークによって相互接続される、複数のコンピュータ上で実行されるように展開され得る。
【0157】
本明細書では、「データベース」という用語は、データの任意の集合体を指すために広く使用される。データは特定の方法で構造化される必要はなく、またはまったく構造化される必要はなく、1つまたは複数の位置にある記憶デバイスに記憶され得る。したがって、たとえば、インデックスデータベースは、その各々が異なるように組織化されアクセスされ得る、データの複数の集合体を含み得る。
【0158】
同様に、本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実行するようにプログラムされるソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用される。一般に、エンジンは、1つまたは複数の位置にある1つまたは複数のコンピュータにインストールされる、1つまたは複数のソフトウェアモジュール、またはコンポーネントとして実装される。場合によっては、1つまたは複数のコンピュータは特定のエンジンに専用である。他の場合には、複数のエンジンが同じ1つまたは複数のコンピュータにインストールされ、そこで実行され得る。
【0159】
本明細書で説明されるプロセスおよび論理フローは、入力データに対して動作して出力を生成することによって機能を実施するために1つまたは複数のコンピュータプログラムを実行する、1つまたは複数のプログラム可能コンピュータによって実行され得る。プロセスおよび論理フローは、専用の論理回路、たとえば、FPGAもしくはASICによって、または、専用の論理回路と1つまたは複数のプログラムされたコンピュータの組合せによっても実行され得る。
【0160】
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサまたは専用マイクロプロセッサまたはこれらの両方または任意の他の種類の中央処理装置に基づき得る。一般に、中央処理装置は、読取り専用メモリまたはランダムアクセスメモリまたはこれらの両方から、命令およびデータを受け取る。コンピュータの必須の要素は、命令を実施または実行するための中央処理装置、および命令とデータを記憶するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用の論理回路によって補足され、またはそれに組み込まれ得る。一般に、コンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、磁気光学ディスク、もしくは光学ディスクも含み、または、それらからデータを受け取るために、もしくはそれらにデータを転送するために、もしくは両方を行うために、動作可能に結合される。しかしながら、コンピュータがそのようなデバイスを有することは必要ではない。その上、コンピュータは、別のデバイス、たとえば、いくつか例を挙げると、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはイメージプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、たとえばuniversal serial bus (USB)フラッシュドライブに組み込まれ得る。
【0161】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内部ハードディスクまたはリムーバブルディスク、磁気光学ディスク、ならびにCD ROMおよびDVD-ROMディスクを含む、すべての形式の不揮発性のメモリ、媒体、およびメモリデバイスを含む。
【0162】
ユーザとの対話を行うために、本明細書で説明される主題の実施形態は、情報をユーザに表示するための表示デバイス、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、ならびに、ユーザがそれにより入力をコンピュータに与えることができるキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールを有する、コンピュータ上で実装され得る。ユーザとの対話も実現するために、他の種類のデバイスが使用され得る。たとえば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであり得る。ユーザからの入力は、音響入力、発話入力、または触覚入力を含む、任意の形式で受け取られ得る。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、それからドキュメントを受信することによって、たとえば、ユーザのデバイス上のウェブブラウザから受信された要求に応答してそのウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形式のメッセージを個人のデバイス、たとえばメッセージングアプリケーションを実行しているスマートフォンに送信し、返信としてユーザから応答メッセージを受信することによって、ユーザと対話することができる。
【0163】
機械学習モデルを実装するためのデータ処理装置は、たとえば、機械学習の訓練または成果物、すなわち推論、作業量の、共通の計算集約的な部分を処理するための、専用のハードウェアアクセラレータユニットも含み得る。
【0164】
機械学習モデルは、機械学習フレームワーク、たとえばTensorFlowフレームワークを使用して実装され展開され得る。
【0165】
本明細書で説明される主題の実施形態は、たとえばデータサーバとしてバックエンドコンポーネントを含む、または、ミドルウェアコンポーネント、たとえばアプリケーションサーバを含む、または、フロントエンドコンポーネント、たとえば、クライアントコンピュータを含む、または、1つまたは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含む、コンピューティングシステムにおいて実装されてもよく、クライアントコンピュータは、ユーザが本明細書で説明される主題の実装形態とそれを通じて対話できる、グラフィカルユーザインターフェース、ウェブブラウザ、またはアプリを有する。システムのコンポーネントは、デジタルデータ通信の任意の形態または媒体、たとえば通信ネットワークによって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、たとえばインターネットを含む。
【0166】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは一般に互いに離れており、通常は通信ネットワークを通じて対話する。クライアントとサーバの関係は、コンピュータプログラムがそれぞれのコンピュータで実行されて互いにクライアントとサーバの関係を有することにより生じる。いくつかの実施形態では、サーバは、データ、たとえばHTMLページを、たとえばクライアントとして振る舞うユーザデバイスと対話するユーザにデータを表示してユーザからユーザ入力を受け取る目的で、そのユーザデバイスに送信する。ユーザデバイスにおいて生成されるデータ、たとえばユーザ対話の結果は、デバイスからサーバにおいて受信され得る。
【0167】
本明細書は多くの具体的な実装の詳細を含むが、これらは、発明の範囲に対する、または特許請求され得るものの範囲に対する制限として見なされるべきではなく、むしろ、特定の発明の特定の実施形態に特有であり得る特徴の説明として見なされるべきである。別々の実施形態の文脈において本明細書で説明されるいくつかの特徴はまた、単一の実施形態において組み合わせて実装され得る。逆に、単一の実施形態の文脈において説明される様々な特徴はまた、複数の実施形態において別々に、または任意の適切な部分組合せで実装され得る。その上、特徴は何らかの組合せで動作するものとして上で説明されることがあり、そのように最初に特許請求されることすらあるが、特許請求される組合せからの1つまたは複数の特徴は、場合によっては組合せから除外されてもよく、特許請求される組合せは、部分組合せまたは部分組合せの変形を対象としてもよい。
【0168】
同様に、動作は特定の順序で図面および請求項において記載されるが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序もしくは逐次的な順序で実行されること、またはすべての示される動作が実行されることを必要とするものとして理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上で説明された実施形態における様々なシステムモジュールとコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは一般に、単一のソフトウェア製品において一緒に統合され、または複数のソフトウェア製品へとパッケージングされ得ることが理解されるべきである。
【0169】
主題の具体的な実施形態が説明された。他の実施形態が以下の特許請求の範囲内にある。たとえば、請求項に記載される行動は、異なる順序で実行されてもよく、それでも望ましい結果を達成することができる。一例として、添付の図面における対応するプロセスは、望ましい結果を達成するために、示される特定の順序または逐次的な順序を必ずしも必要としない。場合によっては、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【0170】
100 画像生成システム
102 テキストプロンプト
103 条件付き埋め込み
104 コンテキスト埋め込み
106 出力画像
108 最終的な画像
110 テキストエンコーダニューラルネットワーク
120 生成ニューラルネットワーク
121 列
130 ポストプロセッサ
140 ノイズ分布
144 ノイズ入力
302 訓練テキストプロンプト
304 コンテキスト埋め込み
306 グラウンドトゥルース画像
310 訓練例
500 ResNetBlock
502 GroupNorm層
504 スウィッシュ活性化層
506 Conv層
510 DBlock
512 入力ブロック
513 CombineEmbs層
514 SelfAttention層
516 密層
520 UBlock
522 出力ブロック
705 潜在画像
706 推定画像
図1A
図1B
図2A
図2B
図3A
図3B
図4
図5A
図5B
図5C
図5D
図6A
図6B
図6C
図7
【手続補正書】
【提出日】2024-02-21
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1つまたは複数のコンピュータによって実行される方法であって、
自然言語でのテキストトークンの列を備える入力テキストプロンプトを受け取るステップと、
前記入力テキストプロンプトのコンテキスト埋め込みのセットを生成するために、テキストエンコーダニューラルネットワークを使用して前記入力テキストプロンプトを処理するステップと、
前記入力テキストプロンプトによって描写される場面を描く最終的な出力画像を生成するために、生成ニューラルネットワークの列を通じて前記コンテキスト埋め込みを処理するステップとを備え、生成ニューラルネットワークの前記列が、
前記コンテキスト埋め込みを受け取り、
最初の解像度を有する最初の出力画像を出力として生成するために、前記コンテキスト埋め込みを処理する
ように構成される、最初の生成ニューラルネットワークと、
(i)前記コンテキスト埋め込みと、(ii)それぞれの入力解像度を有し、前記列の中の先行する生成ニューラルネットワークによって出力として生成される、それぞれの入力画像とを備える、それぞれの入力を受け取り、
前記それぞれの入力解像度よりも高いそれぞれの出力解像度を有するそれぞれの出力画像を出力として生成するために、前記それぞれの入力を処理する
ように各々構成される、1つまたは複数の後続の生成ニューラルネットワークとを備える、方法。
【請求項2】
前記テキストエンコーダニューラルネットワークが、自己注意エンコーダニューラルネットワークである、請求項1に記載の方法。
【請求項3】
前記列の中の前記生成ニューラルネットワークが、(i)それぞれの訓練テキストプロンプトと、(ii)前記それぞれの訓練テキストプロンプトによって描写される場面を描くそれぞれのグラウンドトゥルース画像とを各々含む、訓練例のセットについて合同訓練されており、
前記テキストエンコーダニューラルネットワークが、事前訓練されており、前記列の中の前記生成ニューラルネットワークの前記合同訓練の間に凍結されたままに保たれた、請求項1に記載の方法。
【請求項4】
前記列の中の各生成ニューラルネットワークが、拡散ベースの生成ニューラルネットワークである、請求項1に記載の方法。
【請求項5】
前記拡散ベースの生成ニューラルネットワークが、分類器なしの誘導を使用して訓練されている、請求項4に記載の方法。
【請求項6】
各々の後続の拡散ベースの生成ニューラルネットワークに対して、前記それぞれの出力画像を出力として生成するために前記それぞれの入力を処理するステップが、
前記それぞれの出力解像度を有する潜在画像をサンプリングするステップと、
ステップの列にわたって前記潜在画像を前記それぞれの出力画像へとノイズ除去するステップとを備え、ノイズ除去する前記ステップが、ステップの前記列の中の最後のステップではない各ステップに対して、
前記ステップに対する潜在画像を受け取るステップと、
前記ステップに対する推定画像を生成するために前記ステップに対する前記それぞれの入力および前記潜在画像を処理するステップと、
前記ステップに対する前記推定画像のピクセル値を動的に閾値設定するステップと、
前記ステップに対する前記推定画像およびランダムにサンプリングされたノイズを使用して、次のステップに対する潜在画像を生成するステップと
を備える、請求項4に記載の方法。
【請求項7】
ステップの前記列の中の前記最後のステップに対して、
前記最後のステップに対する潜在画像を受け取るステップと、
前記それぞれの出力画像を生成するために、前記最後のステップに対する前記それぞれの入力および前記潜在画像を処理するステップとをさらに備える、請求項6に記載の方法。
【請求項8】
前記ステップに対する前記推定画像を生成するために前記ステップに対する前記それぞれの入力および前記潜在画像を処理するステップが、
前記それぞれの出力解像度を有するそれぞれのサイズ変更された入力画像を生成するために、前記それぞれの入力画像をサイズ変更するステップと、
前記ステップに対する連結画像を生成するために、前記ステップに対する前記潜在画像を前記それぞれのサイズ変更された入力画像と連結するステップと、
前記ステップに対する前記推定画像を生成するために、前記コンテキスト埋め込みへの相互注意を用いて前記ステップに対する前記連結画像を処理するステップとを備える、請求項6に記載の方法。
【請求項9】
前記ステップに対する前記推定画像の前記ピクセル値を動的に閾値設定するステップが、
前記ステップに対する前記推定画像の前記ピクセル値に基づいて、制限閾値を決定するステップと、
前記制限閾値を使用して、前記ステップに対する前記推定画像の前記ピクセル値を閾値設定するステップとを備える、請求項6に記載の方法。
【請求項10】
前記ステップに対する前記推定画像の前記ピクセル値に基づいて前記制限閾値を決定するステップが、
前記ステップに対する前記推定画像の中の特定のパーセンタイルの絶対ピクセル値に基づいて前記制限閾値を決定するステップを備える、請求項9に記載の方法。
【請求項11】
前記制限閾値を使用して前記ステップに対する前記推定画像の前記ピクセル値を閾値設定するステップが、
前記ステップに対する前記推定画像の前記ピクセル値を[-κ,κ]によって定義される範囲に制限するステップを備え、κが前記制限閾値である、請求項9に記載の方法。
【請求項12】
前記制限閾値を使用して前記ステップに対する前記推定画像の前記ピクセル値を閾値設定するステップが、
前記ステップに対する前記推定画像の前記ピクセル値を制限した後、前記ステップに対する前記推定画像の前記ピクセル値を前記制限閾値で割るステップをさらに備える、請求項11に記載の方法。
【請求項13】
各々の後続の生成ニューラルネットワークが、ノイズ条件付け拡張を前記それぞれの入力画像に適用する、請求項1に記載の方法。
【請求項14】
前記最終的な出力画像が、前記列の中の最終的な生成ニューラルネットワークの前記それぞれの出力画像である、請求項1に記載の方法。
【請求項15】
各々の後続の生成ニューラルネットワークが、それぞれのk×k入力画像を受け取り、それぞれの4k×4k出力画像を生成する、請求項1に記載の方法。
【請求項16】
1つまたは複数のコンピュータによって実行される方法であって、
ノイズ分布からノイズ入力をサンプリングするステップと、
最終的な出力画像を生成するために、生成ニューラルネットワークの列を通じて前記ノイズ入力を処理するステップとを備え、生成ニューラルネットワークの前記列が、
前記ノイズ入力を受け取り、
最初の解像度を有する最初の出力画像を出力として生成するために、前記ノイズ入力を処理する
ように構成される、最初の生成ニューラルネットワークと、
(i)前記ノイズ入力と、(ii)それぞれの入力解像度を有し、前記列の中の先行する生成ニューラルネットワークによって出力として生成される、それぞれの入力画像とを備える、それぞれの入力を受け取り、
前記それぞれの入力解像度よりも高いそれぞれの出力解像度を有するそれぞれの出力画像を出力として生成するために、前記それぞれの入力を処理する
ように各々構成される、1つまたは複数の後続の生成ニューラルネットワークとを備える、方法。
【請求項17】
前記列の中の各生成ニューラルネットワークが、拡散ベースの生成ニューラルネットワークである、請求項16に記載の方法。
【請求項18】
前記拡散ベースの生成ニューラルネットワークが、分類器なしの誘導を使用して訓練されている、請求項17のいずれか一項に記載の方法。
【請求項19】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から18のいずれか一項に記載の方法を実行させる命令を記憶する、1つまたは複数の記憶デバイスとを備える、システム。
【請求項20】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から18のいずれか一項に記載の方法を実行させる命令を記憶する、1つまたは複数のコンピュータ可読記憶媒体。
【国際調査報告】