Skip to content

Commit

Permalink
[EXAMPLE] Slightly rework examples
Browse files Browse the repository at this point in the history
  • Loading branch information
Aedial committed May 26, 2023
1 parent 03c2943 commit 5d364fd
Show file tree
Hide file tree
Showing 7 changed files with 16 additions and 28 deletions.
6 changes: 2 additions & 4 deletions example/generate_controlnet_masks.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,12 @@ async def main():
async with API() as api_handler:
api = api_handler.api

with open(d / "image.png", "rb") as f:
image = base64.b64encode(f.read()).decode()
image = base64.b64encode((d / "image.png").read_bytes()).decode()

for controlnet in ControlNetModel:
try:
_, img = await api.low_level.generate_controlnet_mask(controlnet, image)
with open(d / f"image_{controlnet.value}.png", "wb") as f:
f.write(img)
(d / f"image_{controlnet.value}.png").write_bytes(img)

print(f"Generated with {controlnet.value}")
time.sleep(2)
Expand Down
10 changes: 4 additions & 6 deletions example/generate_image.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ async def main():
api = api_handler.api

preset = ImagePreset()
preset.seed = 42

# multiple images
# preset.n_samples = 4
i = 0
async for _, img in api.high_level.generate_image("1girl", ImageModel.Anime_Full, preset):
with open(d / f"image_1_{i}.png", "wb") as f:
f.write(img)
(d / f"image_1_{i}.png").write_bytes(img)

i += 1

Expand All @@ -37,17 +37,15 @@ async def main():
preset.resolution = (128, 256)

async for _, img in api.high_level.generate_image("1girl", ImageModel.Anime_Full, preset):
with open(d / "image_2.png", "wb") as f:
f.write(img)
(d / "image_2.png").write_bytes(img)

# furry model
preset.resolution = ImageResolution.Normal_Square
# Furry model has no Bad Anatomy UC Preset
preset.uc_preset = UCPreset.Preset_Low_Quality

async for _, img in api.high_level.generate_image("female, species:human", ImageModel.Furry, preset):
with open(d / "image_3.png", "wb") as f:
f.write(img)
(d / "image_3.png").write_bytes(img)


if __name__ == "__main__":
Expand Down
4 changes: 2 additions & 2 deletions example/generate_image_test_samplers.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,14 @@ async def main():
api = api_handler.api

preset = ImagePreset()
preset.seed = 42

for sampler in ImageSampler:
preset.sampler = sampler

try:
async for _, img in api.high_level.generate_image("1girl", ImageModel.Anime_Full, preset):
with open(d / f"image_{sampler.value}.png", "wb") as f:
f.write(img)
(d / f"image_{sampler.value}").write_bytes(img)

print(f"Generated with {sampler.value}")
time.sleep(2)
Expand Down
7 changes: 3 additions & 4 deletions example/generate_image_with_controlnet.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@ async def main():
async with API() as api_handler:
api = api_handler.api

with open(d / "image.png", "rb") as f:
image = base64.b64encode(f.read()).decode()
image = base64.b64encode((d / "image.png").read_bytes()).decode()

controlnet = ControlNetModel.Form_Lock
_, mask = await api.low_level.generate_controlnet_mask(controlnet, image)
Expand All @@ -33,11 +32,11 @@ async def main():
preset.controlnet_model = controlnet
preset.controlnet_condition = base64.b64encode(mask).decode()
preset.controlnet_strength = 1.5
preset.seed = 42

# NOTE: for some reasons, the images with controlnet are slightly different
async for _, img in api.high_level.generate_image("1girl", ImageModel.Anime_Full, preset):
with open(d / "image_with_controlnet.png", "wb") as f:
f.write(img)
(d / "image_with_controlnet.png").write_bytes(img)


if __name__ == "__main__":
Expand Down
7 changes: 3 additions & 4 deletions example/generate_image_with_img2img.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,20 +22,19 @@ async def main():
async with API() as api_handler:
api = api_handler.api

with open(d / "image.png", "rb") as f:
image = base64.b64encode(f.read()).decode()
image = base64.b64encode((d / "image.png").read_bytes()).decode()

preset = ImagePreset()
preset.noise = 0.1
# note that steps = 28, not 50, which mean strength needs to be adjusted accordingly
preset.strength = 0.5
preset.image = image
preset.seed = 42

async for _, img in api.high_level.generate_image(
"1girl", ImageModel.Anime_Full, preset, ImageGenerationType.IMG2IMG
):
with open(d / "image_with_img2img.png", "wb") as f:
f.write(img)
(d / "image_with_img2img.png").write_bytes(img)


if __name__ == "__main__":
Expand Down
4 changes: 0 additions & 4 deletions example/generate_image_with_inpainting.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,8 @@ async def main():
mask = base64.b64encode((d / "inpainting_mask.png").read_bytes()).decode()

preset = ImagePreset()
preset.noise = 0.1
# note that steps = 28, not 50, which mean strength needs to be adjusted accordingly
preset.strength = 0.5
preset.image = image
preset.mask = mask
preset.add_original_image = False
preset.seed = 42

async for _, img in api.high_level.generate_image(
Expand Down
6 changes: 2 additions & 4 deletions example/upscale_image.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,13 @@ async def main():
async with API() as api_handler:
api = api_handler.api

with open(d / "image.png", "rb") as f:
image = base64.b64encode(f.read()).decode()
image = base64.b64encode((d / "image.png").read_bytes()).decode()

# disable the type check on scale in _low_level.py to check on float values
for scale in (2, 4):
try:
_, img = await api.low_level.upscale_image(image, *image_size, scale)
with open(f"image_upscaled_{scale}.png", "wb") as f:
f.write(img)
(d / f"image_upscaled_{scale}.png").write_bytes(img)

print(f"Generated upscale {scale}")
time.sleep(2)
Expand Down

0 comments on commit 5d364fd

Please sign in to comment.