predator commited on
Commit
7b60193
·
verified ·
1 Parent(s): 557429c

Upload static_models.js

Browse files
Files changed (1) hide show
  1. static_models.js +229 -0
static_models.js ADDED
@@ -0,0 +1,229 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // DO NOT TRY TO COPY MY UI OR STYLE
2
+
3
+
4
+
5
+
6
+
7
+ const div = document.getElementById('imshow');
8
+ let width = 1024
9
+ let height = 1024
10
+ let btn = document.getElementById('btn')
11
+ let prompt = document.getElementById('prompt')
12
+ let negativePrompt = document.getElementById('negative-prompt')
13
+ let model = 'rvs4'
14
+ let style = 'Cinematic'
15
+ function generateRandomString(length) {
16
+ var result = '';
17
+ var characters = 'abcdefghijklmnopqrstuvwxyz0123456789';
18
+ var charactersLength = characters.length;
19
+ for (var i = 0; i < length; i++) {
20
+ result += characters.charAt(Math.floor(Math.random() * charactersLength));
21
+ }
22
+ return result;
23
+ }
24
+
25
+
26
+ const modelElement = document.getElementById('model');
27
+ modelElement.addEventListener('change', function() {
28
+ model = this.value
29
+ if (model == "mobius") {
30
+ document.getElementById('guidenceRange').value = 2.7
31
+ document.getElementById('guidenceValue').innerText = 2.7;
32
+ document.getElementById('stepValue').innerText = 30
33
+ }
34
+ if(model=="rvx4"){
35
+ document.getElementById('guidenceRange').value = 3
36
+ document.getElementById('guidenceValue').innerText = 3;
37
+ document.getElementById('stepValue').innerText = 30
38
+ }
39
+ if(model=="sd3"){
40
+ document.getElementById('guidenceRange').value = 2.8
41
+ document.getElementById('guidenceValue').innerText = 2.8;
42
+ document.getElementById('stepValue').innerText = 30
43
+ }
44
+ if(model=="animagine"){
45
+ document.getElementById('guidenceRange').value = 7
46
+ document.getElementById('guidenceValue').innerText = 7;
47
+ }
48
+ if(model=="sdflash"){
49
+ document.getElementById('guidenceRange').value = 2.7
50
+ document.getElementById('guidenceValue').innerText = 2.7;
51
+ document.getElementById('stepValue').innerText = 8
52
+
53
+ }
54
+ if(model=="kivotos"){
55
+ document.getElementById('guidenceRange').value = 7
56
+ document.getElementById('guidenceValue').innerText = 7;
57
+ document.getElementById('stepValue').innerText = 28
58
+
59
+ }
60
+ if(model=="OpenDalle"){
61
+ document.getElementById('guidenceRange').value = 3.8
62
+ document.getElementById('guidenceValue').innerText = 3.8;
63
+ document.getElementById('stepValue').innerText = 30
64
+
65
+ }
66
+ });
67
+
68
+ const ratioElement =document.getElementById('ratio')
69
+ ratioElement.addEventListener('change',function(){
70
+ ratio = this.value
71
+ if(ratio == '1:1'){
72
+ width = 1024;
73
+ height = 1024;
74
+ }
75
+ else if(ratio == '16:9'){
76
+ width = 1024;
77
+ height = 576;
78
+ }
79
+ else if(ratio == "9:16"){
80
+ width = 576
81
+ height = 1024
82
+ }
83
+ else if(ratio=="1:2"){
84
+ width = 544;
85
+ height = 1088;
86
+ }
87
+ else if(ratio=='4:3'){
88
+ width = 896;
89
+ height = 672;
90
+ }
91
+ })
92
+
93
+ const styleElement = document.getElementById('style')
94
+ styleElement.addEventListener('change',function(){
95
+ style = this.value
96
+ })
97
+
98
+ document.getElementById('stepsRange').addEventListener('input', function() {
99
+
100
+ if(model=='sdflash' && Number(document.getElementById('stepValue').innerText)>16){
101
+ document.getElementById('stepValue').innerText = 16
102
+ }
103
+ else {
104
+ document.getElementById('stepValue').innerText = this.value;
105
+ }
106
+
107
+ }
108
+ );
109
+
110
+ document.getElementById('guidenceRange').addEventListener('input', function() {
111
+ document.getElementById('guidenceValue').innerText = this.value;
112
+ });
113
+
114
+
115
+
116
+
117
+
118
+ function log(msg){
119
+ console.log(msg)
120
+ }
121
+
122
+ let task = 0
123
+ btn.onclick = async () => {
124
+ if(task>6){
125
+ alert("only 4 concurrent image generation is allowed, please wait for pending generations to finish ")
126
+ return
127
+ }
128
+
129
+
130
+
131
+
132
+ async function generateImage() {
133
+ var params = {
134
+ 'prompt': prompt.value,
135
+ 'negative': negativePrompt.value,
136
+ "steps": Number(document.getElementById('stepValue').innerText),
137
+ 'scale': Number(document.getElementById('guidenceValue').innerText),
138
+ "width": Number(width),
139
+ "height": Number(height),
140
+ "model": model,
141
+ 'style': style,
142
+ "hash": generateRandomString(11)
143
+ };
144
+ task+=1
145
+ let loader = document.createElement('div')
146
+ loader.id = 'loader'
147
+ if (div.firstChild!== loader) {
148
+ div.insertBefore(loader, div.firstChild);
149
+ }
150
+
151
+ let text = document.createElement('p')
152
+ text.style.color = 'white'
153
+ let loaderImg = document.createElement('img')
154
+ loaderImg.src = 'https://iili.io/dFnrB3b.gif'
155
+ loader.append(loaderImg)
156
+ text.innerText = ''
157
+
158
+ try {
159
+ const response = await fetch('https://zeckyblinder-server1.hf.space/hf/img/gen', {
160
+ method: 'POST',
161
+ headers: {
162
+ 'Content-Type': 'application/json',
163
+ 'Connection': 'keep-alive',
164
+ },
165
+ body: JSON.stringify(params)
166
+ });
167
+
168
+ if (!response.ok) {
169
+
170
+ if(response.status==429){
171
+ alert('too many requests! 4 concurrent jobs per minute is allowed')
172
+ loader.parentNode.removeChild(loader);
173
+ return
174
+ }
175
+ if(response.status==500){
176
+ alert('Internal Server Error please try again!')
177
+ loader.parentNode.removeChild(loader);
178
+ return
179
+ }
180
+ if(response.status==502){
181
+ alert('Restarting Server! please try again!')
182
+ loader.parentNode.removeChild(loader);
183
+ retur
184
+ }
185
+ }
186
+
187
+ const reader = response.body.getReader();
188
+ const decoder = new TextDecoder();
189
+ while (true) {
190
+ const { done, value } = await reader.read();
191
+ if (done) break;
192
+
193
+ const chunk = decoder.decode(value, { stream: true });
194
+ const lines = chunk.split('\n');
195
+
196
+ for (const line of lines) {
197
+ if (line.startsWith('data: ')) {
198
+ const jsonChunk = JSON.parse(line.substring(6));
199
+
200
+ if (jsonChunk.progress === 'done') {
201
+
202
+ loader.parentNode.removeChild(loader);
203
+ const img = document.createElement('img');
204
+ if(jsonChunk.width==1024 && jsonChunk.height==576){
205
+ img.id = 'lds'
206
+ }
207
+ img.src = jsonChunk.img;
208
+ if (div.firstChild!== img) {
209
+ div.insertBefore(img, div.firstChild);
210
+ task-=1
211
+ }
212
+
213
+ } else {
214
+ text.innerText = `${jsonChunk.progress}%`;
215
+ loader.appendChild(text);
216
+ }
217
+ }
218
+ }
219
+ }
220
+
221
+ } catch (error) {
222
+ console.error(error);
223
+ }
224
+ }
225
+ generateImage()
226
+ generateImage()
227
+
228
+ }
229
+