Diffusers documentation
DreamLite
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:
| Pipeline | Modos | CFG | Caso de uso |
|---|---|---|---|
| DreamLitePipeline | texto 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 |
| DreamLiteMobilePipeline | texto 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ón | En el dispositivo / baja latencia |
Puntos de control oficiales:
- Modelo base: carlofkl/DreamLite-base
- Modelo móvil destilado: carlofkl/DreamLite-mobile
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 claseImg2Imgseparada.
Al cargar una imagen de entrada para editarla, se prefiere
diffusers.utils.load_image(...)sobrePIL.Image.open(...)sin procesar.load_imageaplica una conversión a RGB y la orientación EXIF, dos aspectos que el pipeline asume. UnImage.opensimple 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 = 1internamente;num_images_per_promptcontrola 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
AutoencoderTinyy exponeencoder_block_out_channels;vae_scale_factorse deriva de él en el momento de la inicialización de la pipeline.
DreamLitePipeline
clase diffusers.DreamLitePipeline
< source >( 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__
< source >( 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_sizese 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 modoeditutiliza 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
< source >( 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__
< source >( 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_sizese 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 modoeditutiliza 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
< source >( images: typing.Union[typing.List[PIL.Image.Image], numpy.ndarray] )
Clase de salida para las tuberías de DreamLite.