Files
2025-11-27 18:27:31 +01:00

95 lines
3.3 KiB
Markdown

# ComfyUI Bokeh Diffusion
ComfyUI custom nodes for Bokeh Diffusion - Defocus Blur Control in Text-to-Image Diffusion Models.
This package provides ComfyUI nodes to add bokeh (defocus blur) control to FLUX models.
## Installation
1. Copy this directory (`ComfyUI_BokehDiffusion`) to your ComfyUI `custom_nodes` folder:
```
cp -r ComfyUI_BokehDiffusion /path/to/ComfyUI/custom_nodes/
```
2. Install dependencies (if not already installed):
```bash
pip install diffusers transformers huggingface_hub
```
## Usage
### Basic Workflow
1. **Load FLUX Model** - Use ComfyUI's standard model loading nodes to load a FLUX model
2. **Load Bokeh Adapter** - Use the `Load Bokeh Adapter` node to load the adapter from HuggingFace
3. **Apply Bokeh Adapter** - Connect your FLUX model and adapter to `Apply Bokeh Adapter`
4. **Set Bokeh Level** - Use `Bokeh Level` node to set the desired bokeh level (0-30)
5. **Generate** - Use `Bokeh KSampler` instead of the standard KSampler for generation
### Node Descriptions
#### Load Bokeh Adapter
- **adapter_name**: HuggingFace model ID (default: "atfortes/BokehDiffusion")
- **bokeh_scale**: Scale factor for bokeh effect (default: 1.0)
- **lora_scale**: Scale factor for LoRA components (default: 1.0)
#### Apply Bokeh Adapter
- **model**: FLUX model from ComfyUI's model loader
- **adapter**: Adapter from `Load Bokeh Adapter` node
#### Bokeh Level
- **bokeh_level**: Bokeh level from 0 (sharp) to 30 (maximum blur)
- **bokeh_pivot**: (Optional) Pivot bokeh level for grounded generation
- **num_grounding_steps**: (Optional) Number of grounding steps for scene consistency (0 = disabled, 18-24 recommended)
#### Bokeh KSampler
- **model**: Model with bokeh adapter applied
- **positive**: Positive conditioning
- **negative**: Negative conditioning
- **latent_image**: Initial latent image
- **seed**: Random seed
- **steps**: Number of inference steps
- **cfg**: Guidance scale
- **sampler_name**: Sampler name (e.g., "euler")
- **scheduler**: Scheduler name (e.g., "normal")
- **bokeh_control**: Bokeh control from `Bokeh Level` node
- **true_cfg**: (Optional) True CFG scale for negative prompt
### Example Workflow
```
[Load Checkpoint] -> [Apply Bokeh Adapter] -> [Bokeh KSampler]
^
|
[Load Bokeh Adapter]
[CLIP Text Encode] -> [Bokeh KSampler]
^
|
[Bokeh Level] -> [Bokeh KSampler]
```
## Features
- **Unbounded Generation**: Control bokeh level from 0 to 30
- **Grounded Generation**: Scene-consistent bokeh transitions using grounding steps
- **Standard ComfyUI Integration**: Works with standard ComfyUI nodes (model loading, VAE, CLIP, etc.)
## Notes
- This node requires a FLUX model (e.g., FLUX.1-dev)
- The adapter modifies the model's attention processors, so the model must support this
- For best results with grounded generation, use 18-24 grounding steps
- Bokeh level is normalized from 0-30 range to 0-1 internally
## License
This project is licensed under [NTU S-Lab License 1.0](https://github.com/atfortes/BokehDiffusion/blob/main/LICENSE).
## Credits
Based on the work by:
- Armando Fortes, Tianyi Wei, Shangchen Zhou, Xingang Pan
- Original repository: https://github.com/atfortes/BokehDiffusion