Julien Blanchon commited on
Commit
a81122c
·
1 Parent(s): 2a76037
Files changed (4) hide show
  1. app.py +2 -28
  2. pyproject.toml +1 -0
  3. requirements.txt +2 -1
  4. uv.lock +56 -0
app.py CHANGED
@@ -1,7 +1,3 @@
1
- import importlib
2
- import os
3
- import subprocess
4
- import sys
5
  import gradio as gr
6
  import spaces # type: ignore - ZeroGPU spaces library
7
  import numpy as np
@@ -15,6 +11,7 @@ from tim.schedulers.transition import TransitionSchedule
15
  from tim.utils.misc_utils import instantiate_from_config, init_from_ckpt
16
  from tim.models.vae import get_sd_vae, get_dc_ae, sd_vae_decode, dc_ae_decode
17
  from tim.models.utils.text_encoders import load_text_encoder, encode_prompt
 
18
 
19
  # Configuration
20
  dtype = torch.bfloat16
@@ -254,32 +251,9 @@ css = """
254
  }
255
  """
256
 
257
-
258
- def ensure_flash_attn():
259
- try:
260
- importlib.import_module("flash_attn")
261
- return
262
- except Exception:
263
- pass
264
-
265
- # Optional: skip source builds if a wheel is available
266
- env = os.environ.copy()
267
- env["FLASH_ATTENTION_SKIP_CUDA_BUILD"] = "TRUE"
268
-
269
- # Fast path: try pip (prebuilt wheels exist for common torch/CUDA combos)
270
- subprocess.check_call(
271
- [sys.executable, "-m", "pip", "install", "--no-build-isolation", "flash-attn"],
272
- env=env,
273
- )
274
-
275
- # Validate import
276
- importlib.import_module("flash_attn")
277
-
278
-
279
  # Initialize model components
280
  try:
281
- if device == "cuda":
282
- ensure_flash_attn()
283
  load_model_components(device)
284
  print("Model components loaded successfully!")
285
  except Exception as e:
 
 
 
 
 
1
  import gradio as gr
2
  import spaces # type: ignore - ZeroGPU spaces library
3
  import numpy as np
 
11
  from tim.utils.misc_utils import instantiate_from_config, init_from_ckpt
12
  from tim.models.vae import get_sd_vae, get_dc_ae, sd_vae_decode, dc_ae_decode
13
  from tim.models.utils.text_encoders import load_text_encoder, encode_prompt
14
+ from kernels import get_kernel
15
 
16
  # Configuration
17
  dtype = torch.bfloat16
 
251
  }
252
  """
253
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
254
  # Initialize model components
255
  try:
256
+ flash_attn = get_kernel("kernels-community/flash-attn")
 
257
  load_model_components(device)
258
  print("Model components loaded successfully!")
259
  except Exception as e:
pyproject.toml CHANGED
@@ -13,6 +13,7 @@ dependencies = [
13
  "gradio>=5.44.1",
14
  "imageio==2.34.2",
15
  "imageio-ffmpeg==0.5.1",
 
16
  "moviepy==1.0.3",
17
  "numpy==1.26.0",
18
  "omegaconf>=2.3.0",
 
13
  "gradio>=5.44.1",
14
  "imageio==2.34.2",
15
  "imageio-ffmpeg==0.5.1",
16
+ "kernels>=0.10.0",
17
  "moviepy==1.0.3",
18
  "numpy==1.26.0",
19
  "omegaconf>=2.3.0",
requirements.txt CHANGED
@@ -11,4 +11,5 @@ Pillow
11
  safetensors
12
  tqdm
13
  # flash-attn @ https://github.com/mjun0812/flash-attention-prebuild-wheels/releases/download/v0.3.14/flash_attn-2.8.2+cu129torch2.8-cp310-cp310-linux_x86_64.whl
14
- accelerate
 
 
11
  safetensors
12
  tqdm
13
  # flash-attn @ https://github.com/mjun0812/flash-attention-prebuild-wheels/releases/download/v0.3.14/flash_attn-2.8.2+cu129torch2.8-cp310-cp310-linux_x86_64.whl
14
+ accelerate
15
+ kernels
uv.lock CHANGED
@@ -697,6 +697,21 @@ wheels = [
697
  { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" },
698
  ]
699
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
700
  [[package]]
701
  name = "markdown-it-py"
702
  version = "4.0.0"
@@ -2147,6 +2162,7 @@ dependencies = [
2147
  { name = "gradio" },
2148
  { name = "imageio" },
2149
  { name = "imageio-ffmpeg" },
 
2150
  { name = "moviepy" },
2151
  { name = "numpy" },
2152
  { name = "omegaconf" },
@@ -2174,6 +2190,7 @@ requires-dist = [
2174
  { name = "gradio", specifier = ">=5.44.1" },
2175
  { name = "imageio", specifier = "==2.34.2" },
2176
  { name = "imageio-ffmpeg", specifier = "==0.5.1" },
 
2177
  { name = "moviepy", specifier = "==1.0.3" },
2178
  { name = "numpy", specifier = "==1.26.0" },
2179
  { name = "omegaconf", specifier = ">=2.3.0" },
@@ -2241,6 +2258,45 @@ wheels = [
2241
  { url = "https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", size = 16588, upload-time = "2020-11-01T01:40:20.672Z" },
2242
  ]
2243
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2244
  [[package]]
2245
  name = "tomlkit"
2246
  version = "0.13.3"
 
697
  { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" },
698
  ]
699
 
700
+ [[package]]
701
+ name = "kernels"
702
+ version = "0.10.0"
703
+ source = { registry = "https://pypi.org/simple" }
704
+ dependencies = [
705
+ { name = "huggingface-hub" },
706
+ { name = "packaging" },
707
+ { name = "pyyaml" },
708
+ { name = "tomli", marker = "python_full_version < '3.11'" },
709
+ ]
710
+ sdist = { url = "https://files.pythonhosted.org/packages/6f/81/79e43ff7355c479633e92df61eeadbf4ac32080c1db4dd61717fc7fc2d05/kernels-0.10.0.tar.gz", hash = "sha256:8c3acef89ac3275a3e91e6611e5131f640cefcc5d5960bf0484184ce45786a03", size = 43222, upload-time = "2025-09-05T08:54:14.441Z" }
711
+ wheels = [
712
+ { url = "https://files.pythonhosted.org/packages/1e/43/69bd3f18bb3b5d17d85658222335f186f08e655fc23b18fb5f7471d777fa/kernels-0.10.0-py3-none-any.whl", hash = "sha256:8a2c7bf8e3024412df44df4bfd0720007f4e035d6be581fc25afad23b471fa7e", size = 37628, upload-time = "2025-09-05T08:54:13.043Z" },
713
+ ]
714
+
715
  [[package]]
716
  name = "markdown-it-py"
717
  version = "4.0.0"
 
2162
  { name = "gradio" },
2163
  { name = "imageio" },
2164
  { name = "imageio-ffmpeg" },
2165
+ { name = "kernels" },
2166
  { name = "moviepy" },
2167
  { name = "numpy" },
2168
  { name = "omegaconf" },
 
2190
  { name = "gradio", specifier = ">=5.44.1" },
2191
  { name = "imageio", specifier = "==2.34.2" },
2192
  { name = "imageio-ffmpeg", specifier = "==0.5.1" },
2193
+ { name = "kernels", specifier = ">=0.10.0" },
2194
  { name = "moviepy", specifier = "==1.0.3" },
2195
  { name = "numpy", specifier = "==1.26.0" },
2196
  { name = "omegaconf", specifier = ">=2.3.0" },
 
2258
  { url = "https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", size = 16588, upload-time = "2020-11-01T01:40:20.672Z" },
2259
  ]
2260
 
2261
+ [[package]]
2262
+ name = "tomli"
2263
+ version = "2.2.1"
2264
+ source = { registry = "https://pypi.org/simple" }
2265
+ sdist = { url = "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", size = 17175, upload-time = "2024-11-27T22:38:36.873Z" }
2266
+ wheels = [
2267
+ { url = "https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249", size = 131077, upload-time = "2024-11-27T22:37:54.956Z" },
2268
+ { url = "https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6", size = 123429, upload-time = "2024-11-27T22:37:56.698Z" },
2269
+ { url = "https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a", size = 226067, upload-time = "2024-11-27T22:37:57.63Z" },
2270
+ { url = "https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee", size = 236030, upload-time = "2024-11-27T22:37:59.344Z" },
2271
+ { url = "https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e", size = 240898, upload-time = "2024-11-27T22:38:00.429Z" },
2272
+ { url = "https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4", size = 229894, upload-time = "2024-11-27T22:38:02.094Z" },
2273
+ { url = "https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106", size = 245319, upload-time = "2024-11-27T22:38:03.206Z" },
2274
+ { url = "https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8", size = 238273, upload-time = "2024-11-27T22:38:04.217Z" },
2275
+ { url = "https://files.pythonhosted.org/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff", size = 98310, upload-time = "2024-11-27T22:38:05.908Z" },
2276
+ { url = "https://files.pythonhosted.org/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b", size = 108309, upload-time = "2024-11-27T22:38:06.812Z" },
2277
+ { url = "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", size = 132762, upload-time = "2024-11-27T22:38:07.731Z" },
2278
+ { url = "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", size = 123453, upload-time = "2024-11-27T22:38:09.384Z" },
2279
+ { url = "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", size = 233486, upload-time = "2024-11-27T22:38:10.329Z" },
2280
+ { url = "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222", size = 242349, upload-time = "2024-11-27T22:38:11.443Z" },
2281
+ { url = "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77", size = 252159, upload-time = "2024-11-27T22:38:13.099Z" },
2282
+ { url = "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", size = 237243, upload-time = "2024-11-27T22:38:14.766Z" },
2283
+ { url = "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", size = 259645, upload-time = "2024-11-27T22:38:15.843Z" },
2284
+ { url = "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", size = 244584, upload-time = "2024-11-27T22:38:17.645Z" },
2285
+ { url = "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98", size = 98875, upload-time = "2024-11-27T22:38:19.159Z" },
2286
+ { url = "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4", size = 109418, upload-time = "2024-11-27T22:38:20.064Z" },
2287
+ { url = "https://files.pythonhosted.org/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7", size = 132708, upload-time = "2024-11-27T22:38:21.659Z" },
2288
+ { url = "https://files.pythonhosted.org/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c", size = 123582, upload-time = "2024-11-27T22:38:22.693Z" },
2289
+ { url = "https://files.pythonhosted.org/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13", size = 232543, upload-time = "2024-11-27T22:38:24.367Z" },
2290
+ { url = "https://files.pythonhosted.org/packages/d9/e5/82e80ff3b751373f7cead2815bcbe2d51c895b3c990686741a8e56ec42ab/tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281", size = 241691, upload-time = "2024-11-27T22:38:26.081Z" },
2291
+ { url = "https://files.pythonhosted.org/packages/05/7e/2a110bc2713557d6a1bfb06af23dd01e7dde52b6ee7dadc589868f9abfac/tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272", size = 251170, upload-time = "2024-11-27T22:38:27.921Z" },
2292
+ { url = "https://files.pythonhosted.org/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140", size = 236530, upload-time = "2024-11-27T22:38:29.591Z" },
2293
+ { url = "https://files.pythonhosted.org/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2", size = 258666, upload-time = "2024-11-27T22:38:30.639Z" },
2294
+ { url = "https://files.pythonhosted.org/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744", size = 243954, upload-time = "2024-11-27T22:38:31.702Z" },
2295
+ { url = "https://files.pythonhosted.org/packages/5b/b9/1ed31d167be802da0fc95020d04cd27b7d7065cc6fbefdd2f9186f60d7bd/tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec", size = 98724, upload-time = "2024-11-27T22:38:32.837Z" },
2296
+ { url = "https://files.pythonhosted.org/packages/c7/32/b0963458706accd9afcfeb867c0f9175a741bf7b19cd424230714d722198/tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69", size = 109383, upload-time = "2024-11-27T22:38:34.455Z" },
2297
+ { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257, upload-time = "2024-11-27T22:38:35.385Z" },
2298
+ ]
2299
+
2300
  [[package]]
2301
  name = "tomlkit"
2302
  version = "0.13.3"