LPX55 commited on
Commit
b39c545
·
verified ·
1 Parent(s): 0a21130

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +105 -191
README.md CHANGED
@@ -1,198 +1,112 @@
1
  ---
 
 
2
  library_name: diffusers
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  ---
4
 
5
- # Model Card for Model ID
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
 
7
- <!-- Provide a quick summary of what the model is/does. -->
8
-
9
-
10
-
11
- ## Model Details
12
-
13
- ### Model Description
14
-
15
- <!-- Provide a longer summary of what this model is. -->
16
-
17
- This is the model card of a 🧨 diffusers model that has been pushed on the Hub. This model card has been automatically generated.
18
-
19
- - **Developed by:** [More Information Needed]
20
- - **Funded by [optional]:** [More Information Needed]
21
- - **Shared by [optional]:** [More Information Needed]
22
- - **Model type:** [More Information Needed]
23
- - **Language(s) (NLP):** [More Information Needed]
24
- - **License:** [More Information Needed]
25
- - **Finetuned from model [optional]:** [More Information Needed]
26
-
27
- ### Model Sources [optional]
28
-
29
- <!-- Provide the basic links for the model. -->
30
-
31
- - **Repository:** [More Information Needed]
32
- - **Paper [optional]:** [More Information Needed]
33
- - **Demo [optional]:** [More Information Needed]
34
-
35
- ## Uses
36
-
37
- <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
38
-
39
- ### Direct Use
40
-
41
- <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
42
-
43
- [More Information Needed]
44
-
45
- ### Downstream Use [optional]
46
-
47
- <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
48
-
49
- [More Information Needed]
50
-
51
- ### Out-of-Scope Use
52
-
53
- <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
54
-
55
- [More Information Needed]
56
-
57
- ## Bias, Risks, and Limitations
58
-
59
- <!-- This section is meant to convey both technical and sociotechnical limitations. -->
60
-
61
- [More Information Needed]
62
-
63
- ### Recommendations
64
-
65
- <!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
66
-
67
- Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
68
-
69
- ## How to Get Started with the Model
70
-
71
- Use the code below to get started with the model.
72
-
73
- [More Information Needed]
74
-
75
- ## Training Details
76
-
77
- ### Training Data
78
-
79
- <!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->
80
-
81
- [More Information Needed]
82
-
83
- ### Training Procedure
84
-
85
- <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
86
-
87
- #### Preprocessing [optional]
88
-
89
- [More Information Needed]
90
-
91
-
92
- #### Training Hyperparameters
93
-
94
- - **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
95
-
96
- #### Speeds, Sizes, Times [optional]
97
-
98
- <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
99
-
100
- [More Information Needed]
101
-
102
- ## Evaluation
103
-
104
- <!-- This section describes the evaluation protocols and provides the results. -->
105
-
106
- ### Testing Data, Factors & Metrics
107
-
108
- #### Testing Data
109
-
110
- <!-- This should link to a Dataset Card if possible. -->
111
-
112
- [More Information Needed]
113
-
114
- #### Factors
115
-
116
- <!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
117
-
118
- [More Information Needed]
119
-
120
- #### Metrics
121
-
122
- <!-- These are the evaluation metrics being used, ideally with a description of why. -->
123
-
124
- [More Information Needed]
125
-
126
- ### Results
127
-
128
- [More Information Needed]
129
-
130
- #### Summary
131
-
132
-
133
-
134
- ## Model Examination [optional]
135
-
136
- <!-- Relevant interpretability work for the model goes here -->
137
-
138
- [More Information Needed]
139
-
140
- ## Environmental Impact
141
-
142
- <!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
143
-
144
- Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
145
-
146
- - **Hardware Type:** [More Information Needed]
147
- - **Hours used:** [More Information Needed]
148
- - **Cloud Provider:** [More Information Needed]
149
- - **Compute Region:** [More Information Needed]
150
- - **Carbon Emitted:** [More Information Needed]
151
-
152
- ## Technical Specifications [optional]
153
-
154
- ### Model Architecture and Objective
155
-
156
- [More Information Needed]
157
-
158
- ### Compute Infrastructure
159
-
160
- [More Information Needed]
161
-
162
- #### Hardware
163
-
164
- [More Information Needed]
165
-
166
- #### Software
167
-
168
- [More Information Needed]
169
-
170
- ## Citation [optional]
171
-
172
- <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
173
-
174
- **BibTeX:**
175
-
176
- [More Information Needed]
177
-
178
- **APA:**
179
-
180
- [More Information Needed]
181
-
182
- ## Glossary [optional]
183
-
184
- <!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
185
-
186
- [More Information Needed]
187
-
188
- ## More Information [optional]
189
-
190
- [More Information Needed]
191
-
192
- ## Model Card Authors [optional]
193
-
194
- [More Information Needed]
195
 
196
- ## Model Card Contact
197
 
198
- [More Information Needed]
 
1
  ---
2
+ language:
3
+ - en
4
  library_name: diffusers
5
+ license: other
6
+ license_name: flux-1-dev-non-commercial-license
7
+ license_link: LICENSE.md
8
+ base_model:
9
+ - black-forest-labs/FLUX.1-dev
10
+ - black-forest-labs/FLUX.1-schnell
11
+ base_model_relation: merge
12
+ tags:
13
+ - flux
14
+ - fluxpipeline
15
+ - turbo
16
+ - lightning
17
+ - diffusers
18
+ pipeline_tag: text-to-image
19
  ---
20
 
21
+ # FLUX-merged_lightning-v2
22
+
23
+ This repository provides the merged params for [`black-forest-labs/FLUX.1-dev`](https://huggingface.co/black-forest-labs/FLUX.1-dev)
24
+ and [`black-forest-labs/FLUX.1-schnell`](https://huggingface.co/black-forest-labs/FLUX.1-schnell) originally provided by [@sayakpaul](https://huggingface.co/sayakpaul/FLUX.1-merged).
25
+
26
+ The base model was then fused with a selection of LoRAs, *some of which are NSFW in nature*. Please use responsibily. Please be aware of the licenses of both the models before using the params commercially.
27
+
28
+ This model was created as part of the ongoing [OpenSight project](https://huggingface.co/spaces/aiwithoutborders-xyz/OpenSight-Deepfake-Detection-Models-Playground), mostly for dataset generation and evaluation purposes.
29
+
30
+
31
+ ## The following context provided by sayakpaul, of the original merged model.
32
+
33
+ <table>
34
+ <thead>
35
+ <tr>
36
+ <th>Dev (50 steps)</th>
37
+ <th>Dev (4 steps)</th>
38
+ <th>Dev + Schnell Merge (4 steps)</th>
39
+ <th>This Model (6-8 steps recommended)</th>
40
+ </tr>
41
+ </thead>
42
+ <tbody>
43
+ <tr>Prompt: `An Instagram profile picture of an Asian model taken at a rooftop penthouse pool party.`</tr>
44
+ <tr>
45
+ <td>
46
+ <img src="https://cdn-uploads.huggingface.co/production/uploads/639daf827270667011153fbc/pLdbs5kVH3jCKkKeAV8P_.jpeg" width="150px" height="150px">
47
+ </td>
48
+ <td>
49
+ <img src="https://cdn-uploads.huggingface.co/production/uploads/639daf827270667011153fbc/5u4ME3kBSNGLmYyGIcyFW.jpeg" width="150px" height="150px">
50
+ </td>
51
+ <td>
52
+ <img src="https://cdn-uploads.huggingface.co/production/uploads/639daf827270667011153fbc/b5JQCzbE2hzKZS-C1xra5.jpeg" width="150px" height="150px">
53
+ </td>
54
+ <td>
55
+ <img src="https://cdn-uploads.huggingface.co/production/uploads/639daf827270667011153fbc/rnqvOgQH7IjReKjWmms00.jpeg" width="150px" height="150px">
56
+ </td>
57
+ </tr>
58
+ </tbody>
59
+ </table>
60
+
61
+ ## Sub-memory-efficient merging code
62
+
63
+ ```python
64
+ from diffusers import FluxTransformer2DModel
65
+ from huggingface_hub import snapshot_download
66
+ from accelerate import init_empty_weights
67
+ from diffusers.models.model_loading_utils import load_model_dict_into_meta
68
+ import safetensors.torch
69
+ import glob
70
+ import torch
71
+
72
+
73
+ with init_empty_weights():
74
+ config = FluxTransformer2DModel.load_config("black-forest-labs/FLUX.1-dev", subfolder="transformer")
75
+ model = FluxTransformer2DModel.from_config(config)
76
+
77
+ dev_ckpt = snapshot_download(repo_id="black-forest-labs/FLUX.1-dev", allow_patterns="transformer/*")
78
+ schnell_ckpt = snapshot_download(repo_id="black-forest-labs/FLUX.1-schnell", allow_patterns="transformer/*")
79
+
80
+ dev_shards = sorted(glob.glob(f"{dev_ckpt}/transformer/*.safetensors"))
81
+ schnell_shards = sorted(glob.glob(f"{schnell_ckpt}/transformer/*.safetensors"))
82
+
83
+ merged_state_dict = {}
84
+ guidance_state_dict = {}
85
+
86
+ for i in range(len((dev_shards))):
87
+ state_dict_dev_temp = safetensors.torch.load_file(dev_shards[i])
88
+ state_dict_schnell_temp = safetensors.torch.load_file(schnell_shards[i])
89
+
90
+ keys = list(state_dict_dev_temp.keys())
91
+ for k in keys:
92
+ if "guidance" not in k:
93
+ merged_state_dict[k] = (state_dict_dev_temp.pop(k) + state_dict_schnell_temp.pop(k)) / 2
94
+ else:
95
+ guidance_state_dict[k] = state_dict_dev_temp.pop(k)
96
+
97
+ if len(state_dict_dev_temp) > 0:
98
+ raise ValueError(f"There should not be any residue but got: {list(state_dict_dev_temp.keys())}.")
99
+ if len(state_dict_schnell_temp) > 0:
100
+ raise ValueError(f"There should not be any residue but got: {list(state_dict_dev_temp.keys())}.")
101
+
102
+ merged_state_dict.update(guidance_state_dict)
103
+ load_model_dict_into_meta(model, merged_state_dict)
104
+
105
+ model.to(torch.bfloat16).save_pretrained("merged-flux")
106
+ ```
107
 
108
+ ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
 
110
+ Changelog:
111
 
112
+ * 7 April 2025 - Just noticed a potential mistake when loading some components (particularly the text_encoder2), feel free to load from the base dev folder, works the same as it is a merge.