|
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)))) |