| from config import * |
| from diffusers import AutoPipelineForText2Image |
| from argparse import ArgumentParser |
| import humanize |
| import datetime as dt |
|
|
| def generate_image(path_id, imgfile, prompt): |
| pipe = AutoPipelineForText2Image.from_pretrained("stabilityai/sdxl-turbo") |
| image = pipe(prompt=prompt, num_inference_steps=4, guidance_scale=0.0).images[0] |
| image.save(os.path.join("temp", path_id, imgfile)) |
|
|
| def generate_images(path_id, imgfile, prompt, times=1): |
| pipe = AutoPipelineForText2Image.from_pretrained("stabilityai/sdxl-turbo") |
| for i in range(times): |
| image = pipe(prompt=prompt, num_inference_steps=1, guidance_scale=0.0).images[0] |
| image.save(os.path.join("temp", path_id, str(i) + "_" + imgfile)) |
|
|
| if __name__ == '__main__': |
| path_id = str(int(time.time())) |
| path = os.path.join("temp", "image", path_id) |
| os.makedirs(path, exist_ok=True) |
|
|
| parser = ArgumentParser() |
| parser.add_argument("--prompt", default="Young woman with long, blonde hair, smiling slightly", |
| help="avatar prompt") |
| parser.add_argument("--times", type=int, default=1, help="number of avatars to generate") |
| args = parser.parse_args() |
|
|
| tstart = time.time() |
|
|
| generate_images(os.path.join("image", path_id), "avatar.png", |
| f"hyper-realistic digital avatar, centered, {args.prompt}, \ |
| rim lighting, studio lighting, looking at the camera", args.times) |
|
|
| print("total time:", humanize.naturaldelta(dt.timedelta(seconds=int(time.time() - tstart)))) |