CN117561549A - 利用生成神经网络的序列生成图像 - Google Patents
利用生成神经网络的序列生成图像 Download PDFInfo
- Publication number
- CN117561549A CN117561549A CN202380012461.8A CN202380012461A CN117561549A CN 117561549 A CN117561549 A CN 117561549A CN 202380012461 A CN202380012461 A CN 202380012461A CN 117561549 A CN117561549 A CN 117561549A
- Authority
- CN
- China
- Prior art keywords
- image
- input
- neural network
- sequence
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 142
- 238000000034 method Methods 0.000 claims abstract description 150
- 238000012545 processing Methods 0.000 claims abstract description 46
- 238000003860 storage Methods 0.000 claims abstract description 12
- 238000012549 training Methods 0.000 claims description 153
- 238000009826 distribution Methods 0.000 claims description 101
- 238000009792 diffusion process Methods 0.000 claims description 51
- 238000005070 sampling Methods 0.000 claims description 44
- 230000003750 conditioning effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 abstract description 18
- 230000008569 process Effects 0.000 description 78
- 230000000875 corresponding effect Effects 0.000 description 38
- 230000006870 function Effects 0.000 description 28
- 238000000605 extraction Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 19
- 230000000750 progressive effect Effects 0.000 description 18
- 238000004422 calculation algorithm Methods 0.000 description 11
- 230000001143 conditioned effect Effects 0.000 description 11
- 230000002441 reversible effect Effects 0.000 description 9
- 230000003068 static effect Effects 0.000 description 7
- 230000009466 transformation Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 6
- 238000011176 pooling Methods 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 241000220223 Fragaria Species 0.000 description 4
- 235000016623 Fragaria vesca Nutrition 0.000 description 4
- 235000011363 Fragaria x ananassa Nutrition 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 244000157072 Hylocereus undatus Species 0.000 description 3
- 235000018481 Hylocereus undatus Nutrition 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000011478 gradient descent method Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 230000026676 system process Effects 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 241000282326 Felis catus Species 0.000 description 2
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 2
- 235000009781 Myrtillocactus geometrizans Nutrition 0.000 description 2
- 240000009125 Myrtillocactus geometrizans Species 0.000 description 2
- 244000000231 Sesamum indicum Species 0.000 description 2
- 235000003434 Sesamum indicum Nutrition 0.000 description 2
- 230000008485 antagonism Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000002591 computed tomography Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000004821 distillation Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000003607 modifier Substances 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000010355 oscillation Effects 0.000 description 2
- 229920006395 saturated elastomer Polymers 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000009827 uniform distribution Methods 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 235000005156 Brassica carinata Nutrition 0.000 description 1
- 244000257790 Brassica carinata Species 0.000 description 1
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 235000019219 chocolate Nutrition 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 235000019221 dark chocolate Nutrition 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000002595 magnetic resonance imaging Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000010428 oil painting Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000009738 saturating Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000010008 shearing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4053—Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/196—Recognition using electronic means using sequential comparisons of the image signals with a plurality of references
- G06V30/1983—Syntactic or structural pattern recognition, e.g. symbolic string recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
- Processing Or Creating Images (AREA)
Abstract
用于生成图像的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。在一个方面,一种方法包括:接收输入文本提示,该输入文本提示包括自然语言中的文本词元的序列;使用文本编码器神经网络处理输入文本提示以生成输入文本提示的上下文嵌入的集合;以及,通过生成神经网络的序列处理上下文嵌入,以生成描绘由输入文本提示描述的场景的最终输出图像。
Description
技术领域
本说明书涉及使用神经网络处理图像。
背景技术
神经网络是应用一层或多层非线性单元来针对接收到的输入预测输出的机器学习模型。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作对于在网络中下一层(即,下一个隐藏层或输出层)的输入。网络的每一层根据相应参数集的当前值从接收到的输入生成输出。
发明内容
本说明书描述了一种图像生成系统,该图像生成系统在一个或多个位置的一个或多个计算机上实现为使用文本编码器神经网络和生成神经网络的序列从调节输入(conditioning input)生成图像的计算机程序。虽然以下描述描述了文本提示形式的调节输入(或文本提示的上下文嵌入的集合),但在其他实施方式中,调节输入可以是不同类型的数据,例如,从噪声分布采样的噪声输入、预存图像、预存图像的嵌入、视频、视频的嵌入、图像的期望对象类别的数字表示、表征图像应该描绘的场景的音频信号、包括描述图像的口述话语的音频信号、音频信号的嵌入、它们的组合等等。本文公开的方法和系统可以应用于任何条件图像生成问题,以生成高分辨率图像。
在一个方面,提供了一种由一个或多个计算机执行的方法。该方法包括:接收输入文本提示,该输入文本提示包括自然语言中的文本词元的序列;使用文本编码器神经网络处理输入文本提示以生成输入文本提示的上下文嵌入的集合;以及,通过生成神经网络的序列处理上下文嵌入,以生成描绘由输入文本提示描述的场景的最终输出图像。生成神经网络的序列包括初始生成神经网络和一个或多个后续生成神经网络。初始生成神经网络被配置为:接收上下文嵌入;以及,处理上下文嵌入以生成具有初始分辨率的初始输出图像作为输出。所述一个或多个后续生成神经网络各自被配置为:接收相应输入,所述相应输入包括:(i)上下文嵌入,以及(ii)具有相应输入分辨率并且由序列中的先前生成神经网络生成为输出的相应输入图像;以及,处理相应输入以生成具有比相应输入分辨率高的相应输出分辨率的相应输出图像作为输出。
在该方法的一些实施方式中,文本编码器神经网络是自注意力编码器神经网络。
在该方法的一些实施方式中,序列中的生成神经网络已经在训练示例的集合上被联合训练,每个训练示例包括:(i)相应训练文本提示,以及(ii)描绘由相应训练文字提示描述的场景的相应真实图像;并且文本编码器神经网络已经被预先训练并且在序列中的生成神经网络的联合训练期间保持冻结。
在该方法的一些实施方式中,序列中的每个生成神经网络是基于扩散的生成神经网络。
在该方法的一些实施方式中,基于扩散的生成神经网络使用无分类器引导。
在该方法的一些实施方式中,对于每个后续的基于扩散的生成神经网络,处理相应输入以生成相应输出图像作为输出包括:对具有相应输出分辨率的潜在图像进行采样;以及,历经步骤序列将潜在图像去噪声为相应输出图像。历经步骤序列将潜在图像去噪声包括,对于不是步骤序列中的最后步骤的每个步骤:接收该步骤的潜在图像;处理该步骤的相应输入和潜在图像,以生成该步骤的估计图像;对该步骤的估计图像的像素值进行动态阈值化;以及,使用该步骤的估计图像和随机采样的噪声来生成下一步骤的潜在图像。
在该方法的一些实施方式中,历经步骤序列对潜在图像进行去噪声包括,对于步骤序列中的最后步骤:接收最后步骤的潜在图像;以及,处理最后步骤的相应输入和潜在图像以生成相应输出图像。
在该方法的一些实施方式中,处理步骤的相应输入和潜在图像以生成步骤的估计图像包括:对相应输入图像调整大小以生成具有相应输出分辨率的相应调整大小的输入图像;将该步骤的所述潜在图像与相应调整大小的输入图像级联,以生成所述步骤的级联图像;以及,在上下文嵌入上用交叉注意力处理该步骤的级联图像,以生成该步骤的估计图像。
在该方法的一些实施方式中,对该步骤的估计图像的像素值进行动态阈值化包括:基于该步骤的估计图像的像素值来确定剪切阈值;以及,使用剪切阈值对该步骤的估计图像的像素值进行阈值化。
在该方法的一些实施方式中,基于该步骤的估计图像的像素值来确定剪切阈值包括:基于该步骤的估计图像中的特定百分位绝对像素值来决定剪切阈值。
在该方法的一些实施方式中,使用剪切阈值对该步骤的估计图像的像素值进行阈值化包括:将该步骤的估计图像的像素值剪切到[-κ,κ]定义的范围,其中,κ是剪切阈值。
在该方法的一些实施方式中,使用剪切阈值对该步骤的估计图像的像素值进行阈值化还包括:在剪切该步骤的估计图像的像素值之后,将该步骤的估计图像的像素值除以剪切阈值。
在该方法的一些实施方式中,每个后续生成神经网络将噪声调节增强应用于相应输入图像。
在该方法的一些实施方式中,最终输出图像是序列中的最终生成神经网络的相应输出图像。
在该方法的一些实施方式中,每个后续生成神经网络接收相应k x k输入图像并生成相应4k x 4k输出图像。
在第二方面中,提供了一种由一个或多个计算机执行的方法。该方法包括:从噪声分布采样噪声输入;以及,通过生成神经网络的序列处理噪声输入以生成最终输出图像。生成神经网络的序列包括初始生成神经网络和一个或多个后续生成神经网络。初始生成神经网络被配置为:接收噪声输入;以及,处理噪声输入以生成具有初始分辨率的初始输出图像作为输出。一个或多个后续生成神经网络各自被配置为:接收相应输入,相应输入包括:(i)噪声输入,以及,(ii)具有相应输入分辨率并且由序列中的先前生成神经网络生成为输出的相应输入图像;以及,处理相应输入以生成具有比相应输入分辨率高的相应输出分辨率的相应输出图像作为输出。
在该方法的一些实施方式中,序列中的每个生成神经网络是基于扩散的生成神经网络。
在该方法的一些实施方式中,基于扩散的生成神经网络使用无分类器引导。
在第三方面中,提供了一种系统。该系统包括:一个或多个计算机;以及,存储指令的一个或多个存储设备,所述指令当由所述一个或多个计算机执行时,使所述一个或多个计算机执行任何上述方法。
在第四方面中,提供了一种系统。该系统包括存储指令的一个或多个计算机可读存储介质,当该指令由一个或多个计算机执行时,使一个或多个计算机执行任何上述方法。
本说明书中描述的主题可以在特定实施例中实现,从而实现以下优点中的一个或多个。
所描述的图像生成系统可以生成具有高分辨率的图像,该图像描绘由文本提示所描述的场景。也就是说,图像生成系统可以有效地生成高分辨率图像,该高分辨率图像被文本提示准确地加上字幕。通过使用生成神经网络(GNN)的序列(或“级联”),并且每个生成神经网络都可以以文本提示为条件,系统可以迭代地放大图像的分辨率,确保可以生成高分辨率图像,而不需要单个神经网络直接以所需输出分辨率生成图像。以这种方式级联GNN可以显著提高其样本质量,并补偿以较低分辨率生成的任何伪像,例如失真、棋盘伪像等。
由于系统的模块化性质,这种迭代放大过程可以用于生成任何所需分辨率的高保真图像。该系统可以利用任意合适数量的GNN,每个GNN实现任意合适类型的生成模型,并且每个GNN具有任意合适数量的神经网络层、网络参数和/或超参数,以生成期望分辨率的图像。除了在推断方面的性能改进外,系统的模块化还在训练过程中实现了显著的增益。例如,训练引擎可以并行地联合训练GNN序列,这有助于高度优化和减少训练时间。也就是说,序列中的每个GNN可以由训练引擎独立地优化,以赋予GNN某些特性,例如,特定的输出分辨率、保真度、感知质量、高效解码(或去噪声)、快速采样、减少伪像等。
为了提供具有高度文本图像对准的高保真文本到图像合成,该系统可以使用预先训练的文本编码器神经网络来处理文本提示并生成文本提示的上下文嵌入(contextualembedding)的集合(或序列)。文本提示可以描述场景(例如,作为以自然语言的文本词元的序列),并且上下文嵌入可以以可计算上修改的形式来表示场景(例如,作为数字值、字母数字值、符号或其他编码表示的集合或向量)。当训练GNN序列时,训练引擎还可以保持文本编码器冻结,以改善文本提示和推断时生成的图像之间的对准。冻结文本编码器可以特别有效,因为它可以使GNN序列能够学习场景的深度语言编码,如果文本编码器是并行训练的,则这些场景的深度语言编码可能否者不可行,例如,由于文本编码器对由文本图像训练对描述的特定场景有偏差。此外,基于文本的训练集通常比当前可用的文本图像训练集更丰富和复杂,这允许文本编码器被预先训练,然后以高度优化的方式实现。例如,请参阅ColinRaffel等人提供的T5文本编码器,“Exploring the Limits of Transfer Learning witha Unified Text-to-Text Transformer.JMLR,21(140),2020”。冻结文本编码器还有其他几个优点,如上下文嵌入的离线计算,导致在训练过程中可忽略不计的计算或内存占用。在一些实施方式中,训练引擎在训练GNN序列之后对预先训练的文本编码器进行微调,在某些情况下,这可以实现更好的文本图像对准。
该系统可以使用GNN序列来处理上下文嵌入,以生成描绘由文本提示描述的场景的最终输出图像。特别地,初始GNN可以接收文本提示的上下文嵌入。初始GNN可以处理上下文嵌入以生成具有初始分辨率的初始输出图像。例如,初始输出图像可以由初始GNN以相对低的分辨率(例如,64×64像素)生成。初始输出图像可以由序列中的每个后续GNN迭代处理,以生成具有增加的分辨率的相应输出图像,直到获得具有期望的最终分辨率的最终输出图像。例如,最终输出图像可以由序列中的最终GNN以相对高的分辨率(例如,1024×1024像素)生成。更具体地,每个后续GNN可以接收包括上下文嵌入和由序列中的先前GNN生成为输出的相应输入图像的相应输入,并且处理相应输入以生成具有比相应输入图像更高分辨率的相应输出图像。例如,该系统可以使用用于初始GNN的基本图像生成模型和用于后续GNN的超分辨率模型来相对于输入图像提高输出图像的分辨率。在一些情况下,后续GNN可以将噪声调节增强应用于其输入图像,这稍微破坏了输入图像。这可以允许后续GNN校正先前GNN可能已经生成的错误和/或伪像。该系统还可以向后续GNN提供信号,该信号指定应用于其输入图像的调节增强的幅度。
GNN序列中的每个GNN可以具有任何适当的神经网络架构,该神经网络架构使其能够执行其所描述的功能,即,处理文本提示和/或相应输入图像的上下文嵌入的集合以生成相应输出图像。特别地,GNN可以包括任何适当数量(例如,5层、25层或100层)并且以任何适当配置(例如,作为层的线性序列)连接的任何适当类型的神经网络层(例如,全连接层、卷积层、自注意力层等)。
在一些实施方式中,图像生成系统对每个GNN使用基于扩散的模型,尽管生成模型的任何组合都可以被系统使用,例如变分自动编码器(VAE)、生成对抗性网络(GAN)等。由于扩散模型的可控性和可扩展性,扩散模型在系统的模块化设置中可以特别有效。例如,与一些生成模型相比,相对于给定的训练数据集,训练引擎可以在可计算处理的目标函数上有效地训练扩散模型。可以通过训练引擎直接优化这些目标函数,以提高基于扩散的GNN(DBGNN)的速度和性能,并实现诸如无分类器引导和渐进提取的技术,从而进一步提高性能。
在其他方面中,本说明书描述了一种将图像生成系统放大为高分辨率文本到图像模型的方法。对于DBGNN,系统可以实现v参数化以提高稳定性,且结合无分类器引导而促进渐进提取以实现快速、高质量的采样。图像生成系统不仅能够高保真地生成图像,而且具有高度的可控性和世界认知,包括生成各种艺术风格的各种图像和文本的能力。
本说明书中描述的图像生成系统可以在任何适当的位置(例如,在用户设备(例如,移动设备)上,或者在数据中心中的一个或多个计算机上,等等)实现。图像生成系统的模块化允许多个设备彼此独立地实现系统的各个组件。特别地,序列中的不同GNN可以在不同的设备上执行,并且可以将它们的输出和/或输入相互传输(例如,通过电信)。作为一个示例,文本编码器和GNN的子集可以在客户端设备(例如,移动设备)上实现,并且GNN的其余部分可以在远程设备(例如在数据中心)上实现。客户端设备可以接收输入(例如,文本提示),并使用文本编码器和GNN的子集来处理文本提示,以生成具有特定分辨率的输出图像。客户端设备然后可以发送其输出(例如,输出图像和文本提示的上下文嵌入的集合),该输出在远程设备处被接收作为输入。远程设备然后可以使用GNN的剩余部分来处理输入,以生成具有比接收到的图像更高分辨率的最终输出图像。
用户可以例如通过经由接口(例如,图形用户界面或应用编程接口(API))向图像生成系统提供输入而与图像生成系统交互。特别地,用户可以提供输入,该输入包括:(i)对于生成图像的请求,以及,(ii)描述要生成的图像的内容的提示(例如,文本提示)。响应于接收到输入,图像生成系统可以响应于请求生成图像,并且将图像提供给用户,例如用于在用户的用户设备上显示,或者用于存储在数据存储设备中。在-些情况下,图像生成系统可以例如通过数据通信网络(例如,互联网)将生成的图像发送到用户的用户设备。
本说明书的主题的一个或多个实施例的细节在附图和下面的描述中阐述。本主题的其他特征、方面和优点将从说明书、附图和权利要求中变得显而易见。
附图说明
图1A示出了可以根据文本提示生成图像的示例图像生成系统的框图。
图1B是用于从文本提示生成图像的示例过程的流程图。
图2A示出了生成神经网络的示例序列的框图。
图2B是用于使用生成神经网络的序列来处理上下文嵌入集合的示例过程的流程图。
图3A示出了可以联合训练生成神经网络的序列的示例训练引擎的框图。
图3B示出了用于联合训练生成神经网络的序列的示例过程的流程图。
图4示出了示例U-Net架构的框图。
图5A示出了用于高效U-Net架构的示例ResNetBlock的框图。
图5B示出了用于高效U-Net架构的示例DBlock的框图。
图5C示出了用于高效U-Net架构的示例UBlock的框图。
图5D示出了实现为超分辨率模型的示例高效U-Net架构的框图。
图6A示出了可以根据噪声生成图像的示例图像生成系统的框图。
图6B是用于从噪声生成图像的示例过程的流程图。
图6C是使用生成神经网络的序列处理噪声输入的示例过程的流程图。
图7示出了由图像生成系统根据文本提示生成的各种图像。
在各个附图中相同的附图标号和标记指示相同的元件。
具体实施方式
本说明书介绍了一种图像生成系统,该图像生成系统将文本编码器神经网络(例如,大型语言模型(LLM))的能力与生成神经网络(例如,基于扩散的模型)的序列相结合,以提供具有高度真实感、保真度和深度语言理解的文本到图像生成。与主要使用图像-文本数据进行模型训练的现有工作相比,本说明书中描述的一个贡献是,在纯文本语料库上预先训练的来自文本编码器的上下文嵌入对于文本到图像的生成是有效的。
图像生成系统的示例还展示了与生成图像建模和生成建模整体相关的多个优点和见解,包括但不限于:
1.生成神经网络(例如,基于扩散的模型)的序列或“级联”用于高分辨率图像生成的有效性。
2.在基于扩散的模型中,冻结编码器文本调节和无分类器引导的有效性。
3.新的基于扩散的采样技术(称为动态阈值化)用于生成真实感和详细图像的有效性。
4.额外的设计选择,如用于引导的扩散模型的v预测参数化和渐进提取。
5.几种神经网络架构选择,包括一种新的架构,称为高效U-Net,它具有快速收敛性并且在内存上高效。
如下所述,图像生成系统使用生成神经网络(GNN)的序列来逐步提高描绘由文本提示描述的场景的图像的分辨率。以这种方式,系统可以生成与自然图像和/或其他图像的分布紧密匹配的图像。例如,GNN的序列可以对多个分辨率的图像上的联合分布进行建模,并以文本提示(或其他调节输入)为条件,该文本提示(或其他条件输入)基于用于训练GNN的序列的训练集合中的图像分布(在下文中更详细地描述)。
如本文所用,术语“场景”通常指一个或多个对象或通用“事物”的任何合集,一个或多个对象或事物可能也可能不以某种方式交互。例如,场景可能包括在环境中相互交互的多个对象,例如,“A strawberry splashing in the coffee in a mug under thestarry sky(草莓在星空下的杯子里的咖啡里飞溅)”,或“A brain riding a rocketshipheading towards the moon(大脑骑着飞向月球的火箭)”,或是“A strawberry mugfilled with white sesame seeds.The mug is floating in a dark chocolate sea(草莓杯子装满白芝麻种子。杯子漂浮在黑巧克力的海洋中)”。场景可能包括没有背景或背景幕的或者有单一颜色的背景或背景幕的单一对象,例如,“Studio shot of minimalkinetic sculpture made from thin wire shaped like a bird on white background(由如白色背景上的鸟形细线制成的最小运动雕塑的工作室镜头)”。场景可能包括文本或抽象艺术,诸如颜色、形状、线条等,例如“A blue flame forming the text‘Imagen’(形成文本‘Imagen’的蓝色火焰)”。如图7所示,可以在图像中描绘并通过文本提示描述的场景的类型是多样的,并且可以从真实世界的设置跨越到抽象。请注意,文本提示可能不明确描述场景中的所有对象。例如,文本提示可以描述场景应该唤起的情绪,例如“happiness is asunny day(幸福是阳光明媚的一天)”或“fear of the unknown(对未知的恐惧)”。通常,文本提示可以包括任何文本,无论其是否描述视觉属性。
当提到图像时,术语“分辨率”是图像的空间分辨率,并且通常指在视觉上仍然可分辨的情况下图像中的线彼此之间可以多么接近。也就是说,在图像中两条线不显示为单条线的情况下可以多么接近。在一些实施方式中,分辨率可以用像素分辨率来识别,在这种情况下,像素分辨率对应于图像的每单位长度(或每单位面积)独立像素的数量——而不一定是图像的每单位长度(或每单位面积)像素的总数。特别地,第一图像可以具有比第二图像更高的像素计数,但是仍然具有比第二图像更差的分辨率。例如,对图像的像素进行朴素的上采样增加像素计数,但不增加分辨率。通常,还假设相对长度尺度具有图像之间的分辨率的确定比较。例如,如果以28.5英寸宽观看,则具有2048×1536个独立像素的数字图像可能显示为低分辨率(约72像素/英寸(ppi)),但如果以7英寸宽观看则可能显示为高分辨率(约300ppi)。相对长度尺度通常是指观看图像(例如,在显示器上)的长度尺度,而不一定是图像中描绘的场景的长度尺度。例如,描绘行星运动的图像和描绘原子运动的图像在它们各自场景中可以具有不同的长度尺度,但在观看时具有相同的相对长度尺度。
图1A示出了示例图像生成系统100的框图。图像生成系统100是被实现为在一个或多个位置的一个或多个计算机上的计算机程序的系统的示例,其中实现下面描述的系统、组件和技术。
在高级别上,图像生成系统100包括文本编码器神经网络110、生成神经网络(GNN)121的序列,并且在一些实施方式中包括后处理器130。系统100被配置为接收文本提示102作为输入并且生成最终图像108作为输出。
更具体地,系统100可以接收描述场景的文本提示文本提示102可以是包括自然语言中的多个文本词元的文本序列。例如,如图1A所示,文本提示102可以包括:“A dragon fruit wearing karate belt in the snow(雪地里戴着空手道腰带的火龙果)。”通常,文本提示可以描述任何特定场景,并且系统100当经过适当训练(例如,通过训练引擎)时能够生成忠实地描绘该场景的高分辨率图像。文本提示102还可以包括文本修改器,诸如“平滑”、“工作室照明”、“像素艺术”、“范高夫风格”等,其对系统100生成的最终图像108赋予各种风格、修改和/或特性。此外,系统100可以生成各种不同类型的图像,诸如三维(3D)图像、真实感图像、卡通图像、抽象可视化、点云图像、不同模态的医学图像等等。例如,系统100可以生成医学图像,包括但不限于磁共振成像(MRI)图像、计算机断层扫描(CT)图像、超声图像、x射线图像等等。
文本编码器110被配置为处理文本提示102以生成文本提示102的上下文嵌入(u)的集合。在一些实施方式中,文本编码器110是预先训练的自然语言文本编码器,例如,诸如T5-XXL的T5文本编码器、CLIP文本编码器、大语言模型(LLM)等等。例如,文本编码器110可以是诸如转换器模型的自注意力编码器,例如,其包括后面跟着感知器层的自注意力层。上下文嵌入104也可以被称为文本提示102的编码表示,其提供计算上可修改的表示以供系统100处理。例如,上下文嵌入104可以是值的集合、向量或阵列(例如,以UNICODE或Base64编码)、字母数字值、符号或任何方便的编码。
GNN 121的序列包括多个GNN 120,每个GNN 120被配置为接收相应输入(c)。每个GNN 120被配置为处理它们的相应输入以生成相应输出图像通常,序列121包括生成初始输出图像(例如,在低分辨率下)的初始GNN和逐渐增加初始输出图像的分辨率的一个或多个后续GNN。例如,每个后续GNN可以包括超分辨率模型以提高分辨率。因此,用于初始GNN的相应输入包括上下文嵌入104,而用于每个后续GNN的相应输入包括由序列121中的先前GNN生成的输出图像。在一些情况下,对于每个后续GNN的相应输入可以包括在序列121中的较低深度处生成的一个或多个输出图像,这与仅紧接在前的GNN相反。这种情况也可以使用本文概述的技术来实现。在一些实施方式中,用于-个或多个后续GNN的相应输入还包括上下文嵌入104,其允许后续GNN以文本提示102为条件。在进一步的实施方式中,每个后续GNN的相应输入包括上下文嵌入104,在一些情况下,上下文嵌入104可以提高系统100的性能,例如,使得每个后续GNN生成以文本提示102为强条件的相应输出图像。在一些情况下,对一个或多个后续GNN的相应输入可以包括不同的调节信号,诸如不同文本提示的上下文嵌入的集合。在这些情况下,后续GNN可以基于不同的文本提示将其输入图像改变为不同类型的输出图像和/或生成作为文本提示之间的混合的输出图像。例如,初始GNN可以接收与文本提示“猫的照片”相关联的上下文嵌入的集合,并且后续GNN中的一个或多个可以接收与文本提示“猫的油画”相关联的上下文嵌入的集合。这种情况也可以例如在以下更详细描述的涉及噪声调节增强的实施方式中使用本文概述的技术来实现。
系统100通过序列121来处理上下文嵌入104,以产生具有很少的(如果有的话)伪像的高分辨率的输出图像106。输出图像106通常是最终输出图像,即序列121中的最终GNN的相应输出图像,但是更一般地,可以由序列121中任何GNN 120提供。
在一些实施方式中,输出图像106由后处理器130进一步处理以生成最终图像例如,后处理器130可以对输出图像106执行转换,诸如图像增强、运动模糊、过滤、亮度、镜头光斑、增亮、锐化、对比度以及其他图像效果。当GNN 120被适当地训练(例如,通过训练引擎)时,由后处理器130执行的一些或全部转换也可以由序列121执行。例如,GNN120可以学习这些转换,并将它们与包括在文本提示102中的相应文本修饰符相关联。在一些实施方式中,系统100不包括后处理器130,并且由序列121生成的输出图像106是最终图像108。或者,系统100可以禁用后处理器130,使得后处理器130对输出图像106执行的转换等效于识别操作。
在一些实施方式中,后处理器130可以对输出图像106执行分析,诸如图像分类和/或图像质量分析。后处理器130可以包括一个或多个神经网络,诸如卷积神经网络(CNN)、递归神经网络(RNN)和/或图像编码器,以执行这样的分类和/或分析。例如,后处理器130可以通过将输出图像106编码成视觉嵌入集合并将其与上下文嵌入104进行比较来确定输出图像106是否准确地描绘了文本提示102所描述的场景。在这些情况下,后处理器130可以包括与文本编码器110配对的图像编码器,诸如预先训练的文本图像编码器对,例如CLIP文本图像编码器对。这还提供了通过将视觉嵌入与上下文嵌入104进行比较来对序列121进行零样本(或半监督)训练的方法。换言之,序列121可以被训练(例如,通过训练引擎)以通过生成一旦被编码为视觉嵌入就忠实地重构上下文嵌入104的输出图像106来从基于文本的训练集合(与仅标记的文本图像训练集合相反)生成输出图像106。作为另一示例,后处理器130可以使用CNN和/或RNN以及使用客观图像质量分析(IQA)来确定输出图像106是否具有高分辨率、空间相干性、少量伪像等。
最终图像108描绘了由文本提示102描述的场景,并且由系统100以最终分辨率输出。例如,如图1A所示,最终图像108描绘了在雪地中佩戴空手道腰带的火龙果。因此,最终图像108由图1A中的对应文本提示102准确地加上字幕。图7示出了可以由图像生成系统100根据文本提示生成的图像的其他示例。
最终分辨率是图像108的信息内容的度量,即图像108的维度。如上所述,分辨率可以对应于像素分辨率,即,预定义长度(或预定义区域)上的多个独立像素因此,图像可以包括特定范围内的像素值(例如,对应于RGB或CMYK颜色通道)的大小的阵列,例如,[-1,1]之间的像素值,其中,更多(独立)像素提供更高的分辨率。在大多数情况下,最终图像108的最终分辨率等于输出图像106的分辨率R,但在一些实施方式中,例如,如果后处理器130调整输出图像106大小,则这些分辨率可能不同。
作为参考,图1A和图7所描绘的示例图像是以1024×1024像素的分辨率生成的。示例图像由实现三个基于扩散的GNN(DBGNN)的序列的图像生成系统生成,该三个基于扩散的GNN(DBGNN)包括采用基本图像生成模型的初始DBGNN和采用超分辨率模型的两个后续DBGNN。初始DBGNN以64×64的初始分辨率生成初始输出图像,并且两个后续DBGNN依次将分辨率增加4×4倍,使得第一个后续DBGNN实现64×64→256×256,且第二个后续DBGNN实现256×256→1024×1024。对于组合的总共30亿个神经网络参数,初始DBGNN具有20亿个参数,第一个后续DBGNN有6亿个参数并且第二个后续DBGNN有4亿个参数。
图1B是用于生成描绘由文本提示描述的场景的最终图像的示例过程200的流程图。为了方便起见,过程200将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的图像生成系统,例如图1A的图像生成设备100,可以执行过程200。
该系统接收包括以自然语言的文本词元的序列的输入文本提示(210)。
该系统使用文本编码器神经网络来处理输入文本提示,以生成输入文本提示的上下文嵌入的集合(220)。
该系统通过生成神经网络的序列来处理上下文嵌入,以生成描绘由输入文本提示描述的场景的最终输出图像(230)。
通常,序列121可以利用GNN 120的多种类型的生成模型中的任何一种。这种生成模型包括但不限于基于扩散的模型、生成对抗性网络(GANs)、变分自动编码器(VAE)、自回归模型、基于能量的模型、贝叶斯网络、基于流的模型、这些模型中的任何模型的分层版本(例如,连续或离散时间)等。
广义地说,序列121的目标是生成具有高度可控性的高分辨率图像的新实例,即,其以调节输入(例如,文本提示)为强条件。如上所述,序列121中的每个GNN 120处理相应调节输入c以生成相应输出图像其中,相应输入c包括文本提示和/或由序列121中先前的GNN生成的输出图像的上下文嵌入(u)的集合。也就是说,上下文嵌入也可以替换为不同的调节输入,诸如噪声输入、预存图像、视频、音频波形、这些中的任何一个的嵌入、它们的组合等。尽管本说明书通常涉及文本到图像生成,但是本文公开的图像生成系统不限于此。通过改变对于序列121的调节输入,图像生成系统可以应用于任何条件图像生成问题。关于图6A-6C描述了这种实施方式的示例,图6A-6C示出了根据噪声生成图像的示例图像生成系统101。
在序列121的上下文中,以多个分辨率生成条件图像的能力可能是有利的,因为它允许序列121在多个不同的空间尺度上学习,同时保持每个单独的GNN相对简单。这对于保持输出图像中的空间相干性是重要的,因为可以在序列121中的不同阶段捕获不同长度尺度的特征。例如,包括(i=0)个初始GNN和(i=1,2,...,n)个后续GNN的序列121的联合分布可以被表示为马尔可夫链:
其中,x(i)对应于特定分辨率R(i)的图像,其中,R(i)>R(i-1),并且pθ(x(i)|c(i))是特定GNN 120的相应似然分布,条件是c(i)=(x(i-1),u)。将其与直接生成最高分辨率pθ(x(n)|u)的图像的单个GNN相比较。单个GNN从中学习的数据量可以比GNN 121的序列小达到数量级。此外,序列121允许并行地学习与每个分辨率相关联的数据。为简洁起见,除非另外相关,否则放弃标识特定GNN 120的上标(i)。
为了生成强条件输出图像,GNN 120可以将其似然分布pθ(x|c)参数化为最大化数据(例如,从一个或多个文本图像训练集导出的数据)的对应对(x,c)的条件概率的似然分布。换言之,GNN 120可以实现参数化,该参数化在给定对应训练输入c的情况下使真实输出图像x的概率最大化,或者至少优化取决于训练数据(x,c)的某个目标函数Lθ(x,c)。这里,θ是指示似然分布的函数形式的GNN 120的相应网络参数集合。为了清楚起见,GNN 120实际生成的输出图像具有帽子符号其表示图像x是由“估计”的。如下面更详细地描述的,GNN 120可以根据实施方式以各种方式生成估计
GNN 120通过对图像x的潜在表示z(也就是图像的嵌入、编码或“标签”)上的中间分布进行建模来促进似然率参数化。例如,潜在z可以由GNN 120用来生成由特定调节输入c识别的特定类型的图像。潜在空间还可以为GNN 120提供组合、混合和压缩来自不同图像的信息的方法,使得序列121可以生成表面上不同于训练集合中出现的任何事物的图像的新实例。
首先考虑移动到潜在空间。也就是说,在潜在表示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的条件分布。条件分布允许GNN 120在给定其潜在表示z的情况下反转图像x,而先验分布允许GNN 120实现潜在表示本身的生成模型。例如,当GNN 120试图将调节输入c与潜在表示z强相关,使得pθ(z|c)在c周围高度局部化时,对先验分布进行建模可能是有利的。GNN120可以对各种不同的先验分布(诸如,自回归先验、扩散先验、正态分布等)进行建模。
因此,为了生成输出图像GNN 120可以处理调节输入c,并从先验分布z~pθ(z|c)中采样潜在。然后,GNN 120可以处理潜在z以从条件分布pθ(x|z,c)生成输出图像条件分布pθ(x|z,c)通常与c指定的图像类型相关联。GNN 120可以以许多不同的方式从条件分布生成输出图像例如,GNN 120可以从条件分布采样图像:
返回条件分布的平均值:
返回具有最高概率的图像:
使用算法从多个高概率图像和/或多个图像样本中进行选择,等等。由于输出图像通常是网络参数θ、采样潜在z和调节输入c的函数,因此GNN 120能够生成与c强相关的图像的新实例。特别地,GNN 120可以实现基于输入c有效地将随机采样的潜在z解码为图像x的参数化θ。因此,序列121的每个阶段的图像生成过程可以被理解为条件解码过程。
在一些实施方式中,GNN 120可以将先验分布建模为标准正态分布并且将条件分布建模为正态分布其中,μθ(z,c)和分别是作为z和c的函数的均值和方差。在这种情况下,GNN 120可以生成条件分布的均值和/或方差作为输出,并且然后根据均值和/或方差确定输出图像这可以促进直接的神经网络架构(例如,超分辨率模型),因为GNN 120可以根据z和c确定地生成x,而无需建模先验分布或直接参考条件分布。此外,这种参数化使得能够优化原本是不可微的随机项(例如,通过梯度下降方法)。例如,在使用重新参数化技巧后,来自条件分布的样本等价于其中,和⊙表示逐元素乘积。作为另一示例,返回条件分布的平均值等于因此,GNN 120可以至少部分地实现为以z和c为输入并生成μθ(z,c)和/或σθ(z,c)作为输出的神经网络。
条件分布和先验分布的特定形式通常取决于由特定GNN 120实现的生成模型及其假设、架构、参数化和训练机制。例如,目标函数Lθ(x,c)的类型、训练集合的类型和数量以及训练集合的统计数据可以影响特定模型的收敛性。在任何情况下,训练引擎都可以使用期望最大化(EM)算法来最大化GNN 120相对于其网络参数θ的似然率pθ(x|c),以确定条件分布和/或先验分布。
也就是说,EM算法和某些目标函数Lθ(x,c)在某些情况下可能在计算上难以处理,例如,当训练引擎使用相当大的训练集合、先验和/或条件分布特别复杂等时。在这些情况下,训练引擎可以同时对潜在表示上的后验分布qφ(z|x,c)进行建模,这可以在训练期间加速计算,例如,当训练引擎最大化证据下界(ELBO)时。后验分布描述了数据(x,c)如何被编码为潜在表示z。这里,φ是可以被包括在相应GNN 120或另一神经网络(例如,判别神经网络(DNN))中的网络参数的另一集合。GNN 120可以在训练期间从后验分布而不是先验分布进行采样,这可以显著减少收敛到合适的参数化θ所需的潜在z的数量,例如,当训练引擎同时相对于θ和φ优化目标函数Lθφ(x,c)时。在训练之后,GNN 120可以继续从先验分布进行采样。在一些实施方式中,训练引擎可以将后验分布建模为正态分布其中,μφ(x,c)和分别是作为x和c的函数的均值和方差。如上关于条件分布所述,这种形式的参数化可以帮助优化原本是不可微的随机项(例如通过梯度下降方法)。作为参考,与后验分布qφ(z|x,c)组合的条件分布pθ(x|z,c)通常被称为变分自动编码器(VAE),其中,θ是解码器参数,并且φ是编码器参数。
在一些实施方式中,GNN 120在图像生成和/或训练期间使用噪声调节增强。特别地,序列121中的每个后续GNN可以将噪声调节增强应用于它们各自的输入图像,这在一定程度上破坏了图像。这可以有助于促进序列121中不同GNN 120的并行训练,因为它降低了对序列121的一个阶段的输出图像和在训练下一阶段中使用的输入之间的域间隙(例如,由于伪像)的敏感性。例如,GNN 120可以在训练期间将具有随机信噪比的高斯噪声增强(例如,高斯噪声和/或模糊)应用于其输入图像。在干扰时间,GNN 120可以使用固定的信噪比(例如,大约3到5),其表示少量的增强,这有助于从前一阶段去除输出图像中的伪像,同时保留大部分结构。或者,GNN 120可以在推断时扫过信噪比的不同值以确定最高质量估计。
以下描述基于扩散的GNN(DBGNN)120的示例,其可以从潜在表示生成强条件输出图像。扩散模型通常有两种风格:(i)离散时间层次结构以及,以及,(ii)连续时间层次结构。任何一种方法都可以由GNN 120来实现。然而,连续时间扩散模型可能导致比离散时间版本更小的误差。例如,在某些情况下,连续时间扩散模型可以在离散时间版本上具有改进的证据下界(ELBO)。
在连续时间中,潜在表示由连续时间索引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)是给定x的情况下的zt的(前向)先验分布,其描述DBGNN 120如何将图像编码为潜在表示。q(zt|zs)是从zs到zt的前向转换分布,其描述了DBGNN 120如何在时间t>s内从zs确定新的潜在zt。对于DBGNN 120,通常假设前向分布独立于φ和c。换言之,前向(编码)过程通常不由DBGNN 120学习,并且可以用线性高斯来描述:
是前向转换分布的方差。参数αt和σt指定了噪声调度,其对数信噪比随t单调递减,直到前向先验分布在t=1时收敛到标准正态分布任何噪声调度都可以通过DBGNN 120来实现,诸如线性、多项式或余弦噪声调度等。
在一些实施方式中,DBGNN 120使用余弦噪声调度(例如,具有αt=cos(0.5πt)),其在产生高质量样本方面特别有效。下文中提供了关于不同的噪声调度的讨论:AlexanderQuinn Nichol and Prafulla Dhariwal,“Improved denoising diffusionprobabilistic models(改进的去噪声扩散概率模型),”International Conference onMachine Learning,PMLR,2021。在其他实施方式中,DBGNN 120可以例如通过参数化方差学习噪声调度,而不是假设噪声调度。在这个实施方式中,前向过程是学习模型。DBGNN 120还可以方差保持噪声调度使得潜在的方差在所有t上保持在相似的尺度。
DBGNN 120通过在反向时间方向上匹配前向过程来学习生成模型,生成从t=1开始并在t=0结束的zt。学习生成模型可以简化为学习对于所有t将zt~q(zt|x)去噪声为估计在对于zt=αtX+σt∈使用重新参数化技巧后,这种学习的去噪声可以由形式为下述形式的目标函数Lθ(x,c)表示:
这里,(x,c)是图像输入数据对,其具有从标准正态分布采样的和从0和1上的均匀分布采样的t~U(0,1)。Wt是DBGNN 120可以用来影响t的特定值的估计的质量的加权因子。DBGNN 12可以实现最小化目标函数θ=arg minθLθ(x,c)的参数化,它通常使ELBO最大化,从而使似然率pθ(x|c)最大化。可替换地,DBGNN 120可以实现最小化在所有训练对上平均的目标函数的参数化。平均目标函数可以提高估计的质量,但代价是似然率。注意,在一些实施方式中,DBGNN 120可以利用该目标函数的变化和/或在目标函数中加入额外的损失项,例如,如果学习了前向过程,则强调训练数据的某些特征,强调来自训练数据的特定示例等。例如,目标函数可以替代地或附加地包括L1损失,其中,平方范数被绝对范数||...||2取代。目标函数还可以包括其他合适的范数作为损失项,其表征和x之间的误差,诸如p范数、对某些像素加权的复合范数等。
在学习了合适的参数化θ之后,DBGNN 120可以然后基于调节输入c从潜在表示生成输出图像x。反向(解码)过程由联合分布pθ(x,z|c)描述,该联合分布在t=1时以标准高斯噪声开始,并且在t=0时以条件为c的输出图像结束。注意到s<t,联合分布可以被表示为:
pθ(x,z|c)=pθ(x,zs,zt|c)=pθ(x|zs,c)pθ(zs|zt,c)pθ(zt|c)
pθ(zt|c)是给定c的情况下的zt的(反向)先验分布,其确定DBGNN 120如何将输入c编码为潜在zt。由于噪声调度,反向先验分布在t=1时收敛到标准正态分布因此在反向过程开始时不以c为条件。与前向过程类似,pθ(zs|zt,c)是给定c时从zt到zs的反向转换分布,而pθ(x|zt,c)是给定zt和c时x的条件分布。
反向转换分布可以通过以下公式确定:
反向转换分布描述DBGNN 120如何对于时间s<t从给定的潜在zt中确定新的潜在zs,条件是c。在这种情况下,q(zs|zt,x)=q(zt|zs)q(zs|x)/q(zt|x)是前向过程的相反描述,并且可以用以下形式的正态分布来表示:
是作为zt和x的函数的反向描述的平均值,其可以被表示为:
是反向描述的方差。
条件分布pθ(x|zt,c)描述了DBGNN 120如何基于调节输入c将潜在zt解码为图像x。在完成反向过程之后,DBGNN 120可以在最终时间步长t=0处根据条件分布pθ(x|z0,c)来生成输出图像DBGNN 120可以以各种方式从条件分布生成输出图像例如,从条件分布采样,返回条件分布的平均值,返回具有最高概率的图像,使用算法从多个高概率图像和/或多个图像样本中进行选择,等等。DBGNN 120还可以以各种不同的方式对条件分布进行建模。然而,DBGNN 120的条件分布通常不是正态分布的,这可能使从其的建模和采样变得困难。下面描述了可以缓解这个问题的各种采样方法。注意,在涉及噪声调节增强的实施方式中(例如,在图像生成和/或训练期间),每个后续DBGNN的相应输入c还可以包括信号该信号控制应用于后续DBGNN的输入图像的增强的强度。
为了在反向过程期间对潜在进行采样,DBGNN 120可以使用离散时间祖先采样器,该离散时间祖先取样器具有从反向过程熵的下限和上限导出的采样方差。下文提供了祖先采样器的更多细节:Jonathan Ho,Ajay Jain,and Pieter Abbeel,“Denoising DiffusionProbabilistic Models(去噪声扩散概率模型),”NeurIPS,2020。从t=1时的反向先验分布开始,并在时间s<t内计算具有pθ(zs|zt,c)的转换,祖先采样器遵循更新规则:
∈是标准高斯噪声,γ是控制采样器随机性的超参数,并且s,t遵循从1到0的均匀间隔序列。更新规则允许DBGNN 120从先前的潜在zt和先前的估计生成新的潜在zs,直到达到z0,在这一点上,由DBGNN 120生成估计作为输出图像这种实施方式可能是特别有效的,因为DBGNN 120可以对标准高斯噪声进行采样,并直接生成估计作为输出,它可以用来确定zs并在下一步重复该过程。如上所述,这允许DBGNN 120根据zt和c确定地生成估计而无需直接参考反向转换和条件分布,从而促进了直接的神经网络架构(例如,超分辨率模型)。因此,DBGNN 120可以至少部分地实现为将zt和c作为输入并生成作为输出的神经网络。
作为祖先采样器的替代,DBGNN 120可以使用确定性去噪声扩散隐式模型(DDIM)采样器,如下文所述:Jiaming Song,Chenlin Meng,and Stefano Ermon,“Denoisingdiffusion implicit models(去噪声扩散隐式模型),”arXiv preprint arXiv:2010.02502(2020)。DDIM采样器是概率流常微分方程(ODE)的数值积分规则,它描述了如何使用去噪声模型将来自标准正态分布的样本确定地转换为来自图像数据分布的样本。
在一些实施方式中,DBGNN 120在图像生成和/或训练期间使用v预测参数化。在这种情况下,DBGNN 120生成辅助参数vt=αt∈-σtx的估计而不是直接生成图像x的估计DBGNN 120然后根据辅助参数的估计来确定图像的估计。估计v而不是x通常可以提高数值稳定性,以及支持诸如渐进提取的计算技术。渐进提取是一种算法,其通过将缓慢的教师扩散模型提取为更快的学生模型,在t上迭代地将采样步骤数减半,这可以将采样率加速达到数量级。例如,一些最先进的采样器可以采用多达8192个采样步骤,但当DBGNN 120使用渐进提取时,可以减少到少至4或8个步骤。DDIM采样器可与渐进提取相结合用于快速采样。因此,当实现v参数化时,DBGNN 120通常使用渐进提取。此外,对于序列121中以更高分辨率操作的任何后续DBGNN,v参数化可以避免可能影响高分辨率扩散模型的色移伪像,并且其可以避免有时与其他参数化(例如,∈参数化)一起出现的时间色移。在下文提供了关于扩散模型的v参数化和渐进提取的详细讨论:Tim Salimans andJonathan Ho,“Progressive Distillation for Fast Sampling ofDiffusion Models(扩散模型的快速采样的渐进提取),”ICLR,2022。作为参考,上述目标函数Lθ中的加权因子Wt=1+exp(λt)相当于标准v参数化的等效目标。
在一些实施方式中,DBGNN 120在图像生成和/或训练期间使用无分类器引导。无分类器引导可以提高输出图像x相对于给定条件输入c的保真度,并相当于使用下式调整估计
ω是引导权重,是条件模型的估计,并且 是无条件模型的估计。训练引擎可以通过放弃调节输入c来联合训练无条件模型和条件模型。特别是在训练期间,训练引擎可以周期性地(例如,随机地,根据算法)将调节输入c=0丢弃到DBGNN 120,使得DBGNN在真实图像x上无条件地训练特定数量的训练迭代。例如,训练引擎可以例如通过在真实图像上微调DBGNN 120在图像输入对(x,c)集合上有条件地训练DBGNN120,然后在该集合中的真实图像x上无条件地训练DBGNN 120。注意,上述线性转换可以在v参数化空间中等价地执行为对于ω>0,这种调整具有过度强调调节输入c的影响的效果,与常规条件模型相比,调节输入c可能产生较低多样性但通常具有较高质量的估计。
此外,大的引导权重(例如,约5个或更多、约10个或更多、约15个或更多)可以改善文本图像对准,但可能降低保真度,例如,产生饱和、空白或看起来不自然的图像。例如,在特定采样步骤t处的估计可以在真实图像x的边界之外生成,即,具有在范围[-1,1]之外的像素值。为了弥补这一点,DBGNN 120中的一个或多个可以使用静态阈值化或动态阈值化。
静态阈值化是指DBGNN 120在每个采样步骤t将其估计剪切到[-1,1]内的方法。静态阈值化可以当DBGNN使用大的引导权重时提高估计的质量并防止生成空白图像。
动态阈值化是指在每个采样步骤t,DBGNN 120将剪切阈值κ设置为估计中绝对像素值的特定百分位p的方法。换言之,剪切阈值κ是的特定值,该值大于由p定义的中的值的百分比,其中,|...|表示逐像素的绝对值。例如,p可以是约90%或更多、约95%或更多、约99%或更多、约99.5%或更多、约99.9%或更多和约99.95%或更多。如果κ>1,DBGNN 120将估计剪切到范围[-κ,κ],然后除以κ进行归一化。动态阈值化将饱和像素(例如,接近-1和1的像素)向内推,从而积极防止像素在每个采样步骤饱和。当DBGNN 120使用大的引导权重时,动态阈值化通常导致改善的真实感和图像文本对准。
可替换地或附加地,一个或多个DBGNN 120可以允许ω在每个采样步骤t在高引导权重(例如,约15)和低引导权重(如,约1)之间振荡。具体地,DBGNN 120中的一个或多个可以对一定数量的初始采样步骤使用恒定的高引导权重,随后在高引导权重和低引导权重之间振荡。这种振荡方法可以减少在输出图像中产生的饱和伪像的数量,特别是在序列121中的低分辨率阶段。
在涉及DDIM采样器、渐进提取和无分类器引导的实施方式中,DBGNN 120还可以并入随机采样器以实现两阶段提取方法。作为参考,一阶段渐进提取方法将经过训练的DDIM采样器提取为扩散模型,该模型只需少得多的采样步骤,而不损失太多的感知质量。在提取过程的每次迭代中,DBGNN 120将N步DDIM采样器提取成具有N/2步的新模型。DBGNN 120通过每次迭代将采样步骤t减半来重复该过程。通过下文将这种一阶段方法扩展到使用无分类器引导的采样器以及一种新的随机采样器:Chenlin Meng et al.,“On distillationof guided diffusion models(关于引导扩散模型的提取)”.arXiv preprint arXiv:2210.03142(2022)。DBGNN 120可以使用改进的两阶段方法来改进图像生成。特别地,在第一阶段,DBGNN 120学习与来自联合训练的条件和无条件扩散模型的组合输出相匹配的单个扩散模型,其中,组合系数由引导权重确定。DBGNN 120然后将渐进提取应用于单个模型,以产生在第二阶段涉及较少采样步骤的模型。在提取后,DBGNN 120使用随机N步采样器:在每个步骤,DBGNN 120首先应用一个具有两倍于原始步长的确定性DDIM更新(即,与N/2步采样器相同的步长),并且然后以原始步长执行一个随机后向步骤(即,受前向扩散过程后的噪声干扰)。在下文中更详细地描述了这种随机向后步骤执行:Karras,Tero,et al.,“Elucidating the design space of diffusion-based generative models(阐明基于扩散的生成模型的设计空间),”arXiv preprint arXiv:2206.00364(2022)。使用这种方法,DBGNN 120可以提取到少得多的采样步骤(例如,大约8个步骤),而输出图像的感知质量没有任何明显的损失。
图2A示出了GNN 121的示例序列的框图。序列121是作为在一个或多个位置中的一个或多个计算机上的计算机程序而实现的系统的示例,其中实现了下面描述的系统、组件和技术。
序列121或“级联”包括多个GNN 120.0-n,其中各自被配置为执行处理流水线中的特定步骤。特别地,序列121包括生成初始输出图像106.0的初始GNN 120.0,随后是一个或多个后续GNN 120.1-n。后续GNN 120.1-n通过基于接收到的输入图像生成相应输出图像106.i直到达到最终输出图像106.n来逐渐增加初始图像106.0的分辨率。
初始GNN 120.0被配置为接收文本提示102的上下文嵌入104的集合作为输入c(0)=(u)。初始GNN 120.0被配置为处理输入以生成初始输出图像初始图像106.0具有初始分辨率R(0)。初始分辨率R(0)也对应于初始输出图像106.0的维度,并且通常具有低维度(例如,64×64像素)。
如上所述,为了生成初始输出图像106.0,初始GNN 120.0可以从其先验分布pθ(z(0)|c(0))采样潜在表示z(0)。初始GNN 120.0然后可以处理潜在z(0),以根据其条件分布pθ(x(0)|z(0),c(0))生成初始输出图像例如,初始GNN 120.0可以从图像的条件分布采样图像,返回其条件分布的平均值,返回具有最高概率的图像,或者使用算法在多个高概率图像和/或采样图像之间进行选择。
在一些实施方式中,初始GNN 120.0是DBGNN。如上所述,初始DBGNN 120.0可以执行从t=1开始并在t=0结束的反向过程,以生成初始输出图像106.0。例如,初始DBGNN120.0可以在t=1从其(反向)先验分布采样潜在表示并且使用祖先采样器在每个采样步骤处连续更新潜在也就是说,初始DBGNN 120.0可以处理当前潜在表示并生成当前估计初始DBGNN 120.0然后可以使用s<t的更新规则从当前估计确定新的潜在初始DBGNN 120.0更新潜在,直到在t=0时达到然后输出对应估计作为初始输出图像在一些实施方式中,初始DBGNN 120.0在生成初始输出图像时使用v参数化、渐进提取、无分类器引导和/或静态或动态阈值化中的一个或多个。
每个后续GNN 120.i被配置为接收相应输入该输入包括由序列121中的先前GNN作为输出而生成的相应输入图像每个后续GNN 120.i被配置为处理相应输入以生成相应输出图像如上所述,每个后续GNN120.i还可以将噪声调节增强应用于其输入图像例如,高斯噪声调节。在一些实施方式中,一个或多个后续GNN 120.i的相应输入也包括文本提示102的上下文嵌入104。在进一步的实施方式中,每个后续GNN 120.i的相应输入包括上下文嵌入104。每个后续GNN 120.i的输入图像和输出图像分别具有输入分辨率R(i-1)和输出分辨率R(i)。输出分辨率高于输入分辨率R(i)>R(i-1)。因此,输出图像106.0-n的分辨率以及因此它们的维度不断增加R(n)>R(n-1)>…>R(0),直到达到最终输出图像106.n的最终分辨率R(n),该最终输出图像106.n通常具有高维度(例如,1024×1024像素)。例如,每个后续GNN 120.i可以接收具有k x k个像素的相应输入图像(例如,具有k个像素宽度和k个像素高度的图像),并生成具有2k×2k个像素或3k×3k个像素或4k×4k个像素或者5k×5k个像素等的相应输出图像。
如上所述,为了生成输出图像106.i,后续GNN 120.i可以从其先验分布pθ(z(i)|c(i))采样潜在表示z(i)。后续GNN 120.i然后可以处理潜在z(i),以根据其条件分布pθ(x(i)|z(i),c(i))生成输出图像例如,后续GNN 120.i可以从其条件分布采样图像,返回其条件分布的平均值,返回具有最高概率的图像,或者使用算法在多个高概率图像和/或采样图像之间进行选择。
在一些实施方式中,每个后续GNN 120.i是DBGNN。如上所述,后续DBGNN 120.i可以执行从t=1开始并在t=0结束的反向过程,以生成输出图像106.i。例如,后续DBGNN120.i可以在t=1从其(反向)先验分布采样潜在表示且使用祖先采样器在每个采样步骤处连续更新潜在也就是说,后续的DBGNN 120.i可以处理当前潜在并生成当前估计后续的DBGNN 120.i然后可以使用s<t的更新规则从当前估计确定新的潜在后续的DBGNN 120.i更新潜在直到在t=0处达到并且其后输出对应估计作为输出图像在一些实施方式中,后续的DBGNN120.i在生成其相应输出图像时使用v参数化、渐进提取、无分类器引导和/或静态或动态阈值化中的一个或多个。在涉及噪声调节增强的实施方式中,后续DBGNN 120.i的输入也可以包括控制应用于输入图像的调节增强的强度的信号
图2B是用于使用生成神经网络的序列来处理文本提示的上下文嵌入集合的示例过程230的流程图。为了方便起见,过程230将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的生成神经网络的序列,例如图2A的生成神经网序列121,可以执行过程230。
生成神经网络的序列包括初始生成神经网络和一个或多个后续生成神经网络。
初始生成神经网络接收上下文嵌入(232)。
初始生成神经网络处理上下文嵌入以生成具有初始分辨率的初始输出图像作为输出(234)。
对于每个后续生成神经网络:
后续生成神经网络接收相应输入,相应输入包括具有相应输入分辨率并且由序列中的先前生成神经网络生成为输出的相应输入图像(236)。在一些实施方式中,用于一个或多个后续生成神经网络的相应输入还包括上下文嵌入。在一些实施方式中,每个后续生成神经网络的相应输入包括上下文嵌入。
后续生成神经网络处理相应输入,以生成具有比相应输入分辨率高的相应输出分辨率的相应输出图像作为输出(238)。
在一些实施方式中,序列中的每个生成神经网络是基于扩散的生成神经网络。
图3示出了可以联合训练GNN 121的序列的示例训练引擎300的框图。训练引擎300是作为在一个或多个位置的一个或多个计算机上实现为计算机程序的系统的示例,其中实现了下面描述的系统、组件和技术。
训练引擎300例如从公开可用的训练集合或任何适当标记的文本图像训练集合获得训练示例310的集合。每个训练示例310包括:(i)描述特定场景的相应训练文本提示以及,(ii)描述该特定场景的对应真实图像(x)306。文本编码器神经网络110处理每个训练示例310的相应训练文本提示302,以生成训练文本提示302的对应上下文嵌入(u)304的集合。在一些实施方式中,文本编码器110在GNN 120.0-n的联合训练期间由训练引擎300进行预先训练并保持冻结111。在其他实施方式中。文本编码器110在一个或多个训练示例310上进行预先训练和微调。例如,训练引擎300可以首先在文本编码器110保持冻结111的情况下训练序列121中的每个GNN 120,并且然后在训练示例30中的一个或多个上微调文本编码器110,在一些情况下,这可以产生甚至更好的文本图像对准。特别地,由于上下文嵌入u=uψ取决于文本编码器110的网络参数ψ,因此训练引擎300可以进一步优化本文中关于ψ描述的任何目标函数,以微调文本编码器110。
训练引擎300将每个训练示例310的真实图像306的大小调整为GNN 120.0-n的适当输入和输出分辨率。这产生了按比例缩放为每个GNN 120.i的正确分辨率R(i)的真实输出图像x(i)306.i。例如,训练引擎300可以通过空间调整大小和/或裁剪将真实图像x调整大小到GNN 120.0-n的适当分辨率。在调整大小之后,训练引擎300可以并行地和/或单独地训练序列121中的每个GNN 120.i。考虑到这一点,训练引擎300还可以对序列121中的不同GNN120使用不同的优化方法(例如,随机梯度下降(SGD)方法)来更新它们的相应网络参数θ。例如,训练引擎300可以将Adafactor用于初始GNN 120.0,将Adam用于后续GNN 120.1到120.n,以及其他组合。SGD方法的其他示例包括但不限于动量、RMSProp、二阶Newton-Raphson算法等。序列121的模块化允许训练引擎300优化每个GNN 120.i的训练方案,以为整个处理流水线提供最佳性能。
训练引擎300在形式为(x(0),c(0))的图像输入数据对上训练初始GNN 120.0。这里,x(0)是被定大小为初始GNN 120.0的初始分辨率R(0)的真实初始输出图像306.0,并且c(0)=(u)是包括对应训练文本提示302的上下文嵌入304的相应训练输入。为了初始GNN 120.0学习适当的先验分布pθ(z(0)|c(0))和/或条件分布pθ(x(0)|z(0),c(0)),训练引擎300可以使用EM算法来最大化数据pθ(x(0)|c(0))相对于初始GNN 120.0的网络参数θ(0)的似然率。可替换地或附加地,训练引擎300可以例如使用随机梯度下降方法(SGD)相对于取决于x(0)和c(0)的θ(0)来优化目标函数Lθ(x(0),c(0))。在一些实施方式中,训练引擎300为初始GNN 120.0引入后验分布qφ(z(0)|x(0),c(0)),并且相对于例如对应于ELBO的θ(0)和φ(0)优化适当目标函数。当初始GNN 120.0是DBGNN时,训练引擎300可以最小化以下形式的目标函数:
其中,是从标准正态分布中采样的,并且t~U(0,1)是从0和1上的均匀分布中采样的。如上所述,初始DBGNN 120.0可以在训练期间使用v参数化、渐进提取、无分类器引导和/或静态或动态阈值化中的一个或多个。
训练引擎300在形式为(x(i),c(i))的图像输入数据对上训练后续GNN 120.i。这里,x(i)是基本真实输出图像306.i,其被定大小为后续GNN 120.i的输出分辨率R(i),并且c(i)=(x(i-1))是训练输入,其包括序列121中的先前GNN的基本真实输出图像x(i-1),其被定大小为其输出分辨率R(i-1)。如上所述,训练引擎300还可以将噪声调节增强应用于x(i-1),例如,高斯噪声调节。在一些实施方式中,训练输入c(i)=(x(i-1),u)还包括对应的训练文本提示302的上下文嵌入304。为了后续GNN 120.i学习适当的先验分布pθ(z(i)|c(i))和/或条件分布pθ(x(i)|z(i),c(i)),训练引擎300可以使用EM算法来最大化数据pθ(x(i)|c(i))相对于后续GNN120.i的网络参数θ(i)的似然率。可替换地或附加地,训练引擎300可以例如使用SGD下降方法相对于取决于x(i)和c(i)的θ(i)优化合适的目标函数Lθ(x(i),c(i))。在一些实施方式中,训练引擎300为后续GNN 120.i引入相应后验分布qφ(z(i)|x(i),c(i)),并且相对于例如对应于ELBO的θ(i)和φ(i)优化适当的目标函数。当后续GNN 120.i是DBGNN时,训练引擎300可以最小化以下形式的目标函数:
其中,是从标准正态分布中采样的,并且t~U(0,1)是从0和1上的均匀分布中采样的。如上所述,后续的DBGNN 120.i可以在训练期间使用v参数化、渐进提取、无分类器引导和/或静态或动态阈值化中的一个或多个。在涉及噪声调节增强的实施方式中,后续的DBGNN 120.i还可以将信号添加到训练输入该训练输入控制应用于x(i-1)的调节增强的强度。
图3B是用于联合训练生成神经网络的序列的示例过程400的流程图。为了方便起见,过程400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的训练引擎,例如图3A的训练引擎300,可以执行过程400。
训练引擎获得训练示例的集合,每个训练示例包括:(i)相应训练文本提示,以及,(ii)描绘由相应训练文字提示描述的场景的相应真实图像(410)。
训练引擎使用文本编码器神经网络来处理每个训练示例的相应训练文本提示,以生成训练文本提示的上下文嵌入的对应集合(420)。在一些实施方式中,文本编码器神经网络在生成神经网络的联合训练期间被训练引擎预先训练并保持冻结。
对于序列中的每个生成神经网络,训练引擎调整每个训练示例的相应真实图像的大小,以生成生成神经网络的对应真实输出图像(430)。
训练引擎在每个训练示例的上下文嵌入和真实输出图像的相应集合上联合训练生成神经网络(440)。
图4示出了可以由GNN 120实现的示例U-Net架构的框图。例如,初始GNN 120.0可以将U-Net架构实现为基础图像生成模型,并且一个或多个后续GNN 120.1-n可以将U-Net架构实现为超分辨率模型。为了便于描述,下面关于扩散模型和方形分辨率图像来描述图4中的U-Net架构,尽管该架构可以用于任何类型的生成模型和具有矩形分辨率的图像。例如,图4中的架构可以用于对GNN 120的条件分布的均值和方差进行建模。作为另一示例,图4中的架构可以被与不同大小的卷积核和步长适配,以对矩形分辨率图像执行下采样和上采样。图4中的虚线指示可选的层。
如图4所示,DBGNN 120可以包括输入块512(例如,包括一个或多个线性和/或卷积层),该输入块512被配置为在采样步骤t处处理图像的潜在表示(zt)705.t。在这种情况下,潜在图像705.t具有与DBGNN的输出图像106相同的分辨率(N×N)。后续的DBGNN 120.1-n可以通过调整输入图像105的大小并随后按通道级联到潜在图像705.t来以其相应输入图像105(分辨率为M×M)为条件,以生成具有输出分辨率(N×N)的级联图像。例如,后续的DBGNN120.1-n可以在按通道级联到潜在图像705.t之前使用双线性或双三次调整大小将输入图像105上采样到输出分辨率。因此,后续的DBGNN 120.1-n处理包括“堆叠”在潜在图像705.t上的其相应输入图像105的级联图像。初始DBNN 120.0不以输入图像为条件,因此直接处理潜在图像705-t。注意,后续的DBGNN 120.1-n可以以各种方式(例如通过处理输入图像105的预处理版本来锐化或增强某些特征)以其相应输入图像105为条件。后续的DBGNN 120.1-n也可以以某种特定的方式校正或修改输入图像105,以例如更改颜色。
输入块512之后是一系列K+1个下采样块(DBlock)510-0到510-K。每个DBlock 510被配置为接收由先前块生成为输出的相应输入图像。每个DBlock 510被配置为处理输入图像以生成相应输出图像,该输出图像相对于输入图像被下采样2×2的因子。DBlock 510之后是一系列K+1个上采样块(UBlock)520-0到510-K。每个UBlock 520被配置为接收由先前块生成为输出的相应输入图像。每个UBlock 520被配置为处理相应输入图像以生成相应输出图像,该输出图像相对于输入图像被上采样2×2的因子。DBlock 510和UBlock 520可以以适当的步长来实现一个或多个卷积层,以对它们相应输入图像进行下采样和上采样。UBlock 520还可以经由跳跃连接接收对应于UBlock 520的输入分辨率的、相应DBlock 510的输出图像。在一些实施方式中,跳跃连接按因子缩放,这可以提高DBGNN 120的性能。
DBGNN 120还可以将其网络参数从较高分辨率块(例如,块510-0、510-1、520-0和520-1)移位到较低分辨率块(如,块510-(K-1)、510-K、520-(K-1)和520-K)。由于较低分辨率块通常具有更多的信道,这允许DBGNN 120通过更多的网络参数来增加其模型容量,而没有显著的存储器和计算成本。
DBLOCK 510和UBLOCK 520中的一个或多个可以经由使用一个或多个自注意力层的注意力机制(例如,交叉注意力)以上下文嵌入(u)104为条件。可替换地或附加地,经由使用一个或多个中间层(例如,一个或多个池化层)的上下文嵌入的池化向量,DBLOCK 510和UBLOCK 520中的一个或多个可以以上下文嵌入104为条件。在一些实施方式中,DBLOCK 510和UBLOCK 520中的一个或多个可以以输出图像中预期的其他视觉特征为条件,该其他视觉特征例如与特定颜色或纹理特性或对象的位置有关,所有这些都可以由训练引擎300从训练图像中获得。
最后,可以由输出块522(例如,包括一个或多个稠密层)处理最终UBlock 520-0的输出图像,以生成采样步骤t的估计图像706.t。然后,DBGNN 120可以使用当前估计706.t,以使用更新规则(例如,祖先采样器更新规则)来确定下一采样步骤s<t的潜在图像(zs)705.s。
DBGNN 120可以对新的潜在705.s重复上述过程,以此类推,直到达到最终采样步骤t=0,并且然后产生当前估计图像706.t作为输出图像106。因此,DBGNN 120可以在t=1的采样步骤中将随机采样的潜在图像z1迭代地去噪声为在最终采样步骤t=0输出的输出图像106。
图5A-5C示出了用于高效U-Net架构的示例神经网络层块的框图。图5A-5C中的层块可以在图4所示的U-Net架构中实现,以提高存储器效率,减少推断时间,并提高利用这样的架构的GNN 120的收敛速度。
图5A是用于高效U-Net架构的示例残差块(ResNetBlock)500的框图。ResNetBlock500通过以下层序列来处理输入图像:组归一化(GroupNorm)层502、swish激活层504、卷积(Conv)层506-1、另一GroupNorm层502、另一swish层504和另一卷积层506-1。卷积层506-2与处理相同输入图像的层序列并行。层序列和卷积层202的相应输出图像被求和以生成ResNetblock 500的输出图像。ResNetBlock 500的超参数是通道的数量(channels:int)。
图5B是用于高效U-Net架构的示例下采样块(DBlock)210的框图。
DBlock 510包括以下层序列:卷积层506-3、CombineEmbs层513、根据图5A配置的一个或多个ResNetBlocks 500以及SelfAttention层514。卷积层506-3对DBlock 510执行下采样操作。CombineEmbs层513(例如,池化层)可以接收条件嵌入103(例如,上下文嵌入104的池化向量、扩散采样步骤),以提供用于DBlock 510的文本提示调节。一个或多个ResNetBlocks 500对于DBlock 510执行卷积操作。SelfAttention层514可以对DBlock 510执行注意力机制,诸如对上下文嵌入104的交叉注意力,以提供进一步的文本提示调节。例如,上下文嵌入104可以级联到SelfAttention层514的键值对。
DBlock 510的超参数包括:如果存在下采样的情况下的DBlock 510的步幅(stride:Optional[Tuple[int,int]])、每个DBlock 510的ResNetBlock500的数量(numResNetBlocksPerBlock:int)以及通道的数量(channels:int)。图5B中的虚线框是可选的,例如,不是每个DBlock 510都需要下采样或需要自注意力。
注意,在典型的U-Net DBlock中,下采样操作发生在卷积操作之后。在这种情况下,经由卷积层506-3实现的下采样操作发生在经由一个或多个ResNetBlocks 500实现卷积操作之前。这种相反的顺序可以显著地提高DBlock 210的前向通过的速度,而很少或没有性能下降。
图5C是用于高效U-Net架构的示例上采样块(UBlock)520的框图。
UBlock 520包括以下层序列:CombineEmbs层513、根据图5A配置的一个或多个ResNetBlocks 500、SelfAttention层514和卷积层506-3。CombineEmbs层513(例如,池化层)可以接收条件嵌入103(例如,上下文嵌入104的池化向量、扩散时间步长),以提供用于UBlock 520的文本提示调节。一个或多个ResNetBlocks 500对于UBlock 520执行卷积操作。SelfAttention层514可以对UBlock 520执行注意力机制,诸如对上下文嵌入104的交叉注意力,以提供进一步的文本提示调节。例如,上下文嵌入104可以级联到SelfAttention层514的键值对。卷积层506-3对UBlock 520执行上采样操作。
UBlock 520的超参数包括:如果存在上采样的情况下的UBlock 520的步幅(stride:Optional[Tuple[int,int]])、每个UBlock 520的ResNetBlocks 500的数量(numResNetBlocksPerBlock:int)以及通道的数量(channels:int)。图5C中的虚线框是可选的,例如,不是每个UBlock 520都需要下采样或需要自注意力。
注意,在典型的U-Net UBlock中,上采样操作发生在卷积操作之前。在这种情况下,经由卷积层506-3实现的上采样操作发生在经由一个或多个ResNetBlocks 500实现卷积操作之后。这种相反的顺序可以显著地提高UBlock 520的前向通过的速度,而很少或没有性能下降。
图5D示出了可以由后续GNN 120.1-n实现为用于64×64→256×256输入至输出图像放大的超分辨率模型的示例高效U-Net架构的框图。图5D中的架构与图4类似地布置,具有配置为卷积层506-4的输入块512、根据图5B配置的一系列五个DBLOCK 510-0到510-4、根据图5C配置的一系列五个UBLOCK 520-0到520-4以及配置为稠密层516的输出块522。
图6A示出了可以从噪声生成图像的示例图像生成系统101的框图。图像生成系统101是被实现为在一个或多个位置的一个或多个计算机上的计算机程序的系统的示例,其中实现了下面描述的系统、组件和技术。
尽管本说明书总体上针对文本到图像的生成,但是本文公开的图像生成系统不限于此,并且可以应用于任何条件图像生成问题。例如,图6A所示的图像生成系统101可以从噪声生成图像,这相当于改变对图1A的图像生成设备100的调节输入,例如,用噪声输入114代替文本提示102。一般来说,调节输入可以是任何期望的输入,诸如预存图像、视频、音频波形、这些的嵌入、它们的组合等等。
图像生成系统101可以从噪声分布p(v)140采样噪声输入(v)114。例如,噪声分布140可以是二项式分布、正态分布、泊松分布、贝塔分布、库马拉斯瓦米分布或任何期望的噪声(或概率)分布。系统101可以响应于诸如用户生成或自动生成的查询的查询来对噪声输入114进行采样。例如,系统101可以接收查询以生成随机图像,并且然后从噪声分布140采样噪声输入114。系统101通过GNN序列121处理噪声输入114以生成最终输出图像106.n,在一些实施方式中,该最终输出图像由后处理器130进一步处理以生成最终图像108。如上所述,后处理器130可以将转换应用于输出图像106.n,对输出图像106.n进行图像分类,和/或对输出图像106.n进行图像质量分析,等等。在这种情况下,最终图像108描绘了随机场景,因为序列121以随机噪声输入114为条件,这与描述特定场景的文本提示102相反。
总之,序列121包括初始GNN 120.0和一个或多个后续GNN 120.1-n。初始GNN120.0被配置为接收噪声输入114作为调节输入c(0)=(v)。初始GNN 120.0被配置为处理调节输入以生成初始输出图像初始输出图像106.0具有初始分辨率R(0)。每个后续GNN 120.i被配置为接收相应输入该输入包括由序列121中的先前GNN作为输出生成的相应输入图像每个后续GNN 120.i被配置为处理相应输入以生成相应输出图像在一些实施方式中,一个或多个后续GNN 120.i的相应输入还包括噪声输入在进一步的实施方式中,每个后续GNN 120.i的相应输入包括噪声输入114。每个后续GNN 120.i的输入图像和输出图像分别具有输入分辨率R(i-1)和输出分辨率R(i)。输出分辨率高于输入分辨率R(i)>R(i-1)。GNN 120.0-n可以利用上面针对GNN和DBGNN描述的任何技术来基于调节输入c(i)来生成输出图像GNN 120.0-n还可以利用关于图4和5A-5D描述的任何神经网络架构。
训练引擎(例如,图3A的训练引擎300)可以训练序列121,以便以与文本类似的方式从噪声中生成输出图像训练涉及对图3A中概述的训练方案的轻微修改,因为训练集合通常包括未标记的图像而不是标记的文本图像对。也就是说,训练引擎可以在非常大的图像集合上训练系统101的序列121,因为图像不需要被标记。例如,训练引擎可以从大型公共数据库中获得未标记的图像。
在这种情况下,训练引擎可以从联合分布(x,v)~p(x,v)对真实图像和噪声输入的对进行联合采样。联合分布p(x,v)=p(x|v)p(v)描述了数据的统计。这里,p(v)是噪声分布140,并且p(x|v)是在给定v的情况下的x的似然率。似然率可以由训练引擎以各种方式建模,以将随机采样的噪声输入v与真实图像x相关联。例如,训练引擎可以将似然率建模为正态分布使得x定位在μ(v)周围并且与v高度相关。在对数据对(x,v)进行采样之后,训练引擎然后可以将采样的真实图像x根据GNN 120.0-N的适当输入和输出分辨率调整大小。
训练引擎可以在形式为(x(0),c(0))的采样图像输入对上训练初始GNN 120.0。这里,x(0)是被定大小为初始GNN 120.0的初始分辨率R(0)的真实初始输出图像,并且c(0)=(v)是包括对应噪声输入114的相应训练输入。训练引擎可以在形式为(x(i),c(i))的采样图像输入对上训练后续GNN 120.i。这里,x(i)是被定大小为后续GNN 120.i的输出分辨率R(i)的真实输出图像,并且c(i)=(x(i-1))是训练输入,其包括序列121中的先前GNN的真实输出图像x(i-1),其被定大小为其输出分辨率R(i-1)。在一些实施方式中,训练输入c(i)=(x(i-1),v)还包括对应的噪声输入114。训练引擎可以使用上面针对GNN和DBGNN描述的任何技术来在图像输入数据对上训练序列121。
图6B是用于从噪声生成图像的示例过程的流程图。为了方便起见,过程600将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的图像生成系统101,例如图6A的图像生成系统101,可以执行过程600。
该系统从噪声分布采样噪声输入(610)。噪声分布可以是例如高斯噪声分布。噪声输入可以是噪声图像,例如,其中,从噪声分布对噪声图像中的每个像素值进行采样。
该系统通过生成神经网络的序列处理噪声输入,以生成最终输出图像(620)。下面参考图6C更详细地描述使用生成神经网络的序列从噪声生成图像的示例过程。
图6C是使用生成神经网络的序列从噪声生成图像的示例过程的流程图。为了方便起见,过程620将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的生成神经网络的序列,例如图6A的生成神经神经网络的序列121,可以执行过程620。
生成神经网络的序列包括初始生成神经网络和一个或多个后续生成神经网络。
初始生成神经网络接收噪声输入(622)。
初始生成神经网络处理噪声输入以生成具有初始分辨率的初始输出图像作为输出(624)。
对于每个后续生成神经网络:
后续生成神经网络接收相应输入,相应输入包括具有相应输入分辨率并且由序列中的先前生成神经网络生成作为输出的相应输入图像(626)。在一些实施方式中,用于一个或多个后续生成神经网络的相应输入还包括噪声输入。在一些实施方式中,每个后续生成神经网络的相应输入包括噪声输入。
后续生成神经网络处理相应输入,以生成具有比相应输入分辨率高的相应输出分辨率的相应输出图像作为输出(628)。
在一些实施方式中,序列中的每个生成神经网络是基于扩散的生成神经网络。例如,参考图1B,在整个说明书中描述了基于扩散的生成神经网络的示例实施方式。
本说明书结合系统和计算机程序组件使用术语“被配置”。对于被配置为执行特定操作或动作的一个或多个计算机的系统意味着系统已经在其上安装了软件、固件、硬件或它们的组合,其在运行中使得系统执行操作或动作。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当由数据处理装置执行时使装置执行操作或动作的指令。本说明书中描述的主题和功能操作的实施例可以被实现在数字电子电路中、在有形地实施的计算机软件或固件中、在计算机硬件(包括本说明书中公开的结构及其结构等同物)中或在它们的一个或多个的组合中。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合。替代地或补充地,程序指令可以编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,其被生成以编码信息以便传输到合适的接收器装置以供数据处理装置执行。
术语“数据处理装置”指数据处理硬件,并且涵盖用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。装置也可以是或还包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,装置可以可选地包括创建用于计算机程序的执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
也被称为程序、软件、软件应用、app、模块、软件模块、脚本或代码的计算机程序可以以任何形式的编程语言编写,该任何形式的编程语言包括编译或解释语言或者声明性或过程语言;并且该计算机程序可以以包括作为独立程序或作为适于在计算环境中使用的模块、组件、子例程或其他单元的任何形式部署。程序可以但不需要对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、在专用于所涉及的程序的单个文件中或者在多个协同文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署为在一个计算机上或在位于一个地点或分布在多个地点并通过通信网络互连的多个计算机上执行。
在本说明书中,术语“数据库”广泛用于指任何数据合集:数据不需要以任何特定方式进行结构化,或者根本不结构化,并且它可以存储在一个或多个位置中的存储设备上。因此,例如,索引数据库可以包括多个数据合集,每个数据合集可以被不同地组织和访问。
类似地,在本说明书中,术语“引擎”广泛用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件。在某些情况下,一个或多个计算机将专用于特定的引擎;在其他情况下,可以在同一台计算机或多个计算机上安装和运行多个引擎。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如FPGA或ASIC)或专用逻辑电路和一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或实行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括或可操作地耦合以从-个或多个大容量存储设备接收数据或将数据传输到一个或多个大容量存储设备,所述一个或多个大容量存储设备用于存储数据,例如是磁盘、磁光盘或光盘。但是,计算机不需要这样的设备。此外,计算机可以嵌入在另一设备中,另一设备例如移动电话、个人数字助理(PDA)、移动音频或图像播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器),此处仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如:半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及,CD ROM和DVD-ROM盘。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)和键盘以及,指示设备(例如,鼠标或轨迹球)的计算机上实现,用户可以通过显示设备和键盘以及,指示设备向计算机提供输入。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机可以通过下述方式来与用户交互:向用户使用的设备发送文档和从用户使用的设备接收文档;例如,响应于从web浏览器接收的请求将网页发送到用户设备上的web浏览器。此外,计算机可以通过向个人设备(例如,运行消息收发应用的智能电话)发送文本消息或其他形式的消息并且从用户接收响应消息作为回报来与用户交互。
用于实现机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产的公共和计算稠密部分,即推断、工作负载。
可以使用机器学习框架(例如,TensorFlow框架)来实现和部署机器学习模型。
本说明书中描述的主题的实施例可以实现在计算系统中,该计算系统包括例如作为数据服务器的后端组件,或者包括例如应用服务器的中间件组件,或者包括例如具有图形用户界面、Web浏览器或app的客户端计算机的前端组件,或者包括一个或多个这样的后端、中间件或前端组件的任何组合,用户可以通过该图形用户界面、Web浏览器或app与本说明书中描述的主题的实施方式交互。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)(例如,因特网)。
计算系统可包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如,HTML页面)发送到用户设备,例如,用于向与作为客户端的设备交互的用户显示数据和从用户接收用户输入的目的。可以在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。
虽然本说明书包含许多具体的实施方式细节,但是这些不应被解释为对任何发明的范围或可以要求保护的范围的限制,而是解释为特定于特定发明的特定实施例的特征的描述。在单独实施例的上下文中在本说明书中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管特征可以在上面被描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合中切除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变体。
类似地,虽然操作对应地描绘在附图中并且以特定顺序在权利要求中叙述了操作,但是这不应该被理解为要求以所示的特定顺序或按顺序执行这些操作,或者执行所有示出的操作,以实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以被一起集成在单个软件产品中或被打包成多个软件产品。
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,在权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,对应于附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。
Claims (20)
1.一种由一个或多个计算机执行的方法,所述方法包括:
接收包括自然语言中的文本词元的序列的输入文本提示;
使用文本编码器神经网络处理所述输入文本提示以生成所述输入文本提示的上下文嵌入的集合;以及
通过生成神经网络的序列处理所述上下文嵌入,以生成描绘由所述输入文本提示描述的场景的最终输出图像,其中,所述生成神经网络的序列包括:
初始生成神经网络,所述初始生成神经网络被配置为:
接收所述上下文嵌入;以及
处理所述上下文嵌入以生成具有初始分辨率的初始输出图像作为输出;以及
一个或多个后续生成神经网络,每个后续生成神经网络被配置为:
接收相应输入,所述相应输入包括:(i)所述上下文嵌入,以及(ii)具有相应输入分辨率并且由所述序列中的先前生成神经网络生成为输出的相应输入图像;以及
处理所述相应输入以生成具有比所述相应输入分辨率高的相应输出分辨率的相应输出图像作为输出。
2.根据权利要求1所述的方法,其中,所述文本编码器神经网络是自注意力编码器神经网络。
3.根据任一前述权利要求所述的方法,其中:
所述序列中的所述生成神经网络已经在训练示例的集合上被联合训练,每个训练示例包括:(i)相应训练文本提示,以及(ii)描绘由所述相应训练文字提示描述的场景的相应真实图像;以及
所述文本编码器神经网络已经被预先训练,并且在所述序列中的所述生成神经网络的所述联合训练期间保持冻结。
4.根据任一前述权利要求所述的方法,其中,所述序列中的每个生成神经网络是基于扩散的生成神经网络。
5.根据权利要求4所述的方法,其中,所述基于扩散的生成神经网络已经使用无分类器引导进行了训练。
6.根据权利要求4-5中任一项所述的方法,其中,对于每个后续的基于扩散的生成神经网络,处理所述相应输入以生成所述相应输出图像作为输出包括:
对具有所述相应输出分辨率的潜在图像进行采样;以及
历经步骤序列将所述潜在图像去噪声为所述相应输出图像,包括,对于不是所述步骤序列中的最后步骤的每个步骤:
接收用于所述步骤的潜在图像;
处理所述步骤的所述相应输入和所述潜在图像,以生成所述步骤的估计图像;
对所述步骤的所述估计图像的像素值进行动态阈值化;以及
使用所述步骤的所述估计图像和随机采样的噪声来生成下一步骤的潜在图像。
7.根据权利要求6所述的方法,对于所述步骤序列中的所述最后步骤,还包括:
接收所述最后步骤的潜在图像;以及
处理所述最后步骤的所述相应输入和所述潜在图像以生成所述相应输出图像。
8.根据权利要求6-7中任一项所述的方法,其中,处理所述步骤的所述相应输入和所述潜在图像以生成所述步骤所述估计图像包括:
对所述相应输入图像调整大小以生成具有所述相应输出分辨率的相应调整大小的输入图像;
将所述步骤的所述潜在图像与相应调整大小的输入图像级联,以生成所述步骤的级联图像;以及
在所述上下文嵌入上用交叉注意力处理所述步骤的所述级联图像,以生成所述步骤的所述估计图像。
9.根据权利要求6-8中任一项所述的方法,其中,对所述步骤的所述估计图像的像素值进行动态阈值化包括:
基于所述步骤的所述估计图像的所述像素值来确定剪切阈值;以及
使用所述剪切阈值对所述步骤的所述估计图像的所述像素值进行阈值化。
10.根据权利要求9所述的方法,其中,基于所述步骤的所述估计图像的所述像素值来确定所述剪切阈值包括:
基于所述步骤的所述估计图像中的特定百分位绝对像素值来确定所述剪切阈值。
11.根据权利要求9-10中任一项所述的方法,其中,使用所述剪切阈值对所述步骤的所述估计图像的所述像素值进行阈值化包括:
将所述步骤的所述估计图像的所述像素值剪切到由[-κ,κ]定义的范围,其中,κ是所述剪切阈值。
12.根据权利要求11所述的方法,其中,使用所述剪切阈值对所述步骤的所述估计图像的所述像素值进行阈值化还包括:
在对所述步骤的所述估计图像的所述像素值进行剪切之后,将所述步骤的所述估计图像的所述像素值除以所述剪切阈值。
13.根据任一前述权利要求所述的方法,其中,每个后续生成神经网络将噪声调节增强应用于所述相应输入图像。
14.根据任一前述权利要求所述的方法,其中,所述最终输出图像是所述序列中的最终生成神经网络的所述相应输出图像。
15.根据任一前述权利要求所述的方法,其中,每个后续生成神经网络接收相应k x k输入图像并生成相应4k x 4k输出图像。
16.一种由一个或多个计算机执行的方法,所述方法包括:
从噪声分布采样噪声输入;以及
通过生成神经网络的序列处理所述噪声输入以生成最终输出图像,其中,所述生成神经网络的序列包括:
初始生成神经网络,所述初始生成神经网络被配置为:
接收所述噪声输入;以及
处理所述噪声输入以生成具有初始分辨率的初始输出图像作为输出;以及
一个或多个后续生成神经网络,每个后续生成神经网络被配置为:
接收相应输入,所述相应输入包括:(i)所述噪声输入,以及(ii)具有相应输入分辨率并且由所述序列中的先前生成神经网络生成为输出的相应输入图像;以及
处理所述相应输入以生成具有比所述相应输出分辨率高的相应输出分辨率的相应输出图像作为输出。
17.根据权利要求16所述的方法,其中,所述序列中的每个生成神经网络是基于扩散的生成神经网络。
18.根据权利要求16-17中任一项所述的方法,其中,所述基于扩散的生成神经网络已经使用无分类器引导进行了训练。
19.一种系统,包括:
一个或多个计算机;以及
一个或多个存储设备,所述一个或多个存储设备存储指令,所述指令当被所述一个或多个计算机执行时,使所述一个或多个计算机执行权利要求1-18中任一项所述的相应方法。
20.一个或多个存储指令的计算机可读存储介质,所述指令当由一个或多个计算机执行时,使所述一个或多个计算机执行根据权利要求1-18中任一项所述的相应方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263344038P | 2022-05-19 | 2022-05-19 | |
US63/344,038 | 2022-05-19 | ||
PCT/US2023/022971 WO2023225344A1 (en) | 2022-05-19 | 2023-05-19 | Generating images using sequences of generative neural networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117561549A true CN117561549A (zh) | 2024-02-13 |
Family
ID=86896064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202380012461.8A Pending CN117561549A (zh) | 2022-05-19 | 2023-05-19 | 利用生成神经网络的序列生成图像 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11978141B2 (zh) |
EP (1) | EP4341914A1 (zh) |
JP (1) | JP2024534744A (zh) |
CN (1) | CN117561549A (zh) |
WO (1) | WO2023225344A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118096923A (zh) * | 2024-03-20 | 2024-05-28 | 北京邮电大学 | 人工智能绘图方法、装置及系统和存储介质 |
CN118333101A (zh) * | 2024-06-12 | 2024-07-12 | 上海岩芯数智人工智能科技有限公司 | 一种参数量可变的神经网络模型构建方法及装置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117557674B (zh) * | 2024-01-11 | 2024-04-26 | 宁波特斯联信息科技有限公司 | 基于人机交互的图片处理方法、装置、设备以及存储介质 |
CN117649351B (zh) * | 2024-01-30 | 2024-04-19 | 武汉大学 | 一种基于扩散模型的工业缺陷图像仿真方法及装置 |
CN118196121B (zh) * | 2024-04-08 | 2024-09-20 | 兰州交通大学 | 一种基于去噪扩散概率模型的乳腺超声图像分割方法 |
CN118097318B (zh) * | 2024-04-28 | 2024-07-26 | 武汉大学 | 基于视觉语义融合的可控缺陷图像生成方法及设备 |
CN118552912A (zh) * | 2024-07-30 | 2024-08-27 | 浙江大华技术股份有限公司 | 周界规则生成方法及电子设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10748314B2 (en) * | 2018-02-15 | 2020-08-18 | Microsoft Technology Licensing, Llc | Controllable conditional image generation |
EP3731154A1 (en) * | 2019-04-26 | 2020-10-28 | Naver Corporation | Training a convolutional neural network for image retrieval with a listwise ranking loss function |
US11574392B2 (en) * | 2020-02-27 | 2023-02-07 | Adobe Inc. | Automatically merging people and objects from multiple digital images to generate a composite digital image |
US11322133B2 (en) * | 2020-07-21 | 2022-05-03 | Adobe Inc. | Expressive text-to-speech utilizing contextual word-level style tokens |
US11868730B2 (en) * | 2020-09-23 | 2024-01-09 | Jingdong Digits Technology Holding Co., Ltd. | Method and system for aspect-level sentiment classification by graph diffusion transformer |
WO2022072921A1 (en) * | 2020-10-04 | 2022-04-07 | Strong Force Iot Portfolio 2016, Llc | Industrial digital twin systems and methods with echelons of executive, advisory and operations messaging and visualization |
US12067659B2 (en) * | 2021-10-15 | 2024-08-20 | Adobe Inc. | Generating animated digital videos utilizing a character animation neural network informed by pose and motion embeddings |
US20230230198A1 (en) * | 2022-01-14 | 2023-07-20 | Adobe Inc. | Utilizing a generative neural network to interactively create and modify digital images based on natural language feedback |
-
2023
- 2023-05-19 US US18/199,883 patent/US11978141B2/en active Active
- 2023-05-19 WO PCT/US2023/022971 patent/WO2023225344A1/en active Application Filing
- 2023-05-19 JP JP2023578976A patent/JP2024534744A/ja active Pending
- 2023-05-19 CN CN202380012461.8A patent/CN117561549A/zh active Pending
- 2023-05-19 EP EP23732735.8A patent/EP4341914A1/en active Pending
-
2024
- 2024-04-02 US US18/624,960 patent/US20240249456A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118096923A (zh) * | 2024-03-20 | 2024-05-28 | 北京邮电大学 | 人工智能绘图方法、装置及系统和存储介质 |
CN118333101A (zh) * | 2024-06-12 | 2024-07-12 | 上海岩芯数智人工智能科技有限公司 | 一种参数量可变的神经网络模型构建方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US11978141B2 (en) | 2024-05-07 |
WO2023225344A1 (en) | 2023-11-23 |
US20230377226A1 (en) | 2023-11-23 |
EP4341914A1 (en) | 2024-03-27 |
JP2024534744A (ja) | 2024-09-26 |
US20240249456A1 (en) | 2024-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117561549A (zh) | 利用生成神经网络的序列生成图像 | |
US10671889B2 (en) | Committed information rate variational autoencoders | |
US10692185B2 (en) | Generative methods of super resolution | |
Kingma et al. | Glow: Generative flow with invertible 1x1 convolutions | |
US20240320965A1 (en) | Generating videos using sequences of generative neural networks | |
KR20240065281A (ko) | 벡터-양자화된 이미지 모델링 | |
US12118692B2 (en) | Image super-resolution | |
CN112365422B (zh) | 基于深层聚合网络的不规则缺失图像修复方法及其系统 | |
CN116681584A (zh) | 一种多级扩散图像超分辨算法 | |
Moser et al. | Diffusion models, image super-resolution and everything: A survey | |
CN116740223A (zh) | 基于文本生成图像的方法 | |
CN118037885A (zh) | 将输入图像嵌入到扩散模型 | |
US20220398697A1 (en) | Score-based generative modeling in latent space | |
WO2024086598A1 (en) | Text-driven image editing via image-specific finetuning of diffusion models | |
Luhman et al. | High fidelity image synthesis with deep vaes in latent space | |
Björk et al. | Simpler is better: Spectral regularization and up-sampling techniques for variational autoencoders | |
Yang et al. | ZeroSmooth: Training-free Diffuser Adaptation for High Frame Rate Video Generation | |
CN110648291B (zh) | 一种基于深度学习的无人机运动模糊图像的复原方法 | |
Tack et al. | Efficient meta-learning via error-based context pruning for implicit neural representations | |
US20240281924A1 (en) | Super-resolution on text-to-image synthesis with gans | |
US20240355017A1 (en) | Text-Based Real Image Editing with Diffusion Models | |
US20220405583A1 (en) | Score-based generative modeling in latent space | |
DE202023101550U1 (de) | Erzeugen von Videos unter Verwendung von Sequenzen generativer neuronaler Netze | |
Armstrong et al. | TRANSFORMER, DIFFUSION, AND GAN-BASED AUGMENTATIONS FOR CONTRASTIVE LEARNING OF VISUAL REPRESENTATIONS | |
WO2024163624A1 (en) | Video editing using diffusion models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |