Update app.py
Browse files
app.py
CHANGED
|
@@ -30,15 +30,15 @@ torch.backends.cuda.matmul.allow_bf16_reduced_precision_reduction = False
|
|
| 30 |
torch.backends.cuda.matmul.allow_fp16_reduced_precision_reduction = False
|
| 31 |
torch.backends.cudnn.allow_tf32 = False
|
| 32 |
torch.backends.cudnn.deterministic = False
|
| 33 |
-
|
| 34 |
-
torch.backends.cuda.preferred_blas_library="cublas"
|
| 35 |
#torch.backends.cuda.preferred_linalg_library="cusolver"
|
| 36 |
|
| 37 |
hftoken = os.getenv("HF_AUTH_TOKEN")
|
| 38 |
|
| 39 |
-
image_encoder_path = "google/siglip-so400m-patch14-384"
|
| 40 |
-
ipadapter_path = hf_hub_download(repo_id="InstantX/SD3.5-Large-IP-Adapter", filename="ip-adapter.bin")
|
| 41 |
-
model_path = 'ford442/stable-diffusion-3.5-medium-bf16'
|
| 42 |
|
| 43 |
def upload_to_ftp(filename):
|
| 44 |
try:
|
|
@@ -62,9 +62,9 @@ checkpoint = "microsoft/Phi-3.5-mini-instruct"
|
|
| 62 |
#vae = AutoencoderKL.from_pretrained("ford442/sdxl-vae-bf16")
|
| 63 |
vaeXL = AutoencoderKL.from_pretrained("stabilityai/sdxl-vae", safety_checker=None, use_safetensors=False) #, device_map='cpu') #.to(torch.bfloat16) #.to(device=device, dtype=torch.bfloat16)
|
| 64 |
|
| 65 |
-
pipe = StableDiffusion3Pipeline.from_pretrained("ford442/stable-diffusion-3.5-medium-bf16").to(device=device, dtype=torch.bfloat16)
|
| 66 |
#pipe = StableDiffusion3Pipeline.from_pretrained("ford442/stable-diffusion-3.5-medium-bf16").to(torch.device("cuda:0"))
|
| 67 |
-
|
| 68 |
#pipe = StableDiffusion3Pipeline.from_pretrained("stabilityai/stable-diffusion-3.5-medium", token=hftoken, torch_dtype=torch.float32, device_map='balanced')
|
| 69 |
|
| 70 |
# pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config, use_karras_sigmas=True, algorithm_type="sde-dpmsolver++")
|
|
@@ -76,9 +76,9 @@ pipe = StableDiffusion3Pipeline.from_pretrained("ford442/stable-diffusion-3.5-me
|
|
| 76 |
#pipe = torch.compile(pipe)
|
| 77 |
# pipe.scheduler = EulerAncestralDiscreteScheduler.from_config(pipe.scheduler.config, beta_schedule="scaled_linear")
|
| 78 |
|
| 79 |
-
refiner = StableDiffusionXLImg2ImgPipeline.from_pretrained("ford442/stable-diffusion-xl-refiner-1.0-bf16",vae = vaeXL, requires_aesthetics_score=True) #.to(torch.bfloat16)
|
| 80 |
#refiner = StableDiffusionXLImg2ImgPipeline.from_pretrained("stabilityai/stable-diffusion-xl-refiner-1.0", vae=vae, torch_dtype=torch.float32, requires_aesthetics_score=True, device_map='balanced')
|
| 81 |
-
refiner.scheduler=EulerAncestralDiscreteScheduler.from_config(refiner.scheduler.config)
|
| 82 |
#refiner.enable_model_cpu_offload()
|
| 83 |
|
| 84 |
#pipe.to(device=device, dtype=torch.bfloat16)
|
|
@@ -94,7 +94,7 @@ tokenizer.tokenizer_legacy=False
|
|
| 94 |
model = AutoModelForCausalLM.from_pretrained(checkpoint).to('cuda')
|
| 95 |
#model = torch.compile(model)
|
| 96 |
|
| 97 |
-
upscaler_2 = UpscaleWithModel.from_pretrained("Kim2091/ClearRealityV1")
|
| 98 |
|
| 99 |
def filter_text(text,phraseC):
|
| 100 |
"""Filters out the text up to and including 'Rewritten Prompt:'."""
|
|
@@ -136,7 +136,7 @@ def infer(
|
|
| 136 |
latent_file, # Add latents file input
|
| 137 |
progress=gr.Progress(track_tqdm=True),
|
| 138 |
):
|
| 139 |
-
upscaler_2.to(torch.device('cpu'))
|
| 140 |
torch.set_float32_matmul_precision("highest")
|
| 141 |
seed = random.randint(0, MAX_SEED)
|
| 142 |
generator = torch.Generator(device='cuda').manual_seed(seed)
|
|
@@ -193,7 +193,7 @@ def infer(
|
|
| 193 |
else:
|
| 194 |
enhanced_prompt = prompt
|
| 195 |
enhanced_prompt_2 = prompt
|
| 196 |
-
model.to('cpu')
|
| 197 |
if latent_file: # Check if a latent file is provided
|
| 198 |
# initial_latents = pipe.prepare_latents(
|
| 199 |
# batch_size=1,
|
|
@@ -241,6 +241,7 @@ def infer(
|
|
| 241 |
max_sequence_length=512
|
| 242 |
).images[0]
|
| 243 |
print('-- got image --')
|
|
|
|
| 244 |
#sd35_image = pipe.vae.decode(sd_image / 0.18215).sample
|
| 245 |
# sd35_image = sd35_image.cpu().permute(0, 2, 3, 1).float().detach().numpy()
|
| 246 |
# sd35_image = (sd35_image * 255).round().astype("uint8")
|
|
@@ -248,7 +249,7 @@ def infer(
|
|
| 248 |
# sd35_path = f"sd35_{seed}.png"
|
| 249 |
# image_pil.save(sd35_path,optimize=False,compress_level=0)
|
| 250 |
# upload_to_ftp(sd35_path)
|
| 251 |
-
sd35_path = f"sd35_{
|
| 252 |
sd_image.save(sd35_path,optimize=False,compress_level=0)
|
| 253 |
upload_to_ftp(sd35_path)
|
| 254 |
# Convert the generated image to a tensor
|
|
@@ -261,6 +262,7 @@ def infer(
|
|
| 261 |
#torch.save(generated_latents, latent_path)
|
| 262 |
#upload_to_ftp(latent_path)
|
| 263 |
#refiner.scheduler.set_timesteps(num_inference_steps,device)
|
|
|
|
| 264 |
pipe.to(torch.device('cpu'))
|
| 265 |
refiner.to(device=device, dtype=torch.bfloat16)
|
| 266 |
refine = refiner(
|
|
@@ -276,13 +278,14 @@ def infer(
|
|
| 276 |
refine.save(refine_path,optimize=False,compress_level=0)
|
| 277 |
upload_to_ftp(refine_path)
|
| 278 |
refiner.to(torch.device('cpu'))
|
|
|
|
| 279 |
upscaler_2.to(torch.device('cuda'))
|
| 280 |
with torch.no_grad():
|
| 281 |
-
upscale2 = upscaler_2(
|
| 282 |
print('-- got upscaled image --')
|
| 283 |
-
upscaler_2.to(torch.device('cpu'))
|
| 284 |
downscale2 = upscale2.resize((upscale2.width // 4, upscale2.height // 4),Image.LANCZOS)
|
| 285 |
-
upscale_path = f"sd35_upscale_{
|
| 286 |
downscale2.save(upscale_path,optimize=False,compress_level=0)
|
| 287 |
upload_to_ftp(upscale_path)
|
| 288 |
return refine, seed, enhanced_prompt
|
|
|
|
| 30 |
torch.backends.cuda.matmul.allow_fp16_reduced_precision_reduction = False
|
| 31 |
torch.backends.cudnn.allow_tf32 = False
|
| 32 |
torch.backends.cudnn.deterministic = False
|
| 33 |
+
torch.backends.cudnn.benchmark = False
|
| 34 |
+
#torch.backends.cuda.preferred_blas_library="cublas"
|
| 35 |
#torch.backends.cuda.preferred_linalg_library="cusolver"
|
| 36 |
|
| 37 |
hftoken = os.getenv("HF_AUTH_TOKEN")
|
| 38 |
|
| 39 |
+
#image_encoder_path = "google/siglip-so400m-patch14-384"
|
| 40 |
+
#ipadapter_path = hf_hub_download(repo_id="InstantX/SD3.5-Large-IP-Adapter", filename="ip-adapter.bin")
|
| 41 |
+
#model_path = 'ford442/stable-diffusion-3.5-medium-bf16'
|
| 42 |
|
| 43 |
def upload_to_ftp(filename):
|
| 44 |
try:
|
|
|
|
| 62 |
#vae = AutoencoderKL.from_pretrained("ford442/sdxl-vae-bf16")
|
| 63 |
vaeXL = AutoencoderKL.from_pretrained("stabilityai/sdxl-vae", safety_checker=None, use_safetensors=False) #, device_map='cpu') #.to(torch.bfloat16) #.to(device=device, dtype=torch.bfloat16)
|
| 64 |
|
| 65 |
+
#pipe = StableDiffusion3Pipeline.from_pretrained("ford442/stable-diffusion-3.5-medium-bf16").to(device=device, dtype=torch.bfloat16)
|
| 66 |
#pipe = StableDiffusion3Pipeline.from_pretrained("ford442/stable-diffusion-3.5-medium-bf16").to(torch.device("cuda:0"))
|
| 67 |
+
pipe = StableDiffusion3Pipeline.from_pretrained("ford442/RealVis_Medium_1.0b_bf16", torch_dtype=torch.bfloat16)
|
| 68 |
#pipe = StableDiffusion3Pipeline.from_pretrained("stabilityai/stable-diffusion-3.5-medium", token=hftoken, torch_dtype=torch.float32, device_map='balanced')
|
| 69 |
|
| 70 |
# pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config, use_karras_sigmas=True, algorithm_type="sde-dpmsolver++")
|
|
|
|
| 76 |
#pipe = torch.compile(pipe)
|
| 77 |
# pipe.scheduler = EulerAncestralDiscreteScheduler.from_config(pipe.scheduler.config, beta_schedule="scaled_linear")
|
| 78 |
|
| 79 |
+
#refiner = StableDiffusionXLImg2ImgPipeline.from_pretrained("ford442/stable-diffusion-xl-refiner-1.0-bf16",vae = vaeXL, requires_aesthetics_score=True) #.to(torch.bfloat16)
|
| 80 |
#refiner = StableDiffusionXLImg2ImgPipeline.from_pretrained("stabilityai/stable-diffusion-xl-refiner-1.0", vae=vae, torch_dtype=torch.float32, requires_aesthetics_score=True, device_map='balanced')
|
| 81 |
+
#refiner.scheduler=EulerAncestralDiscreteScheduler.from_config(refiner.scheduler.config)
|
| 82 |
#refiner.enable_model_cpu_offload()
|
| 83 |
|
| 84 |
#pipe.to(device=device, dtype=torch.bfloat16)
|
|
|
|
| 94 |
model = AutoModelForCausalLM.from_pretrained(checkpoint).to('cuda')
|
| 95 |
#model = torch.compile(model)
|
| 96 |
|
| 97 |
+
upscaler_2 = UpscaleWithModel.from_pretrained("Kim2091/ClearRealityV1") #.to(torch.device("cuda:0"))
|
| 98 |
|
| 99 |
def filter_text(text,phraseC):
|
| 100 |
"""Filters out the text up to and including 'Rewritten Prompt:'."""
|
|
|
|
| 136 |
latent_file, # Add latents file input
|
| 137 |
progress=gr.Progress(track_tqdm=True),
|
| 138 |
):
|
| 139 |
+
#upscaler_2.to(torch.device('cpu'))
|
| 140 |
torch.set_float32_matmul_precision("highest")
|
| 141 |
seed = random.randint(0, MAX_SEED)
|
| 142 |
generator = torch.Generator(device='cuda').manual_seed(seed)
|
|
|
|
| 193 |
else:
|
| 194 |
enhanced_prompt = prompt
|
| 195 |
enhanced_prompt_2 = prompt
|
| 196 |
+
#model.to('cpu')
|
| 197 |
if latent_file: # Check if a latent file is provided
|
| 198 |
# initial_latents = pipe.prepare_latents(
|
| 199 |
# batch_size=1,
|
|
|
|
| 241 |
max_sequence_length=512
|
| 242 |
).images[0]
|
| 243 |
print('-- got image --')
|
| 244 |
+
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
|
| 245 |
#sd35_image = pipe.vae.decode(sd_image / 0.18215).sample
|
| 246 |
# sd35_image = sd35_image.cpu().permute(0, 2, 3, 1).float().detach().numpy()
|
| 247 |
# sd35_image = (sd35_image * 255).round().astype("uint8")
|
|
|
|
| 249 |
# sd35_path = f"sd35_{seed}.png"
|
| 250 |
# image_pil.save(sd35_path,optimize=False,compress_level=0)
|
| 251 |
# upload_to_ftp(sd35_path)
|
| 252 |
+
sd35_path = f"sd35_{timestamp}.png"
|
| 253 |
sd_image.save(sd35_path,optimize=False,compress_level=0)
|
| 254 |
upload_to_ftp(sd35_path)
|
| 255 |
# Convert the generated image to a tensor
|
|
|
|
| 262 |
#torch.save(generated_latents, latent_path)
|
| 263 |
#upload_to_ftp(latent_path)
|
| 264 |
#refiner.scheduler.set_timesteps(num_inference_steps,device)
|
| 265 |
+
'''
|
| 266 |
pipe.to(torch.device('cpu'))
|
| 267 |
refiner.to(device=device, dtype=torch.bfloat16)
|
| 268 |
refine = refiner(
|
|
|
|
| 278 |
refine.save(refine_path,optimize=False,compress_level=0)
|
| 279 |
upload_to_ftp(refine_path)
|
| 280 |
refiner.to(torch.device('cpu'))
|
| 281 |
+
'''
|
| 282 |
upscaler_2.to(torch.device('cuda'))
|
| 283 |
with torch.no_grad():
|
| 284 |
+
upscale2 = upscaler_2(sd_image, tiling=True, tile_width=256, tile_height=256)
|
| 285 |
print('-- got upscaled image --')
|
| 286 |
+
#upscaler_2.to(torch.device('cpu'))
|
| 287 |
downscale2 = upscale2.resize((upscale2.width // 4, upscale2.height // 4),Image.LANCZOS)
|
| 288 |
+
upscale_path = f"sd35_upscale_{timestamp}.png"
|
| 289 |
downscale2.save(upscale_path,optimize=False,compress_level=0)
|
| 290 |
upload_to_ftp(upscale_path)
|
| 291 |
return refine, seed, enhanced_prompt
|