Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

reGen #74

Merged
merged 97 commits into from
Oct 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
d2bef6b
tests: feat: show img pair which mismatched
tazlin Aug 25, 2023
58777ab
style: black formatter catchup
tazlin Aug 26, 2023
2d6fc59
fix: Remove `VAEDecodeTiled`; switch to ` VAEDecode`
tazlin Aug 26, 2023
c7aaa4d
fix: remove references to now unused clip/blip code
tazlin Aug 28, 2023
7243f00
fix: don't sha validate annotators if previously done
tazlin Aug 28, 2023
28d32c9
feat: give better in-progress inference log information
tazlin Aug 28, 2023
7e3eee9
fix: downgrade warning for (re) loading model managers
tazlin Aug 28, 2023
98178f3
fix: remove any load to ram/vram code, make hordelib single threaded
tazlin Aug 28, 2023
530c157
tests: confirm deliberate+sdxl 1.0 are downloaded and valid on test
tazlin Aug 28, 2023
ddb3e76
ci: setup env correctly for CI
tazlin Aug 28, 2023
dbed9a9
fix: remove inpainting sdxl tests; update sdxl img2img test
tazlin Aug 28, 2023
878c23c
feat: display time too in `run_kudos_test`
tazlin Aug 28, 2023
7f6b5fa
fix: black version in tox
tazlin Aug 28, 2023
f9da535
tests: confirm lora+hires work together
tazlin Aug 28, 2023
62f372f
refactor: fix variable typos/update to snake case
tazlin Aug 28, 2023
d74d304
tests: download all required models/files for test upfront
tazlin Aug 28, 2023
5d29e0d
build: better build directives
tazlin Aug 28, 2023
c39ce05
tests: account for more lora circumstancces
tazlin Aug 30, 2023
f0b3170
tests: include one of each SDXL suggested resolution
tazlin Aug 30, 2023
30be4b3
fix: malformed regex for comfyui inference progress detection
tazlin Aug 30, 2023
aa354af
fix: add title to facerestore node
tazlin Aug 30, 2023
acf82d2
refactor: better `BaseModelManager` func names, remove unused funcs
tazlin Aug 30, 2023
a11cfe5
style: reintroduce imported but unused lint rule
tazlin Aug 30, 2023
46af8ec
style: adds precommit; applies all whitespace fixes
tazlin Aug 30, 2023
b0f1ae4
chore: ignore big style fix from git blame
tazlin Aug 30, 2023
5bdc485
ci: trigger pre-commit on CI
tazlin Aug 30, 2023
bf4d684
refactor: more paths to `Path` objects; more doc strings in base.py
tazlin Aug 31, 2023
775ecf6
refactor: comfy handles memory; better multiprocessing scaffolding
tazlin Aug 31, 2023
fca1fb1
fix: remove references from `hordelib.__init__` (breaks build)
tazlin Aug 31, 2023
7ff2ef9
tests: fix: swapped dimensions for sdxl test
tazlin Aug 31, 2023
866151b
tests: fix: make lora last_use check less likely to fail
tazlin Aug 31, 2023
3edf144
fix: bring `image_upscale` + `image_facefix` inl ine with return type…
tazlin Aug 31, 2023
de3eff8
fix: cleaner progress bar comfy intercept replay/display
tazlin Aug 31, 2023
20851ec
feat: process tracking support in logging
tazlin Aug 31, 2023
c7c7f1f
tests: default to showing all debug messages during CI
tazlin Aug 31, 2023
e057eba
fix: hide debug message
tazlin Aug 31, 2023
23cbab1
style: ruff/black catchup
tazlin Aug 31, 2023
c8d31ef
style: missed files on last style catchup
tazlin Aug 31, 2023
2062351
ci: add missing dep for mypy pre-commit hook
tazlin Aug 31, 2023
c876d84
chore: ignore big style catchup in git blame
tazlin Aug 31, 2023
d595cc2
build: do not include images folder in pypi packages
tazlin Aug 31, 2023
7af7afb
tests: fail tests if `images_expected` folder is missing
tazlin Aug 31, 2023
6516b7b
fix: missing dep in reqs.txt
tazlin Aug 31, 2023
cfd6bf9
style: enforce lint rules `UP` and `RET`
tazlin Aug 31, 2023
5b8e7a4
style: enforce lint ruleset `B` (bugbear)
tazlin Aug 31, 2023
f5fa960
tests: issue with test order; more leniency to lora last use check
tazlin Aug 31, 2023
f2c3089
fix: errant reference to removed download callback
tazlin Aug 31, 2023
43745ba
fix: better handle missing downloads/sha256 files
tazlin Aug 31, 2023
24d73fb
fix: correct version pins
tazlin Aug 31, 2023
97f244a
fix: loras not updating last use
tazlin Aug 31, 2023
fb839c1
fix: quiet some Comfy_Horde logging
tazlin Aug 31, 2023
dcbf523
fix: further attempts to minimize threading issues with loras
tazlin Sep 2, 2023
07d58b5
fix: remove unused model reference download code from base.py
tazlin Sep 2, 2023
5ae4a47
fix: better log messages for multiproc, quiet comfy init `print(...)`s
tazlin Sep 2, 2023
3b0badf
style: fix line too long
tazlin Sep 2, 2023
a084e4e
feat: better logging, fix TI missing from payload
tazlin Sep 3, 2023
ba84dbe
fix: lora test case should be lowercase
tazlin Sep 3, 2023
5452dd1
fix: none handling in lora `is_model_available`
tazlin Sep 3, 2023
741dd04
Merge branch 'main' into regen
tazlin Sep 10, 2023
0f8a296
feat: latest comfyui
tazlin Sep 12, 2023
10d7279
fix: remove old references to comfy vars
tazlin Sep 12, 2023
e163729
fix: validate TIs correctly (as with loras)
tazlin Sep 12, 2023
49a839a
fix: don't crash on invalid model reference json
tazlin Sep 12, 2023
8f042b2
fix: default to loading all model managers (is now more lightweight)
tazlin Sep 12, 2023
2f8202f
feat: better log messages during inference
tazlin Sep 12, 2023
28ca538
fix: unload models more reliably when switching
tazlin Sep 12, 2023
4e256a6
style: lint fix
tazlin Sep 12, 2023
58b4b12
tests: give TI model manager tests 3 chances at a download
tazlin Sep 12, 2023
9ce61e4
feat: tiling
tazlin Sep 13, 2023
f04cefc
fix: remove indev memory usage hacks
tazlin Sep 13, 2023
1313fbb
feat: better tiling support
tazlin Sep 14, 2023
2f4aba5
refactor: more idiomatic seamless tiling
tazlin Sep 14, 2023
f6bc72e
feat: worker beta changes
tazlin Oct 1, 2023
5ca13ad
fix: use pre-commit for lint checks
tazlin Oct 1, 2023
c407ddb
Merge pull request #73 from Haidra-Org/ci-pre-commit
tazlin Oct 1, 2023
858e011
chore: version bump, min requirements
tazlin Oct 1, 2023
a43370f
fix: accurate download script
tazlin Oct 1, 2023
6998b1d
fix: handle base64 for source image
tazlin Oct 1, 2023
62f9df7
fix: mask image
tazlin Oct 1, 2023
a1a8042
fix: handle pp when given sdk payload: adds rembg
tazlin Oct 1, 2023
a8d6d6f
fix: remove stats log level
tazlin Oct 1, 2023
b51c4f5
fix: cleanup logger sink logic
tazlin Oct 3, 2023
96a6ea1
fix: lora download hang-up; don't hard crash on lora dl fail
tazlin Oct 3, 2023
39bb61d
fix: strip() orig name for TI on model reference load
tazlin Oct 3, 2023
8f812c3
tests: take 2 on TI test
tazlin Oct 3, 2023
3fe3190
fix: be more consistent with TI model ref keys
tazlin Oct 3, 2023
174852c
fix: bad `strip_background()` func signature
tazlin Oct 3, 2023
f565559
fix: dup func def in logger.py
tazlin Oct 3, 2023
8bd0615
tests: fail on first controlnet mismatch
tazlin Oct 3, 2023
6661e5c
tests: now detect runtime error on unknown pipeline
tazlin Oct 3, 2023
f868bb8
feat: comfyui 099226015edcdf595d915f0f39359ef0d83fbba6
tazlin Oct 3, 2023
c3d68f6
feat: comfyui callback; better type hints
tazlin Oct 3, 2023
43e7261
fix: even more defensive programing with TIs
tazlin Oct 3, 2023
6464a86
tests: will somebody rid me of this turbulent test
tazlin Oct 3, 2023
904a791
fix: don't crash on `comfyui_callback` kwarg for HordeLib()
tazlin Oct 3, 2023
9e6f85a
fix: don't crash on model unload
tazlin Oct 3, 2023
b08b769
Merge pull request #68 from Haidra-Org/regen
tazlin Oct 3, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,10 @@ d834bf44ec4b63e80a7e100e0493ba0f24ec0d14
f74a0f3deb14b21a8155d4133030a4871ffef84b

# Medium style/lint/minor refactor only changes 4/11/23
1cb70d2eb3c219bff304c4ed0ac34f7456946281
1cb70d2eb3c219bff304c4ed0ac34f7456946281

# Precommit 8/30/23
46af8ec00f93edde1a4953936ca25fb9c9fc369e

# Catchup and included hordelib/nodes/
23cbab10b5895072678a070beb7a6dc0b8640722
10 changes: 4 additions & 6 deletions .github/workflows/maintests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:
- 'tox.ini'
- '.github/workflows/maintests.yml'
- '.github/workflows/prtests.yml'
- '.github/workflows/release.yml'
- '.github/workflows/release.yml'
jobs:
build:

Expand All @@ -29,13 +29,11 @@ jobs:
with:
python-version: ${{ matrix.python }}
- name: Install tox and any other packages
run: |
run: |
python -m pip install --upgrade pip
pip install --upgrade -r requirements.dev.txt
- name: Run format check
run: tox -e format
- name: Run lint check
run: tox -e lint-weak-check
- name: Run lint/format/mypy check
run: tox -e pre-commit
- name: Check build_helper.py hordelib imports have no breaking dependency changes
run: tox -e test-build-helper
- name: Build unit test environment, confirm CUDA is available on host
Expand Down
10 changes: 4 additions & 6 deletions .github/workflows/prtests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ on:
- 'tox.ini'
- '.github/workflows/maintests.yml'
- '.github/workflows/prtests.yml'
- '.github/workflows/release.yml'
- '.github/workflows/release.yml'
jobs:
build:

Expand All @@ -34,13 +34,11 @@ jobs:
with:
python-version: ${{ matrix.python }}
- name: Install tox and any other packages
run: |
run: |
python -m pip install --upgrade pip
pip install --upgrade -r requirements.dev.txt
- name: Run format check
run: tox -e format
- name: Run lint check
run: tox -e lint-weak-check
- name: Run lint/format/mypy check
run: tox -e pre-commit
- name: Check build_helper.py hordelib imports have no breaking dependency changes
run: tox -e test-build-helper
- name: Build unit test environment, confirm CUDA is available on host
Expand Down
5 changes: 2 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
push:
branches:
- releases

permissions:
contents: write
pull-requests: read
Expand Down Expand Up @@ -53,7 +53,7 @@ jobs:
if: ${{ steps.release.outputs.version != '' }}
run: |
python -m pip install --upgrade pip
python -m pip install build psutil typing-extensions loguru strenum --user
python -m pip install build psutil typing-extensions loguru strenum python-dotenv --user

- name: "✏️ Install changelog dependencies"
if: ${{ steps.release.outputs.version != '' }}
Expand Down Expand Up @@ -110,4 +110,3 @@ jobs:
# with:
# webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }}
# content: "New version of hordelib has been published to pypi: ${{ steps.release.outputs.version }}. You can update your worker by running `./update-runtime.sh --hordelib` (Linux) or `update-runtime.cmd --hordelib` (Windows). Changelog: https://t.ly/z2vQ"

22 changes: 22 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/psf/black
rev: 23.7.0
hooks:
- id: black
exclude: ^hordelib/nodes/.*\..*$
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.0.282
hooks:
- id: ruff
- repo: https://github.com/pre-commit/mirrors-mypy
rev: 'v1.4.1'
hooks:
- id: mypy
exclude: ^examples/.*$ # FIXME
additional_dependencies: [pydantic, strenum, types-colorama, types-docutils, types-Pillow, types-psutil, types-Pygments, types-pywin32, types-PyYAML, types-regex, types-requests, types-setuptools, types-tabulate, types-tqdm, types-urllib3]
5 changes: 5 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
recursive-include hordelib *.typed

exclude images/*
exclude images_expected/*

# Although it looks like these files don't exist, they are created
# by the build_helper just prior to pypi packaging.
graft hordelib/_comfyui
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ data = {
"n_iter": 1,
"model": "Deliberate",
}
pil_image = generate.basic_inference(data)
pil_image = generate.basic_inference_single_image(data)
pil_image.save("test.png")
```

Expand Down Expand Up @@ -113,7 +113,7 @@ Custom nodes for ComfyUI providing face restoration.

## DMCA Abuse

On 26th May 2023 an [individual](https://github.com/hlky) issued a [DMCA takedown notice](https://github.com/github/dmca/blob/master/2023/05/2023-05-26-nataili.md) to Github against `hordelib` which claimed their name had been removed from the copyright header in the AGPL license in the 7 files listed in the takedown notice. This claim was true, and this attribution had been removed by a `hordelib` contributor prior to being committed into the `hordelib` repository.
On 26th May 2023 an [individual](https://github.com/hlky) issued a [DMCA takedown notice](https://github.com/github/dmca/blob/master/2023/05/2023-05-26-nataili.md) to Github against `hordelib` which claimed their name had been removed from the copyright header in the AGPL license in the 7 files listed in the takedown notice. This claim was true, and this attribution had been removed by a `hordelib` contributor prior to being committed into the `hordelib` repository.

Unfortunately, it appears the individual making the DMCA claim was acting in bad faith, and even when their name was restored to the copyright attribution in the files, they persisted to press the DMCA takedown claim, which, due to the nature of the Github process, resulted in hordelib being subject to a DMCA takedown on Github.

Expand Down
13 changes: 13 additions & 0 deletions examples/download_all_sd_models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import hordelib.initialisation
from hordelib.shared_model_manager import SharedModelManager


def main():
hordelib.initialisation.initialise(setup_logging=True, logging_verbosity=5)

SharedModelManager.load_model_managers(["compvis"])
SharedModelManager.manager.compvis.download_all_models()


if __name__ == "__main__":
main()
6 changes: 1 addition & 5 deletions examples/kudos.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
import sys

import torch
import torch.nn as nn


class KudosModel:
Expand Down Expand Up @@ -132,9 +131,7 @@ def calculate_kudos(self, payload, basis_adjustment=0, basis_scale=1):
kudos = kudos * basis_scale

# Scale our kudos by the time the job will take to complete
kudos = job_ratio * kudos

return kudos
return job_ratio * kudos

@classmethod
def one_hot_encode(cls, strings, unique_strings):
Expand Down Expand Up @@ -211,7 +208,6 @@ def calculate_basis_time(self):


if __name__ == "__main__":

if len(sys.argv) != 2:
print("Syntax: kudos.py <model_filename>")

Expand Down
20 changes: 9 additions & 11 deletions examples/lora_downloader.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ def _get_json(self, url):
# Failed badly
logger.error(f"LORA download failed {e}")
return None
return None

def _get_more_items(self):
if not self._data:
Expand Down Expand Up @@ -116,7 +117,7 @@ def _sanitise_filename(self, filename):
# First remove exotic unicode characters
filename = filename.encode("ascii", "ignore").decode("ascii")
# Now exploit characters
valid_chars = "-_.() %s%s" % (string.ascii_letters, string.digits)
valid_chars = f"-_.() {string.ascii_letters}{string.digits}"
return "".join(c for c in filename if c in valid_chars)

def _parse_civitai_lora_data(self, item):
Expand Down Expand Up @@ -149,7 +150,7 @@ def _parse_civitai_lora_data(self, item):
break
# If we don't have everything required, fail
if not lora.get("sha256") or not lora.get("filename") or not lora.get("url") or not lora.get("triggers"):
return
return None
# Fixup A1111 centric triggers
for i, trigger in enumerate(lora["triggers"]):
if re.match("<lora:(.*):.*>", trigger):
Expand Down Expand Up @@ -181,7 +182,7 @@ def _download_thread(self):
with open(hashfile) as infile:
try:
hashdata = infile.read().split()[0]
except (IndexError, OSError, IOError, PermissionError):
except (IndexError, OSError, PermissionError):
hashdata = ""
if hashdata.lower() == lora["sha256"].lower():
# we already have this lora, consider it downloaded
Expand All @@ -205,7 +206,7 @@ def _download_thread(self):
with open(filename, "wb") as outfile:
outfile.write(response.content)
# Save the hash file
with open(hashfile, "wt") as outfile:
with open(hashfile, "w") as outfile:
outfile.write(f"{sha256} *{lora['filename']}")

# Shout about it
Expand All @@ -217,9 +218,9 @@ def _download_thread(self):
if self._downloaded_mb > self._max_disk:
self.done = True
break
else:
logger.debug(f"Downloaded LORA file for {lora['filename']} didn't match hash")
pass # we will retry

logger.debug(f"Downloaded LORA file for {lora['filename']} didn't match hash")
pass # we will retry

except (requests.HTTPError, requests.ConnectionError, requests.Timeout, json.JSONDecodeError) as e:
logger.debug(f"Error downloading {lora['filename']} {e}")
Expand Down Expand Up @@ -262,11 +263,9 @@ def _process_items(self):
self._download_lora(lora)

def _start_processing(self):

self.done = False

while not self.done:

# Get some items to download
self._get_more_items()

Expand All @@ -292,11 +291,10 @@ def download(self, wait=False):

# Save the final model data index
filename = os.path.join(self._download_dir, "loras.json")
with open(filename, "wt", encoding="utf-8", errors="ignore") as outfile:
with open(filename, "w", encoding="utf-8", errors="ignore") as outfile:
outfile.write(json.dumps(self.model_data, indent=4))


if __name__ == "__main__":

downloader = LoraDownloader(allowed_storage=1024) # MB
downloader.download(wait=True)
4 changes: 2 additions & 2 deletions examples/run_all_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ def add_model(model_name):
def do_inference(model_name, iterations=1):
"""Do some work on the GPU"""
horde = HordeLib()
for i in range(iterations):
for _ in range(iterations):
data = {
"sampler_name": "k_euler",
"cfg_scale": 6.5,
Expand All @@ -52,7 +52,7 @@ def do_inference(model_name, iterations=1):
"n_iter": 1,
"model": model_name,
}
pil_image = horde.basic_inference(data)
pil_image = horde.basic_inference_single_image(data)
if not pil_image:
logger.error("Inference is failing to generate images")
else:
Expand Down
1 change: 0 additions & 1 deletion examples/run_all_stress_tests.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import os
import subprocess
import sys

Expand Down
4 changes: 1 addition & 3 deletions examples/run_controlnet.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
# This tests running hordelib standalone, as an external caller would use it.
# Call with: python -m test.run_controlnet
# You need all the deps in whatever environment you are running this.
import os

import hordelib
from hordelib.consts import MODEL_CATEGORY_NAMES


def main():

hordelib.initialise()

from PIL import Image
Expand Down Expand Up @@ -46,7 +44,7 @@ def main():
# Not valid for normal image input test
continue
data["control_type"] = preproc
pil_image = generate.basic_inference(data)
pil_image = generate.basic_inference_single_image(data)
pil_image.save(f"images/run_controlnet_{preproc}.webp", quality=90)


Expand Down
4 changes: 1 addition & 3 deletions examples/run_controlnet_annotator.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
# This tests running hordelib standalone, as an external caller would use it.
# Call with: python -m test.run_controlnet
# You need all the deps in whatever environment you are running this.
import os

import hordelib
from hordelib.consts import MODEL_CATEGORY_NAMES


def main():

hordelib.initialise()

from PIL import Image
Expand Down Expand Up @@ -45,7 +43,7 @@ def main():
# Not valid for normal image input test
continue
data["control_type"] = preproc
pil_image = generate.basic_inference(data)
pil_image = generate.basic_inference_single_image(data)
pil_image.save(f"images/run_annotator_{preproc}.webp", quality=90)


Expand Down
1 change: 0 additions & 1 deletion examples/run_facefix.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# This tests running hordelib standalone, as an external caller would use it.
# Call with: python -m test.run_facefix
# You need all the deps in whatever environment you are running this.
import os

import hordelib

Expand Down
3 changes: 1 addition & 2 deletions examples/run_img2img.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# This tests running hordelib standalone, as an external caller would use it.
# Call with: python -m test.run_img2img
# You need all the deps in whatever environment you are running this.
import os

import hordelib
from hordelib.consts import MODEL_CATEGORY_NAMES
Expand Down Expand Up @@ -39,7 +38,7 @@ def main():
"model": "Deliberate",
"source_image": Image.open("images/test_db0.jpg"),
}
pil_image = generate.basic_inference(data)
pil_image = generate.basic_inference_single_image(data)
pil_image.save("images/run_img2img.webp", quality=90)


Expand Down
4 changes: 1 addition & 3 deletions examples/run_img2img_hires.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
# This tests running hordelib standalone, as an external caller would use it.
# Call with: python -m test.run_img2img_hires
# You need all the deps in whatever environment you are running this.
import os

import hordelib
from hordelib.consts import MODEL_CATEGORY_NAMES


def main():

hordelib.initialise()

from PIL import Image
Expand Down Expand Up @@ -40,7 +38,7 @@ def main():
"model": "Deliberate",
"source_image": Image.open("images/test_db0.jpg"),
}
pil_image = generate.basic_inference(data)
pil_image = generate.basic_inference_single_image(data)
pil_image.save("images/run_img2img_hires.webp", quality=90)


Expand Down
3 changes: 1 addition & 2 deletions examples/run_img2img_inpaint.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# This tests running hordelib standalone, as an external caller would use it.
# Call with: python -m test.run_img2img_inpaint
# You need all the deps in whatever environment you are running this.
import os

import hordelib
from hordelib.consts import MODEL_CATEGORY_NAMES
Expand Down Expand Up @@ -40,7 +39,7 @@ def main():
"source_image": Image.open("images/test_inpaint.png"),
"source_processing": "inpainting",
}
pil_image = generate.basic_inference(data)
pil_image = generate.basic_inference_single_image(data)
pil_image.save("images/run_img2img_inpaint.webp", quality=90)


Expand Down
Loading