feat: copy docs
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
|
||||
# Documentation
|
||||
- Class name: Inference_Core_LayeredDiffusionDiffApply
|
||||
- Category: layer_diffuse
|
||||
- Output node: False
|
||||
- Repo Ref: https://github.com/comfyanonymous/ComfyUI
|
||||
|
||||
Inference_Core_LayeredDiffusionDiffApply 节点专门用于将分层扩散过程应用于给定的模型,利用特定的配置和权重来修改模型的行为。它旨在通过集成扩散技术来增强或改变模型的输出,如果模型配置支持,还可以包括注意力共享机制。
|
||||
|
||||
# Input types
|
||||
## Required
|
||||
- model
|
||||
- 将要应用分层扩散过程的模型。这个参数至关重要,因为它决定了将要进行扩散过程的基础模型,从而影响最终输出。
|
||||
- Comfy dtype: MODEL
|
||||
- Python dtype: ModelPatcher
|
||||
- cond
|
||||
- 扩散过程的条件输入,用于指导扩散的方向和结果。
|
||||
- Comfy dtype: CONDITIONING
|
||||
- Python dtype: Optional[List[List[torch.TensorType]]]
|
||||
- uncond
|
||||
- 扩散过程的无条件输入,为扩散效果提供基准。
|
||||
- Comfy dtype: CONDITIONING
|
||||
- Python dtype: Optional[List[List[torch.TensorType]]]
|
||||
- blended_latent
|
||||
- 融合了条件和无条件输入特征的潜在表示,用于影响扩散过程。
|
||||
- Comfy dtype: LATENT
|
||||
- Python dtype: Optional[torch.TensorType]
|
||||
- latent
|
||||
- 在应用扩散过程之前的模型原始潜在表示。
|
||||
- Comfy dtype: LATENT
|
||||
- Python dtype: torch.TensorType
|
||||
- config
|
||||
- 指定用于分层扩散过程的配置字符串。这个配置决定了如何应用扩散,包括任何特定于模型的调整或优化。
|
||||
- Comfy dtype: COMBO[STRING]
|
||||
- Python dtype: str
|
||||
- weight
|
||||
- 影响应用于模型的扩散过程强度的浮点值。它调整扩散对模型行为或输出的改变程度。
|
||||
- Comfy dtype: FLOAT
|
||||
- Python dtype: float
|
||||
|
||||
# Output types
|
||||
- model
|
||||
- 应用分层扩散过程后的修改模型,反映了行为或输出的变化。
|
||||
- Comfy dtype: MODEL
|
||||
- Python dtype: ModelPatcher
|
||||
- conditioning
|
||||
- 在扩散过程中使用或生成的条件信息,可能影响模型的输出。
|
||||
- Comfy dtype: CONDITIONING
|
||||
- Python dtype: Optional[List[List[torch.TensorType]]]
|
||||
|
||||
|
||||
## Usage tips
|
||||
- Infra type: `GPU`
|
||||
- Common nodes: unknown
|
||||
|
||||
|
||||
## Source code
|
||||
```python
|
||||
class LayeredDiffusionDiff:
|
||||
"""Extract FG/BG from blended image.
|
||||
- Blended + FG => BG
|
||||
- Blended + BG => FG
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(s):
|
||||
return {
|
||||
"required": {
|
||||
"model": ("MODEL",),
|
||||
"cond": ("CONDITIONING",),
|
||||
"uncond": ("CONDITIONING",),
|
||||
"blended_latent": ("LATENT",),
|
||||
"latent": ("LATENT",),
|
||||
"config": ([c.config_string for c in s.MODELS],),
|
||||
"weight": (
|
||||
"FLOAT",
|
||||
{"default": 1.0, "min": -1, "max": 3, "step": 0.05},
|
||||
),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("MODEL", "CONDITIONING", "CONDITIONING")
|
||||
FUNCTION = "apply_layered_diffusion"
|
||||
CATEGORY = "layer_diffuse"
|
||||
MODELS = (
|
||||
LayeredDiffusionBase(
|
||||
model_file_name="layer_xl_fgble2bg.safetensors",
|
||||
model_url="https://huggingface.co/LayerDiffusion/layerdiffusion-v1/resolve/main/layer_xl_fgble2bg.safetensors",
|
||||
sd_version=StableDiffusionVersion.SDXL,
|
||||
cond_type=LayerType.FG,
|
||||
),
|
||||
LayeredDiffusionBase(
|
||||
model_file_name="layer_xl_bgble2fg.safetensors",
|
||||
model_url="https://huggingface.co/LayerDiffusion/layerdiffusion-v1/resolve/main/layer_xl_bgble2fg.safetensors",
|
||||
sd_version=StableDiffusionVersion.SDXL,
|
||||
cond_type=LayerType.BG,
|
||||
),
|
||||
)
|
||||
|
||||
def apply_layered_diffusion(
|
||||
self,
|
||||
model: ModelPatcher,
|
||||
cond,
|
||||
uncond,
|
||||
blended_latent,
|
||||
latent,
|
||||
config: str,
|
||||
weight: float,
|
||||
):
|
||||
ld_model = [m for m in self.MODELS if m.config_string == config][0]
|
||||
assert get_model_sd_version(model) == ld_model.sd_version
|
||||
c_concat = model.model.latent_format.process_in(
|
||||
torch.cat([latent["samples"], blended_latent["samples"]], dim=1)
|
||||
)
|
||||
return ld_model.apply_layered_diffusion(
|
||||
model, weight
|
||||
) + ld_model.apply_c_concat(cond, uncond, c_concat)
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user