YiftachEde commited on
Commit
8f40a40
·
1 Parent(s): 9e3a951
Files changed (4) hide show
  1. README.md +5 -0
  2. app.py +2 -0
  3. zero123plus/model.py +12 -4
  4. zero123plus/pipeline.py +5 -0
README.md CHANGED
@@ -38,4 +38,9 @@ This application uses:
38
  - InstantMesh for high-quality refinement
39
  - ZeroGPU for efficient GPU resource management
40
 
 
 
 
 
 
41
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
38
  - InstantMesh for high-quality refinement
39
  - ZeroGPU for efficient GPU resource management
40
 
41
+ ## Implementation Notes
42
+
43
+ - PyTorch 2.0.1 compatibility is ensured through a custom patch (torch_patch.py) that enables newer diffusers versions to work with PyTorch 2.0.1 by adding placeholder attributes
44
+ - Diffusers 0.24.0 is used as it provides the necessary functionality while being compatible with our patching approach
45
+
46
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py CHANGED
@@ -7,6 +7,8 @@ from PIL import Image
7
  from omegaconf import OmegaConf
8
  from pytorch_lightning import seed_everything
9
  from huggingface_hub import hf_hub_download
 
 
10
  from diffusers import DiffusionPipeline, EulerAncestralDiscreteScheduler
11
  from einops import rearrange
12
  from shap_e.diffusion.sample import sample_latents
 
7
  from omegaconf import OmegaConf
8
  from pytorch_lightning import seed_everything
9
  from huggingface_hub import hf_hub_download
10
+ # Import our torch patch before diffusers
11
+ import torch_patch
12
  from diffusers import DiffusionPipeline, EulerAncestralDiscreteScheduler
13
  from einops import rearrange
14
  from shap_e.diffusion.sample import sample_latents
zero123plus/model.py CHANGED
@@ -1,16 +1,24 @@
1
  import os
2
- import numpy as np
3
  import torch
4
  import torch.nn as nn
 
 
5
  import torch.nn.functional as F
6
- import pytorch_lightning as pl
 
 
 
 
 
 
 
 
 
7
  from tqdm import tqdm
8
  from torchvision.transforms import v2
9
  from torchvision.utils import make_grid, save_image
10
- from einops import rearrange
11
 
12
  from src.utils.train_util import instantiate_from_config
13
- from diffusers import DiffusionPipeline, EulerAncestralDiscreteScheduler, DDPMScheduler, UNet2DConditionModel
14
  from .pipeline import RefOnlyNoisedUNet
15
 
16
 
 
1
  import os
 
2
  import torch
3
  import torch.nn as nn
4
+ import numpy as np
5
+ from einops import rearrange
6
  import torch.nn.functional as F
7
+ from PIL import Image
8
+ from huggingface_hub import hf_hub_download
9
+ from omegaconf import OmegaConf
10
+ from transformers import CLIPImageProcessor, CLIPTextModel, CLIPTokenizer
11
+
12
+ # Import torch patch before diffusers
13
+ import sys
14
+ sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
15
+ import torch_patch
16
+ from diffusers import DiffusionPipeline, EulerAncestralDiscreteScheduler, DDPMScheduler, UNet2DConditionModel
17
  from tqdm import tqdm
18
  from torchvision.transforms import v2
19
  from torchvision.utils import make_grid, save_image
 
20
 
21
  from src.utils.train_util import instantiate_from_config
 
22
  from .pipeline import RefOnlyNoisedUNet
23
 
24
 
zero123plus/pipeline.py CHANGED
@@ -1,4 +1,9 @@
1
  from typing import Any, Dict, Optional
 
 
 
 
 
2
  from diffusers.models import AutoencoderKL, UNet2DConditionModel
3
  from diffusers.schedulers import KarrasDiffusionSchedulers
4
 
 
1
  from typing import Any, Dict, Optional
2
+ import os
3
+ import sys
4
+ # Add parent directory to path and import torch patch before diffusers
5
+ sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
6
+ import torch_patch
7
  from diffusers.models import AutoencoderKL, UNet2DConditionModel
8
  from diffusers.schedulers import KarrasDiffusionSchedulers
9