Buckets:
FluxControlNetModel
FluxControlNetModel là một triển khai của ControlNet cho Flux.1.
Mô hình ControlNet được giới thiệu trong Adding Conditional Control to Text-to-Image Diffusion Models bởi Lvmin Zhang, Anyi Rao, Maneesh Agrawala. Nó cung cấp mức độ kiểm soát cao hơn đối với việc tạo ảnh từ văn bản bằng cách điều kiện hóa mô hình dựa trên các đầu vào bổ sung như bản đồ cạnh, bản đồ độ sâu, bản đồ phân đoạn và các điểm chính cho phát hiện tư thế.
Tóm tắt từ bài báo là:
Chúng tôi giới thiệu ControlNet, một kiến trúc mạng nơ-ron để thêm các điều khiển điều kiện không gian vào các mô hình khuếch tán từ văn bản sang ảnh lớn, được huấn luyện trước. ControlNet khóa các mô hình khuếch tán lớn sẵn sàng cho sản xuất, và tái sử dụng các lớp mã hóa sâu và mạnh mẽ của chúng, được huấn luyện trước với hàng tỷ hình ảnh, làm xương sống vững chắc để học một tập hợp đa dạng các điều khiển có điều kiện. Kiến trúc mạng nơ-ron được kết nối bằng các "cuộn không" (các lớp tích chập khởi tạo bằng không) giúp tăng dần số tham số từ không và đảm bảo rằng không có nhiễu có hại nào có thể ảnh hưởng đến quá trình tinh chỉnh. Chúng tôi kiểm tra các điều khiển điều kiện khác nhau, ví dụ như cạnh, độ sâu, phân đoạn, tư thế con người, v.v., với Stable Diffusion, sử dụng một hoặc nhiều điều kiện, có hoặc không có lời nhắc. Chúng tôi cho thấy rằng việc huấn luyện ControlNet là mạnh mẽ với các bộ dữ liệu nhỏ (<50k) và lớn (>1m). Các kết quả mở rộng cho thấy ControlNet có thể thúc đẩy các ứng dụng rộng hơn để kiểm soát các mô hình khuếch tán ảnh.
Tải từ định dạng gốc
Mặc định, FluxControlNetModel nên được tải bằng from_pretrained().
from diffusers import FluxControlNetPipeline
from diffusers.models import FluxControlNetModel, FluxMultiControlNetModel
controlnet = FluxControlNetModel.from_pretrained("InstantX/FLUX.1-dev-Controlnet-Canny")
pipe = FluxControlNetPipeline.from_pretrained("black-forest-labs/FLUX.1-dev", controlnet=controlnet)
controlnet = FluxControlNetModel.from_pretrained("InstantX/FLUX.1-dev-Controlnet-Canny")
controlnet = FluxMultiControlNetModel([controlnet])
pipe = FluxControlNetPipeline.from_pretrained("black-forest-labs/FLUX.1-dev", controlnet=controlnet)
FluxControlNetModel[[diffusers.FluxControlNetModel]]
diffusers.FluxControlNetModel[[diffusers.FluxControlNetModel]]
diffusers.FluxControlNetModel(patch_size: int = 1, in_channels: int = 64, num_layers: int = 19, num_single_layers: int = 38, attention_head_dim: int = 128, num_attention_heads: int = 24, joint_attention_dim: int = 4096, pooled_projection_dim: int = 768, guidance_embeds: bool = False, axes_dims_rope: list[int] = [16, 56, 56], num_mode: int = None, conditioning_embedding_channels: int = None)
forward[[diffusers.FluxControlNetModel.forward]]
forward(hidden_states: Tensor, controlnet_cond: Tensor, controlnet_mode: Tensor = None, conditioning_scale: float = 1.0, encoder_hidden_states: Tensor = None, pooled_projections: Tensor = None, timestep: LongTensor = None, img_ids: Tensor = None, txt_ids: Tensor = None, guidance: Tensor = None, joint_attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True)
Tham số:
hidden_states (torch.FloatTensor có hình dạng (batch size, channel, height, width)) : hidden_states đầu vào.
controlnet_cond (torch.Tensor) : Tensor đầu vào có điều kiện với hình dạng (batch_size, sequence_length, hidden_size).
controlnet_mode (torch.Tensor) : Tensor mode có shape (batch_size, 1).
conditioning_scale (float, mặc định là 1.0) : Hệ số tỷ lệ cho đầu ra của ControlNet.
encoder_hidden_states (torch.FloatTensor có shape (batch size, sequence_len, embed_dims)) : Các embeddings điều kiện (embeddings được tính từ các điều kiện đầu vào như prompts) cần sử dụng.
pooled_projections (torch.FloatTensor có hình dạng (batch_size, projection_dim)) : Các embedding được chiếu từ các embedding của các điều kiện đầu vào.
timestep ( torch.LongTensor) : Dùng để chỉ bước khử nhiễu.
img_ids (torch.Tensor) : Các id vị trí cho các token hình ảnh.
txt_ids (torch.Tensor) : Các id vị trí cho các token văn bản.
guidance (torch.Tensor, tùy chọn) : Tensor tỷ lệ hướng dẫn được sử dụng bởi các biến thể đã chưng cất hướng dẫn của mô hình.
joint_attention_kwargs (dict, tùy chọn) : Một từ điển kwargs mà nếu được chỉ định sẽ được truyền đến AttentionProcessor như đã định nghĩa dưới self.processor trong diffusers.models.attention_processor.
return_dict (bool, tùy chọn, mặc định là True) : Có nên trả về một ~models.transformer_2d.Transformer2DModelOutput thay vì một tuple thông thường hay không.
Trả về:
Nếu return_dict là True, một ~models.transformer_2d.Transformer2DModelOutput sẽ được trả về, ngược lại một tuple trong đó phần tử đầu tiên là tensor mẫu.
Phương thức forward của FluxTransformer2DModel.
FluxControlNetOutput[[diffusers.models.controlnets.FluxControlNetOutput]]
diffusers.models.controlnets.FluxControlNetOutput[[diffusers.models.controlnets.FluxControlNetOutput]]
diffusers.models.controlnets.FluxControlNetOutput(controlnet_block_samples: tuple[torch.Tensor], controlnet_single_block_samples: tuple[torch.Tensor])
Xet Storage Details
- Size:
- 6.78 kB
- Xet hash:
- d6b24b61b343ea6c9df0830b96a943983098108ea9b3e03f3ebed34a771d7b96
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.