| # ComfyUI-layerdiffuse | |
| ComfyUI implementation of https://github.com/layerdiffusion/LayerDiffuse. | |
| ## Installation | |
| Download the repository and unpack into the custom_nodes folder in the ComfyUI installation directory. | |
| Or clone via GIT, starting from ComfyUI installation directory: | |
| ```bash | |
| cd custom_nodes | |
| git clone git@github.com:huchenlei/ComfyUI-layerdiffuse.git | |
| ``` | |
| Run `pip install -r requirements.txt` to install python dependencies. You might experience version conflict on diffusers if you have other extensions | |
| that depends on other versions of diffusers. In this case, it is recommended to setup separate Python venvs. | |
| ## Workflows | |
| ### [Generate foreground](https://github.com/huchenlei/ComfyUI-layerdiffuse/blob/main/examples/layer_diffusion_fg_example_rgba.json) | |
|  | |
| ### [Generate foreground (RGB + alpha)](https://github.com/huchenlei/ComfyUI-layerdiffuse/blob/main/examples/layer_diffusion_fg_example.json) | |
| If you want more control of getting RGB image and alpha channel mask separately, you can use this workflow. | |
|  | |
| ### [Blending (FG/BG)](https://github.com/huchenlei/ComfyUI-layerdiffuse/blob/main/examples/layer_diffusion_cond_example.json) | |
| Blending given FG | |
|  | |
| Blending given BG | |
|  | |
| ### [Extract FG from Blended + BG](https://github.com/huchenlei/ComfyUI-layerdiffuse/blob/main/examples/layer_diffusion_diff_fg.json) | |
|  | |
| ### [Extract BG from Blended + FG](https://github.com/huchenlei/ComfyUI-layerdiffuse/blob/main/examples/layer_diffusion_diff_bg.json) | |
| [Forge impl's sanity check](https://github.com/layerdiffuse/sd-forge-layerdiffuse#sanity-check) sets `Stop at` to 0.5 to get better quality BG. | |
| This workflow might be inferior comparing to other object removal workflows. | |
|  | |
| ### [Extract BG from Blended + FG (Stop at 0.5)](https://github.com/huchenlei/ComfyUI-layerdiffuse/blob/main/examples/layer_diffusion_diff_bg_stop_at.json) | |
| In [SD Forge impl](https://github.com/layerdiffuse/sd-forge-layerdiffuse), there is a `stop at` param that determines when | |
| layer diffuse should stop in the denosing process. In the background, what this param does is unapply the LoRA and c_concat cond after a certain step | |
| threshold. This is hard/risky to implement directly in ComfyUI as it requires manually load a model that has every changes except the layer diffusion | |
| change applied. A workaround in ComfyUI is to have another img2img pass on the layer diffuse result to simulate the effect of `stop at` param. | |
|  | |
| ### [Generate FG from BG combined](https://github.com/huchenlei/ComfyUI-layerdiffuse/blob/main/examples/layer_diffusion_cond_fg_all.json) | |
| Combines previous workflows to generate blended and FG given BG. We found that there are some color variations in the extracted FG. Need to confirm | |
| with layer diffusion authors on whether this is expected. | |
|  | |
| ### [2024-3-9] [Generate FG + Blended given BG](https://github.com/huchenlei/ComfyUI-layerdiffuse/blob/main/examples/layer_diffusion_cond_joint_bg.json) | |
| Need batch size = 2N. Currently only for SD15. | |
|  | |
| ### [2024-3-9] [Generate BG + Blended given FG](https://github.com/huchenlei/ComfyUI-layerdiffuse/blob/main/examples/layer_diffusion_cond_joint_fg.json) | |
| Need batch size = 2N. Currently only for SD15. | |
|  | |
| ### [2024-3-9] [Generate BG + FG + Blended together](https://github.com/huchenlei/ComfyUI-layerdiffuse/blob/main/examples/layer_diffusion_joint.json) | |
| Need batch size = 3N. Currently only for SD15. | |
|  | |
| ## Note | |
| - Currently only SDXL/SD15 are supported. See https://github.com/layerdiffuse/sd-forge-layerdiffuse#model-notes for more details. | |
| - To decode RGBA result, the generation dimension must be multiple of 64. Otherwise, you will get decode error:  | |