The embodiments described herein pertain generally to generating an object using a diffusion model. More specifically, the embodiments described herein pertain to generating an object from text and/or image input using a pre-trained text-to-image diffusion-based generative model.
A text-to-image model is a machine learning model that may be used to receive a natural language description (e.g., text) as an input and generate an image that matches the description. Some text-to-image models may be used to generate collages of images by arranging existing component images from e.g., a database of clip art. Some text-to-image models may be able to generate more complex images such as compositions based on the input text (e.g., “an astronaut riding a horse”). Some techniques, such as style transfer, can combine two images (a first image and a second image) together so that the resultant output image retains core elements of the first image but appears to be painted in the style of the second image. Other techniques, such as prompt interpolation, includes interpolating two different text prompts in a text latent space (i.e., a representation of compressed data in which similar data points are closer together in space) before being used for image generation. When using prompt interpolation, in cases where the two concepts are extremely dissimilar (e.g., a living object and a non-living object), the generated image is typically dominated by one of the concepts.
In one example embodiment, a method for generating an object using a diffusion model includes obtaining a first input and a second input, and synthesizing an output object from the first input and the second input. The synthesizing of the output object includes generating a layout of the output object from the first input, injecting the second input as a content conditioner to the layout of the output object, and de-noising the layout of the output object injected with the content conditioner to generate a content of the output object.
Embodiments described herein may provide examples of synthesizing an object of mixed concepts (e.g., synthesizing a raccoon-alike coffee machine from concepts “raccoon” and “coffee machine”; synthesizing a new species from concepts “rabbit” and “tiger”; etc.) while the synthesized object being photo-realistic. Embodiments described herein may also provide examples of blending two semantics that are highly dissimilar. It is to be understood that rendering such imaginary scenes or objects (e.g., the raccoon-alike coffee machine, the new species synthesized from “rabbit” and “tiger”, etc.) may be challenging due to the non-existence of such objects in the real world.
The accompanying drawings illustrate various embodiments of systems, methods, and embodiments of various other aspects of the disclosure. Any person with ordinary skills in the art will appreciate that the illustrated element boundaries (e.g. boxes, groups of boxes, or other shapes) in the figures represent one example of the boundaries. It may be that in some examples one element may be designed as multiple elements or that multiple elements may be designed as one element. In some examples, an element shown as an internal component of one element may be implemented as an external component in another, and vice versa. Non-limiting and non-exhaustive descriptions are described with reference to the following drawings. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating principles. In the detailed description that follows, embodiments are described as illustrations only since various changes and modifications may become apparent to those skilled in the art from the following detailed description.
In the following detailed description, particular embodiments of the present disclosure are described herein with reference to the accompanying drawings, which form a part of the description. In this description, as well as in the drawings, like-referenced numbers represent elements that may perform the same, similar, or equivalent functions, unless context dictates otherwise. Furthermore, unless otherwise noted, the description of each successive drawing may reference features from one or more of the previous drawings to provide clearer context and a more substantive explanation of the current example embodiment. Still, the example embodiments described in the detailed description, drawings, and claims are not intended to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented herein. It will be readily understood that the aspects of the present disclosure, as generally described herein and illustrated in the drawings, may be arranged, substituted, combined, separated, and designed in a wide variety of different configurations, all of which are explicitly contemplated herein.
It is to be understood that the disclosed embodiments are merely examples of the disclosure, which may be embodied in various forms. Well-known functions or constructions are not described in detail to avoid obscuring the present disclosure in unnecessary detail. Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a basis for the claims and as a representative basis for teaching one skilled in the art to variously employ the present disclosure in virtually any appropriately detailed structure.
Additionally, the present disclosure may be described herein in terms of functional block components and various processing steps. It should be appreciated that such functional blocks may be realized by any number of hardware and/or software components configured to perform the specified functions.
The scope of the disclosure should be determined by the appended claims and their legal equivalents, rather than by the examples given herein. For example, the steps recited in any method claims may be executed in any order and are not limited to the order presented in the claims. Moreover, no element is essential to the practice of the disclosure unless specifically described herein as “critical” or “essential”.
As referenced herein, “text-to-image model” or “text-to-image generative model” may refer to a machine learning model that may be used to receive a natural language description (e.g., text) as an input and produce an image that matches the natural language description. It is to be understood that a text-to-image model typically includes a language model (which may be used to transform the received text input into a latent representation) and a generative image model (which may be used to produce an image conditioned on that latent representation). It is also to be understood that in the field of artificial intelligence and/or machine learning, training a text-to-image model typically requires a dataset of images that are paired with one or more text captions. It is further to be understood that “pre-trained” may indicate that a machine learning model has been trained and the corresponding training checkpoint has been used. A “pre-trained” text-to-image model may refer to a text-to-image model that has been trained on sufficient image and text data e.g., scraped from the web, a database, the cloud, etc.
As referenced herein, “diffusion model” or “diffusion-based model” in machine learning may refer to a diffusion probabilistic model and/or a latent variable model. It is to be understood that diffusion models are designed to learn the latent structure of a dataset by modeling the way in which data points diffuse through the latent space. For example, in computer vision, diffusion models include a neural network that is trained to de-noise images blurred with Gaussian noise to reverse the diffusion process. It is also to be understood that diffusion models may be applied to a variety of tasks, including image de-noising, in-painting, super-resolution, image generation, etc. For example, utilization of an image generation diffusion model may start with a random noise image and then, after having been trained to reverse the diffusion process performed on natural images, the diffusion model may be implemented to generate new natural images. It is further to be understood that given an image (“x0”) randomly sampled from a real data distribution, there can be two processes in a diffusion model: (1) a forward process (or referred to as a diffusing process, a diffusion process, etc.) that repeatedly adds Gaussian noise to the sample to generate a diffused sample so that the sample gradually becomes Gaussian noise after a certain amount (e.g., the number T) of operations or iterations (x0→xT), and (2) a reverse process (or referred to as a de-noising process, etc.) that repeatedly de-noises given a Gaussian noise input (e.g., the diffused sample, etc.) to generate a de-noised output (xT→x0).
It is to be understood that a diffusion process may be a continuous-time Markov process with continuous sample paths. The diffusion process may corrupt a sample (e.g., an image, etc.) by adding Gaussian noise to the sample. As referenced herein, “Gaussian noise” may denote a type of signal noise that has a probability density function equal to that of the normal distribution (also known as the Gaussian distribution). It is also to be understood that a de-noising process (or noise reduction process) may be a process of removing noise from a sample. It is further to be understood that in some example embodiments, the de-noising process may distort the sample to a certain degree.
It is to be understood that “pre-trained text-to-image diffusion-based generative model” may refer to a pre-trained (described above), diffusion-based (having a diffusing process and a de-noising process from a diffusion model, described above), text-to-image generative model (described above). In an example embodiment, a text-to-image diffusion-based generative models may refer to a diffusion-based generative model that accepts a text input and synthesizes an image matching the text input. It will be appreciated that a machine learning model, such as a text-to-image diffusion-based generative model, may transform an input text into a latent representation to produce an image conditioned on that latent representation.
As referenced herein, “conditioning input” or “conditioning” or “conditioner” may refer to the input on which an operation of a process of the machine learning model is conditioned (e.g., to generate an output consistent with the conditioner). In the embodiments described and recited herein, “conditioning input,” “conditioning,” and “conditioner” may be used interchangeably without deviating from the intended meaning and/or scope.
It is to be understood that a text prompt may be a conditioner for a text-to-image model to generate an image that is semantically consistent with the text prompt e.g., by optimizing the latent vector or the generator to maximize the similarity between the text prompt and the image. That is, the text-to-image model may generate an image conditioned on or consistent with the conditioner (e.g., a text prompt).
It is to be understood that an object (e.g., an image, etc.) may include metadata (such as keywords, tags, or descriptions associated with the object) and non-metadata such as features of the object (e.g., color, shape, texture, element or component or part, position of the element, or any other information that may be derived from the object itself) rather than the metadata. As referenced herein, the “layout” of an object may refer to the shape, the color, the texture, and/or the position of the element(s) of the object within the object. As referenced herein, the “content” of an object may refer to non-metadata information (e.g., the element, the component, the part, and/or the category of the object, etc.) of the object other than the layout.
As referenced herein, “content conditioner” may refer to a content input (e.g., content of an object corresponding to a text input, etc.) on which an operation of a process of a machine learning model is conditioned (e.g., to generate a content of an output consistent with the content conditioner). For example, in a pre-trained text-to-image diffusion-based generative model, a content conditioner may be injected or applied or added e.g., by performing a de-noising process to generate the content of an image conditioned on or consistent with the content conditioner. It is to be understood that a text prompt may be a content conditioner for a text-to-image diffusion-based generative model to generate a content of an image consistent with the text prompt e.g., by optimizing the latent vector or the generator to maximize the similarity between the text prompt and the content of the image. That is, the text-to-image diffusion-based generative model may generate a content of an image conditioned on or consistent with the content conditioner (e.g., a text prompt).
As referenced herein, “similarity” may refer to a numeric value representing a degree of how close two objects (e.g., two images, two concepts corresponding to respective objects, etc.) are when the two objects are compared. It is to be understood that a similarity between two objects may be determined by using e.g., technologies such as sum of squared differences, mutual information, normalized mutual information, cross-correlation, etc. In an example embodiment, the higher the similarity (or value), the more contextually similar the two objects are. In such embodiment, a similarity (or value) “0” may indicate that the two objects are completely different. It is to be understood that in another example embodiment, the lower the similarity (or value), the more contextually similar the two objects are. In such embodiment, a similarity (or value) “0” may indicate that the two objects are identical.
The system 100 may include a source 110 and a generator 120. In an example embodiment, the source 110 may be an electronic device (e.g., 700 of
The generator 120 may receive input 180 from the source 110, and generate an object based on the received input 180 (see e.g., description of
In an example embodiment, the control logic 160 may include a plurality of operations or functions (see e.g., descriptions of
In an example embodiment, the diffusing module 140 may include a plurality of diffusion operations or functions (see e.g., descriptions of
As shown in
The first input (210 or 220) may serve as an input for a layout generation process (see descriptions of
In an example embodiment, the first input 210 is an image of a raccoon, and the second input 230 is a text “coffee machine” (e.g., a text prompt, etc.). The output 240 is an image of a raccoon-like coffee machine that is synthesized from the image of the raccoon and the text “coffee machine” using a pre-trained text-to-image diffusion-based generative model. In another example embodiment, the first input 210 is a text “raccoon” (e.g., a text prompt, etc.), and the second input 230 is a text “coffee machine” (e.g., a text prompt, etc.). The output 240 is an image of a raccoon-alike coffee machine synthesized from the text “raccoon” and the text “coffee machine” using a pre-trained text-to-image diffusion-based generative model. The output 240 has the layout (e.g., color, shape, position, texture, etc.) of elements of the raccoon, and the content (the coffee machine) of the output 240 may look like the raccoon. For example, the layout of the raccoon may include the layout of the elements such as the ears, the eyes, the mouth, the nose, the body, the limbs, and/or any other elements of the raccoon. The content (the raccoon-alike coffee machine) of the output 240 may be a coffee machine with elements of the coffee machine having the layout (e.g., color, shape, position, texture, etc.) of the corresponding elements of the raccoon such that the coffee machine may look like the raccoon.
In an example embodiment, the diffusing module executes a forward process (also referred to as a diffusing process, a diffusion process, etc.). See the dotted-line arrows in
In an example embodiment, the de-noising module may execute a reverse process (or referred to as a de-noising process, etc.). See the solid-line arrows in
In an example embodiment, the process 400 includes a layout generation process (or a layout semantic generation process) and a content generation process (or a content semantic generation process). The layout generation process may include receiving and/or using an image or a text as an input (the first input, e.g., from the source 110 of
As shown in
In some embodiments, the total number of de-noising operations or iterations in a diffusing module may be T. In an example embodiment, when the first input is an image of a raccoon, the image of the raccoon may be corrupted by adding noise (e.g., Gaussian noise) for k operations or iterations (1<=k<=T) to generate the layout xlayout, k of the output object. It is to be understood that such process (generating the layout based on the image input) may be a diffusion process.
In another example embodiment, when the first input is a “raccoon” text input, a random noise (e.g., a Gaussian) and the “raccoon” text input may be fed into a pre-trained text-to-image diffusion-based generative model, and the layout xlayout, k of the output object may be generated by executing a de-noising process of the model for a number (T−k) operations or iterations. It is to be understood that such process (generating the layout based on the text input) may be a de-noising process.
As shown in
It is also to be understood that the processing flow 401 may include one or more operations, actions, or functions as illustrated by one or more of blocks 405, 410, 415, 420, 425, 430, 435, 440, 445, and 450. These various operations, functions, or actions may, for example, correspond to software, program code, or program instructions executable by a processor that causes the functions to be performed. Although illustrated as discrete blocks, obvious modifications may be made, e.g., two or more of the blocks may be re-ordered; further blocks may be added; and various blocks may be divided into additional blocks, combined into fewer blocks, or eliminated, depending on the desired implementation. Processing flow 401 may begin at block 405.
At block 405 (Obtain first input and second input), the processor may obtain or receive a first input (e.g., an image, a text, etc., for the layout generation process) and a second input (e.g., a text, etc. as a content conditioner for the content generation process) from e.g., the source 110 of
At the optional block 410 (Determine operation numbers (T, k)), the processor may generate a similarity value (e.g., N) by comparing an object corresponding to the first input and an object corresponding to the second input. The processor may determine the number of operation or the number of iterations (T, k) for the diffusion process and/or the de-noising process based on, e.g., the similarity and/or any other suitable factors. In an example embodiment, the number T may be 50, and the number k may be 25. In another example embodiment, the number T may be 1000, and the number k may be 500. It is to be understood that T and k are referenced herein only as non-limiting examples. That is, the number of T and/or k described herein are provided for descriptive purposes only and are not intended to be limiting. In another example embodiment, the processor may obtain or receive the operation numbers (T, k) e.g., from the source 110 of
In an example embodiment, to improve the mixing or blending quality, the processor may adjust (e.g., increase, decrease, etc.) the number k to control the content generation and/or provide flexibility of what the generated content may look like. For example, when the first input is an image of a rabbit (see the source image of
It is to be understood that a desired injection time (or a desired k, the desired number of operations or iterations) may be determined based on the determined semantic similarity value N between the two concepts. For example, as shown in the upper row of the images in
Back to
At block 420 (Diffuse first input (k)), the processor may diffuse or corrupt the first input image by adding noise (e.g., Gaussian noise) for k operations or iterations (determined at block 410) to generate the layout xlayout, k of the output object. It is to be understood that such process (generating the layout based on the image input) may be a diffusion process. It is also to be understood that the process at block 420 may be implemented e.g., by the diffusing module 140 of the model 130 of
At block 425 (De-noise first input (T−k)), the processor may feed, apply, or send a random noise (e.g., a Gaussian) and the first input text into the model 130 of
At block 430 (Inject second input), the processor may inject or apply or add the second input (e.g., a text, etc.) as a content conditioner (to be applied to the layout xlayout, k) to the model 130 of
At block 435 (De-noise inject layout (k)), the processor may receive the layout xlayout, k generated from the layout generation process (e.g., at block 420 or 425), run the de-noising process of the model for k operations or iterations with the injected second input to generate a content of the output object and/or to generate the output object itself (e.g., including both the layout and the content) for mixing or blending an object corresponding to the first input and an object corresponding to the second input. It is to be understood that such process (generating the content of the output object or generating the output object based on the layout xlayout, k and the content conditioner) may be a de-noising process. It is also to be understood that the process at blocks 430 and/or 435 may be implemented e.g., as part of the control logic 160 of the generator 120 (e.g., for passing or sending the second input to the model 130) and/or by the de-noising module 150 of the model 130 of
At the optional block 440 (Apply weight), the processor may apply weighted text-image or image-text cross-attention (e.g., by changing a weight value s) when running the model (e.g., the diffusion process and/or the de-noising process), e.g., to the conditioner. As referenced herein, “attention” may refer to a technique that mimics cognitive attention. The effect of attention may enhance some parts of the input data while diminishing other parts. Learning which part of the data is to be enhanced rather than or before another depends on the semantic context. It is to be understood that text-image or image-text cross-attention may enable attention with context from both image and text, and may infer the text-image or image-text similarity by aligning image region and text features.
It is also to be understood that the processor may re-weigh (e.g., by changing a weight value s) the text-image or image-text cross-attention to increase or reduce the magnitude of a concept. For example, for a text-image cross-attention map M (a real data distribution in the space of the number of spatial and text tokens) and a conditional prompt y=“a photo of tiger”, the map M may be scaled corresponding to the “tiger” token with a value “s” while keeping the remaining map M unchanged. In an example embodiment, “s” may range from −D to D, with D being a number (for example, D=2, etc.). In an example embodiment, as shown in
In another example embodiment, applying a negative “s” (e.g., to the conditioner) may lead to a different behavior: given a rabbit image and a conditioning prompt y=“a photo of rabbit”, using a negative value “s” may amount to executing the model (e.g., the diffusion process and/or the de-noising process) to generate an image with a layout similar to that of rabbit while its content is non-rabbit. In the example embodiment of
Back to
At the optional block 445 (Apply re-mix), the processor may repeatedly add noise (e.g., to an intermediate output during the de-noising process at block 435) and de-noising (e.g., the diffused/corrupted intermediate output) for a number of operations or iterations when executing the model 130. For example, when two concepts or objects (e.g., corresponding to the first input and the second input respectively) are not well blended (e.g., the resultant content is completely dominated by the content conditioner), the processor may repeatedly add noise (e.g., to an intermediate output during the de-noising process at block 435) and de-noising (e.g., the diffused/corrupted intermediate output) to improve the mixing or blending quality. In an example embodiment, given the model prediction xk-1 using xk (e.g., a de-noising operation or iteration in a diffusion model, where xk-1 is the intermediate output, see the description of
Back to
At block 450 (Generate output object), the processor may generate the output object using the model 130 of
It is to be understood that the process at block 450 may be implemented e.g., as part of the control logic 160 of the generator 120 (e.g., for passing or sending the second input to the model 130) and/or in the de-noising module 150 of the model 130 of
As shown in
As shown in
As shown in
As shown in
It is to be understood that other applications (e.g., “identity mixing”, for mixing of two human identities where the synthesized human contains the distinctive features of the mixed identities; “pose transfer”, for synthesizing a human identity with a desired pose of another object or human, where the original identity is no longer preserved; etc.) of generating an object of mixed concepts may be developed and implemented using the features in the embodiments disclosed herein. It is also to be understood that the applications described herein may pave a new direction in the computational graphics field and provides new possibilities for artificial intelligence-aided designs for artists in many fields, such as entertainment, cinematography, and computer-generated imagery effects.
As depicted, the computer system 700 may include a central processing unit (CPU) 705. The CPU 705 may perform various operations and processing based on programs stored in a read-only memory (ROM) 710 or programs loaded from a storage device 740 to a random-access memory (RAM) 715. The RAM 714 may also store various data and programs required for operations of the system 700. The CPU 705, the ROM 710, and the RAM 720 may be connected to each other via a bus 720. An input/output (I/O) interface 725 may also be connected to the bus 720.
The components connected to the I/O interface 725 may further include an input device 730 including a keyboard, a mouse, a digital pen, a drawing pad, or the like; an output device 735 including a display such as a liquid crystal display (LCD), a speaker, or the like; a storage device 740 including a hard disk or the like; and a communication device 745 including a network interface card such as a LAN card, a modem, or the like. The communication device 745 may perform communication processing via a network such as the Internet, a WAN, a LAN, a LIN, a cloud, etc. In an embodiment, a driver 750 may also be connected to the I/O interface 725. A removable medium 755 such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like may be mounted on the driver 750 as desired, such that a computer program read from the removable medium 755 may be installed in the storage device 740.
It is to be understood that the processes described with reference to the flowchart of
It is also to be understood that features in the embodiments described herein may provide a semantic blending process to synthesize, generate, or create an object of mixed concepts with high fidelity. Features in the embodiments described herein may also provide a pre-trained text-to-image diffusion-based generative model, and factorize the semantic blending process into (1) a layout generation process, responsible for describing the shape and color layout of the synthesis, and (2) a content generation process for injecting the desired concept for mixing. Features in the embodiments described herein may further provide better control and flexibility over the generated content by, e.g., (1) controlling the time (step or operation or iteration) for injection of content conditioner, (2) re-weighting image-text cross-attention, and (3) re-mix by repeatedly corrupting and de-noising an intermediate output to improve the mixing or blending quality.
It is to be understood that the disclosed and other solutions, examples, embodiments, modules and the functional operations described in this document can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this document and their structural equivalents, or in combinations of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more them. The term “data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this document can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., a field programmable gate array, an application specific integrated circuit, or the like.
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random-access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
It is to be understood that different features, variations and multiple different embodiments have been shown and described with various details. What has been described in this application at times in terms of specific embodiments is done for illustrative purposes only and without the intent to limit or suggest that what has been conceived is only one particular embodiment or specific embodiments. It is to be understood that this disclosure is not limited to any single specific embodiments or enumerated variations. Many modifications, variations and other embodiments will come to mind of those skilled in the art, and which are intended to be and are in fact covered by both this disclosure. It is indeed intended that the scope of this disclosure should be determined by a proper legal interpretation and construction of the disclosure, including equivalents, as understood by those of skill in the art relying upon the complete disclosure present at the time of filing.
It is appreciated that any one of aspects can be combined with each other.
Aspect 1. A method for generating an object using a diffusion model, the method comprising: obtaining a first input and a second input; and synthesizing an output object from the first input and the second input by: generating a layout of the output object from the first input; injecting the second input as a content conditioner to the layout of the output object; and de-noising the layout of the output object injected with the content conditioner to generate a content of the output object.
Aspect 2. The method of aspect 1, wherein the generating of the layout of the output object includes corrupting the first input by adding Gaussian noise.
Aspect 3. The method of aspect 2, wherein the first input is an image, the second input is a text, and the synthesizing of the output object is performed using a pre-trained text-to-image diffusion-based generative model.
Aspect 4. The method of aspect 2 or aspect 3, wherein a number of operations for corrupting the first input is equal to a number of operations for de-noising the layout of the output object injected with the content conditioner.
Aspect 5. The method of aspect 4, further comprising: when an object corresponding to the first input and an object corresponding to the second input have a similarity greater than a threshold value, decreasing the number of operations for de-noising the layout of the output object injected with the content conditioner.
Aspect 6. The method of aspect 4 or aspect 5, further comprising: when an object corresponding to the first input and an object corresponding to the second input have a similarity not greater than a threshold value, increasing the number of operations for de-noising the layout of the output object injected with the content conditioner.
Aspect 7. The method of any one of aspects 1-6, wherein the generating of the layout of the output object includes: applying a random noise to the first input; and de-noising the first input applied with the random noise to generate the layout of the output object.
Aspect 8. The method of aspect 7, wherein the noise is Gaussian noise.
Aspect 9. The method of aspect 7 or aspect 8, wherein the first input is a text, and the second input is a text.
Aspect 10. The method of aspect 9, wherein de-noising the first input applied with the random noise includes de-noising the first input applied with the random noise using a pre-trained text-to-image diffusion-based generative model.
Aspect 11. The method of aspect 10, wherein a number of operations for de-noising the first input applied with the random noise, combined with a number of operations for de-noising the layout of the output object injected with the content conditioner, is equal to a number of operations for the model de-noising a noise input to generate an image.
Aspect 12. The method of aspect 11, further comprising: when an object corresponding to the first input and an object corresponding to the second input have a similarity greater than a threshold value, decreasing the number of operations for de-noising the layout of the output object injected with the content conditioner.
Aspect 13. The method of aspect 11 or aspect 12, further comprising: when an object corresponding to the first input and an object corresponding to the second input have a similarity not greater than a threshold value, increasing the number of operations for de-noising the layout of the output object injected with the content conditioner.
Aspect 14. The method of any one of aspects 1-13, wherein the output object is an image.
Aspect 15. The method of any one of aspects 1-14, further comprising: applying a weight to the content conditioner to adjust a number of elements corresponding to the second input to be injected to the layout of the output object.
Aspect 16. The method of aspect 15, further comprising: increasing the weight to increase the number of elements corresponding to the second input to be injected to the layout of the output object.
Aspect 17. The method of aspect 15 or aspect 16, further comprising: decreasing the weight to decrease the number of elements corresponding to the second input to be injected to the layout of the output object.
Aspect 18. The method of any one of aspects 15-17, wherein the weight is a positive weight for adding elements corresponding to the second input to the layout of the output object.
Aspect 19. The method of any one of aspects 15-18, wherein the weight is a negative weight for replacing elements corresponding to the second input with elements not corresponding to the second input.
Aspect 20. The method of any one of aspects 1-19, further comprising: during de-noising the layout of the output object injected with the content conditioner, diffusing an intermediate output object and then de-noising the diffused intermediate output object.
Aspect 21. A non-transitory computer-readable medium having computer-executable instructions stored thereon that, upon execution, cause one or more processors to perform operations comprising: obtaining a first input and a second input; and synthesizing an output object from the first input and the second input by: generating a layout of the output object from the first input; injecting the second input as a content conditioner to the layout of the output object; and de-noising the layout of the output object injected with the content conditioner to generate a content of the output object.
Aspect 22. The computer-readable medium of aspect 21, wherein the generating of the layout of the output object includes: applying a random noise to the first input; and de-noising the first input applied with the random noise to generate the layout of the output object.
Aspect 23. The computer-readable medium of aspect 21 or aspect 22, wherein the operations further comprise: applying a weight to the content conditioner to adjust a number of elements corresponding to the second input to be injected to the layout of the output object.
Aspect 24. A generator for generating an object using a diffusion model, the generator comprising: a control logic module to obtain a first input and a second input; a model to synthesize an output object from the first input and the second input by: generating a layout of the output object from the first input; injecting the second input as a content conditioner to the layout of the output object; and de-noising the layout of the output object injected with the content conditioner to generate a content of the output object.
Aspect 25. The generator of aspect 24, further comprising: an enhancer to apply a weight to the content conditioner to adjust a number of elements corresponding to the second input to be injected to the layout of the output object.
Aspect 26. The generator of aspect 24 or aspect 25, wherein the model is a pre-trained text-to-image diffusion-based generative model.
The terminology used in this specification is intended to describe particular embodiments and is not intended to be limiting. The terms “a,” “an,” and “the” include the plural forms as well, unless clearly indicated otherwise. The terms “comprises” and/or “comprising,” when used in this specification, specify the presence of the stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, and/or components.
With regard to the preceding description, it is to be understood that changes may be made in detail, especially in matters of the construction materials employed and the shape, size, and arrangement of parts without departing from the scope of the present disclosure. This specification and the embodiments described are exemplary only, with the true scope and spirit of the disclosure being indicated by the claims that follow.