not-pegasus commited on
Commit
eaa6435
·
verified ·
1 Parent(s): 2c4182f

Add files using upload-large-folder tool

Browse files
Files changed (49) hide show
  1. .gitattributes +29 -0
  2. README.md +197 -0
  3. env/bin/Activate.ps1 +248 -0
  4. env/bin/httpx +8 -0
  5. env/bin/pip3 +8 -0
  6. env/bin/pip3.13 +8 -0
  7. env/bin/python +3 -0
  8. env/bin/python3 +3 -0
  9. env/bin/python3.13 +3 -0
  10. env/bin/tiny-agents +8 -0
  11. env/bin/tqdm +8 -0
  12. env/lib/python3.13/site-packages/__pycache__/typing_extensions.cpython-313.pyc +3 -0
  13. env/lib/python3.13/site-packages/anyio/_backends/__pycache__/_asyncio.cpython-313.pyc +3 -0
  14. env/lib/python3.13/site-packages/click/__pycache__/core.cpython-313.pyc +3 -0
  15. env/lib/python3.13/site-packages/git_lfs/__init__.py +249 -0
  16. env/lib/python3.13/site-packages/git_lfs/__main__.py +14 -0
  17. env/lib/python3.13/site-packages/git_lfs/__pycache__/__init__.cpython-313.pyc +0 -0
  18. env/lib/python3.13/site-packages/git_lfs/__pycache__/__main__.cpython-313.pyc +0 -0
  19. env/lib/python3.13/site-packages/git_lfs/__pycache__/utils.cpython-313.pyc +0 -0
  20. env/lib/python3.13/site-packages/git_lfs/utils.py +57 -0
  21. env/lib/python3.13/site-packages/hf_xet/hf_xet.abi3.so +3 -0
  22. env/lib/python3.13/site-packages/huggingface_hub/__pycache__/hf_api.cpython-313.pyc +3 -0
  23. env/lib/python3.13/site-packages/huggingface_hub/inference/__pycache__/_client.cpython-313.pyc +3 -0
  24. env/lib/python3.13/site-packages/huggingface_hub/inference/_generated/__pycache__/_async_client.cpython-313.pyc +3 -0
  25. env/lib/python3.13/site-packages/idna-3.11.dist-info/licenses/LICENSE.md +31 -0
  26. env/lib/python3.13/site-packages/idna/__pycache__/idnadata.cpython-313.pyc +3 -0
  27. env/lib/python3.13/site-packages/idna/__pycache__/uts46data.cpython-313.pyc +3 -0
  28. env/lib/python3.13/site-packages/pip-25.1.1.dist-info/licenses/AUTHORS.txt +821 -0
  29. env/lib/python3.13/site-packages/pip-25.1.1.dist-info/licenses/LICENSE.txt +20 -0
  30. env/lib/python3.13/site-packages/pip/_vendor/__pycache__/typing_extensions.cpython-313.pyc +3 -0
  31. env/lib/python3.13/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-313.pyc +3 -0
  32. env/lib/python3.13/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-313.pyc +3 -0
  33. env/lib/python3.13/site-packages/pip/_vendor/rich/__pycache__/_emoji_codes.cpython-313.pyc +3 -0
  34. env/lib/python3.13/site-packages/pip/_vendor/rich/__pycache__/console.cpython-313.pyc +3 -0
  35. env/lib/python3.13/site-packages/typer/__pycache__/__init__.cpython-313.pyc +0 -0
  36. env/lib/python3.13/site-packages/typer/__pycache__/_completion_shared.cpython-313.pyc +0 -0
  37. env/lib/python3.13/site-packages/typer/__pycache__/_typing.cpython-313.pyc +0 -0
  38. env/lib/python3.13/site-packages/typer/__pycache__/cli.cpython-313.pyc +0 -0
  39. env/lib/python3.13/site-packages/typer/__pycache__/colors.cpython-313.pyc +0 -0
  40. env/lib/python3.13/site-packages/typer/__pycache__/completion.cpython-313.pyc +0 -0
  41. env/lib/python3.13/site-packages/typer/__pycache__/core.cpython-313.pyc +0 -0
  42. env/lib/python3.13/site-packages/typer/__pycache__/main.cpython-313.pyc +0 -0
  43. env/lib/python3.13/site-packages/typer/__pycache__/models.cpython-313.pyc +0 -0
  44. env/lib/python3.13/site-packages/typer/__pycache__/params.cpython-313.pyc +0 -0
  45. env/lib/python3.13/site-packages/typer/__pycache__/testing.cpython-313.pyc +0 -0
  46. env/lib/python3.13/site-packages/typing_extensions.py +0 -0
  47. env/lib/python3.13/site-packages/yaml/_yaml.cpython-313-x86_64-linux-gnu.so +3 -0
  48. transformer/diffusion_pytorch_model-00002-of-00003.safetensors +3 -0
  49. transformer/diffusion_pytorch_model-00003-of-00003.safetensors +3 -0
.gitattributes CHANGED
@@ -33,3 +33,32 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
37
+ assets/DMDR.webp filter=lfs diff=lfs merge=lfs -text
38
+ assets/architecture.webp filter=lfs diff=lfs merge=lfs -text
39
+ assets/decoupled-dmd.webp filter=lfs diff=lfs merge=lfs -text
40
+ assets/reasoning.png filter=lfs diff=lfs merge=lfs -text
41
+ assets/showcase.jpg filter=lfs diff=lfs merge=lfs -text
42
+ assets/showcase_editing.png filter=lfs diff=lfs merge=lfs -text
43
+ assets/showcase_realistic.png filter=lfs diff=lfs merge=lfs -text
44
+ assets/showcase_rendering.png filter=lfs diff=lfs merge=lfs -text
45
+ assets/Z-Image-Gallery.pdf filter=lfs diff=lfs merge=lfs -text
46
+ assets/leaderboard.png filter=lfs diff=lfs merge=lfs -text
47
+ env/bin/python filter=lfs diff=lfs merge=lfs -text
48
+ env/bin/python3.13 filter=lfs diff=lfs merge=lfs -text
49
+ env/bin/python3 filter=lfs diff=lfs merge=lfs -text
50
+ env/lib/python3.13/site-packages/yaml/_yaml.cpython-313-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
51
+ env/lib/python3.13/site-packages/hf_xet/hf_xet.abi3.so filter=lfs diff=lfs merge=lfs -text
52
+ env/lib/python3.13/site-packages/__pycache__/typing_extensions.cpython-313.pyc filter=lfs diff=lfs merge=lfs -text
53
+ env/lib/python3.13/site-packages/huggingface_hub/__pycache__/hf_api.cpython-313.pyc filter=lfs diff=lfs merge=lfs -text
54
+ env/lib/python3.13/site-packages/idna/__pycache__/uts46data.cpython-313.pyc filter=lfs diff=lfs merge=lfs -text
55
+ env/lib/python3.13/site-packages/idna/__pycache__/idnadata.cpython-313.pyc filter=lfs diff=lfs merge=lfs -text
56
+ env/lib/python3.13/site-packages/huggingface_hub/inference/__pycache__/_client.cpython-313.pyc filter=lfs diff=lfs merge=lfs -text
57
+ env/lib/python3.13/site-packages/huggingface_hub/inference/_generated/__pycache__/_async_client.cpython-313.pyc filter=lfs diff=lfs merge=lfs -text
58
+ env/lib/python3.13/site-packages/pip/_vendor/__pycache__/typing_extensions.cpython-313.pyc filter=lfs diff=lfs merge=lfs -text
59
+ env/lib/python3.13/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-313.pyc filter=lfs diff=lfs merge=lfs -text
60
+ env/lib/python3.13/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-313.pyc filter=lfs diff=lfs merge=lfs -text
61
+ env/lib/python3.13/site-packages/pip/_vendor/rich/__pycache__/_emoji_codes.cpython-313.pyc filter=lfs diff=lfs merge=lfs -text
62
+ env/lib/python3.13/site-packages/pip/_vendor/rich/__pycache__/console.cpython-313.pyc filter=lfs diff=lfs merge=lfs -text
63
+ env/lib/python3.13/site-packages/anyio/_backends/__pycache__/_asyncio.cpython-313.pyc filter=lfs diff=lfs merge=lfs -text
64
+ env/lib/python3.13/site-packages/click/__pycache__/core.cpython-313.pyc filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,197 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ language:
4
+ - en
5
+ pipeline_tag: text-to-image
6
+ library_name: diffusers
7
+ ---
8
+
9
+
10
+ <h1 align="center">⚡️- Image<br><sub><sup>An Efficient Image Generation Foundation Model with Single-Stream Diffusion Transformer</sup></sub></h1>
11
+
12
+ <div align="center">
13
+
14
+ [![Official Site](https://img.shields.io/badge/Official%20Site-333399.svg?logo=homepage)](https://tongyi-mai.github.io/Z-Image-blog/)&#160;
15
+ [![GitHub](https://img.shields.io/badge/GitHub-Z--Image-181717?logo=github&logoColor=white)](https://github.com/Tongyi-MAI/Z-Image)&#160;
16
+ [![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Checkpoint-Z--Image--Turbo-yellow)](https://huggingface.co/Tongyi-MAI/Z-Image-Turbo)&#160;
17
+ [![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Online_Demo-Z--Image--Turbo-blue)](https://huggingface.co/spaces/Tongyi-MAI/Z-Image-Turbo)&#160;
18
+ [![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Mobile_Demo-Z--Image--Turbo-red)](https://huggingface.co/spaces/akhaliq/Z-Image-Turbo)&#160;
19
+ [![ModelScope Model](https://img.shields.io/badge/🤖%20Checkpoint-Z--Image--Turbo-624aff)](https://www.modelscope.cn/models/Tongyi-MAI/Z-Image-Turbo)&#160;
20
+ [![ModelScope Space](https://img.shields.io/badge/🤖%20Online_Demo-Z--Image--Turbo-17c7a7)](https://www.modelscope.cn/aigc/imageGeneration?tab=advanced&versionId=469191&modelType=Checkpoint&sdVersion=Z_IMAGE_TURBO&modelUrl=modelscope%253A%252F%252FTongyi-MAI%252FZ-Image-Turbo%253Frevision%253Dmaster%7D%7BOnline)&#160;
21
+ [![Art Gallery PDF](https://img.shields.io/badge/%F0%9F%96%BC%20Art_Gallery-PDF-ff69b4)](assets/Z-Image-Gallery.pdf)&#160;
22
+ [![Web Art Gallery](https://img.shields.io/badge/%F0%9F%8C%90%20Web_Art_Gallery-online-00bfff)](https://modelscope.cn/studios/Tongyi-MAI/Z-Image-Gallery/summary)&#160;
23
+ <a href="https://arxiv.org/abs/2511.22699" target="_blank"><img src="https://img.shields.io/badge/Report-b5212f.svg?logo=arxiv" height="21px"></a>
24
+
25
+
26
+ Welcome to the official repository for the Z-Image(造相)project!
27
+
28
+ </div>
29
+
30
+
31
+
32
+ ## ✨ Z-Image
33
+
34
+ Z-Image is a powerful and highly efficient image generation model with **6B** parameters. Currently there are three variants:
35
+
36
+ - 🚀 **Z-Image-Turbo** – A distilled version of Z-Image that matches or exceeds leading competitors with only **8 NFEs** (Number of Function Evaluations). It offers **⚡️sub-second inference latency⚡️** on enterprise-grade H800 GPUs and fits comfortably within **16G VRAM consumer devices**. It excels in photorealistic image generation, bilingual text rendering (English & Chinese), and robust instruction adherence.
37
+
38
+ - 🧱 **Z-Image-Base** – The non-distilled foundation model. By releasing this checkpoint, we aim to unlock the full potential for community-driven fine-tuning and custom development.
39
+
40
+ - ✍️ **Z-Image-Edit** – A variant fine-tuned on Z-Image specifically for image editing tasks. It supports creative image-to-image generation with impressive instruction-following capabilities, allowing for precise edits based on natural language prompts.
41
+
42
+ ### 📥 Model Zoo
43
+
44
+ | Model | Hugging Face | ModelScope |
45
+ | :--- |:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
46
+ | **Z-Image-Turbo** | [![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Checkpoint%20-Z--Image--Turbo-yellow)](https://huggingface.co/Tongyi-MAI/Z-Image-Turbo) <br> [![Hugging Face Space](https://img.shields.io/badge/%F0%9F%A4%97%20Online%20Demo-Z--Image--Turbo-blue)](https://huggingface.co/spaces/Tongyi-MAI/Z-Image-Turbo) | [![ModelScope Model](https://img.shields.io/badge/🤖%20%20Checkpoint-Z--Image--Turbo-624aff)](https://www.modelscope.cn/models/Tongyi-MAI/Z-Image-Turbo) <br> [![ModelScope Space](https://img.shields.io/badge/%F0%9F%A4%96%20Online%20Demo-Z--Image--Turbo-17c7a7)](https://www.modelscope.cn/aigc/imageGeneration?tab=advanced&versionId=469191&modelType=Checkpoint&sdVersion=Z_IMAGE_TURBO&modelUrl=modelscope%3A%2F%2FTongyi-MAI%2FZ-Image-Turbo%3Frevision%3Dmaster) |
47
+ | **Z-Image-Base** | *To be released* | *To be released* |
48
+ | **Z-Image-Edit** | *To be released* | *To be released* |
49
+
50
+ ### 🖼️ Showcase
51
+
52
+ 📸 **Photorealistic Quality**: **Z-Image-Turbo** delivers strong photorealistic image generation while maintaining excellent aesthetic quality.
53
+
54
+ ![Showcase of Z-Image on Photo-realistic image Generation](assets/showcase_realistic.png)
55
+
56
+ 📖 **Accurate Bilingual Text Rendering**: **Z-Image-Turbo** excels at accurately rendering complex Chinese and English text.
57
+
58
+ ![Showcase of Z-Image on Bilingual Text Rendering](assets/showcase_rendering.png)
59
+
60
+ 💡 **Prompt Enhancing & Reasoning**: Prompt Enhancer empowers the model with reasoning capabilities, enabling it to transcend surface-level descriptions and tap into underlying world knowledge.
61
+
62
+ ![reasoning.jpg](assets/reasoning.png)
63
+
64
+ 🧠 **Creative Image Editing**: **Z-Image-Edit** shows a strong understanding of bilingual editing instructions, enabling imaginative and flexible image transformations.
65
+
66
+ ![Showcase of Z-Image-Edit on Image Editing](assets/showcase_editing.png)
67
+
68
+ ### 🏗️ Model Architecture
69
+ We adopt a **Scalable Single-Stream DiT** (S3-DiT) architecture. In this setup, text, visual semantic tokens, and image VAE tokens are concatenated at the sequence level to serve as a unified input stream, maximizing parameter efficiency compared to dual-stream approaches.
70
+
71
+ ![Architecture of Z-Image and Z-Image-Edit](assets/architecture.webp)
72
+
73
+ ### 📈 Performance
74
+ According to the Elo-based Human Preference Evaluation (on [*Alibaba AI Arena*](https://aiarena.alibaba-inc.com/corpora/arena/leaderboard?arenaType=T2I)), Z-Image-Turbo shows highly competitive performance against other leading models, while achieving state-of-the-art results among open-source models.
75
+
76
+ <p align="center">
77
+ <a href="https://aiarena.alibaba-inc.com/corpora/arena/leaderboard?arenaType=T2I">
78
+ <img src="assets/leaderboard.png" alt="Z-Image Elo Rating on AI Arena"/><br />
79
+ <span style="font-size:1.05em; cursor:pointer; text-decoration:underline;"> Click to view the full leaderboard</span>
80
+ </a>
81
+ </p>
82
+
83
+ ### 🚀 Quick Start
84
+ Install the latest version of diffusers, use the following command:
85
+ <details>
86
+ <summary><sup>Click here for details for why you need to install diffusers from source</sup></summary>
87
+
88
+ We have submitted two pull requests ([#12703](https://github.com/huggingface/diffusers/pull/12703) and [#12715](https://github.com/huggingface/diffusers/pull/12704)) to the 🤗 diffusers repository to add support for Z-Image. Both PRs have been merged into the latest official diffusers release.
89
+ Therefore, you need to install diffusers from source for the latest features and Z-Image support.
90
+
91
+ </details>
92
+
93
+ ```bash
94
+ pip install git+https://github.com/huggingface/diffusers
95
+ ```
96
+
97
+ ```python
98
+ import torch
99
+ from diffusers import ZImagePipeline
100
+
101
+ # 1. Load the pipeline
102
+ # Use bfloat16 for optimal performance on supported GPUs
103
+ pipe = ZImagePipeline.from_pretrained(
104
+ "Tongyi-MAI/Z-Image-Turbo",
105
+ torch_dtype=torch.bfloat16,
106
+ low_cpu_mem_usage=False,
107
+ )
108
+ pipe.to("cuda")
109
+
110
+ # [Optional] Attention Backend
111
+ # Diffusers uses SDPA by default. Switch to Flash Attention for better efficiency if supported:
112
+ # pipe.transformer.set_attention_backend("flash") # Enable Flash-Attention-2
113
+ # pipe.transformer.set_attention_backend("_flash_3") # Enable Flash-Attention-3
114
+
115
+ # [Optional] Model Compilation
116
+ # Compiling the DiT model accelerates inference, but the first run will take longer to compile.
117
+ # pipe.transformer.compile()
118
+
119
+ # [Optional] CPU Offloading
120
+ # Enable CPU offloading for memory-constrained devices.
121
+ # pipe.enable_model_cpu_offload()
122
+
123
+ prompt = "Young Chinese woman in red Hanfu, intricate embroidery. Impeccable makeup, red floral forehead pattern. Elaborate high bun, golden phoenix headdress, red flowers, beads. Holds round folding fan with lady, trees, bird. Neon lightning-bolt lamp (⚡️), bright yellow glow, above extended left palm. Soft-lit outdoor night background, silhouetted tiered pagoda (西安大雁塔), blurred colorful distant lights."
124
+
125
+ # 2. Generate Image
126
+ image = pipe(
127
+ prompt=prompt,
128
+ height=1024,
129
+ width=1024,
130
+ num_inference_steps=9, # This actually results in 8 DiT forwards
131
+ guidance_scale=0.0, # Guidance should be 0 for the Turbo models
132
+ generator=torch.Generator("cuda").manual_seed(42),
133
+ ).images[0]
134
+
135
+ image.save("example.png")
136
+ ```
137
+
138
+ ## 🔬 Decoupled-DMD: The Acceleration Magic Behind Z-Image
139
+
140
+ [![arXiv](https://img.shields.io/badge/arXiv-2511.22677-b31b1b.svg)](https://arxiv.org/abs/2511.22677)
141
+
142
+ Decoupled-DMD is the core few-step distillation algorithm that empowers the 8-step Z-Image model.
143
+
144
+ Our core insight in Decoupled-DMD is that the success of existing DMD (Distributaion Matching Distillation) methods is the result of two independent, collaborating mechanisms:
145
+
146
+ - **CFG Augmentation (CA)**: The primary **engine** 🚀 driving the distillation process, a factor largely overlooked in previous work.
147
+ - **Distribution Matching (DM)**: Acts more as a **regularizer** ⚖️, ensuring the stability and quality of the generated output.
148
+
149
+ By recognizing and decoupling these two mechanisms, we were able to study and optimize them in isolation. This ultimately motivated us to develop an improved distillation process that significantly enhances the performance of few-step generation.
150
+
151
+ ![Diagram of Decoupled-DMD](assets/decoupled-dmd.webp)
152
+
153
+ ## 🤖 DMDR: Fusing DMD with Reinforcement Learning
154
+
155
+ [![arXiv](https://img.shields.io/badge/arXiv-2511.13649-b31b1b.svg)](https://arxiv.org/abs/2511.13649)
156
+
157
+ Building upon the strong foundation of Decoupled-DMD, our 8-step Z-Image model has already demonstrated exceptional capabilities. To achieve further improvements in terms of semantic alignment, aesthetic quality, and structural coherence—while producing images with richer high-frequency details—we present **DMDR**.
158
+
159
+ Our core insight behind DMDR is that Reinforcement Learning (RL) and Distribution Matching Distillation (DMD) can be synergistically integrated during the post-training of few-step models. We demonstrate that:
160
+
161
+ - **RL Unlocks the Performance of DMD** 🚀
162
+ - **DMD Effectively Regularizes RL** ⚖️
163
+
164
+ ![Diagram of DMDR](assets/DMDR.webp)
165
+
166
+ ## ⏬ Download
167
+ ```bash
168
+ pip install -U huggingface_hub
169
+ HF_XET_HIGH_PERFORMANCE=1 hf download Tongyi-MAI/Z-Image-Turbo
170
+ ```
171
+
172
+ ## 📜 Citation
173
+
174
+ If you find our work useful in your research, please consider citing:
175
+
176
+ ```bibtex
177
+ @article{team2025zimage,
178
+ title={Z-Image: An Efficient Image Generation Foundation Model with Single-Stream Diffusion Transformer},
179
+ author={Z-Image Team},
180
+ journal={arXiv preprint arXiv:2511.22699},
181
+ year={2025}
182
+ }
183
+
184
+ @article{liu2025decoupled,
185
+ title={Decoupled DMD: CFG Augmentation as the Spear, Distribution Matching as the Shield},
186
+ author={Dongyang Liu and Peng Gao and David Liu and Ruoyi Du and Zhen Li and Qilong Wu and Xin Jin and Sihan Cao and Shifeng Zhang and Hongsheng Li and Steven Hoi},
187
+ journal={arXiv preprint arXiv:2511.22677},
188
+ year={2025}
189
+ }
190
+
191
+ @article{jiang2025distribution,
192
+ title={Distribution Matching Distillation Meets Reinforcement Learning},
193
+ author={Jiang, Dengyang and Liu, Dongyang and Wang, Zanyi and Wu, Qilong and Jin, Xin and Liu, David and Li, Zhen and Wang, Mengmeng and Gao, Peng and Yang, Harry},
194
+ journal={arXiv preprint arXiv:2511.13649},
195
+ year={2025}
196
+ }
197
+ ```
env/bin/Activate.ps1 ADDED
@@ -0,0 +1,248 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <#
2
+ .Synopsis
3
+ Activate a Python virtual environment for the current PowerShell session.
4
+
5
+ .Description
6
+ Pushes the python executable for a virtual environment to the front of the
7
+ $Env:PATH environment variable and sets the prompt to signify that you are
8
+ in a Python virtual environment. Makes use of the command line switches as
9
+ well as the `pyvenv.cfg` file values present in the virtual environment.
10
+
11
+ .Parameter VenvDir
12
+ Path to the directory that contains the virtual environment to activate. The
13
+ default value for this is the parent of the directory that the Activate.ps1
14
+ script is located within.
15
+
16
+ .Parameter Prompt
17
+ The prompt prefix to display when this virtual environment is activated. By
18
+ default, this prompt is the name of the virtual environment folder (VenvDir)
19
+ surrounded by parentheses and followed by a single space (ie. '(.venv) ').
20
+
21
+ .Example
22
+ Activate.ps1
23
+ Activates the Python virtual environment that contains the Activate.ps1 script.
24
+
25
+ .Example
26
+ Activate.ps1 -Verbose
27
+ Activates the Python virtual environment that contains the Activate.ps1 script,
28
+ and shows extra information about the activation as it executes.
29
+
30
+ .Example
31
+ Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv
32
+ Activates the Python virtual environment located in the specified location.
33
+
34
+ .Example
35
+ Activate.ps1 -Prompt "MyPython"
36
+ Activates the Python virtual environment that contains the Activate.ps1 script,
37
+ and prefixes the current prompt with the specified string (surrounded in
38
+ parentheses) while the virtual environment is active.
39
+
40
+ .Notes
41
+ On Windows, it may be required to enable this Activate.ps1 script by setting the
42
+ execution policy for the user. You can do this by issuing the following PowerShell
43
+ command:
44
+
45
+ PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
46
+
47
+ For more information on Execution Policies:
48
+ https://go.microsoft.com/fwlink/?LinkID=135170
49
+
50
+ #>
51
+ Param(
52
+ [Parameter(Mandatory = $false)]
53
+ [String]
54
+ $VenvDir,
55
+ [Parameter(Mandatory = $false)]
56
+ [String]
57
+ $Prompt
58
+ )
59
+
60
+ <# Function declarations --------------------------------------------------- #>
61
+
62
+ <#
63
+ .Synopsis
64
+ Remove all shell session elements added by the Activate script, including the
65
+ addition of the virtual environment's Python executable from the beginning of
66
+ the PATH variable.
67
+
68
+ .Parameter NonDestructive
69
+ If present, do not remove this function from the global namespace for the
70
+ session.
71
+
72
+ #>
73
+ function global:deactivate ([switch]$NonDestructive) {
74
+ # Revert to original values
75
+
76
+ # The prior prompt:
77
+ if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) {
78
+ Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt
79
+ Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT
80
+ }
81
+
82
+ # The prior PYTHONHOME:
83
+ if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) {
84
+ Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME
85
+ Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME
86
+ }
87
+
88
+ # The prior PATH:
89
+ if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) {
90
+ Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH
91
+ Remove-Item -Path Env:_OLD_VIRTUAL_PATH
92
+ }
93
+
94
+ # Just remove the VIRTUAL_ENV altogether:
95
+ if (Test-Path -Path Env:VIRTUAL_ENV) {
96
+ Remove-Item -Path env:VIRTUAL_ENV
97
+ }
98
+
99
+ # Just remove VIRTUAL_ENV_PROMPT altogether.
100
+ if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) {
101
+ Remove-Item -Path env:VIRTUAL_ENV_PROMPT
102
+ }
103
+
104
+ # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether:
105
+ if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) {
106
+ Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force
107
+ }
108
+
109
+ # Leave deactivate function in the global namespace if requested:
110
+ if (-not $NonDestructive) {
111
+ Remove-Item -Path function:deactivate
112
+ }
113
+ }
114
+
115
+ <#
116
+ .Description
117
+ Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the
118
+ given folder, and returns them in a map.
119
+
120
+ For each line in the pyvenv.cfg file, if that line can be parsed into exactly
121
+ two strings separated by `=` (with any amount of whitespace surrounding the =)
122
+ then it is considered a `key = value` line. The left hand string is the key,
123
+ the right hand is the value.
124
+
125
+ If the value starts with a `'` or a `"` then the first and last character is
126
+ stripped from the value before being captured.
127
+
128
+ .Parameter ConfigDir
129
+ Path to the directory that contains the `pyvenv.cfg` file.
130
+ #>
131
+ function Get-PyVenvConfig(
132
+ [String]
133
+ $ConfigDir
134
+ ) {
135
+ Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg"
136
+
137
+ # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue).
138
+ $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue
139
+
140
+ # An empty map will be returned if no config file is found.
141
+ $pyvenvConfig = @{ }
142
+
143
+ if ($pyvenvConfigPath) {
144
+
145
+ Write-Verbose "File exists, parse `key = value` lines"
146
+ $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath
147
+
148
+ $pyvenvConfigContent | ForEach-Object {
149
+ $keyval = $PSItem -split "\s*=\s*", 2
150
+ if ($keyval[0] -and $keyval[1]) {
151
+ $val = $keyval[1]
152
+
153
+ # Remove extraneous quotations around a string value.
154
+ if ("'""".Contains($val.Substring(0, 1))) {
155
+ $val = $val.Substring(1, $val.Length - 2)
156
+ }
157
+
158
+ $pyvenvConfig[$keyval[0]] = $val
159
+ Write-Verbose "Adding Key: '$($keyval[0])'='$val'"
160
+ }
161
+ }
162
+ }
163
+ return $pyvenvConfig
164
+ }
165
+
166
+
167
+ <# Begin Activate script --------------------------------------------------- #>
168
+
169
+ # Determine the containing directory of this script
170
+ $VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
171
+ $VenvExecDir = Get-Item -Path $VenvExecPath
172
+
173
+ Write-Verbose "Activation script is located in path: '$VenvExecPath'"
174
+ Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)"
175
+ Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)"
176
+
177
+ # Set values required in priority: CmdLine, ConfigFile, Default
178
+ # First, get the location of the virtual environment, it might not be
179
+ # VenvExecDir if specified on the command line.
180
+ if ($VenvDir) {
181
+ Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values"
182
+ }
183
+ else {
184
+ Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir."
185
+ $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/")
186
+ Write-Verbose "VenvDir=$VenvDir"
187
+ }
188
+
189
+ # Next, read the `pyvenv.cfg` file to determine any required value such
190
+ # as `prompt`.
191
+ $pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir
192
+
193
+ # Next, set the prompt from the command line, or the config file, or
194
+ # just use the name of the virtual environment folder.
195
+ if ($Prompt) {
196
+ Write-Verbose "Prompt specified as argument, using '$Prompt'"
197
+ }
198
+ else {
199
+ Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value"
200
+ if ($pyvenvCfg -and $pyvenvCfg['prompt']) {
201
+ Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'"
202
+ $Prompt = $pyvenvCfg['prompt'];
203
+ }
204
+ else {
205
+ Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)"
206
+ Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'"
207
+ $Prompt = Split-Path -Path $venvDir -Leaf
208
+ }
209
+ }
210
+
211
+ Write-Verbose "Prompt = '$Prompt'"
212
+ Write-Verbose "VenvDir='$VenvDir'"
213
+
214
+ # Deactivate any currently active virtual environment, but leave the
215
+ # deactivate function in place.
216
+ deactivate -nondestructive
217
+
218
+ # Now set the environment variable VIRTUAL_ENV, used by many tools to determine
219
+ # that there is an activated venv.
220
+ $env:VIRTUAL_ENV = $VenvDir
221
+
222
+ $env:VIRTUAL_ENV_PROMPT = $Prompt
223
+
224
+ if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) {
225
+
226
+ Write-Verbose "Setting prompt to '$Prompt'"
227
+
228
+ # Set the prompt to include the env name
229
+ # Make sure _OLD_VIRTUAL_PROMPT is global
230
+ function global:_OLD_VIRTUAL_PROMPT { "" }
231
+ Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT
232
+ New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt
233
+
234
+ function global:prompt {
235
+ Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) "
236
+ _OLD_VIRTUAL_PROMPT
237
+ }
238
+ }
239
+
240
+ # Clear PYTHONHOME
241
+ if (Test-Path -Path Env:PYTHONHOME) {
242
+ Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME
243
+ Remove-Item -Path Env:PYTHONHOME
244
+ }
245
+
246
+ # Add the venv to the PATH
247
+ Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH
248
+ $Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH"
env/bin/httpx ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/jxngrx/Work/MINE_DEMO_PROECTS/Z-Image-Turbo/env/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from httpx import main
6
+ if __name__ == '__main__':
7
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
+ sys.exit(main())
env/bin/pip3 ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/jxngrx/Work/MINE_DEMO_PROECTS/Z-Image-Turbo/env/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from pip._internal.cli.main import main
6
+ if __name__ == '__main__':
7
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
+ sys.exit(main())
env/bin/pip3.13 ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/jxngrx/Work/MINE_DEMO_PROECTS/Z-Image-Turbo/env/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from pip._internal.cli.main import main
6
+ if __name__ == '__main__':
7
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
+ sys.exit(main())
env/bin/python ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:921d6dc8134821fd0d168885ddd33f3e5d23b75a1391e4fc526da43e7fb6ada5
3
+ size 6894448
env/bin/python3 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:921d6dc8134821fd0d168885ddd33f3e5d23b75a1391e4fc526da43e7fb6ada5
3
+ size 6894448
env/bin/python3.13 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:921d6dc8134821fd0d168885ddd33f3e5d23b75a1391e4fc526da43e7fb6ada5
3
+ size 6894448
env/bin/tiny-agents ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/jxngrx/Work/MINE_DEMO_PROECTS/Z-Image-Turbo/env/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from huggingface_hub.inference._mcp.cli import app
6
+ if __name__ == '__main__':
7
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
+ sys.exit(app())
env/bin/tqdm ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/jxngrx/Work/MINE_DEMO_PROECTS/Z-Image-Turbo/env/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from tqdm.cli import main
6
+ if __name__ == '__main__':
7
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
+ sys.exit(main())
env/lib/python3.13/site-packages/__pycache__/typing_extensions.cpython-313.pyc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2ec19822f6c74485e66e334ce5f4161b76fb0b14df715336002517e183121f2f
3
+ size 162884
env/lib/python3.13/site-packages/anyio/_backends/__pycache__/_asyncio.cpython-313.pyc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:55feed06d92dc31c6df812f11347b4a183734a8156a9dbf0e1886d859486464d
3
+ size 144139
env/lib/python3.13/site-packages/click/__pycache__/core.cpython-313.pyc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b41d0926233de8301b3bdfc5a5ef9dd2c523700627f282e4cf036884d41b7eea
3
+ size 132892
env/lib/python3.13/site-packages/git_lfs/__init__.py ADDED
@@ -0,0 +1,249 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import division, print_function, unicode_literals
2
+
3
+ import json
4
+ import os
5
+ import pprint
6
+ from subprocess import CalledProcessError, check_output, PIPE, Popen, STDOUT
7
+ try:
8
+ from urllib.parse import urlsplit, urlunsplit
9
+ from urllib.request import Request, urlopen
10
+ from urllib.error import HTTPError
11
+ except ImportError:
12
+ from urllib2 import Request, urlopen
13
+ from urllib2 import HTTPError
14
+ from urlparse import urlsplit, urlunsplit
15
+
16
+ from .utils import force_link, ignore_missing_file, in_dir, TempDir, TempFile
17
+
18
+
19
+ MEDIA_TYPE = 'application/vnd.git-lfs+json'
20
+ POST_HEADERS = {'Accept': MEDIA_TYPE, 'Content-Type': MEDIA_TYPE}
21
+
22
+
23
+ def git_show(git_repo, p):
24
+ with in_dir(git_repo):
25
+ return check_output(['git', 'show', 'HEAD:'+p])
26
+
27
+
28
+ def get_cache_dir(git_dir, oid):
29
+ return git_dir+'/lfs/objects/'+oid[:2]+'/'+oid[2:4]
30
+
31
+
32
+ def get_lfs_endpoint_url(git_repo, checkout_dir):
33
+ try:
34
+ with in_dir(checkout_dir):
35
+ url = check_output(
36
+ 'git config -f .lfsconfig --get lfs.url'.split()
37
+ ).strip().decode('utf8')
38
+ except CalledProcessError:
39
+ with in_dir(git_repo):
40
+ url = check_output(
41
+ 'git config --get remote.origin.url'.split()
42
+ ).strip().decode('utf8')
43
+ if url.endswith('/'):
44
+ url = url[:-1]
45
+ if not url.endswith('/info/lfs'):
46
+ url += '/info/lfs' if url.endswith('.git') else '.git/info/lfs'
47
+ url_split = urlsplit(url)
48
+ host, path = url_split.hostname, url_split.path
49
+ if url_split.scheme != 'https':
50
+ if not url_split.scheme:
51
+ # SSH format: git@example.org:repo.git
52
+ host, path = url_split.path.split('@', 1)[1].split(':', 1)
53
+ url = urlunsplit(('https', host, path, '', ''))
54
+ del url_split
55
+
56
+ # need to get GHE auth token if available. issue cmd like this to get:
57
+ # ssh git@git-server.com git-lfs-authenticate foo/bar.git download
58
+ if path.endswith('/info/lfs'):
59
+ path = path[:-len('/info/lfs')]
60
+ auth_header = get_lfs_api_token(host, path)
61
+ return url, auth_header
62
+
63
+
64
+ def get_lfs_api_token(host, path):
65
+ """ gets an authorization token to use to do further introspection on the
66
+ LFS info in the repository. See documentation here for description of
67
+ the ssh command and response:
68
+ https://github.com/git-lfs/git-lfs/blob/master/docs/api/server-discovery.md
69
+ """
70
+ header_info = {}
71
+ query_cmd = 'ssh git@'+host+' git-lfs-authenticate '+path+' download'
72
+ output = check_output(query_cmd.split()).strip().decode('utf8')
73
+ if output:
74
+ query_resp = json.loads(output)
75
+ header_info = query_resp['header']
76
+
77
+ return header_info
78
+
79
+
80
+ def find_lfs_files(checkout_dir):
81
+ """Yields the paths of the files managed by Git LFS
82
+ """
83
+ with in_dir(checkout_dir):
84
+ repo_files = Popen('git ls-files -z'.split(), stdout=PIPE)
85
+ repo_files_attrs = check_output(
86
+ 'git check-attr --cached --stdin -z diff filter'.split(),
87
+ stdin=repo_files.stdout
88
+ )
89
+ # In old versions of git, check-attr's `-z` flag only applied to input
90
+ sep = b'\0' if b'\0' in repo_files_attrs else b'\n'
91
+ i = iter(repo_files_attrs.strip(sep).split(sep))
92
+ paths = set()
93
+ while True:
94
+ try:
95
+ if sep == b'\0':
96
+ path, attr, value = next(i), next(i), next(i)
97
+ else:
98
+ path, attr, value = next(i).rsplit(': ', 2)
99
+ attr # shut up pyflakes
100
+ except StopIteration:
101
+ break
102
+ if value != b'lfs':
103
+ continue
104
+ if path in paths:
105
+ continue
106
+ paths.add(path)
107
+ yield path.decode('ascii')
108
+
109
+
110
+ def read_lfs_metadata(checkout_dir):
111
+ """Yields (path, oid, size) tuples for all files managed by Git LFS
112
+ """
113
+ for path in find_lfs_files(checkout_dir):
114
+ meta = git_show(checkout_dir, path).decode('utf8').strip().split('\n')
115
+ assert meta[0] == 'version https://git-lfs.github.com/spec/v1', meta
116
+ d = dict(line.split(' ', 1) for line in meta[1:])
117
+ oid = d['oid']
118
+ oid = oid[7:] if oid.startswith('sha256:') else oid
119
+ size = int(d['size'])
120
+ yield (path, oid, size)
121
+
122
+
123
+ def fetch_urls(lfs_url, lfs_auth_info, oid_list):
124
+ """Fetch the URLs of the files from the Git LFS endpoint
125
+ """
126
+ objects = []
127
+ data = json.dumps({'operation': 'download', 'objects': oid_list})
128
+ headers = dict(POST_HEADERS)
129
+ headers.update(lfs_auth_info)
130
+ req = Request(lfs_url+'/objects/batch', data.encode('ascii'), headers)
131
+
132
+ try:
133
+ resp = json.loads(urlopen(req).read().decode('ascii'))
134
+ assert 'objects' in resp, resp
135
+ objects.extend(resp['objects'])
136
+
137
+ except HTTPError as err:
138
+ if err.code != 413:
139
+ raise
140
+
141
+ # It is possible for remote server to respond with 413 Request Entity
142
+ # Too Large. If that happens try to request for two sets of oids so
143
+ # request is smaller.
144
+ objects.extend(
145
+ fetch_urls(lfs_url, lfs_auth_info, oid_list[:len(oid_list) // 2])
146
+ )
147
+ objects.extend(
148
+ fetch_urls(lfs_url, lfs_auth_info, oid_list[len(oid_list) // 2:])
149
+ )
150
+
151
+ return objects
152
+
153
+
154
+ def fetch(git_repo, checkout_dir=None, verbose=0):
155
+ """Download all the files managed by Git LFS
156
+ """
157
+ git_dir = git_repo+'/.git' if os.path.isdir(git_repo+'/.git') else git_repo
158
+ checkout_dir = checkout_dir or git_repo
159
+ if checkout_dir == git_dir:
160
+ print('Can\'t checkout into a bare repo, please provide a valid '
161
+ 'checkout_dir')
162
+ raise SystemExit(1)
163
+ checkout_git_dir = checkout_dir+'/.git'
164
+ if not os.path.isdir(checkout_git_dir):
165
+ with TempDir(dir=checkout_dir) as d:
166
+ check_output(['git', 'clone', '-ns', git_repo, d], stderr=STDOUT)
167
+ os.rename(d+'/.git', checkout_git_dir)
168
+ with in_dir(checkout_dir):
169
+ check_output(['git', 'reset', 'HEAD'])
170
+
171
+ # Read the LFS metadata
172
+ found = False
173
+ oid_list, lfs_files = [], {}
174
+ for path, oid, size in read_lfs_metadata(checkout_dir):
175
+ found = True
176
+ dst = checkout_dir+'/'+path
177
+
178
+ # Skip the file if it looks like it's already there
179
+ with ignore_missing_file():
180
+ if os.stat(dst).st_size == size:
181
+ if verbose > 1:
182
+ print('Skipping', path, '(already present)')
183
+ continue
184
+
185
+ # If we have the file in the cache, link to it
186
+ with ignore_missing_file():
187
+ cached = get_cache_dir(git_dir, oid)+'/'+oid
188
+ if os.stat(cached).st_size == size:
189
+ force_link(cached, dst)
190
+ if verbose > 0:
191
+ print('Linked', path, 'from the cache')
192
+ continue
193
+
194
+ oid_list.append(dict(oid=oid, size=size))
195
+ lfs_files[(oid, size)] = path
196
+
197
+ if not found:
198
+ print('This repository does not seem to use LFS.')
199
+ return
200
+
201
+ if not oid_list:
202
+ if verbose > 0:
203
+ print('Nothing to fetch.')
204
+ return
205
+
206
+ # Fetch the URLs of the files from the Git LFS endpoint
207
+ lfs_url, lfs_auth_info = get_lfs_endpoint_url(git_repo, checkout_dir)
208
+
209
+ if verbose > 0:
210
+ print('Fetching URLs from %s ...' % lfs_url)
211
+ if verbose > 1:
212
+ print('Authorization info for URL: %s' % lfs_auth_info)
213
+ print('oid_list: %s' % pprint.pformat(oid_list))
214
+ objects = fetch_urls(lfs_url, lfs_auth_info, oid_list)
215
+
216
+ # Download the files
217
+ tmp_dir = git_dir+'/lfs/tmp'
218
+ if not os.path.exists(tmp_dir):
219
+ os.makedirs(tmp_dir)
220
+ for obj in objects:
221
+ oid, size = (obj['oid'], obj['size'])
222
+ path = lfs_files[(oid, size)]
223
+ cache_dir = get_cache_dir(git_dir, oid)
224
+
225
+ # Download into tmp_dir
226
+ with TempFile(dir=tmp_dir) as f:
227
+ url = obj['actions']['download']['href']
228
+ head = obj['actions']['download']['header']
229
+ print('Downloading %s (%s bytes) from %s...' %
230
+ (path, size, url if verbose > 0 else url[:40]))
231
+ h = urlopen(Request(url, headers=head))
232
+ while True:
233
+ buf = h.read(10240)
234
+ if not buf:
235
+ break
236
+ f.write(buf)
237
+
238
+ # Move to cache_dir
239
+ dst1 = cache_dir+'/'+oid
240
+ if not os.path.exists(cache_dir):
241
+ os.makedirs(cache_dir)
242
+ if verbose > 1:
243
+ print('temp download file: ' + f.name)
244
+ print('cache file name: ' + dst1)
245
+ os.rename(f.name, dst1)
246
+
247
+ # Copy into checkout_dir
248
+ dst2 = checkout_dir+'/'+path
249
+ force_link(dst1, dst2)
env/lib/python3.13/site-packages/git_lfs/__main__.py ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import division, print_function, unicode_literals
2
+
3
+ import argparse
4
+
5
+ from . import fetch
6
+
7
+ p = argparse.ArgumentParser()
8
+ p.add_argument('git_repo', nargs='?', default='.',
9
+ help="if it's bare you need to provide a checkout_dir")
10
+ p.add_argument('checkout_dir', nargs='?')
11
+ p.add_argument('-v', '--verbose', action='count', default=0)
12
+ args = p.parse_args()
13
+
14
+ fetch(args.git_repo, args.checkout_dir, args.verbose)
env/lib/python3.13/site-packages/git_lfs/__pycache__/__init__.cpython-313.pyc ADDED
Binary file (12.3 kB). View file
 
env/lib/python3.13/site-packages/git_lfs/__pycache__/__main__.cpython-313.pyc ADDED
Binary file (938 Bytes). View file
 
env/lib/python3.13/site-packages/git_lfs/__pycache__/utils.cpython-313.pyc ADDED
Binary file (3.1 kB). View file
 
env/lib/python3.13/site-packages/git_lfs/utils.py ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import division, print_function, unicode_literals
2
+
3
+ from contextlib import contextmanager
4
+ import os
5
+ import shutil
6
+ from tempfile import mkdtemp, NamedTemporaryFile
7
+
8
+
9
+ @contextmanager
10
+ def ignore_missing_file(filename=None):
11
+ try:
12
+ yield
13
+ except OSError as e:
14
+ if e.errno != 2 or filename and e.filename != filename:
15
+ raise
16
+
17
+
18
+ @contextmanager
19
+ def in_dir(dirpath):
20
+ # WARNING not thread-safe
21
+ prev = os.path.abspath(os.getcwd())
22
+ os.chdir(dirpath)
23
+ try:
24
+ yield
25
+ finally:
26
+ os.chdir(prev)
27
+
28
+
29
+ @contextmanager
30
+ def TempDir(**kw):
31
+ """mkdtemp wrapper that automatically deletes the directory
32
+ """
33
+ d = mkdtemp(**kw)
34
+ try:
35
+ yield d
36
+ finally:
37
+ with ignore_missing_file(d):
38
+ shutil.rmtree(d)
39
+
40
+
41
+ @contextmanager
42
+ def TempFile(**kw):
43
+ """NamedTemporaryFile wrapper that doesn't fail if you (re)move the file
44
+ """
45
+ f = NamedTemporaryFile(**kw)
46
+ try:
47
+ yield f
48
+ finally:
49
+ with ignore_missing_file():
50
+ f.__exit__(None, None, None)
51
+
52
+
53
+ def force_link(source, link_name):
54
+ # WARNING not atomic
55
+ with ignore_missing_file():
56
+ os.remove(link_name)
57
+ os.link(source, link_name)
env/lib/python3.13/site-packages/hf_xet/hf_xet.abi3.so ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bdd7544701ee404522257b90966d4d678ee4396e5c939dca15d0f7dacda60e66
3
+ size 8310504
env/lib/python3.13/site-packages/huggingface_hub/__pycache__/hf_api.cpython-313.pyc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fde41b3aebdb56ad5e4407b2dbee9efc18b76f12f53c2ecb10c420564883c35b
3
+ size 461316
env/lib/python3.13/site-packages/huggingface_hub/inference/__pycache__/_client.cpython-313.pyc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d273ef960f2c7532cd8e2210b176161c278ee176f13d1e90939d7179717c05bd
3
+ size 141861
env/lib/python3.13/site-packages/huggingface_hub/inference/_generated/__pycache__/_async_client.cpython-313.pyc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:48a66091d13caecc53436350de9dea233877c2e8bf45303671d3246546ab70b4
3
+ size 147527
env/lib/python3.13/site-packages/idna-3.11.dist-info/licenses/LICENSE.md ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2013-2025, Kim Davies and contributors.
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are
8
+ met:
9
+
10
+ 1. Redistributions of source code must retain the above copyright
11
+ notice, this list of conditions and the following disclaimer.
12
+
13
+ 2. Redistributions in binary form must reproduce the above copyright
14
+ notice, this list of conditions and the following disclaimer in the
15
+ documentation and/or other materials provided with the distribution.
16
+
17
+ 3. Neither the name of the copyright holder nor the names of its
18
+ contributors may be used to endorse or promote products derived from
19
+ this software without specific prior written permission.
20
+
21
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
27
+ TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
28
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
29
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
30
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
31
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
env/lib/python3.13/site-packages/idna/__pycache__/idnadata.cpython-313.pyc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e8914670e4b3200b04ddfe27d41ef8b187d45c48bc1e7045fcb87adadca9b095
3
+ size 100923
env/lib/python3.13/site-packages/idna/__pycache__/uts46data.cpython-313.pyc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0ba051beb24a42367b378373eb2239a3955b8acd9983bd4f6a5e293f9bbc21f4
3
+ size 162021
env/lib/python3.13/site-packages/pip-25.1.1.dist-info/licenses/AUTHORS.txt ADDED
@@ -0,0 +1,821 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @Switch01
2
+ A_Rog
3
+ Aakanksha Agrawal
4
+ Abhinav Sagar
5
+ ABHYUDAY PRATAP SINGH
6
+ abs51295
7
+ AceGentile
8
+ Adam Chainz
9
+ Adam Tse
10
+ Adam Turner
11
+ Adam Wentz
12
+ admin
13
+ Adolfo Ochagavía
14
+ Adrien Morison
15
+ Agus
16
+ ahayrapetyan
17
+ Ahilya
18
+ AinsworthK
19
+ Akash Srivastava
20
+ Alan Yee
21
+ Albert Tugushev
22
+ Albert-Guan
23
+ albertg
24
+ Alberto Sottile
25
+ Aleks Bunin
26
+ Ales Erjavec
27
+ Alethea Flowers
28
+ Alex Gaynor
29
+ Alex Grönholm
30
+ Alex Hedges
31
+ Alex Loosley
32
+ Alex Morega
33
+ Alex Stachowiak
34
+ Alexander Regueiro
35
+ Alexander Shtyrov
36
+ Alexandre Conrad
37
+ Alexey Popravka
38
+ Aleš Erjavec
39
+ Alli
40
+ Ami Fischman
41
+ Ananya Maiti
42
+ Anatoly Techtonik
43
+ Anders Kaseorg
44
+ Andre Aguiar
45
+ Andreas Lutro
46
+ Andrei Geacar
47
+ Andrew Gaul
48
+ Andrew Shymanel
49
+ Andrey Bienkowski
50
+ Andrey Bulgakov
51
+ Andrés Delfino
52
+ Andy Freeland
53
+ Andy Kluger
54
+ Ani Hayrapetyan
55
+ Aniruddha Basak
56
+ Anish Tambe
57
+ Anrs Hu
58
+ Anthony Sottile
59
+ Antoine Musso
60
+ Anton Ovchinnikov
61
+ Anton Patrushev
62
+ Anton Zelenov
63
+ Antonio Alvarado Hernandez
64
+ Antony Lee
65
+ Antti Kaihola
66
+ Anubhav Patel
67
+ Anudit Nagar
68
+ Anuj Godase
69
+ AQNOUCH Mohammed
70
+ AraHaan
71
+ arena
72
+ arenasys
73
+ Arindam Choudhury
74
+ Armin Ronacher
75
+ Arnon Yaari
76
+ Artem
77
+ Arun Babu Neelicattu
78
+ Ashley Manton
79
+ Ashwin Ramaswami
80
+ atse
81
+ Atsushi Odagiri
82
+ Avinash Karhana
83
+ Avner Cohen
84
+ Awit (Ah-Wit) Ghirmai
85
+ Baptiste Mispelon
86
+ Barney Gale
87
+ barneygale
88
+ Bartek Ogryczak
89
+ Bastian Venthur
90
+ Ben Bodenmiller
91
+ Ben Darnell
92
+ Ben Hoyt
93
+ Ben Mares
94
+ Ben Rosser
95
+ Bence Nagy
96
+ Benjamin Peterson
97
+ Benjamin VanEvery
98
+ Benoit Pierre
99
+ Berker Peksag
100
+ Bernard
101
+ Bernard Tyers
102
+ Bernardo B. Marques
103
+ Bernhard M. Wiedemann
104
+ Bertil Hatt
105
+ Bhavam Vidyarthi
106
+ Blazej Michalik
107
+ Bogdan Opanchuk
108
+ BorisZZZ
109
+ Brad Erickson
110
+ Bradley Ayers
111
+ Bradley Reynolds
112
+ Branch Vincent
113
+ Brandon L. Reiss
114
+ Brandt Bucher
115
+ Brannon Dorsey
116
+ Brett Randall
117
+ Brett Rosen
118
+ Brian Cristante
119
+ Brian Rosner
120
+ briantracy
121
+ BrownTruck
122
+ Bruno Oliveira
123
+ Bruno Renié
124
+ Bruno S
125
+ Bstrdsmkr
126
+ Buck Golemon
127
+ burrows
128
+ Bussonnier Matthias
129
+ bwoodsend
130
+ c22
131
+ Caleb Brown
132
+ Caleb Martinez
133
+ Calvin Smith
134
+ Carl Meyer
135
+ Carlos Liam
136
+ Carol Willing
137
+ Carter Thayer
138
+ Cass
139
+ Chandrasekhar Atina
140
+ Charlie Marsh
141
+ charwick
142
+ Chih-Hsuan Yen
143
+ Chris Brinker
144
+ Chris Hunt
145
+ Chris Jerdonek
146
+ Chris Kuehl
147
+ Chris Markiewicz
148
+ Chris McDonough
149
+ Chris Pawley
150
+ Chris Pryer
151
+ Chris Wolfe
152
+ Christian Clauss
153
+ Christian Heimes
154
+ Christian Oudard
155
+ Christoph Reiter
156
+ Christopher Hunt
157
+ Christopher Snyder
158
+ chrysle
159
+ cjc7373
160
+ Clark Boylan
161
+ Claudio Jolowicz
162
+ Clay McClure
163
+ Cody
164
+ Cody Soyland
165
+ Colin Watson
166
+ Collin Anderson
167
+ Connor Osborn
168
+ Cooper Lees
169
+ Cooper Ry Lees
170
+ Cory Benfield
171
+ Cory Wright
172
+ Craig Kerstiens
173
+ Cristian Sorinel
174
+ Cristina
175
+ Cristina Muñoz
176
+ ctg123
177
+ Curtis Doty
178
+ cytolentino
179
+ Daan De Meyer
180
+ Dale
181
+ Damian
182
+ Damian Quiroga
183
+ Damian Shaw
184
+ Dan Black
185
+ Dan Savilonis
186
+ Dan Sully
187
+ Dane Hillard
188
+ daniel
189
+ Daniel Collins
190
+ Daniel Hahler
191
+ Daniel Holth
192
+ Daniel Jost
193
+ Daniel Katz
194
+ Daniel Shaulov
195
+ Daniele Esposti
196
+ Daniele Nicolodi
197
+ Daniele Procida
198
+ Daniil Konovalenko
199
+ Danny Hermes
200
+ Danny McClanahan
201
+ Darren Kavanagh
202
+ Dav Clark
203
+ Dave Abrahams
204
+ Dave Jones
205
+ David Aguilar
206
+ David Black
207
+ David Bordeynik
208
+ David Caro
209
+ David D Lowe
210
+ David Evans
211
+ David Hewitt
212
+ David Linke
213
+ David Poggi
214
+ David Poznik
215
+ David Pursehouse
216
+ David Runge
217
+ David Tucker
218
+ David Wales
219
+ Davidovich
220
+ ddelange
221
+ Deepak Sharma
222
+ Deepyaman Datta
223
+ Denise Yu
224
+ dependabot[bot]
225
+ derwolfe
226
+ Desetude
227
+ developer
228
+ Devesh Kumar Singh
229
+ devsagul
230
+ Diego Caraballo
231
+ Diego Ramirez
232
+ DiegoCaraballo
233
+ Dimitri Merejkowsky
234
+ Dimitri Papadopoulos
235
+ Dimitri Papadopoulos Orfanos
236
+ Dirk Stolle
237
+ Dmitry Gladkov
238
+ Dmitry Volodin
239
+ Domen Kožar
240
+ Dominic Davis-Foster
241
+ Donald Stufft
242
+ Dongweiming
243
+ doron zarhi
244
+ Dos Moonen
245
+ Douglas Thor
246
+ DrFeathers
247
+ Dustin Ingram
248
+ Dustin Rodrigues
249
+ Dwayne Bailey
250
+ Ed Morley
251
+ Edgar Ramírez
252
+ Edgar Ramírez Mondragón
253
+ Ee Durbin
254
+ Efflam Lemaillet
255
+ efflamlemaillet
256
+ Eitan Adler
257
+ ekristina
258
+ elainechan
259
+ Eli Schwartz
260
+ Elisha Hollander
261
+ Ellen Marie Dash
262
+ Emil Burzo
263
+ Emil Styrke
264
+ Emmanuel Arias
265
+ Endoh Takanao
266
+ enoch
267
+ Erdinc Mutlu
268
+ Eric Cousineau
269
+ Eric Gillingham
270
+ Eric Hanchrow
271
+ Eric Hopper
272
+ Erik M. Bray
273
+ Erik Rose
274
+ Erwin Janssen
275
+ Eugene Vereshchagin
276
+ everdimension
277
+ Federico
278
+ Felipe Peter
279
+ Felix Yan
280
+ fiber-space
281
+ Filip Kokosiński
282
+ Filipe Laíns
283
+ Finn Womack
284
+ finnagin
285
+ Flavio Amurrio
286
+ Florian Briand
287
+ Florian Rathgeber
288
+ Francesco
289
+ Francesco Montesano
290
+ Fredrik Orderud
291
+ Fredrik Roubert
292
+ Frost Ming
293
+ Gabriel Curio
294
+ Gabriel de Perthuis
295
+ Garry Polley
296
+ gavin
297
+ gdanielson
298
+ Geoffrey Sneddon
299
+ George Margaritis
300
+ George Song
301
+ Georgi Valkov
302
+ Georgy Pchelkin
303
+ ghost
304
+ Giftlin Rajaiah
305
+ gizmoguy1
306
+ gkdoc
307
+ Godefroid Chapelle
308
+ Gopinath M
309
+ GOTO Hayato
310
+ gousaiyang
311
+ gpiks
312
+ Greg Roodt
313
+ Greg Ward
314
+ Guilherme Espada
315
+ Guillaume Seguin
316
+ gutsytechster
317
+ Guy Rozendorn
318
+ Guy Tuval
319
+ gzpan123
320
+ Hanjun Kim
321
+ Hari Charan
322
+ Harsh Vardhan
323
+ harupy
324
+ Harutaka Kawamura
325
+ hauntsaninja
326
+ Henrich Hartzer
327
+ Henry Schreiner
328
+ Herbert Pfennig
329
+ Holly Stotelmyer
330
+ Honnix
331
+ Hsiaoming Yang
332
+ Hugo Lopes Tavares
333
+ Hugo van Kemenade
334
+ Hugues Bruant
335
+ Hynek Schlawack
336
+ Ian Bicking
337
+ Ian Cordasco
338
+ Ian Lee
339
+ Ian Stapleton Cordasco
340
+ Ian Wienand
341
+ Igor Kuzmitshov
342
+ Igor Sobreira
343
+ Ikko Ashimine
344
+ Ilan Schnell
345
+ Illia Volochii
346
+ Ilya Baryshev
347
+ Inada Naoki
348
+ Ionel Cristian Mărieș
349
+ Ionel Maries Cristian
350
+ Itamar Turner-Trauring
351
+ iTrooz
352
+ Ivan Pozdeev
353
+ J. Nick Koston
354
+ Jacob Kim
355
+ Jacob Walls
356
+ Jaime Sanz
357
+ Jake Lishman
358
+ jakirkham
359
+ Jakub Kuczys
360
+ Jakub Stasiak
361
+ Jakub Vysoky
362
+ Jakub Wilk
363
+ James Cleveland
364
+ James Curtin
365
+ James Firth
366
+ James Gerity
367
+ James Polley
368
+ Jan Pokorný
369
+ Jannis Leidel
370
+ Jarek Potiuk
371
+ jarondl
372
+ Jason Curtis
373
+ Jason R. Coombs
374
+ JasonMo
375
+ JasonMo1
376
+ Jay Graves
377
+ Jean Abou Samra
378
+ Jean-Christophe Fillion-Robin
379
+ Jeff Barber
380
+ Jeff Dairiki
381
+ Jeff Widman
382
+ Jelmer Vernooij
383
+ jenix21
384
+ Jeremy Fleischman
385
+ Jeremy Stanley
386
+ Jeremy Zafran
387
+ Jesse Rittner
388
+ Jiashuo Li
389
+ Jim Fisher
390
+ Jim Garrison
391
+ Jinzhe Zeng
392
+ Jiun Bae
393
+ Jivan Amara
394
+ Joa
395
+ Joe Bylund
396
+ Joe Michelini
397
+ Johannes Altmanninger
398
+ John Paton
399
+ John Sirois
400
+ John T. Wodder II
401
+ John-Scott Atlakson
402
+ johnthagen
403
+ Jon Banafato
404
+ Jon Dufresne
405
+ Jon Parise
406
+ Jonas Nockert
407
+ Jonathan Herbert
408
+ Joonatan Partanen
409
+ Joost Molenaar
410
+ Jorge Niedbalski
411
+ Joseph Bylund
412
+ Joseph Long
413
+ Josh Bronson
414
+ Josh Cannon
415
+ Josh Hansen
416
+ Josh Schneier
417
+ Joshua
418
+ JoshuaPerdue
419
+ Juan Luis Cano Rodríguez
420
+ Juanjo Bazán
421
+ Judah Rand
422
+ Julian Berman
423
+ Julian Gethmann
424
+ Julien Demoor
425
+ July Tikhonov
426
+ Jussi Kukkonen
427
+ Justin van Heek
428
+ jwg4
429
+ Jyrki Pulliainen
430
+ Kai Chen
431
+ Kai Mueller
432
+ Kamal Bin Mustafa
433
+ Karolina Surma
434
+ kasium
435
+ kaustav haldar
436
+ keanemind
437
+ Keith Maxwell
438
+ Kelsey Hightower
439
+ Kenneth Belitzky
440
+ Kenneth Reitz
441
+ Kevin Burke
442
+ Kevin Carter
443
+ Kevin Frommelt
444
+ Kevin R Patterson
445
+ Kexuan Sun
446
+ Kit Randel
447
+ Klaas van Schelven
448
+ KOLANICH
449
+ konstin
450
+ kpinc
451
+ Krishan Bhasin
452
+ Krishna Oza
453
+ Kumar McMillan
454
+ Kuntal Majumder
455
+ Kurt McKee
456
+ Kyle Persohn
457
+ lakshmanaram
458
+ Laszlo Kiss-Kollar
459
+ Laurent Bristiel
460
+ Laurent LAPORTE
461
+ Laurie O
462
+ Laurie Opperman
463
+ layday
464
+ Leon Sasson
465
+ Lev Givon
466
+ Lincoln de Sousa
467
+ Lipis
468
+ lorddavidiii
469
+ Loren Carvalho
470
+ Lucas Cimon
471
+ Ludovic Gasc
472
+ Luis Medel
473
+ Lukas Geiger
474
+ Lukas Juhrich
475
+ Luke Macken
476
+ Luo Jiebin
477
+ luojiebin
478
+ luz.paz
479
+ László Kiss Kollár
480
+ M00nL1ght
481
+ Malcolm Smith
482
+ Marc Abramowitz
483
+ Marc Tamlyn
484
+ Marcus Smith
485
+ Mariatta
486
+ Mark Kohler
487
+ Mark McLoughlin
488
+ Mark Williams
489
+ Markus Hametner
490
+ Martey Dodoo
491
+ Martin Fischer
492
+ Martin Häcker
493
+ Martin Pavlasek
494
+ Masaki
495
+ Masklinn
496
+ Matej Stuchlik
497
+ Mathew Jennings
498
+ Mathieu Bridon
499
+ Mathieu Kniewallner
500
+ Matt Bacchi
501
+ Matt Good
502
+ Matt Maker
503
+ Matt Robenolt
504
+ Matt Wozniski
505
+ matthew
506
+ Matthew Einhorn
507
+ Matthew Feickert
508
+ Matthew Gilliard
509
+ Matthew Hughes
510
+ Matthew Iversen
511
+ Matthew Treinish
512
+ Matthew Trumbell
513
+ Matthew Willson
514
+ Matthias Bussonnier
515
+ mattip
516
+ Maurits van Rees
517
+ Max W Chase
518
+ Maxim Kurnikov
519
+ Maxime Rouyrre
520
+ mayeut
521
+ mbaluna
522
+ Md Sujauddin Sekh
523
+ mdebi
524
+ memoselyk
525
+ meowmeowcat
526
+ Michael
527
+ Michael Aquilina
528
+ Michael E. Karpeles
529
+ Michael Klich
530
+ Michael Mintz
531
+ Michael Williamson
532
+ michaelpacer
533
+ Michał Górny
534
+ Mickaël Schoentgen
535
+ Miguel Araujo Perez
536
+ Mihir Singh
537
+ Mike
538
+ Mike Hendricks
539
+ Min RK
540
+ MinRK
541
+ Miro Hrončok
542
+ Monica Baluna
543
+ montefra
544
+ Monty Taylor
545
+ morotti
546
+ mrKazzila
547
+ Muha Ajjan
548
+ Nadav Wexler
549
+ Nahuel Ambrosini
550
+ Nate Coraor
551
+ Nate Prewitt
552
+ Nathan Houghton
553
+ Nathaniel J. Smith
554
+ Nehal J Wani
555
+ Neil Botelho
556
+ Nguyễn Gia Phong
557
+ Nicholas Serra
558
+ Nick Coghlan
559
+ Nick Stenning
560
+ Nick Timkovich
561
+ Nicolas Bock
562
+ Nicole Harris
563
+ Nikhil Benesch
564
+ Nikhil Ladha
565
+ Nikita Chepanov
566
+ Nikolay Korolev
567
+ Nipunn Koorapati
568
+ Nitesh Sharma
569
+ Niyas Sait
570
+ Noah
571
+ Noah Gorny
572
+ Nowell Strite
573
+ NtaleGrey
574
+ nucccc
575
+ nvdv
576
+ OBITORASU
577
+ Ofek Lev
578
+ ofrinevo
579
+ Oleg Burnaev
580
+ Oliver Freund
581
+ Oliver Jeeves
582
+ Oliver Mannion
583
+ Oliver Tonnhofer
584
+ Olivier Girardot
585
+ Olivier Grisel
586
+ Ollie Rutherfurd
587
+ OMOTO Kenji
588
+ Omry Yadan
589
+ onlinejudge95
590
+ Oren Held
591
+ Oscar Benjamin
592
+ Oz N Tiram
593
+ Pachwenko
594
+ Patrick Dubroy
595
+ Patrick Jenkins
596
+ Patrick Lawson
597
+ patricktokeeffe
598
+ Patrik Kopkan
599
+ Paul Ganssle
600
+ Paul Kehrer
601
+ Paul Moore
602
+ Paul Nasrat
603
+ Paul Oswald
604
+ Paul van der Linden
605
+ Paulus Schoutsen
606
+ Pavel Safronov
607
+ Pavithra Eswaramoorthy
608
+ Pawel Jasinski
609
+ Paweł Szramowski
610
+ Pekka Klärck
611
+ Peter Gessler
612
+ Peter Lisák
613
+ Peter Shen
614
+ Peter Waller
615
+ Petr Viktorin
616
+ petr-tik
617
+ Phaneendra Chiruvella
618
+ Phil Elson
619
+ Phil Freo
620
+ Phil Pennock
621
+ Phil Whelan
622
+ Philip Jägenstedt
623
+ Philip Molloy
624
+ Philippe Ombredanne
625
+ Pi Delport
626
+ Pierre-Yves Rofes
627
+ Pieter Degroote
628
+ pip
629
+ Prabakaran Kumaresshan
630
+ Prabhjyotsing Surjit Singh Sodhi
631
+ Prabhu Marappan
632
+ Pradyun Gedam
633
+ Prashant Sharma
634
+ Pratik Mallya
635
+ pre-commit-ci[bot]
636
+ Preet Thakkar
637
+ Preston Holmes
638
+ Przemek Wrzos
639
+ Pulkit Goyal
640
+ q0w
641
+ Qiangning Hong
642
+ Qiming Xu
643
+ Quentin Lee
644
+ Quentin Pradet
645
+ R. David Murray
646
+ Rafael Caricio
647
+ Ralf Schmitt
648
+ Ran Benita
649
+ Randy Döring
650
+ Razzi Abuissa
651
+ rdb
652
+ Reece Dunham
653
+ Remi Rampin
654
+ Rene Dudfield
655
+ Riccardo Magliocchetti
656
+ Riccardo Schirone
657
+ Richard Jones
658
+ Richard Si
659
+ Ricky Ng-Adam
660
+ Rishi
661
+ rmorotti
662
+ RobberPhex
663
+ Robert Collins
664
+ Robert McGibbon
665
+ Robert Pollak
666
+ Robert T. McGibbon
667
+ robin elisha robinson
668
+ Roey Berman
669
+ Rohan Jain
670
+ Roman Bogorodskiy
671
+ Roman Donchenko
672
+ Romuald Brunet
673
+ ronaudinho
674
+ Ronny Pfannschmidt
675
+ Rory McCann
676
+ Ross Brattain
677
+ Roy Wellington Ⅳ
678
+ Ruairidh MacLeod
679
+ Russell Keith-Magee
680
+ Ryan Shepherd
681
+ Ryan Wooden
682
+ ryneeverett
683
+ S. Guliaev
684
+ Sachi King
685
+ Salvatore Rinchiera
686
+ sandeepkiran-js
687
+ Sander Van Balen
688
+ Savio Jomton
689
+ schlamar
690
+ Scott Kitterman
691
+ Sean
692
+ seanj
693
+ Sebastian Jordan
694
+ Sebastian Schaetz
695
+ Segev Finer
696
+ SeongSoo Cho
697
+ Sergey Vasilyev
698
+ Seth Michael Larson
699
+ Seth Woodworth
700
+ Shahar Epstein
701
+ Shantanu
702
+ shenxianpeng
703
+ shireenrao
704
+ Shivansh-007
705
+ Shixian Sheng
706
+ Shlomi Fish
707
+ Shovan Maity
708
+ Simeon Visser
709
+ Simon Cross
710
+ Simon Pichugin
711
+ sinoroc
712
+ sinscary
713
+ snook92
714
+ socketubs
715
+ Sorin Sbarnea
716
+ Srinivas Nyayapati
717
+ Srishti Hegde
718
+ Stavros Korokithakis
719
+ Stefan Scherfke
720
+ Stefano Rivera
721
+ Stephan Erb
722
+ Stephen Rosen
723
+ stepshal
724
+ Steve (Gadget) Barnes
725
+ Steve Barnes
726
+ Steve Dower
727
+ Steve Kowalik
728
+ Steven Myint
729
+ Steven Silvester
730
+ stonebig
731
+ studioj
732
+ Stéphane Bidoul
733
+ Stéphane Bidoul (ACSONE)
734
+ Stéphane Klein
735
+ Sumana Harihareswara
736
+ Surbhi Sharma
737
+ Sviatoslav Sydorenko
738
+ Sviatoslav Sydorenko (Святослав Сидоренко)
739
+ Swat009
740
+ Sylvain
741
+ Takayuki SHIMIZUKAWA
742
+ Taneli Hukkinen
743
+ tbeswick
744
+ Thiago
745
+ Thijs Triemstra
746
+ Thomas Fenzl
747
+ Thomas Grainger
748
+ Thomas Guettler
749
+ Thomas Johansson
750
+ Thomas Kluyver
751
+ Thomas Smith
752
+ Thomas VINCENT
753
+ Tim D. Smith
754
+ Tim Gates
755
+ Tim Harder
756
+ Tim Heap
757
+ tim smith
758
+ tinruufu
759
+ Tobias Hermann
760
+ Tom Forbes
761
+ Tom Freudenheim
762
+ Tom V
763
+ Tomas Hrnciar
764
+ Tomas Orsava
765
+ Tomer Chachamu
766
+ Tommi Enenkel | AnB
767
+ Tomáš Hrnčiar
768
+ Tony Beswick
769
+ Tony Narlock
770
+ Tony Zhaocheng Tan
771
+ TonyBeswick
772
+ toonarmycaptain
773
+ Toshio Kuratomi
774
+ toxinu
775
+ Travis Swicegood
776
+ Tushar Sadhwani
777
+ Tzu-ping Chung
778
+ Valentin Haenel
779
+ Victor Stinner
780
+ victorvpaulo
781
+ Vikram - Google
782
+ Viktor Szépe
783
+ Ville Skyttä
784
+ Vinay Sajip
785
+ Vincent Philippon
786
+ Vinicyus Macedo
787
+ Vipul Kumar
788
+ Vitaly Babiy
789
+ Vladimir Fokow
790
+ Vladimir Rutsky
791
+ W. Trevor King
792
+ Wil Tan
793
+ Wilfred Hughes
794
+ William Edwards
795
+ William ML Leslie
796
+ William T Olson
797
+ William Woodruff
798
+ Wilson Mo
799
+ wim glenn
800
+ Winson Luk
801
+ Wolfgang Maier
802
+ Wu Zhenyu
803
+ XAMES3
804
+ Xavier Fernandez
805
+ Xianpeng Shen
806
+ xoviat
807
+ xtreak
808
+ YAMAMOTO Takashi
809
+ Yen Chi Hsuan
810
+ Yeray Diaz Diaz
811
+ Yoval P
812
+ Yu Jian
813
+ Yuan Jing Vincent Yan
814
+ Yusuke Hayashi
815
+ Zearin
816
+ Zhiping Deng
817
+ ziebam
818
+ Zvezdan Petkovic
819
+ Łukasz Langa
820
+ Роман Донченко
821
+ Семён Марьясин
env/lib/python3.13/site-packages/pip-25.1.1.dist-info/licenses/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Copyright (c) 2008-present The pip developers (see AUTHORS.txt file)
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
env/lib/python3.13/site-packages/pip/_vendor/__pycache__/typing_extensions.cpython-313.pyc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:64e49e3f9b6eb92241e86b3e4b38be2747d36b67bc7d632d0367d9f213ecdf3d
3
+ size 178277
env/lib/python3.13/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-313.pyc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b5d2d92d78a2dc90c1cad8cda3cb1d3a100f771273d437a0aebd5ce589f9bf6a
3
+ size 159030
env/lib/python3.13/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-313.pyc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f1810242ddfc42f3fc2c72f94466f05a4c7c002ddf19a9e54d2bc587a2d8f646
3
+ size 161638
env/lib/python3.13/site-packages/pip/_vendor/rich/__pycache__/_emoji_codes.cpython-313.pyc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ff02f14cdd632bb89f4d371c5bd57cda47da42cce2c3a3ec552a5e28a4278c85
3
+ size 205997
env/lib/python3.13/site-packages/pip/_vendor/rich/__pycache__/console.cpython-313.pyc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:00d6fa12adb29a8ce994aec9f8e04649feb94b03f42e91776fb0f5f760e0e6d3
3
+ size 113979
env/lib/python3.13/site-packages/typer/__pycache__/__init__.cpython-313.pyc ADDED
Binary file (1.48 kB). View file
 
env/lib/python3.13/site-packages/typer/__pycache__/_completion_shared.cpython-313.pyc ADDED
Binary file (9.94 kB). View file
 
env/lib/python3.13/site-packages/typer/__pycache__/_typing.cpython-313.pyc ADDED
Binary file (3.35 kB). View file
 
env/lib/python3.13/site-packages/typer/__pycache__/cli.cpython-313.pyc ADDED
Binary file (14.7 kB). View file
 
env/lib/python3.13/site-packages/typer/__pycache__/colors.cpython-313.pyc ADDED
Binary file (691 Bytes). View file
 
env/lib/python3.13/site-packages/typer/__pycache__/completion.cpython-313.pyc ADDED
Binary file (5.49 kB). View file
 
env/lib/python3.13/site-packages/typer/__pycache__/core.cpython-313.pyc ADDED
Binary file (31.8 kB). View file
 
env/lib/python3.13/site-packages/typer/__pycache__/main.cpython-313.pyc ADDED
Binary file (45.1 kB). View file
 
env/lib/python3.13/site-packages/typer/__pycache__/models.cpython-313.pyc ADDED
Binary file (19.5 kB). View file
 
env/lib/python3.13/site-packages/typer/__pycache__/params.cpython-313.pyc ADDED
Binary file (14.5 kB). View file
 
env/lib/python3.13/site-packages/typer/__pycache__/testing.cpython-313.pyc ADDED
Binary file (1.52 kB). View file
 
env/lib/python3.13/site-packages/typing_extensions.py ADDED
The diff for this file is too large to render. See raw diff
 
env/lib/python3.13/site-packages/yaml/_yaml.cpython-313-x86_64-linux-gnu.so ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3f91601d7da50f3d1521e807f04820be198ccaedc2a89094d69031cf8928d8af
3
+ size 2653048
transformer/diffusion_pytorch_model-00002-of-00003.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:908434f466c2bcf8e9dae53462bfbe6406f6aa6bc52ca47a5fd335ad000a9174
3
+ size 135
transformer/diffusion_pytorch_model-00003-of-00003.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:70300bfed4c52be3eaa7c0b93489073a158ad756a309a50532d5436c50f472e5
3
+ size 135