Buckets:
DreamLite
DreamLite é um modelo de texto para imagem e edição de imagem da ByteDance. Ele combina um U-Net 2D personalizado (DreamLiteUNetModel) com o codificador multimodal Qwen3-VL como codificador de prompt/instrução de imagem e utiliza um VAE AutoencoderTiny (estilo TAESD) para codificação/decodificação latente rápida.
Dois pipelines são expostos:
| Pipeline | Modos | CFG | Caso de uso |
|---|---|---|---|
| DreamLitePipeline | texto-para-imagem e edição de imagem (selecionado automaticamente com base em image ser None) |
CFG duplo de 3 ramos (guidance_scale no ramo de texto, image_guidance_scale no ramo de imagem, à la InstructPix2Pix) |
Maior qualidade |
| DreamLiteMobilePipeline | texto-para-imagem e edição de imagem (selecionado automaticamente com base em image ser None) |
Nenhum — destilado, um único forward do UNet por etapa | No dispositivo / baixa latência |
Pontos de verificação oficiais:
- Modelo base: carlofkl/DreamLite-base
- Modelo mobile destilado: carlofkl/DreamLite-mobile
Ambos os pipelines detectam automaticamente o modo de texto-para-imagem versus edição de imagem com base em se o argumento
imageé fornecido. Não há uma classeImg2Imgseparada.
Ao carregar uma imagem de entrada para edição, prefira
diffusers.utils.load_image(...)em vez do brutoPIL.Image.open(...).load_imageimpõe uma conversão para RGB e aplica a orientação EXIF, ambas as quais o pipeline pressupõe. Um simplesImage.opende uma fonte RGBA / paleta / rotacionada por EXIF produzirá silenciosamente uma condição latente diferente e degradará a qualidade da saída.
Texto para imagem (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")
Edição de imagens (Base)
Passe uma image para entrar no modo de edição. Tanto o guidance_scale (ramo de texto) quanto o image_guidance_scale (ramo de imagem) estão ativos aqui.
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 para imagem (Mobile)
O pipeline mobile é destilado e ignora completamente o CFG — uma única passagem do UNet por etapa. Ele aceita os mesmos argumentos prompt / height / width / num_inference_steps, mas ignora guidance_scale e image_guidance_scale se forem passados (um aviso é registrado).
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")
Edição de imagens (Mobile)
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")
Observações e limitações
- Ambos os pipelines forçam
batch_size = 1internamente;num_images_per_promptcontrola quantas amostras são extraídas do mesmo prompt, em vez de fazer loteamento paralelo. - O codificador de prompt é
Qwen3-VL, que é um modelo multimodal. Carregar o pipeline completo, portanto, requer memória de GPU suficiente para o U-Net e o codificador de texto Qwen3-VL (~4 GB + ~0,7 GB em bf16 para a versão base). - O VAE é
AutoencoderTinye expõeencoder_block_out_channels;vae_scale_factoré derivado dele no momento da inicialização do pipeline.
DreamLitePipeline[[diffusers.DreamLitePipeline]]
diffusers.DreamLitePipeline[[diffusers.DreamLitePipeline]]
diffusers.DreamLitePipeline(text_encoder: Qwen3VLForConditionalGeneration, tokenizer: AutoTokenizer, processor: Qwen3VLProcessor, vae: AutoencoderTiny, unet: DreamLiteUNetModel, scheduler: FlowMatchEulerDiscreteScheduler)
Pipeline DreamLite para geração de imagem a partir de texto e edição de imagem baseada em instruções.
O mesmo pipeline suporta ambos os modos; o modo de operação é detectado automaticamente a partir das entradas:
image is None-> texto-para-imagem (CFG único no texto).image is not None-> imagem-para-imagem / edição por instrução (CFG duplo: texto + imagem).
Componentes: text_encoder ([~transformers.Qwen3VLForConditionalGeneration]): codificador de texto/visão multimodal usado para produzir embeddings de condicionamento. tokenizer ([~transformers.AutoTokenizer]): tokenizador para o modo apenas texto (generate). processor ([~transformers.Qwen3VLProcessor]): processador multimodal para o modo de edição (modelo de texto + imagem). vae ([~diffusers.AutoencoderTiny]): VAE minúsculo compatível com dispositivos móveis para codificação/decodificação latente. unet ([~diffusers.DreamLiteUNetModel]): UNet DreamLite (GQA + qk_norm + convoluções separáveis em profundidade). scheduler ([~diffusers.FlowMatchEulerDiscreteScheduler]): agendador Euler de flow-matching com deslocamento dinâmico.
Nota: batch_size é atualmente forçado para 1; num_images_per_prompt é compatível.
call[[diffusers.DreamLitePipeline.call]]
__call__(prompt: typing.Optional[str] = None, negative_prompt: typing.Optional[str] = None, image: typing.Optional[PIL.Image.Image] = None, height: typing.Optional[int] = None, width: typing.Optional[int] = None, guidance_scale: float = 3.5, image_guidance_scale: float = 1.5, num_inference_steps: int = 30, sigmas: typing.Optional[typing.List[float]] = None, num_images_per_prompt: typing.Optional[int] = 1, generator: typing.Union[torch.Generator, typing.List[torch.Generator], NoneType] = None, output_type: typing.Optional[str] = 'pil', return_dict: bool = True, max_sequence_length: int = 200, text_pad_embedding: typing.Optional[torch.Tensor] = None)
Parâmetros:
prompt : Prompt de texto.
negative_prompt : Prompt de texto negativo (padrão: string vazia).
image : Imagem de entrada opcional. Se fornecida, o pipeline é executado no modo edit / image-to-image com orientação livre de classificador dupla; caso contrário, é executado no modo text-to-image.
height : Resolução de saída (altura). O padrão é default_sample_size * vae_scale_factor (1024). O mesmo padrão se aplica tanto em T2I quanto em I2I; passe um valor explícito para sobrescrever.
width : Resolução de saída (largura). O padrão é default_sample_size * vae_scale_factor (1024). O mesmo padrão se aplica tanto em T2I quanto em I2I; passe um valor explícito para sobrescrever.
guidance_scale : escala CFG no ramo de texto (ambos os modos).
image_guidance_scale : Escala CFG adicional no ramo da imagem (somente no modo de edição).
num_inference_steps : Número de etapas de desruidamento.
sigmas : Sigmas explícitos opcionais de FlowMatch; o padrão é um linspace uniforme.
num_images_per_prompt : Imagens de saída por prompt (observação: batch_size é forçado para 1).
generator : Gerador(es) aleatório(s).
output_type : "pil", "np", "pt" ou "latent".
return_dict : Se True, retorna um DreamLitePipelineOutput; caso contrário, uma tupla (images,).
max_sequence_length : Número máximo de tokens do prompt do usuário mantidos após a remoção do prefixo do modelo de chat. Aplica-se apenas ao modo generate (o modo edit usa o padding nativo do processador multimodal).
text_pad_embedding : Embedding aprendido opcional para posições mascaradas.
Retorna:
DreamLitePipelineOutput ou tuple.
Execute o pipeline DreamLite.
DreamLiteMobilePipeline[[diffusers.DreamLiteMobilePipeline]]
diffusers.DreamLiteMobilePipeline[[diffusers.DreamLiteMobilePipeline]]
diffusers.DreamLiteMobilePipeline(text_encoder: Qwen3VLForConditionalGeneration, tokenizer: AutoTokenizer, processor: Qwen3VLProcessor, vae: AutoencoderTiny, unet: DreamLiteUNetModel, scheduler: FlowMatchEulerDiscreteScheduler)
Pipeline Mobile do DreamLite: uma variante destilada, sem classifier-free guidance, do DreamLitePipeline para inferência rápida em poucas etapas (padrão: 4 etapas).
O modo de operação é detectado automaticamente a partir das entradas (da mesma forma que no pipeline base):
image is None-> texto para imagem.image is not None-> imagem-para-imagem / edição por instrução.
Como o classifier-free guidance é destilado, guidance_scale e image_guidance_scale são aceitos por paridade de API com DreamLitePipeline, mas são ignorados no loop de desruidamento. negative_prompt está intencionalmente ausente.
Components (idêntico ao pipeline base): text_encoder ([~transformers.Qwen3VLForConditionalGeneration]): Codificador multimodal de texto/visão. tokenizer ([~transformers.AutoTokenizer]): Tokenizer para o modo apenas texto (generate). processor ([~transformers.Qwen3VLProcessor]): Processador multimodal para o modo de edição. vae ([~diffusers.AutoencoderTiny]): VAE minúsculo compatível com dispositivos móveis. unet ([~diffusers.DreamLiteUNetModel]): DreamLite UNet. scheduler ([~diffusers.FlowMatchEulerDiscreteScheduler]): Agendador Euler de flow-matching com deslocamento dinâmico.
Note: batch_size is currently forced to 1; num_images_per_prompt is supported.
call[[diffusers.DreamLiteMobilePipeline.call]]
__call__(prompt: typing.Union[str, typing.List[str]] = None, image: typing.Optional[PIL.Image.Image] = None, height: typing.Optional[int] = None, width: typing.Optional[int] = None, num_inference_steps: int = 4, guidance_scale: typing.Optional[float] = None, image_guidance_scale: typing.Optional[float] = None, sigmas: typing.Optional[typing.List[float]] = None, num_images_per_prompt: typing.Optional[int] = 1, generator: typing.Union[torch.Generator, typing.List[torch.Generator], NoneType] = None, output_type: typing.Optional[str] = 'pil', return_dict: bool = True, max_sequence_length: int = 200, text_pad_embedding: typing.Optional[torch.Tensor] = None)
Parâmetros:
prompt : Prompt de texto.
image : Imagem de entrada opcional. Se fornecida, executa no modo edit / image-to-image; caso contrário, executa no modo text-to-image.
height : Resolução de saída (altura). O padrão é default_sample_size * vae_scale_factor (1024).
width : Resolução de saída (largura). O padrão é default_sample_size * vae_scale_factor (1024).
num_inference_steps : Número de etapas de desruidamento. O padrão é 4 (destilado).
guidance_scale : Aceito para paridade de API com DreamLitePipeline; ignorado porque o CFG foi destilado.
image_guidance_scale : Aceito para paridade de API com DreamLitePipeline; ignorado porque o CFG foi destilado.
sigmas : Sigmas explícitos opcionais de FlowMatch; o padrão é um linspace uniforme.
num_images_per_prompt : Imagens de saída por prompt (observação: batch_size é forçado para 1).
generator : Gerador(es) aleatório(s).
output_type : "pil", "np", "pt" ou "latent".
return_dict : Se True, retorna um DreamLitePipelineOutput; caso contrário, (images,).
max_sequence_length : Número máximo de tokens do prompt do usuário mantidos após a remoção do prefixo do modelo de chat. Aplica-se apenas ao modo generate (o modo edit usa o padding nativo do processador multimodal).
text_pad_embedding : Embedding aprendido opcional para posições mascaradas.
Retorna:
DreamLitePipelineOutput ou tuple.
Execute o pipeline DreamLite Mobile destilado.
DreamLitePipelineOutput[[diffusers.DreamLitePipelineOutput]]
diffusers.DreamLitePipelineOutput[[diffusers.DreamLitePipelineOutput]]
diffusers.DreamLitePipelineOutput(images: typing.Union[typing.List[PIL.Image.Image], numpy.ndarray])
Parâmetros:
images (List[PIL.Image.Image] ou np.ndarray) : Lista de imagens PIL desruidas de comprimento batch_size ou array NumPy de forma (batch_size, height, width, num_channels). As imagens PIL ou o array NumPy apresentam as imagens desruidas do pipeline de difusão.
Classe de saída para pipelines do DreamLite.
Xet Storage Details
- Size:
- 15.2 kB
- Xet hash:
- e5b44b257af9c8e6f26e1224eeae5fd132a4673a8f1d160983b57e42a8a8204e
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.