Control_Ability_Arena / model /models /huggingface_models.py
Bbmyy
add gligen
2c0adca
from diffusers import DiffusionPipeline
from diffusers import AutoPipelineForText2Image
from diffusers import StableCascadeDecoderPipeline, StableCascadePriorPipeline
from diffusers import StableDiffusionPipeline
from diffusers import StableDiffusionGLIGENTextImagePipeline
import torch
import os
def load_huggingface_model(model_name, model_type):
if model_name == "SD-turbo":
pipe = AutoPipelineForText2Image.from_pretrained("stabilityai/sd-turbo", torch_dtype=torch.float16, variant="fp16")
pipe = pipe.to("cuda")
elif model_name == "SDXL-turbo":
pipe = AutoPipelineForText2Image.from_pretrained("stabilityai/sdxl-turbo", torch_dtype=torch.float16, variant="fp16")
pipe = pipe.to("cuda")
elif model_name == "Stable-cascade":
prior = StableCascadePriorPipeline.from_pretrained("stabilityai/stable-cascade-prior", variant="bf16", torch_dtype=torch.bfloat16)
decoder = StableCascadeDecoderPipeline.from_pretrained("stabilityai/stable-cascade", variant="bf16", torch_dtype=torch.float16)
pipe = [prior, decoder]
elif model_name == "ReCo":
path = '/home/bcy/cache/.cache/huggingface/hub/models--j-min--reco_sd14_coco/snapshots/11a062da5a0a84501047cb19e113f520eb610415' if os.path.isdir('/home/bcy/cache/.cache/huggingface/hub/models--j-min--reco_sd14_coco/snapshots/11a062da5a0a84501047cb19e113f520eb610415') else "CompVis/stable-diffusion-v1-4"
pipe = StableDiffusionPipeline.from_pretrained(path ,torch_dtype=torch.float16)
pipe = pipe.to("cuda")
elif model_name == "Gligen":
path = '/share/bcy/cache/.cache/huggingface/hub/models--anhnct--Gligen_Text_Image/snapshots/c4ea3545c59a161096adc00aa14fa163c687614a' if os.path.isdir('/share/bcy/cache/.cache/huggingface/hub/models--anhnct--Gligen_Text_Image/snapshots/c4ea3545c59a161096adc00aa14fa163c687614a') else "anhnct/Gligen_Text_Image"
print(path)
pipe = StableDiffusionGLIGENTextImagePipeline.from_pretrained(path, torch_dtype=torch.float16)
pipe = pipe.to("cuda")
else:
raise NotImplementedError
# if model_name == "SD-turbo":
# pipe = AutoPipelineForText2Image.from_pretrained("stabilityai/sd-turbo")
# elif model_name == "SDXL-turbo":
# pipe = AutoPipelineForText2Image.from_pretrained("stabilityai/sdxl-turbo")
# else:
# raise NotImplementedError
# pipe = pipe.to("cpu")
return pipe
if __name__ == "__main__":
# for name in ["SD-turbo", "SDXL-turbo"]: #"SD-turbo", "SDXL-turbo"
# pipe = load_huggingface_model(name, "text2image")
# for name in ["IF-I-XL-v1.0"]:
# pipe = load_huggingface_model(name, 'text2image')
# pipe = DiffusionPipeline.from_pretrained("DeepFloyd/IF-I-XL-v1.0", variant="fp16", torch_dtype=torch.float16)
prompt = 'draw a tiger'
pipe = load_huggingface_model('Stable-cascade', "text2image")
prior, decoder = pipe
prior.enable_model_cpu_offload()
prior_output = prior(
prompt=prompt,
height=512,
width=512,
negative_prompt='',
guidance_scale=4.0,
num_images_per_prompt=1,
num_inference_steps=20
)
decoder.enable_model_cpu_offload()
result = decoder(
image_embeddings=prior_output.image_embeddings.to(torch.float16),
prompt=prompt,
negative_prompt='',
guidance_scale=0.0,
output_type="pil",
num_inference_steps=10
).images[0]