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 adalah model teks-ke-gambar dan pengeditan gambar dari ByteDance. Model ini menggabungkan 2D U-Net khusus (DreamLiteUNetModel) dengan encoder multimodal Qwen3-VL sebagai encoder prompt/instruksi gambar, dan menggunakan VAE AutoencoderTiny (gaya TAESD) untuk encode/decode laten yang cepat.

Dua pipeline yang tersedia:

PipelineModeCFGKasus penggunaan
DreamLitePipelineteks-ke-gambar dan pengeditan gambar (dipilih secara otomatis berdasarkan apakah image adalah None)3-branch dual CFG (guidance_scale pada cabang teks, image_guidance_scale pada cabang gambar, à la InstructPix2Pix)Kualitas tertinggi
DreamLiteMobilePipelineteks-ke-gambar dan pengeditan gambar (dipilih secara otomatis berdasarkan apakah image adalah None)Tidak ada — terdistil, satu forward UNet per langkahOn-device / latensi rendah

Checkpoint resmi:

Kedua pipeline secara otomatis mendeteksi mode teks-ke-gambar vs. pengeditan gambar berdasarkan apakah argumen image diberikan. Tidak ada kelas Img2Img yang terpisah.

Saat memuat gambar input untuk diedit, lebih disarankan menggunakan diffusers.utils.load_image(...) daripada PIL.Image.open(...) mentah. load_image memaksa konversi ke RGB dan menerapkan orientasi EXIF, keduanya diasumsikan oleh pipeline. Penggunaan Image.open biasa pada sumber RGBA / palet / berotasi EXIF akan secara diam-diam menghasilkan kondisioning laten yang berbeda dan menurunkan kualitas output.

Teks-ke-gambar (Dasar)

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")

Pengeditan gambar (Dasar)

Lewatkan image untuk masuk ke mode edit. Baik guidance_scale (cabang teks) maupun image_guidance_scale (cabang gambar) aktif di sini.

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")

Teks-ke-gambar (Mobile)

Pipeline mobile ini telah didistilkan dan sepenuhnya melewati CFG — hanya satu forward UNet per langkah. Pipeline ini menerima argumen prompt / height / width / num_inference_steps yang sama, tetapi mengabaikan guidance_scale dan image_guidance_scale jika diberikan (peringatan akan dicatat).

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")

Pengeditan gambar (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")

Catatan dan batasan

  • Kedua pipeline memaksa batch_size = 1 secara internal; num_images_per_prompt mengontrol berapa banyak sampel yang diambil dari prompt yang sama, bukan batching paralel.
  • Prompt encoder adalah Qwen3-VL, yaitu model multimodal. Memuat pipeline lengkap karenanya memerlukan memori GPU yang cukup untuk U-Net dan text encoder Qwen3-VL (~4 GB + ~0,7 GB dalam bf16 untuk rilis dasar).
  • VAE adalah AutoencoderTiny dan mengekspos encoder_block_out_channels; vae_scale_factor diturunkan darinya pada saat inisialisasi pipeline.

DreamLitePipeline

kelas diffusers.DreamLitePipeline

< >

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

DreamLite pipeline untuk text-to-image dan pengeditan gambar berbasis instruksi.

Pipeline yang sama mendukung kedua mode; mode operasi dideteksi secara otomatis dari input:

  • image is None -> teks-ke-gambar (CFG tunggal pada teks).
  • image is not None -> image-to-image / instruksi edit (dual CFG: teks + gambar).

Komponen: text_encoder ([~transformers.Qwen3VLForConditionalGeneration]): Encoder teks/visi multimodal yang digunakan untuk menghasilkan embedding kondisional. tokenizer ([~transformers.AutoTokenizer]): Tokenizer untuk mode teks saja (generate). processor ([~transformers.Qwen3VLProcessor]): Pemroses multimodal untuk mode edit (template teks + gambar). vae ([~diffusers.AutoencoderTiny]): VAE kecil yang ramah perangkat mobile untuk encode/decode laten. unet ([~diffusers.DreamLiteUNetModel]): DreamLite UNet (GQA + qk_norm + konvolusi depthwise-separable). scheduler ([~diffusers.FlowMatchEulerDiscreteScheduler]): Scheduler Euler flow-matching dengan pergeseran dinamis.

Catatan: batch_size saat ini dipaksa menjadi 1; num_images_per_prompt didukung.

__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 )

Parameter

  • prompt — Prompt teks.
  • negative_prompt — Prompt teks negatif (defaultnya string kosong).
  • image — Gambar input opsional. Jika disediakan, pipeline berjalan dalam mode edit / image-to-image dengan dual classifier-free guidance; jika tidak, berjalan dalam mode text-to-image.
  • height — Resolusi output (tinggi). Nilainya secara default adalah default_sample_size * vae_scale_factor (1024). Nilai default yang sama berlaku untuk T2I dan I2I; berikan nilai eksplisit untuk menimpanya.
  • width — Resolusi output (lebar). Nilainya secara default adalah default_sample_size * vae_scale_factor (1024). Default yang sama berlaku untuk T2I dan I2I; berikan nilai eksplisit untuk menimpa.
  • guidance_scale — skala CFG pada cabang teks (kedua mode).
  • image_guidance_scale — Skala CFG tambahan pada cabang gambar (hanya mode edit).
  • num_inference_steps — Jumlah langkah denoising.
  • sigmas — Sigmas FlowMatch eksplisit opsional; secara default menggunakan linspace seragam.
  • num_images_per_prompt — Gambar output per prompt (catatan: batch_size dipaksa menjadi 1).
  • generator — Generator acak.
  • output_type — "pil", "np", "pt" atau "latent".
  • return_dict — Jika True, mengembalikan DreamLitePipelineOutput; jika tidak, tuple (images,).
  • max_sequence_length — Jumlah maksimum token prompt pengguna yang dipertahankan setelah membuang prefiks template chat. Hanya berlaku untuk mode generate (mode edit menggunakan padding asli dari pemroses multimodal).
  • text_pad_embedding — Embedding pad yang dipelajari secara opsional untuk posisi yang dimasker.

Jalankan pipeline DreamLite.

DreamLiteMobilePipeline

kelas diffusers.DreamLiteMobilePipeline

< >

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

Pipeline Mobile DreamLite: varian terdistilasi tanpa classifier-free-guidance dari DreamLitePipeline untuk inferensi cepat dengan sedikit langkah (default 4 langkah).

Mode operasi dideteksi secara otomatis dari input (sama seperti pipeline dasar):

  • image is None -> teks-ke-gambar.
  • image is not None -> gambar-ke-gambar / instruksi edit.

Karena classifier-free guidance dihilangkan, guidance_scale dan image_guidance_scale diterima untuk kesetaraan API dengan DreamLitePipeline tetapi diabaikan dalam loop denoising. negative_prompt sengaja tidak ada.

Komponen (identik dengan pipeline dasar): text_encoder ([~transformers.Qwen3VLForConditionalGeneration]): Encoder teks/visi multimodal. tokenizer ([~transformers.AutoTokenizer]): Tokenizer untuk mode teks saja (generate). processor ([~transformers.Qwen3VLProcessor]): Processor multimodal untuk mode edit. vae ([~diffusers.AutoencoderTiny]): VAE kecil yang ramah perangkat mobile. unet ([~diffusers.DreamLiteUNetModel]): DreamLite UNet. scheduler ([~diffusers.FlowMatchEulerDiscreteScheduler]): Scheduler Euler flow-matching dengan pergeseran dinamis.

Catatan: batch_size saat ini dipaksa menjadi 1; num_images_per_prompt didukung.

__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 )

Parameter

  • prompt — Prompt teks.
  • image — Gambar input opsional. Jika disediakan, berjalan dalam mode edit / image-to-image; jika tidak, berjalan dalam mode text-to-image.
  • height — Resolusi output (tinggi). Bawaan adalah default_sample_size * vae_scale_factor (1024).
  • width — Resolusi output (lebar). Bawaan adalah default_sample_size * vae_scale_factor (1024).
  • num_inference_steps — Jumlah langkah denoising. Defaultnya adalah 4 (distilled).
  • guidance_scale — Diterima untuk kesetaraan API dengan DreamLitePipeline; diabaikan karena CFG telah dihilangkan melalui distilasi.
  • image_guidance_scale — Diterima untuk kesetaraan API dengan DreamLitePipeline; diabaikan karena CFG telah dihilangkan melalui distilasi.
  • sigmas — Sigmas FlowMatch eksplisit opsional; secara default menggunakan linspace seragam.
  • num_images_per_prompt — Gambar output per prompt (catatan: batch_size dipaksa menjadi 1).
  • generator — Generator acak.
  • output_type — "pil", "np", "pt" atau "latent".
  • return_dict — Jika True, mengembalikan DreamLitePipelineOutput; jika tidak, (images,).
  • max_sequence_length — Jumlah maksimum token prompt pengguna yang dipertahankan setelah membuang prefiks template chat. Hanya berlaku untuk mode generate (mode edit menggunakan padding asli dari pemroses multimodal).
  • text_pad_embedding — Embedding pad yang dipelajari secara opsional untuk posisi yang dimasker.

Jalankan pipeline DreamLite Mobile yang telah di-distil.

DreamLitePipelineOutput

kelas diffusers.DreamLitePipelineOutput

< >

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

Parameter

  • images (List[PIL.Image.Image] atau np.ndarray) — Daftar gambar PIL yang telah didenoise dengan panjang batch_size atau array NumPy dengan bentuk (batch_size, height, width, num_channels). Gambar PIL atau array NumPy menyajikan gambar-gambar yang telah didenoise dari pipeline difusi.

Kelas output untuk pipeline DreamLite.

Update on GitHub