Diffusers documentation

DreamLite

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

DreamLite

DreamLite es un modelo de texto a imagen y edición de imágenes de ByteDance. Combina un U-Net 2D personalizado (DreamLiteUNetModel) con el codificador multimodal Qwen3-VL como codificador de prompts / instrucciones de imagen, y utiliza un VAE AutoencoderTiny (estilo TAESD) para la codificación y decodificación rápida de latentes.

Se exponen dos pipelines:

PipelineModosCFGCaso de uso
DreamLitePipelinetexto a imagen y edición de imagen (seleccionado automáticamente según si image es None)CFG dual de 3 ramas (guidance_scale en la rama de texto, image_guidance_scale en la rama de imagen, al estilo de InstructPix2Pix)Máxima calidad
DreamLiteMobilePipelinetexto a imagen y edición de imagen (seleccionado automáticamente según si image es None)Ninguna — destilada, un solo paso de UNet por iteraciónEn el dispositivo / baja latencia

Puntos de control oficiales:

Ambos pipelines detectan automáticamente el modo de texto a imagen frente a edición de imagen según si se proporciona el argumento image. No existe una clase Img2Img separada.

Al cargar una imagen de entrada para editarla, se prefiere diffusers.utils.load_image(...) sobre PIL.Image.open(...) sin procesar. load_image aplica una conversión a RGB y la orientación EXIF, dos aspectos que el pipeline asume. Un Image.open simple de una fuente RGBA / de paleta / rotada por EXIF producirá silenciosamente un condicionamiento latente diferente y degradará la calidad de la salida.

Texto a imagen (Base)

import torch
from diffusers import DreamLitePipeline

pipe = DreamLitePipeline.from_pretrained("carlofkl/DreamLite-base", revision="diffusers", dtype=torch.bfloat16)
pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"

image = pipe(
    prompt="a dog running on the grass",
    negative_prompt="",
    height=1024,
    width=1024,
    num_inference_steps=28,
    generator=torch.Generator("cpu").manual_seed(42),
).images[0]
image.save("dreamlite_t2i.png")

Edición de imágenes (Base)

Pase una image para entrar en modo de edición. Tanto guidance_scale (rama de texto) como image_guidance_scale (rama de imagen) están activos aquí.

import torch
from diffusers import DreamLitePipeline
from diffusers.utils import load_image

pipe = DreamLitePipeline.from_pretrained("carlofkl/DreamLite-base", revision="diffusers", dtype=torch.bfloat16)
pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"

source = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/cat.png")

image = pipe(
    prompt="turn the cat into a corgi",
    image=source,
    height=1024,
    width=1024,
    num_inference_steps=28,
    generator=torch.Generator("cpu").manual_seed(42),
).images[0]
image.save("dreamlite_edit.png")

Texto a imagen (móvil)

El pipeline móvil está destilado y omite por completo el CFG: una sola pasada de UNet por paso. Acepta los mismos argumentos prompt / height / width / num_inference_steps, pero ignora guidance_scale y image_guidance_scale si se pasan (se registra una advertencia).

import torch
from diffusers import DreamLiteMobilePipeline

pipe = DreamLiteMobilePipeline.from_pretrained("carlofkl/DreamLite-mobile", revision="diffusers", dtype=torch.bfloat16)
pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"

image = pipe(
    prompt="a dog running on the grass",
    height=1024,
    width=1024,
    num_inference_steps=4,
    generator=torch.Generator("cpu").manual_seed(42),
).images[0]
image.save("dreamlite_mobile_t2i.png")

Edición de imágenes (Móvil)

import torch
from diffusers import DreamLiteMobilePipeline
from diffusers.utils import load_image

pipe = DreamLiteMobilePipeline.from_pretrained("carlofkl/DreamLite-mobile", revision="diffusers", dtype=torch.bfloat16)
pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"

source = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/cat.png")

image = pipe(
    prompt="turn the cat into a corgi",
    image=source,
    height=1024,
    width=1024,
    num_inference_steps=4,
    generator=torch.Generator("cpu").manual_seed(42),
).images[0]
image.save("dreamlite_mobile_edit.png")

Notas y limitaciones

  • Ambos pipelines fuerzan batch_size = 1 internamente; num_images_per_prompt controla cuántas muestras se extraen del mismo prompt, en lugar de realizar un lote en paralelo.
  • El codificador de prompts es Qwen3-VL, que es un modelo multimodal. Por lo tanto, cargar el pipeline completo requiere suficiente memoria de GPU tanto para la U-Net como para el codificador de texto Qwen3-VL (~4 GB + ~0.7 GB en bf16 para la versión base).
  • El VAE es AutoencoderTiny y expone encoder_block_out_channels; vae_scale_factor se deriva de él en el momento de la inicialización de la pipeline.

DreamLitePipeline

clase diffusers.DreamLitePipeline

< >

( text_encoder: Qwen3VLForConditionalGenerationtokenizer: AutoTokenizerprocessor: Qwen3VLProcessorvae: AutoencoderTinyunet: DreamLiteUNetModelscheduler: FlowMatchEulerDiscreteScheduler )

Pipeline DreamLite para la generación de imágenes a partir de texto y la edición de imágenes basada en instrucciones.

El mismo pipeline admite ambos modos; el modo de operación se detecta automáticamente a partir de las entradas:

  • image is None -> texto a imagen (CFG único en el texto).
  • image is not None -> imagen a imagen / edición por instrucción (CFG dual: texto + imagen).

Componentes: text_encoder ([~transformers.Qwen3VLForConditionalGeneration]): Codificador de texto/visión multimodal utilizado para generar incrustaciones de condicionamiento. tokenizer ([~transformers.AutoTokenizer]): Tokenizador para el modo solo texto (generate). processor ([~transformers.Qwen3VLProcessor]): Procesador multimodal para el modo de edición (plantilla de texto + imagen). vae ([~diffusers.AutoencoderTiny]): VAE pequeño apto para móviles para codificar/decodificar latentes. unet ([~diffusers.DreamLiteUNetModel]): DreamLite UNet (GQA + qk_norm + convoluciones separables en profundidad). scheduler ([~diffusers.FlowMatchEulerDiscreteScheduler]): Planificador Euler de flow-matching con desplazamiento dinámico.

Nota: batch_size se fuerza actualmente a 1; num_images_per_prompt está soportado.

__call__

< >

( prompt: typing.Optional[str] = Nonenegative_prompt: typing.Optional[str] = Noneimage: typing.Optional[PIL.Image.Image] = Noneheight: typing.Optional[int] = Nonewidth: typing.Optional[int] = Noneguidance_scale: float = 3.5image_guidance_scale: float = 1.5num_inference_steps: int = 30sigmas: typing.Optional[typing.List[float]] = Nonenum_images_per_prompt: typing.Optional[int] = 1generator: typing.Union[torch.Generator, typing.List[torch.Generator], NoneType] = Noneoutput_type: typing.Optional[str] = 'pil'return_dict: bool = Truemax_sequence_length: int = 200text_pad_embedding: typing.Optional[torch.Tensor] = None )

Parámetros

  • prompt — Texto del prompt.
  • negative_prompt — Prompt de texto negativo (por defecto, cadena vacía).
  • image — Imagen de entrada opcional. Si se proporciona, la canalización se ejecuta en modo edición / imagen a imagen con guía libre de clasificador dual; de lo contrario, se ejecuta en modo texto a imagen.
  • height — Resolución de salida (altura). El valor predeterminado es default_sample_size * vae_scale_factor (1024). El mismo valor predeterminado se aplica tanto en T2I como en I2I; pase un valor explícito para sobrescribirlo.
  • width — Resolución de salida (ancho). El valor predeterminado es default_sample_size * vae_scale_factor (1024). El mismo valor predeterminado se aplica tanto en T2I como en I2I; pase un valor explícito para sobrescribirlo.
  • guidance_scale — escala de CFG en la rama de texto (ambos modos).
  • image_guidance_scale — Escala CFG adicional en la rama de imagen (solo en modo de edición).
  • num_inference_steps — Número de pasos de desruido.
  • sigmas — Sigmas de FlowMatch explícitos opcionales; por defecto, se usa un linspace uniforme.
  • num_images_per_prompt — Imágenes de salida por indicación (nota: batch_size se fuerza a 1).
  • generator — Generador(es) aleatorio(s).
  • output_type — "pil", "np", "pt" o "latent".
  • return_dict — Si es True, devuelve un DreamLitePipelineOutput; en caso contrario, una tupla (images,).
  • max_sequence_length — Número máximo de tokens del prompt del usuario que se conservan tras eliminar el prefijo de la plantilla de chat. Solo se aplica al modo generate (el modo edit utiliza el relleno nativo del procesador multimodal).
  • text_pad_embedding — Embedding de relleno aprendido opcional para las posiciones enmascaradas.

Ejecuta el pipeline DreamLite.

DreamLiteMobilePipeline

clase diffusers.DreamLiteMobilePipeline

< >

( text_encoder: Qwen3VLForConditionalGenerationtokenizer: AutoTokenizerprocessor: Qwen3VLProcessorvae: AutoencoderTinyunet: DreamLiteUNetModelscheduler: FlowMatchEulerDiscreteScheduler )

Pipeline Mobile de DreamLite: una variante destilada y sin guía libre de clasificador de DreamLitePipeline para inferencia rápida en pocos pasos (4 pasos por defecto).

El modo de operación se detecta automáticamente a partir de las entradas (igual que en la pipeline base):

  • image is None -> texto a imagen.
  • image is not None -> imagen a imagen / edición por instrucción.

Dado que la guía sin clasificador se elimina mediante destilación, guidance_scale y image_guidance_scale se aceptan por compatibilidad de API con DreamLitePipeline, pero se ignoran en el bucle de desruido. negative_prompt está ausente intencionalmente.

Componentes (idénticos a la pipeline base): text_encoder ([~transformers.Qwen3VLForConditionalGeneration]): Codificador de texto/visión multimodal. tokenizer ([~transformers.AutoTokenizer]): Tokenizador para el modo solo texto (generate). processor ([~transformers.Qwen3VLProcessor]): Procesador multimodal para el modo de edición. vae ([~diffusers.AutoencoderTiny]): VAE pequeño apto para dispositivos móviles. unet ([~diffusers.DreamLiteUNetModel]): DreamLite UNet. scheduler ([~diffusers.FlowMatchEulerDiscreteScheduler]): Planificador Euler de flow-matching con desplazamiento dinámico.

Nota: batch_size se fuerza actualmente a 1; num_images_per_prompt está soportado.

__call__

< >

( prompt: typing.Union[str, typing.List[str]] = Noneimage: typing.Optional[PIL.Image.Image] = Noneheight: typing.Optional[int] = Nonewidth: typing.Optional[int] = Nonenum_inference_steps: int = 4guidance_scale: typing.Optional[float] = Noneimage_guidance_scale: typing.Optional[float] = Nonesigmas: typing.Optional[typing.List[float]] = Nonenum_images_per_prompt: typing.Optional[int] = 1generator: typing.Union[torch.Generator, typing.List[torch.Generator], NoneType] = Noneoutput_type: typing.Optional[str] = 'pil'return_dict: bool = Truemax_sequence_length: int = 200text_pad_embedding: typing.Optional[torch.Tensor] = None )

Parámetros

  • prompt — Texto del prompt.
  • image — Imagen de entrada opcional. Si se proporciona, se ejecuta en modo edición / imagen a imagen; de lo contrario, se ejecuta en modo texto a imagen.
  • height — Resolución de salida (altura). El valor predeterminado es default_sample_size * vae_scale_factor (1024).
  • width — Resolución de salida (ancho). El valor predeterminado es default_sample_size * vae_scale_factor (1024).
  • num_inference_steps — Número de pasos de desruido. El valor predeterminado es 4 (destilado).
  • guidance_scale — Aceptado por compatibilidad de API con DreamLitePipeline; ignorado porque CFG se destiló.
  • image_guidance_scale — Aceptado por paridad de API con DreamLitePipeline; ignorado porque CFG se destiló.
  • sigmas — Sigmas de FlowMatch explícitos opcionales; por defecto, se usa un linspace uniforme.
  • num_images_per_prompt — Imágenes de salida por indicación (nota: batch_size se fuerza a 1).
  • generator — Generador(es) aleatorio(s).
  • output_type — "pil", "np", "pt" o "latent".
  • return_dict — Si es True, devuelve un DreamLitePipelineOutput; en caso contrario, (images,).
  • max_sequence_length — Número máximo de tokens del prompt del usuario que se conservan tras eliminar el prefijo de la plantilla de chat. Solo se aplica al modo generate (el modo edit utiliza el relleno nativo del procesador multimodal).
  • text_pad_embedding — Embedding de relleno aprendido opcional para las posiciones enmascaradas.

Ejecuta el pipeline de DreamLite Mobile destilado.

DreamLitePipelineOutput

clase diffusers.DreamLitePipelineOutput

< >

( images: typing.Union[typing.List[PIL.Image.Image], numpy.ndarray] )

Parámetros

  • images (List[PIL.Image.Image] o np.ndarray) — Lista de imágenes PIL desruidas de longitud batch_size o matriz NumPy de forma (batch_size, height, width, num_channels). Las imágenes PIL o la matriz NumPy presentan las imágenes desruidas del pipeline de difusión.

Clase de salida para las tuberías de DreamLite.

Update on GitHub