Buckets:

mishig's picture
|
download
raw
12 kB

Blok Pipeline

ModularPipelineBlocks[[diffusers.ModularPipelineBlocks]]

diffusers.ModularPipelineBlocks[[diffusers.ModularPipelineBlocks]]

diffusers.ModularPipelineBlocks()

Sumber

Kelas dasar untuk semua Blok Pipeline: ConditionalPipelineBlocks, AutoPipelineBlocks, SequentialPipelineBlocks, LoopSequentialPipelineBlocks

ModularPipelineBlocks menyediakan metode untuk memuat dan menyimpan definisi blok pipeline.

get_block_state[[diffusers.ModularPipelineBlocks.get_block_state]]

get_block_state(state: PipelineState)

Sumber

Dapatkan semua input dan intermediat dalam satu kamus

get_execution_blocks[[diffusers.ModularPipelineBlocks.get_execution_blocks]]

get_execution_blocks(**kwargs)

Sumber

Parameter:

  • **kwargs : Nama dan nilai input. Hanya input pemicu yang memengaruhi pemilihan blok.

Dapatkan blok yang akan dieksekusi berdasarkan input yang diberikan. Harus diimplementasikan oleh subkelas yang mendukung pemilihan blok kondisional.

get_workflow[[diffusers.ModularPipelineBlocks.get_workflow]]

get_workflow(workflow_name: str)

Sumber

Parameter:

workflow_name : Nama workflow yang akan diambil.

Dapatkan blok eksekusi untuk workflow tertentu. Harus diimplementasikan oleh subkelas yang mendefinisikan _workflow_map.

init_pipeline[[diffusers.ModularPipelineBlocks.init_pipeline]]

init_pipeline(pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None)

Sumber

buat ModularPipeline, secara opsional terima pretrained_model_name_or_path untuk memuat dari hub.

SequentialPipelineBlocks[[diffusers.SequentialPipelineBlocks]]

diffusers.SequentialPipelineBlocks[[diffusers.SequentialPipelineBlocks]]

diffusers.SequentialPipelineBlocks()

Sumber

Parameter:

block_classes : daftar kelas blok yang akan digunakan

block_names : daftar prefiks untuk setiap blok

A Pipeline Blocks yang menggabungkan beberapa kelas pipeline block menjadi satu. Saat dipanggil, blok ini akan memanggil setiap blok secara berurutan.

Kelas ini mewarisi dari ModularPipelineBlocks. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua blok pipeline (seperti memuat atau menyimpan, dll.)

from_blocks_dict[[diffusers.SequentialPipelineBlocks.from_blocks_dict]]

from_blocks_dict(blocks_dict: dict[str, typing.Any], description: str | None = None)

Sumber

Parameter:

blocks_dict : Dictionary yang memetakan nama blok ke kelas atau instance blok

Mengembalikan:

Instans baru SequentialPipelineBlocks

Membuat instance SequentialPipelineBlocks dari kamus blok.

get_execution_blocks[[diffusers.SequentialPipelineBlocks.get_execution_blocks]]

get_execution_blocks(**kwargs)

Sumber

Parameter:

  • **kwargs : Nama dan nilai input. Hanya input pemicu yang memengaruhi pemilihan blok.

Mengembalikan:

SequentialPipelineBlocks yang hanya berisi blok-blok yang akan dieksekusi

Dapatkan blok yang akan dieksekusi berdasarkan input yang ditentukan.

Saat traversal berjalan melalui blok-blok berurutan, output antara dari blok yang telah dipecahkan ditambahkan ke input aktif. Artinya, blok kondisional yang bergantung pada nilai antara (misalnya, "jalankan img2img jika image_latents ada") akan dipecahkan dengan benar, selama kondisinya didasarkan pada keberadaan/keberadaan (None atau bukan None), bukan pada nilai aktualnya.

LoopSequentialPipelineBlocks[[diffusers.LoopSequentialPipelineBlocks]]

diffusers.LoopSequentialPipelineBlocks[[diffusers.LoopSequentialPipelineBlocks]]

diffusers.LoopSequentialPipelineBlocks()

Sumber

Parameter:

block_classes : daftar kelas blok yang akan digunakan

block_names : daftar prefiks untuk setiap blok

A Pipeline blocks yang menggabungkan beberapa kelas pipeline block menjadi For Loop. Saat dipanggil, blok ini akan memanggil setiap blok secara berurutan.

Kelas ini mewarisi dari ModularPipelineBlocks. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua blok pipeline (seperti memuat atau menyimpan, dll.)

from_blocks_dict[[diffusers.LoopSequentialPipelineBlocks.from_blocks_dict]]

from_blocks_dict(blocks_dict: dict[str, typing.Any])

Sumber

Parameter:

blocks_dict : Dictionary yang memetakan nama blok ke instance blok

Mengembalikan:

Instans baru LoopSequentialPipelineBlocks

Membuat instance LoopSequentialPipelineBlocks dari kamus blok.

AutoPipelineBlocks[[diffusers.AutoPipelineBlocks]]

diffusers.AutoPipelineBlocks[[diffusers.AutoPipelineBlocks]]

diffusers.AutoPipelineBlocks()

Sumber

Parameter:

block_classes : Daftar kelas blok yang akan digunakan. Harus memiliki panjang yang sama dengan block_names dan block_trigger_inputs.

block_names : Daftar nama untuk setiap blok. Harus memiliki panjang yang sama dengan block_classes dan block_trigger_inputs.

block_trigger_inputs : Daftar nama input di mana setiap elemen menentukan input pemicu untuk blok yang sesuai. Gunakan None untuk menandai blok default.

A Pipeline Blocks yang secara otomatis memilih blok untuk dijalankan berdasarkan keberadaan input pemicu.

Ini adalah versi khusus dari ConditionalPipelineBlocks di mana:

  • Setiap blok memiliki satu input pemicu yang sesuai (pemetaan 1:1)
  • Pemilihan blok bersifat otomatis: blok pertama yang input pemicunya ada akan dipilih
  • block_trigger_inputs harus memiliki panjang yang sama dengan block_names dan block_classes
  • Gunakan None di block_trigger_inputs untuk menentukan blok default, yaitu blok yang akan dijalankan jika tidak ada input pemicu

Contoh:

    class MyAutoBlock(AutoPipelineBlocks):
        block_classes = [InpaintEncoderBlock, ImageEncoderBlock, TextEncoderBlock]
        block_names = ["inpaint", "img2img", "text2img"]
        block_trigger_inputs = ["mask_image", "image", None]  # text2img is the default

Dengan definisi ini:

  • Selama mask_image disediakan, blok "inpaint" akan dijalankan (terlepas dari apakah image disediakan atau tidak)
  • Jika mask_image tidak diberikan tetapi image diberikan, blok "img2img" dijalankan
  • Jika tidak, blok "text2img" dijalankan (default, pemicunya adalah None)

select_block[[diffusers.AutoPipelineBlocks.select_block]]

select_block(**kwargs)

Sumber

Pilih blok berdasarkan input pemicu mana yang ada (bukan None).

ConditionalPipelineBlocks[[diffusers.ConditionalPipelineBlocks]]

diffusers.ConditionalPipelineBlocks[[diffusers.ConditionalPipelineBlocks]]

diffusers.ConditionalPipelineBlocks()

Sumber

Parameter:

block_classes : Daftar kelas blok yang akan digunakan. Harus memiliki panjang yang sama dengan block_names.

block_names : Daftar nama untuk setiap blok. Harus memiliki panjang yang sama dengan block_classes.

block_trigger_inputs : Daftar nama input yang digunakan oleh select_block() untuk menentukan blok mana yang akan dijalankan. Untuk ConditionalPipelineBlocks, ini tidak perlu sesuai dengan block_names dan block_classes. Untuk AutoPipelineBlocks, ini harus memiliki panjang yang sama dengan block_names dan block_classes, di mana setiap elemen menentukan input pemicu untuk blok yang sesuai.

default_block_name : Nama blok default yang dijalankan ketika tidak ada input pemicu yang cocok. Jika None, blok ini dapat dilewati sepenuhnya ketika tidak ada input pemicu yang diberikan.

A Pipeline Blocks yang memilih secara kondisional blok untuk dijalankan berdasarkan input. Subclass harus mengimplementasikan metode select_block untuk mendefinisikan logika pemilihan blok. Saat ini, kami hanya mendukung logika pemilihan berdasarkan ada atau tidaknya input (yaitu, apakah nilainya None atau tidak).

Kelas ini mewarisi dari ModularPipelineBlocks. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua blok pipeline (seperti memuat atau menyimpan, dll.)

get_execution_blocks[[diffusers.ConditionalPipelineBlocks.get_execution_blocks]]

get_execution_blocks(**kwargs)

Sumber

Parameter:

  • **kwargs : Nama dan nilai input. Hanya input pemicu yang memengaruhi pemilihan blok.

Mengembalikan: - ModularPipelineBlocks

Blok daun atau SequentialPipelineBlocks yang telah diselesaikan

  • None: Jika blok ini akan dilewati (tidak ada pemicu yang cocok dan tidak ada default)

Dapatkan blok yang akan dieksekusi berdasarkan input yang diberikan.

Menyelesaikan blok ConditionalPipelineBlocks yang bersarang secara rekursif hingga mencapai salah satu dari:

  • Blok daun (tanpa sub_blocks atau LoopSequentialPipelineBlocks) → mengembalikan satu ModularPipelineBlocks
  • A SequentialPipelineBlocks → mendelegasikan ke get_execution_blocks() yang mengembalikan a SequentialPipelineBlocks yang berisi blok eksekusi yang telah dipecah

select_block[[diffusers.ConditionalPipelineBlocks.select_block]]

select_block(**kwargs)

Sumber

Parameter:

  • **kwargs : Nama input pemicu dan nilai-nilainya dari state.

Mengembalikan: str | None

Nama blok yang akan dijalankan, atau None untuk menggunakan default/melompati.

Pilih blok yang akan dijalankan berdasarkan input pemicu. Subkelas harus mengimplementasikan metode ini untuk mendefinisikan logika pemilihan blok.

Catatan: Ketika input pemicu mencakup output antara dari blok sebelumnya, logika seleksi harus hanya bergantung pada ada atau tidaknya input (yaitu, apakah nilainya None atau bukan), bukan pada nilai aktualnya. Hal ini karena get_execution_blocks() menyelesaikan kondisi secara statis dengan mempropagasi nama output antara tanpa nilai runtime-nya.

Xet Storage Details

Size:
12 kB
·
Xet hash:
77f8c06ec295d10986851e3d5462f3b296da79988e6a00e4b442532f767a18ea

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.