File size: 2,049 Bytes
69f6fc2 c51632b 78ed83d 2f0087d 78ed83d b88c59f 69f6fc2 b6badad b88c59f 69f6fc2 78ed83d 69f6fc2 78ed83d 2f0087d b6badad c51632b b88c59f 34be351 b88c59f 34be351 69f6fc2 b88c59f d4bb530 b88c59f 34be351 b88c59f 34be351 b88c59f 34be351 78ed83d b88c59f 34be351 78ed83d 34be351 |
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 |
#!/usr/bin/env python3
from diffusers import StableDiffusionControlNetPipeline
import time
import os
from huggingface_hub import HfApi
# from compel import Compel
import torch
import sys
from pathlib import Path
import requests
from PIL import Image
from io import BytesIO
path = sys.argv[1]
api = HfApi()
start_time = time.time()
#pipe = StableDiffusionPipeline.from_pretrained(path, torch_dtype=torch.float16, device_map="auto")
#pipe.scheduler = HeunDiscreteScheduler.from_config(pipe.scheduler.config)
pipe = StableDiffusionControlNetPipeline.from_pretrained(path, torch_dtype=torch.float16, safety_checker=None)
pipe.scheduler = KDPM2AncestralDiscreteScheduler.from_config(pipe.scheduler.config)
# compel = Compel(tokenizer=pipe.tokenizer, text_encoder=pipe.text_encoder)
pipe = pipe.to("cuda")
prompt = "ghibli style, a fantasy landscape with castles"
# rompts = ["a cat playing with a ball++ in the forest", "a cat playing with a ball++ in the forest", "a cat playing with a ball-- in the forest"]
# prompt_embeds = torch.cat([compel.build_conditioning_tensor(prompt) for prompt in prompts])
# generator = [torch.Generator(device="cuda").manual_seed(0) for _ in range(prompt_embeds.shape[0])]
#
url = "https://raw.githubusercontent.com/CompVis/stable-diffusion/main/assets/stable-samples/img2img/sketch-mountains-input.jpg"
response = requests.get(url)
image = Image.open(BytesIO(response.content)).convert("RGB")
image.thumbnail((768, 768))
generator = torch.Generator(device="cpu").manual_seed(0)
images = pipe(prompt=prompt, image=image, generator=generator, strength=0.75, num_inference_steps=30).images
print("Time", time.time() - start_time)
for i, image in enumerate(images):
path = os.path.join(Path.home(), "images", f"aa_{i}.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/aa_{i}.png")
|