Spaces:
Running
on
Zero
Running
on
Zero
File size: 3,422 Bytes
cb5daed 5c4e8c1 232c234 5c4e8c1 232c234 5c4e8c1 232c234 97256ff 5c4e8c1 23f4f95 f70898c 23f4f95 5c4e8c1 23f4f95 f70898c 23f4f95 f70898c 60849d7 61ad3d2 5c4e8c1 97256ff c348e53 97256ff 5c4e8c1 232c234 5c4e8c1 60849d7 61ad3d2 f70898c 97256ff 5c4e8c1 f70898c 9edebae 5c4e8c1 97256ff 5c4e8c1 c348e53 5c4e8c1 f70898c 5c4e8c1 232c234 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# CLI
# usage: python cli.py 'colorful calico cat artstation'
import argparse
import asyncio
from lib import Config, async_call, generate
def save_images(images, filename="image.png"):
for i, (img, _) in enumerate(images):
name, ext = filename.rsplit(".", 1)
img.save(f"{name}.{ext}" if len(images) == 1 else f"{name}_{i}.{ext}")
async def main():
# fmt: off
parser = argparse.ArgumentParser(add_help=False, allow_abbrev=False)
parser.add_argument("prompt", type=str, metavar="PROMPT")
parser.add_argument("-n", "--negative", type=str, metavar="STR", default="")
parser.add_argument("-e", "--embeddings", type=str, metavar="STR", default="")
parser.add_argument("-s", "--seed", type=int, metavar="INT", default=Config.SEED)
parser.add_argument("-i", "--images", type=int, metavar="INT", default=1)
parser.add_argument("-f", "--filename", type=str, metavar="STR", default="image.png")
parser.add_argument("-w", "--width", type=int, metavar="INT", default=Config.WIDTH)
parser.add_argument("-h", "--height", type=int, metavar="INT", default=Config.HEIGHT)
parser.add_argument("-m", "--model", type=str, metavar="STR", default=Config.MODEL)
parser.add_argument("-d", "--deepcache", type=int, metavar="INT", default=Config.DEEPCACHE_INTERVAL)
parser.add_argument("--lora-1", type=str, metavar="STR", default="")
parser.add_argument("--lora-1-weight", type=float, metavar="FLOAT", default=0.0)
parser.add_argument("--lora-2", type=str, metavar="STR", default="")
parser.add_argument("--lora-2-weight", type=float, metavar="FLOAT", default=0.0)
parser.add_argument("--scale", type=int, metavar="INT", choices=Config.SCALES, default=Config.SCALE)
parser.add_argument("--style", type=str, metavar="STR", default=Config.STYLE)
parser.add_argument("--scheduler", type=str, metavar="STR", default=Config.SCHEDULER)
parser.add_argument("--guidance", type=float, metavar="FLOAT", default=Config.GUIDANCE_SCALE)
parser.add_argument("--steps", type=int, metavar="INT", default=Config.INFERENCE_STEPS)
parser.add_argument("--image-strength", type=float, metavar="FLOAT", default=Config.DENOISING_STRENGTH)
parser.add_argument("--image", type=str, metavar="STR")
parser.add_argument("--ip-image", type=str, metavar="STR")
parser.add_argument("--ip-face", action="store_true")
parser.add_argument("--taesd", action="store_true")
parser.add_argument("--clip-skip", action="store_true")
parser.add_argument("--karras", action="store_true")
parser.add_argument("--freeu", action="store_true")
# fmt: on
args = parser.parse_args()
images = await async_call(
generate,
args.prompt,
args.negative,
args.image,
args.ip_image,
args.ip_face,
args.lora_1,
args.lora_1_weight,
args.lora_2,
args.lora_2_weight,
args.embeddings.split(",") if args.embeddings else [],
args.style,
args.seed,
args.model,
args.scheduler,
args.width,
args.height,
args.guidance,
args.steps,
args.image_strength,
args.deepcache,
args.scale,
args.images,
args.karras,
args.taesd,
args.freeu,
args.clip_skip,
)
save_images(images, args.filename)
if __name__ == "__main__":
asyncio.run(main())
|