dream2589632147 commited on
Commit
6447e6c
·
verified ·
1 Parent(s): 70fc441

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -27
app.py CHANGED
@@ -1,6 +1,6 @@
 
1
  import spaces
2
  import torch
3
- import os # ← مضاف
4
  from diffusers.pipelines.wan.pipeline_wan_i2v import WanImageToVideoPipeline
5
  from diffusers.models.transformers.transformer_wan import WanTransformer3DModel
6
  from diffusers.utils.export_utils import export_to_video
@@ -18,7 +18,8 @@ import aoti
18
  # =========================================================
19
  # MODEL CONFIGURATION
20
  # =========================================================
21
- MODEL_ID = "dream2589632147/Dream-wan2-2-faster-Pro"
 
22
 
23
  MAX_DIM = 832
24
  MIN_DIM = 480
@@ -26,40 +27,34 @@ SQUARE_DIM = 640
26
  MULTIPLE_OF = 16
27
 
28
  MAX_SEED = np.iinfo(np.int32).max
 
29
  FIXED_FPS = 16
30
  MIN_FRAMES_MODEL = 8
31
- MAX_FRAMES_MODEL = 720
 
32
  MIN_DURATION = round(MIN_FRAMES_MODEL / FIXED_FPS, 1)
33
  MAX_DURATION = round(MAX_FRAMES_MODEL / FIXED_FPS, 1)
34
 
35
- # =========================================================
36
- # LOAD TRANSFORMERS (باستخدام HF_TOKEN)
37
- # =========================================================
38
- transformer = WanTransformer3DModel.from_pretrained(
39
- MODEL_ID,
40
- subfolder="transformer",
41
- torch_dtype=torch.bfloat16,
42
- device_map="cuda",
43
- token=os.environ.get("HF_TOKEN") # ← يستخدم التوكن للوصول إلى النموذج
44
- )
45
-
46
- transformer_2 = WanTransformer3DModel.from_pretrained(
47
- MODEL_ID,
48
- subfolder="transformer_2",
49
- torch_dtype=torch.bfloat16,
50
- device_map="cuda",
51
- token=os.environ.get("HF_TOKEN")
52
- )
53
-
54
  # =========================================================
55
  # LOAD PIPELINE
56
  # =========================================================
57
  pipe = WanImageToVideoPipeline.from_pretrained(
58
  MODEL_ID,
59
- transformer=transformer,
60
- transformer_2=transformer_2,
 
 
 
 
 
 
 
 
 
 
 
 
61
  torch_dtype=torch.bfloat16,
62
- token=os.environ.get("HF_TOKEN")
63
  ).to("cuda")
64
 
65
  # =========================================================
@@ -113,6 +108,7 @@ def resize_image(image: Image.Image) -> Image.Image:
113
  aspect_ratio = width / height
114
  MAX_ASPECT_RATIO = MAX_DIM / MIN_DIM
115
  MIN_ASPECT_RATIO = MIN_DIM / MAX_DIM
 
116
  image_to_resize = image
117
 
118
  if aspect_ratio > MAX_ASPECT_RATIO:
@@ -133,12 +129,14 @@ def resize_image(image: Image.Image) -> Image.Image:
133
 
134
  final_w = round(target_w / MULTIPLE_OF) * MULTIPLE_OF
135
  final_h = round(target_h / MULTIPLE_OF) * MULTIPLE_OF
 
136
  final_w = max(MIN_DIM, min(MAX_DIM, final_w))
137
  final_h = max(MIN_DIM, min(MAX_DIM, final_h))
 
138
  return image_to_resize.resize((final_w, final_h), Image.LANCZOS)
139
 
140
  # =========================================================
141
- # UTILITIES
142
  # =========================================================
143
  def get_num_frames(duration_seconds: float):
144
  return 1 + int(np.clip(int(round(duration_seconds * FIXED_FPS)), MIN_FRAMES_MODEL, MAX_FRAMES_MODEL))
@@ -157,7 +155,7 @@ def get_duration(
157
  return 10 + int(steps) * step_duration
158
 
159
  # =========================================================
160
- # MAIN FUNCTION
161
  # =========================================================
162
  @spaces.GPU(duration=get_duration)
163
  def generate_video(
 
1
+ import os
2
  import spaces
3
  import torch
 
4
  from diffusers.pipelines.wan.pipeline_wan_i2v import WanImageToVideoPipeline
5
  from diffusers.models.transformers.transformer_wan import WanTransformer3DModel
6
  from diffusers.utils.export_utils import export_to_video
 
18
  # =========================================================
19
  # MODEL CONFIGURATION
20
  # =========================================================
21
+ MODEL_ID = "dream2589632147/Dream-wan2-2-faster-Pro" # المسار الجديد للنموذج
22
+ HF_TOKEN = os.environ.get("HF_TOKEN") # ضع توكن Hugging Face هنا إذا كان النموذج خاصًا
23
 
24
  MAX_DIM = 832
25
  MIN_DIM = 480
 
27
  MULTIPLE_OF = 16
28
 
29
  MAX_SEED = np.iinfo(np.int32).max
30
+
31
  FIXED_FPS = 16
32
  MIN_FRAMES_MODEL = 8
33
+ MAX_FRAMES_MODEL = 80
34
+
35
  MIN_DURATION = round(MIN_FRAMES_MODEL / FIXED_FPS, 1)
36
  MAX_DURATION = round(MAX_FRAMES_MODEL / FIXED_FPS, 1)
37
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  # =========================================================
39
  # LOAD PIPELINE
40
  # =========================================================
41
  pipe = WanImageToVideoPipeline.from_pretrained(
42
  MODEL_ID,
43
+ transformer=WanTransformer3DModel.from_pretrained(
44
+ MODEL_ID,
45
+ subfolder="transformer",
46
+ torch_dtype=torch.bfloat16,
47
+ device_map="cuda",
48
+ token=HF_TOKEN
49
+ ),
50
+ transformer_2=WanTransformer3DModel.from_pretrained(
51
+ MODEL_ID,
52
+ subfolder="transformer_2",
53
+ torch_dtype=torch.bfloat16,
54
+ device_map="cuda",
55
+ token=HF_TOKEN
56
+ ),
57
  torch_dtype=torch.bfloat16,
 
58
  ).to("cuda")
59
 
60
  # =========================================================
 
108
  aspect_ratio = width / height
109
  MAX_ASPECT_RATIO = MAX_DIM / MIN_DIM
110
  MIN_ASPECT_RATIO = MIN_DIM / MAX_DIM
111
+
112
  image_to_resize = image
113
 
114
  if aspect_ratio > MAX_ASPECT_RATIO:
 
129
 
130
  final_w = round(target_w / MULTIPLE_OF) * MULTIPLE_OF
131
  final_h = round(target_h / MULTIPLE_OF) * MULTIPLE_OF
132
+
133
  final_w = max(MIN_DIM, min(MAX_DIM, final_w))
134
  final_h = max(MIN_DIM, min(MAX_DIM, final_h))
135
+
136
  return image_to_resize.resize((final_w, final_h), Image.LANCZOS)
137
 
138
  # =========================================================
139
+ # UTILITY FUNCTIONS
140
  # =========================================================
141
  def get_num_frames(duration_seconds: float):
142
  return 1 + int(np.clip(int(round(duration_seconds * FIXED_FPS)), MIN_FRAMES_MODEL, MAX_FRAMES_MODEL))
 
155
  return 10 + int(steps) * step_duration
156
 
157
  # =========================================================
158
+ # MAIN GENERATION FUNCTION
159
  # =========================================================
160
  @spaces.GPU(duration=get_duration)
161
  def generate_video(