Buckets:

mishig's picture
|
download
raw
12.4 kB

Pipeline 블록

ModularPipelineBlocks[[diffusers.ModularPipelineBlocks]]

diffusers.ModularPipelineBlocks[[diffusers.ModularPipelineBlocks]]

diffusers.ModularPipelineBlocks()

소스

모든 Pipeline Blocks의 기본 클래스: ConditionalPipelineBlocks, AutoPipelineBlocks, SequentialPipelineBlocks, LoopSequentialPipelineBlocks

ModularPipelineBlocks는 파이프라인 블록의 정의를 로드하고 저장하는 메서드를 제공합니다.

get_block_state[[diffusers.ModularPipelineBlocks.get_block_state]]

get_block_state(state: PipelineState)

소스

모든 입력과 중간 결과를 하나의 사전으로 가져오기

get_execution_blocks[[diffusers.ModularPipelineBlocks.get_execution_blocks]]

get_execution_blocks(**kwargs)

소스

매개변수:

  • **kwargs : 입력 이름과 값. 블록 선택에는 트리거 입력만 영향을 줍니다.

입력에 따라 실행될 블록을 가져옵니다. 조건부 블록 선택을 지원하는 하위 클래스에서 구현해야 합니다.

get_workflow[[diffusers.ModularPipelineBlocks.get_workflow]]

get_workflow(workflow_name: str)

소스

매개변수:

workflow_name : 가져올 워크플로 이름.

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

소스

ModularPipeline를 생성하고, 필요에 따라 pretrained_model_name_or_path를 받아 hub에서 로드합니다.

SequentialPipelineBlocks[[diffusers.SequentialPipelineBlocks]]

diffusers.SequentialPipelineBlocks[[diffusers.SequentialPipelineBlocks]]

diffusers.SequentialPipelineBlocks()

소스

매개변수:

block_classes : 사용할 블록 클래스 목록

block_names : 각 블록에 대한 접두사 목록

여러 pipeline block 클래스를 하나로 결합하는 Pipeline Blocks입니다. 호출되면 각 블록을 순서대로 호출합니다.

이 클래스는 ModularPipelineBlocks에서 상속됩니다. 라이브러리가 모든 파이프라인 블록에 대해 구현하는 일반적 메서드(로드, 저장 등)에 대해서는 상위 클래스 문서를 확인하세요.

from_blocks_dict[[diffusers.SequentialPipelineBlocks.from_blocks_dict]]

from_blocks_dict(blocks_dict: dict, description: str | None = None)

소스

매개변수:

blocks_dict : 블록 이름을 블록 클래스 또는 인스턴스로 매핑하는 사전

반환값:

새로운 SequentialPipelineBlocks 인스턴스

블록의 사전에서 SequentialPipelineBlocks 인스턴스를 생성합니다.

get_execution_blocks[[diffusers.SequentialPipelineBlocks.get_execution_blocks]]

get_execution_blocks(**kwargs)

소스

매개변수:

  • **kwargs : 입력 이름과 값. 블록 선택에는 트리거 입력만 영향을 줍니다.

반환값:

실행될 블록만 포함된 SequentialPipelineBlocks

지정된 입력에 따라 실행될 블록을 가져옵니다.

탐색이 순차적인 블록을 순회하면서, 해결된 블록의 중간 출력은 활성 입력에 추가됩니다. 이는 중간 값에 의존하는 조건부 블록(예: "image_latents가 존재하면 img2img 실행")이 조건이 실제 값이 아닌 존재/부재(None 또는 None이 아닌 값)에 기반하는 한 올바르게 해결됨을 의미합니다.

LoopSequentialPipelineBlocks[[diffusers.LoopSequentialPipelineBlocks]]

diffusers.LoopSequentialPipelineBlocks[[diffusers.LoopSequentialPipelineBlocks]]

diffusers.LoopSequentialPipelineBlocks()

소스

매개변수:

block_classes : 사용할 블록 클래스 목록

block_names : 각 블록에 대한 접두사 목록

여러 개의 pipeline block 클래스를 For Loop로 결합하는 Pipeline block입니다. 호출되면 각 block을 순서대로 호출합니다.

이 클래스는 ModularPipelineBlocks에서 상속됩니다. 라이브러리가 모든 파이프라인 블록에 대해 구현하는 일반적 메서드(로드, 저장 등)에 대해서는 상위 클래스 문서를 확인하세요.

from_blocks_dict[[diffusers.LoopSequentialPipelineBlocks.from_blocks_dict]]

from_blocks_dict(blocks_dict: dict)

소스

매개변수:

blocks_dict : 블록 이름을 블록 인스턴스로 매핑하는 사전

반환값:

새로운 LoopSequentialPipelineBlocks 인스턴스

LoopSequentialPipelineBlocks 인스턴스를 블록 사전에서 생성합니다.

AutoPipelineBlocks[[diffusers.AutoPipelineBlocks]]

diffusers.AutoPipelineBlocks[[diffusers.AutoPipelineBlocks]]

diffusers.AutoPipelineBlocks()

소스

매개변수:

block_classes : 사용할 블록 클래스 목록. block_names 및 block_trigger_inputs와 동일한 길이를 가져야 합니다.

block_names : 각 블록의 이름 목록. block_classes와 block_trigger_inputs와 동일한 길이를 가져야 합니다.

block_trigger_inputs : 각 요소가 해당 블록의 트리거 입력을 지정하는 입력 이름 목록. 기본 블록은 None으로 표시합니다.

트리거 입력의 존재에 따라 실행할 블록을 자동으로 선택하는 Pipeline Blocks입니다.

ConditionalPipelineBlocks의 특수화된 버전으로, 다음과 같습니다:

  • 각 블록에는 하나의 대응하는 트리거 입력이 있습니다(1:1 매핑)
  • Block selection은 자동으로 수행됩니다: trigger 입력이 존재하는 첫 번째 블록이 선택됩니다
  • block_trigger_inputs는 block_names와 block_classes와 동일한 길이를 가져야 합니다
  • block_trigger_inputs에 None을 사용하여 기본 블록을 지정합니다. 즉, 트리거 입력이 없는 경우 실행되는 블록입니다.

예:

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

이 정의로:

  • mask_image가 제공되는 한, image가 제공되었는지 여부와 관계없이 "inpaint" 블록이 실행됩니다
  • mask_image가 제공되지 않고 image가 제공된 경우, "img2img" 블록이 실행됩니다
  • 그렇지 않으면 "text2img" 블록이 실행됩니다(기본값, 트리거는 None)

select_block[[diffusers.AutoPipelineBlocks.select_block]]

select_block(**kwargs)

소스

None가 아닌 트리거 입력이 존재하는지에 따라 블록을 선택합니다.

ConditionalPipelineBlocks[[diffusers.ConditionalPipelineBlocks]]

diffusers.ConditionalPipelineBlocks[[diffusers.ConditionalPipelineBlocks]]

diffusers.ConditionalPipelineBlocks()

소스

매개변수:

block_classes : 사용할 블록 클래스 목록. block_names와 동일한 길이를 가져야 합니다.

block_names : 각 블록의 이름 목록. block_classes와 동일한 길이를 가져야 합니다.

block_trigger_inputs : select_block()가 실행할 블록을 결정하는 데 사용하는 입력 이름 목록입니다. ConditionalPipelineBlocks의 경우, 이는 block_names 및 block_classes와 일치할 필요가 없습니다. AutoPipelineBlocks의 경우, 이는 block_names 및 block_classes와 동일한 길이를 가져야 하며, 각 요소는 해당 블록의 트리거 입력을 지정합니다.

default_block_name : 트리거 입력이 일치하지 않을 때 실행되는 기본 블록의 이름입니다. None인 경우, 트리거 입력이 제공되지 않으면 이 블록을 완전히 건너뛸 수 있습니다.

입력에 따라 실행할 블록을 조건부로 선택하는 Pipeline Blocks입니다. 하위 클래스는 블록 선택 로직을 정의하기 위해 select_block 메서드를 구현해야 합니다. 현재는 입력의 유무(즉, None인지 여부)에 기반한 선택 로직만 지원합니다.

이 클래스는 ModularPipelineBlocks에서 상속됩니다. 라이브러리가 모든 파이프라인 블록에 대해 구현하는 일반적 메서드(로드, 저장 등)에 대해서는 상위 클래스 문서를 확인하세요.

get_execution_blocks[[diffusers.ConditionalPipelineBlocks.get_execution_blocks]]

get_execution_blocks(**kwargs)

소스

매개변수:

  • **kwargs : 입력 이름과 값. 블록 선택에는 트리거 입력만 영향을 줍니다.

반환값: - ModularPipelineBlocks

리프 블록 또는 해결된 SequentialPipelineBlocks

  • None: 이 블록이 건너뛰어지는 경우 (트리거가 일치하지 않고 기본값도 없는 경우)

입력에 따라 실행될 블록을 가져옵니다.

ConditionalPipelineBlocks가 더 이상 없거나 다음 중 하나에 도달할 때까지 재귀적으로 중첩된 ConditionalPipelineBlocks를 해결합니다:

  • A leaf block (no sub_blocks or LoopSequentialPipelineBlocks) → returns single ModularPipelineBlocks
  • SequentialPipelineBlocks → get_execution_blocks()에 위임하여 다음을 반환 해결된 실행 블록을 포함하는 SequentialPipelineBlocks

select_block[[diffusers.ConditionalPipelineBlocks.select_block]]

select_block(**kwargs)

소스

매개변수:

  • **kwargs : 상태(state)에서 트리거 입력 이름과 해당 값

반환값: str | None

실행할 블록의 이름 또는 기본값 사용/스킵을 위해 None

트리거 입력을 기반으로 실행할 블록을 선택합니다. 서브클래스는 이 메서드를 구현하여 블록 선택 로직을 정의해야 합니다.

Note: trigger 입력에 이전 블록의 중간 출력이 포함된 경우, 선택 로직은 입력의 실제 값이 아니라 존재 여부(즉, None인지 여부)에만 의존해야 합니다. 이는 get_execution_blocks()가 런타임 값 없이 중간 출력 이름을 전파하여 조건을 정적으로 해석하기 때문입니다.

Xet Storage Details

Size:
12.4 kB
·
Xet hash:
8d69803f8133e28daada029b22ef260145d11581dffcbddb619115c94242fb42

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