[Admin maintenance] Support new ZeroGPU hardware

#8
by multimodalart HF Staff - opened
Files changed (4) hide show
  1. README.md +1 -1
  2. app_recon.py +41 -3
  3. models/unet_2d_condition.py +5 -1
  4. requirements.txt +6 -12
README.md CHANGED
@@ -4,7 +4,7 @@ emoji: 🐨
4
  colorFrom: green
5
  colorTo: indigo
6
  sdk: gradio
7
- sdk_version: 4.36.1
8
  app_file: app_recon.py
9
  pinned: false
10
  ---
 
4
  colorFrom: green
5
  colorTo: indigo
6
  sdk: gradio
7
+ sdk_version: 5.49.1
8
  app_file: app_recon.py
9
  pinned: false
10
  ---
app_recon.py CHANGED
@@ -2,6 +2,18 @@ import functools
2
  import os
3
  import shutil
4
  import sys
 
 
 
 
 
 
 
 
 
 
 
 
5
  import git
6
 
7
  import gradio as gr
@@ -10,13 +22,39 @@ import torch as torch
10
  from PIL import Image
11
 
12
  print(torch.version.cuda)
13
- os.system('locate libcusolver.so.11')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
 
15
  from gradio_imageslider import ImageSlider
16
  from bilateral_normal_integration.bilateral_normal_integration_cupy import bilateral_normal_integration_function
17
 
18
- import spaces
19
-
20
  import fire
21
 
22
  import argparse
 
2
  import os
3
  import shutil
4
  import sys
5
+
6
+ import spaces
7
+
8
+ # Stub huggingface_hub.cached_download (removed in hub>=0.26) for old diffusers.
9
+ import huggingface_hub
10
+ if not hasattr(huggingface_hub, "cached_download"):
11
+ def _cached_download_removed(*a, **k):
12
+ raise NotImplementedError(
13
+ "huggingface_hub.cached_download was removed in 0.26."
14
+ )
15
+ huggingface_hub.cached_download = _cached_download_removed
16
+
17
  import git
18
 
19
  import gradio as gr
 
22
  from PIL import Image
23
 
24
  print(torch.version.cuda)
25
+
26
+ # xformers.ops.memory_efficient_attention fails on Blackwell sm_120 with the
27
+ # fp32 inputs used by this pipeline. Reimplement against torch SDPA so it
28
+ # works on the new GPUs without changing any call sites.
29
+ import xformers
30
+ import xformers.ops as _xops
31
+ import torch.nn.functional as _F
32
+
33
+ def _mea_sdpa(query, key, value, attn_bias=None, p=0.0, scale=None, op=None):
34
+ # xformers shape (B, M, K) or (B, M, H, K) -> SDPA shape (B, H, M, K)
35
+ if query.dim() == 3:
36
+ q = query.unsqueeze(1)
37
+ k = key.unsqueeze(1)
38
+ v = value.unsqueeze(1)
39
+ squeeze = True
40
+ else:
41
+ q = query.transpose(1, 2)
42
+ k = key.transpose(1, 2)
43
+ v = value.transpose(1, 2)
44
+ squeeze = False
45
+ out = _F.scaled_dot_product_attention(
46
+ q, k, v, attn_mask=attn_bias, dropout_p=p, scale=scale,
47
+ )
48
+ if squeeze:
49
+ return out.squeeze(1)
50
+ return out.transpose(1, 2)
51
+
52
+ _xops.memory_efficient_attention = _mea_sdpa
53
+ xformers.ops.memory_efficient_attention = _mea_sdpa
54
 
55
  from gradio_imageslider import ImageSlider
56
  from bilateral_normal_integration.bilateral_normal_integration_cupy import bilateral_normal_integration_function
57
 
 
 
58
  import fire
59
 
60
  import argparse
models/unet_2d_condition.py CHANGED
@@ -38,13 +38,17 @@ from diffusers.models.embeddings import (
38
  ImageHintTimeEmbedding,
39
  ImageProjection,
40
  ImageTimeEmbedding,
41
- PositionNet,
42
  TextImageProjection,
43
  TextImageTimeEmbedding,
44
  TextTimeEmbedding,
45
  TimestepEmbedding,
46
  Timesteps,
47
  )
 
 
 
 
 
48
  from diffusers.models.modeling_utils import ModelMixin
49
 
50
  from models.unet_2d_blocks import (
 
38
  ImageHintTimeEmbedding,
39
  ImageProjection,
40
  ImageTimeEmbedding,
 
41
  TextImageProjection,
42
  TextImageTimeEmbedding,
43
  TextTimeEmbedding,
44
  TimestepEmbedding,
45
  Timesteps,
46
  )
47
+ try:
48
+ from diffusers.models.embeddings import PositionNet
49
+ except ImportError:
50
+ # diffusers >= 0.26 renamed PositionNet to GLIGENTextBoundingboxProjection
51
+ from diffusers.models.embeddings import GLIGENTextBoundingboxProjection as PositionNet
52
  from diffusers.models.modeling_utils import ModelMixin
53
 
54
  from models.unet_2d_blocks import (
requirements.txt CHANGED
@@ -1,19 +1,15 @@
1
- --extra-index-url https://download.pytorch.org/whl/cu117
2
- torch == 2.0.1
3
- torchvision == 0.15.2
4
- xformers == 0.0.21
5
- diffusers == 0.25.0
6
  opencv-python
7
- numpy == 1.23.1
8
  Pillow
9
  h5py
10
  matplotlib==3.7.5
11
  scikit-image
12
- gradio==4.43.0
13
  gradio-imageslider==0.0.16
14
  trimesh==4.0.5
15
- tqdm == 4.65.0
16
- accelerate==0.28.0
17
  transformers==4.39.1
18
  imgaug
19
  GitPython==3.1.40
@@ -23,7 +19,5 @@ datetime
23
  rembg
24
  segment_anything
25
  pyvista
26
- cupy-cuda11x
27
- trimesh
28
  onnxruntime
29
- huggingface-hub==0.25.2
 
1
+ torchvision
2
+ xformers
3
+ diffusers==0.25.0
 
 
4
  opencv-python
 
5
  Pillow
6
  h5py
7
  matplotlib==3.7.5
8
  scikit-image
 
9
  gradio-imageslider==0.0.16
10
  trimesh==4.0.5
11
+ tqdm
12
+ accelerate
13
  transformers==4.39.1
14
  imgaug
15
  GitPython==3.1.40
 
19
  rembg
20
  segment_anything
21
  pyvista
22
+ cupy-cuda13x
 
23
  onnxruntime