|
|
|
import torch |
|
import os |
|
from compel import Compel, ReturnedEmbeddingsType |
|
from diffusers import DiffusionPipeline |
|
from huggingface_hub import HfApi |
|
from pathlib import Path |
|
|
|
api = HfApi() |
|
|
|
pipeline = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", variant="fp16", use_safetensors=True, torch_dtype=torch.float16).to("cuda") |
|
|
|
compel = Compel(tokenizer=[pipeline.tokenizer, pipeline.tokenizer_2] , text_encoder=[pipeline.text_encoder, pipeline.text_encoder_2], returned_embeddings_type=ReturnedEmbeddingsType.PENULTIMATE_HIDDEN_STATES_NON_NORMALIZED, requires_pooled=[False, True]) |
|
|
|
|
|
prompt = ["a red cat playing with a (ball)1.5", "a red cat playing with a (ball)0.6"] |
|
conditioning, pooled = compel(prompt) |
|
|
|
|
|
|
|
generator = [torch.Generator().manual_seed(33) for _ in range(len(prompt))] |
|
images = pipeline(prompt_embeds=conditioning, pooled_prompt_embeds=pooled, generator=generator, num_inference_steps=30).images |
|
|
|
for i, image in enumerate(images): |
|
file_name = f"bb_1_{i}" |
|
path = os.path.join(Path.home(), "images", f"{file_name}.png") |
|
image.save(path) |
|
|
|
api.upload_file( |
|
path_or_fileobj=path, |
|
path_in_repo=path.split("/")[-1], |
|
repo_id="patrickvonplaten/images", |
|
repo_type="dataset", |
|
) |
|
print(f"https://huggingface.co/datasets/patrickvonplaten/images/blob/main/{file_name}.png") |
|
|