o
    Gi                     @   sd   d dl mZ d dlmZ ddlmZ eeZG dd deeZ	G dd de	Z
G d	d
 d
e	ZdS )   )Flux2LoraLoaderMixin)logging   )ModularPipelinec                   @   sP   e Zd ZdZdZedd Zedd Zedd Zed	d
 Z	edd Z
dS )Flux2ModularPipelinez
    A ModularPipeline for Flux2.

    > [!WARNING] > This is an experimental feature and is likely to change in the future.
    Flux2AutoBlocksc                 C      | j | j S Ndefault_sample_sizevae_scale_factorself r   f/home/ubuntu/.local/lib/python3.10/site-packages/diffusers/modular_pipelines/flux2/modular_pipeline.pydefault_height!      z#Flux2ModularPipeline.default_heightc                 C   r   r	   r
   r   r   r   r   default_width%   r   z"Flux2ModularPipeline.default_widthc                 C   s   dS )N   r   r   r   r   r   r   )   s   z(Flux2ModularPipeline.default_sample_sizec                 C   s.   d}t | dd d urdt| jjjd  }|S )N   vaer      )getattrlenr   configblock_out_channels)r   r   r   r   r   r   -   s   z%Flux2ModularPipeline.vae_scale_factorc                 C   s"   d}t | dd r| jjjd }|S )N    transformer   )r   r   r   in_channels)r   num_channels_latentsr   r   r   r    4   s   z)Flux2ModularPipeline.num_channels_latentsN)__name__
__module____qualname____doc__default_blocks_namepropertyr   r   r   r   r    r   r   r   r   r      s    



r   c                   @       e Zd ZdZdZedd ZdS )Flux2KleinModularPipelinez
    A ModularPipeline for Flux2-Klein (distilled model).

    > [!WARNING] > This is an experimental feature and is likely to change in the future.
    Flux2KleinAutoBlocksc                 C   H   t | jdr| jjrdS d}t | dr"| jd ur"| jjo!| jjdk}|S Nis_distilledFguiderr   hasattrr   r,   r-   _enablednum_conditionsr   requires_unconditional_embedsr   r   r   r3   E      z7Flux2KleinModularPipeline.requires_unconditional_embedsNr!   r"   r#   r$   r%   r&   r3   r   r   r   r   r(   <   
    r(   c                   @   r'   )Flux2KleinBaseModularPipelinez
    A ModularPipeline for Flux2-Klein (base model).

    > [!WARNING] > This is an experimental feature and is likely to change in the future.
    Flux2KleinBaseAutoBlocksc                 C   r*   r+   r.   r2   r   r   r   r3   Z   r4   z;Flux2KleinBaseModularPipeline.requires_unconditional_embedsNr5   r   r   r   r   r7   Q   r6   r7   N)loadersr   utilsr   modular_pipeliner   
get_loggerr!   loggerr   r(   r7   r   r   r   r   <module>   s   
$