diff --git a/PARAMS.md b/PARAMS.md new file mode 100644 index 0000000..0134b44 --- /dev/null +++ b/PARAMS.md @@ -0,0 +1,47 @@ +## Start At and End At parameters usage + +### start_at + +Let's start with a ELLA outpaint [workflow](example/BrushNet_with_ELLA.json) and switch off Blend Inpaint node: + +![example workflow](example/params1.png?raw=true) + +For this example I use "wargaming shop showcase" prompt, `dpmpp_2m` deterministic sampler and `karras` scheduler with 15 steps. This is the result: + +![goblin in the shop](example/params2.png?raw=true) + +The `start_at` BrushNet node parameter allows us to delay BrushNet inference for some steps, so the base model will do all the job. Let's see what the result will be without BrushNet. For this I set up `start_at` parameter to 20 - it should be more then `steps` in KSampler node: + +![the shop](example/params3.png?raw=true) + +So, if we apply BrushNet from the beginning (`start_at` equals 0), the resulting scene will be heavily influenced by BrushNet image. The more we increase this parameter, the more scene will be based on prompt. Let's compare: + +| `start_at` = 1 | `start_at` = 2 | `start_at` = 3 | +|:--------------:|:--------------:|:--------------:| +| ![p1](example/params4.png?raw=true) | ![p2](example/params5.png?raw=true) | ![p3](example/params6.png?raw=true) | +| `start_at` = 4 | `start_at` = 5 | `start_at` = 6 | +| ![p1](example/params7.png?raw=true) | ![p2](example/params8.png?raw=true) | ![p3](example/params9.png?raw=true) | +| `start_at` = 7 | `start_at` = 8 | `start_at` = 9 | +| ![p1](example/params10.png?raw=true) | ![p2](example/params11.png?raw=true) | ![p3](example/params12.png?raw=true) | + +Look how the floor is aligned with toy's base - at some step it looses consistency. The results will depend on type of sampler and number of KSampler steps, of course. + +### end_at + +The `end_at` parameter switches off BrushNet at the last steps. If you use deterministic sampler it will only influences details on last steps, but stochastic samplers can change the whole scene. For a description of samplers see, for example, Matteo Spinelli's [video on ComfyUI basics](https://youtu.be/_C7kR2TFIX0?t=516). + +Here I use basic BrushNet inpaint [example](example/BrushNet_basic.json), with "intricate teapot" prompt, `dpmpp_2m` deterministic sampler and `karras` scheduler with 15 steps: + +![example workflow](example/params13.png?raw=true) + +There are almost no changes when we set 'end_at' paramter to 10, but starting from it: + +| `start_at` = 10 | `start_at` = 9 | `start_at` = 8 | +|:--------------:|:--------------:|:--------------:| +| ![p1](example/params14.png?raw=true) | ![p2](example/params15.png?raw=true) | ![p3](example/params16.png?raw=true) | +| `start_at` = 7 | `start_at` = 6 | `start_at` = 5 | +| ![p1](example/params17.png?raw=true) | ![p2](example/params18.png?raw=true) | ![p3](example/params19.png?raw=true) | +| `start_at` = 4 | `start_at` = 3 | `start_at` = 2 | +| ![p1](example/params20.png?raw=true) | ![p2](example/params21.png?raw=true) | ![p3](example/params22.png?raw=true) | + +You can see how the scene was completely redrawn. diff --git a/README.md b/README.md index 2a22791..c61dc25 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,8 @@ Below is an example for the intended workflow. The [workflow](example/BrushNet_b - `start_at`, defaults to 0: step at which the BrushNet starts applying. - `end_at`, defaults to 10000: step at which the BrushNet stops applying. +[Here](PARAMS.md) are examples of use these two last parameters. + #### PowerPaint - `CLIP`: PowerPaint CLIP that should be passed from PowerPaintCLIPLoader node. diff --git a/example/params1.png b/example/params1.png new file mode 100644 index 0000000..244a40f Binary files /dev/null and b/example/params1.png differ diff --git a/example/params10.png b/example/params10.png new file mode 100644 index 0000000..2c122d0 Binary files /dev/null and b/example/params10.png differ diff --git a/example/params11.png b/example/params11.png new file mode 100644 index 0000000..19ca280 Binary files /dev/null and b/example/params11.png differ diff --git a/example/params12.png b/example/params12.png new file mode 100644 index 0000000..26aa22f Binary files /dev/null and b/example/params12.png differ diff --git a/example/params13.png b/example/params13.png new file mode 100644 index 0000000..6b7b0db Binary files /dev/null and b/example/params13.png differ diff --git a/example/params14.png b/example/params14.png new file mode 100644 index 0000000..a701e04 Binary files /dev/null and b/example/params14.png differ diff --git a/example/params15.png b/example/params15.png new file mode 100644 index 0000000..7b215d3 Binary files /dev/null and b/example/params15.png differ diff --git a/example/params16.png b/example/params16.png new file mode 100644 index 0000000..3c03161 Binary files /dev/null and b/example/params16.png differ diff --git a/example/params17.png b/example/params17.png new file mode 100644 index 0000000..2fd0170 Binary files /dev/null and b/example/params17.png differ diff --git a/example/params18.png b/example/params18.png new file mode 100644 index 0000000..c736fbc Binary files /dev/null and b/example/params18.png differ diff --git a/example/params19.png b/example/params19.png new file mode 100644 index 0000000..2eee10d Binary files /dev/null and b/example/params19.png differ diff --git a/example/params2.png b/example/params2.png new file mode 100644 index 0000000..79e7e54 Binary files /dev/null and b/example/params2.png differ diff --git a/example/params20.png b/example/params20.png new file mode 100644 index 0000000..8c9f56e Binary files /dev/null and b/example/params20.png differ diff --git a/example/params21.png b/example/params21.png new file mode 100644 index 0000000..6c2f540 Binary files /dev/null and b/example/params21.png differ diff --git a/example/params22.png b/example/params22.png new file mode 100644 index 0000000..3e7b0b5 Binary files /dev/null and b/example/params22.png differ diff --git a/example/params3.png b/example/params3.png new file mode 100644 index 0000000..336b16b Binary files /dev/null and b/example/params3.png differ diff --git a/example/params4.png b/example/params4.png new file mode 100644 index 0000000..833f3c1 Binary files /dev/null and b/example/params4.png differ diff --git a/example/params5.png b/example/params5.png new file mode 100644 index 0000000..5e5faed Binary files /dev/null and b/example/params5.png differ diff --git a/example/params6.png b/example/params6.png new file mode 100644 index 0000000..9358f29 Binary files /dev/null and b/example/params6.png differ diff --git a/example/params7.png b/example/params7.png new file mode 100644 index 0000000..fb96730 Binary files /dev/null and b/example/params7.png differ diff --git a/example/params8.png b/example/params8.png new file mode 100644 index 0000000..d17c0b5 Binary files /dev/null and b/example/params8.png differ diff --git a/example/params9.png b/example/params9.png new file mode 100644 index 0000000..2d85e86 Binary files /dev/null and b/example/params9.png differ