luisrguerra
commited on
Commit
•
cf01265
1
Parent(s):
b3b942f
Update index.html
Browse files- index.html +91 -406
index.html
CHANGED
@@ -1,413 +1,98 @@
|
|
1 |
<!DOCTYPE html>
|
2 |
-
<html>
|
3 |
<head>
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
<!--Bootstrap -->
|
9 |
-
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.1/js/bootstrap.min.js" integrity="sha512-fHY2UiQlipUq0dEabSM4s+phmn+bcxSYzXP4vAXItBvBHU7zAM/mkhCZjtBEIJexhOMzZbgFlPLuErlJF2b+0g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
10 |
-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.1/css/bootstrap.min.css" integrity="sha512-Z/def5z5u2aR89OuzYcxmDJ0Bnd5V1cKqBEbvLOiUNWdg9PQeXVvXLI90SE4QOHGlfLqUnDNVAYyZi8UwUTmWQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
11 |
-
<!-- Material Design Icons -->
|
12 |
-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/MaterialDesign-Webfont/7.2.96/css/materialdesignicons.min.css" integrity="sha512-LX0YV/MWBEn2dwXCYgQHrpa9HJkwB+S+bnBpifSOTO1No27TqNMKYoAn6ff2FBh03THAzAiiCwQ+aPX+/Qt/Ow==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
13 |
-
|
14 |
-
<link rel="stylesheet" href="css/theme.css">
|
15 |
-
</head>
|
16 |
-
<body style="padding-inline: 0.8em;padding-block: 0.5em;">
|
17 |
-
<label for="promptInput" class="form-label">Prompt:</label>
|
18 |
-
<input type="text" id="promptInput" class="form-control" placeholder="Ex: pet" autocomplete="off">
|
19 |
-
<br>
|
20 |
-
<label for="negativePromptInput" class="form-label">Negative Prompt:</label>
|
21 |
-
<input type="text" id="negativePromptInput" class="form-control" placeholder="Ex: cat" autocomplete="off">
|
22 |
-
<br>
|
23 |
-
<div class="row">
|
24 |
-
<div class="col">
|
25 |
-
<label for="styleSelect" class="form-label">Artistic style:</label>
|
26 |
-
<select id="styleSelect" class="form-select">
|
27 |
-
</select>
|
28 |
-
</div>
|
29 |
-
<div class="col">
|
30 |
-
<label for="sizeSelect" class="form-label">Image dimensions:</label>
|
31 |
-
<select id="sizeSelect" class="form-select">
|
32 |
-
<option value="square">Square</option>
|
33 |
-
<option value="portrait">Portrait</option>
|
34 |
-
<option value="landscape">Landscape</option>
|
35 |
-
<option value="stories">Stories</option>
|
36 |
-
<option value="ultrawide">Ultrawide</option>
|
37 |
-
</select>
|
38 |
-
</div>
|
39 |
-
</div>
|
40 |
-
<br>
|
41 |
-
<!--Advanced options-->
|
42 |
-
<div class="accordion accordion-flush" id="accordionFlushAdvancedOptions">
|
43 |
-
<div class="accordion-item">
|
44 |
-
<h2 class="accordion-header">
|
45 |
-
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-collapseOne" aria-expanded="false" aria-controls="flush-collapseOne">
|
46 |
-
Advanced Options
|
47 |
-
</button>
|
48 |
-
</h2>
|
49 |
-
<div id="flush-collapseOne" class="accordion-collapse collapse" data-bs-parent="#accordionFlushAdvancedOptions">
|
50 |
-
<br>
|
51 |
-
<!--Number of inference steps-->
|
52 |
-
<label for="numInferenceStepsInput" class="form-label">Number of inference steps:</label>
|
53 |
-
<input type="number" id="numInferenceStepsInput" class="form-control" value="20" placeholder="Number of inference steps" min="8" max="25">
|
54 |
-
<br>
|
55 |
-
<!--Guidance scale-->
|
56 |
-
<label for="guidanceScaleInput" class="form-label">Guidance Scale:</label>
|
57 |
-
<input type="number" id="guidanceScaleInput" class="form-control" value="7.5" placeholder="guidanceScale" min="4" max="10">
|
58 |
-
<br>
|
59 |
-
<!--Seed-->
|
60 |
-
<label for="seedInput" class="form-label">Seed:</label>
|
61 |
-
<input type="number" id="seedInput" class="form-control" value="0" placeholder="Seed" min="0">
|
62 |
-
<br>
|
63 |
-
<!--Refiner-->
|
64 |
-
<label for="refinerSelect" class="form-label">Refiner:</label>
|
65 |
-
<select id="refinerSelect" class="form-select">
|
66 |
-
<option value="no_refiner">No refiner</option>
|
67 |
-
<option value="expert_ensemble_refiner">Expert ensemble refiner</option>
|
68 |
-
<option value="base_image_refiner">Base image refiner</option>
|
69 |
-
</select>
|
70 |
-
<br>
|
71 |
-
<!--Sampler-->
|
72 |
-
<label for="samplerSelect" class="form-label">Sampler:</label>
|
73 |
-
<select id="samplerSelect" class="form-select">
|
74 |
-
<option value="DDIM">DDIM</option>
|
75 |
-
<option value="DPMSolverMultistep">DPMSolverMultistep</option>
|
76 |
-
<option value="HeunDiscrete">HeunDiscrete</option>
|
77 |
-
<option value="KarrasDPM">KarrasDPM</option>
|
78 |
-
<option value="K_EULER_ANCESTRAL">K_EULER_ANCESTRAL</option>
|
79 |
-
<option value="K_EULER">K_EULER</option>
|
80 |
-
<option value="PNDM">PNDM</option>
|
81 |
-
</select>
|
82 |
-
<br>
|
83 |
-
<!--Model-->
|
84 |
-
<label style="display: none;" for="modelSelect" class="form-label">Model:</label>
|
85 |
-
<select style="display: none;" id="modelSelect" class="form-select">
|
86 |
-
<option value="stability-ai/sdxl">stability-ai/sdxl</option>
|
87 |
-
</select>
|
88 |
-
<!--Deepinfra API token-->
|
89 |
-
<label for="authTokenInput" class="form-label">Deepinfra API token:</label>
|
90 |
-
<input type="password" id="authTokenInput" class="form-control" placeholder="Deepinfra API token">
|
91 |
-
</div>
|
92 |
-
</div>
|
93 |
-
</div>
|
94 |
-
<br>
|
95 |
-
<button id="generateButton" class="btn btn-outline">Generate image</button>
|
96 |
-
<br><br>
|
97 |
-
<div class="d-flex justify-content-center">
|
98 |
-
<img id="generatedImage" style="max-width: 90vw;" width="512" class="justify-content-center">
|
99 |
-
</div>
|
100 |
-
</body>
|
101 |
-
<script type="module">
|
102 |
-
|
103 |
-
const modelName = 'stability-ai/sdxl';
|
104 |
-
|
105 |
-
const stylesArray = [
|
106 |
-
{
|
107 |
-
name:'Default',
|
108 |
-
prompt: '',
|
109 |
-
negative_prompt: ''
|
110 |
-
},
|
111 |
-
{
|
112 |
-
name:'Anime',
|
113 |
-
prompt: ',anime style, [manga], [illustration], [artwork], [anime wallpaper],[anime fanart], [detailed anime background], anime studio,',
|
114 |
-
negative_prompt: ',black and white,b&w, monochrome, 3d render, photography, photo, [cartoon], abstract art, poorly drawn, (text), (dialog bubble), (letters), [cartoon comics], [superhero comics], signature, [minimalist art], 3d model, amateur anime artist,canvas frame,bad art,ugly,nude,porn,naked,nsfw,hentai,'
|
115 |
-
},
|
116 |
-
{
|
117 |
-
name:'Anime - Studio Ghibli',
|
118 |
-
prompt: ',studio ghibli,[beautiful anime],',
|
119 |
-
negative_prompt: ',black and white,ugly,deformed,photo,3d render,abstract,noisy,blurry,poorly drawn,(text), (dialog bubble), (letters), [superhero comics],signature,amateur,nude,porn,naked,nsfw,hentai,'
|
120 |
-
},
|
121 |
-
{
|
122 |
-
name:'Realistic Anime',
|
123 |
-
prompt: ',realistic anime, realistic manga, [illustration], [artwork], realistic anime illumination, realistic anime shading, [realistic anime Deviantart], [realistic anime Artstation], [realistic anime wallpaper],[realistic anime fanart], [realistic anime Pinterest], realistic and detailed anime background, realistic anime shadows,',
|
124 |
-
negative_prompt: ',black and white,b&w, monochrome, 3d render, photography, photo, [cartoon], abstract art, poorly drawn, (text), (dialog bubble), (letters), [cartoon comics], [superhero comics], signature, [minimalist art], 3d model, amateur anime artist,canvas frame,bad art,ugly,nude,porn,naked,nsfw,hentai,'
|
125 |
-
},
|
126 |
-
{
|
127 |
-
name:'Photo',
|
128 |
-
prompt: ',sharp image, full hd, 1080p,4k, [8k] ,[uhd], high quality, detailed, high resolution, [high res],[RAW photo], [HDR], [hard shadows], [cinematic shot], [dramatic lighting], [soft lighting], [dslr], professional photographer,photorealistic, realistic,real,',
|
129 |
-
negative_prompt: ',blurry, low res, low resolution, low quality,ugly,nude,porn,naked,nsfw,hentai,'
|
130 |
-
},
|
131 |
-
{
|
132 |
-
name:'Realistic anatomy',
|
133 |
-
prompt: ',realistic anatomy,',
|
134 |
-
negative_prompt: ',amputee, deformed body, long neck, extra fingers, bad body proportions, mutated hands, mutilated, mutation, ugly, fused fingers, malformed limbs, extra heads, morbid, disfigured,'
|
135 |
-
},
|
136 |
-
{
|
137 |
-
name:'Renaissance',
|
138 |
-
prompt: ',renaissance painting style, [chiaroscuro],[detailed brushwork],[classical beauty],oil on canvas,[classical art],[historical art],oil painting,[fine details],[perspective],[masterpiece],[artwork style],[sharp image],[high resolution],[detailed],[professional style],[frescoes],',
|
139 |
-
negative_prompt: ',(black and white),sepia,blurry, low res, low resolution, low quality,ugly,artist painting,artist drawing,(digital painting style),3d render,photo,nude,porn,naked,nsfw,'
|
140 |
-
},
|
141 |
-
{
|
142 |
-
name:'Caravaggio',
|
143 |
-
prompt: ',Caravaggio,Italian Baroque style, [chiaroscuro],[dramatic composition],oil painting,Renaissance art,',
|
144 |
-
negative_prompt: ',nude,porn,naked,nsfw,'
|
145 |
-
},
|
146 |
-
{
|
147 |
-
name:'Impressionism',
|
148 |
-
prompt: ',impressionist painting style,[brushstrokes],[loose brushwork style],[natural light],[vibrant colors],[oil on canvas],',
|
149 |
-
negative_prompt: ',(black and white),sepia, low res, low resolution, low quality,ugly,artist painting,artist drawing,(digital painting style),3d render,photo,nude,porn,naked,nsfw,'
|
150 |
-
},
|
151 |
-
{
|
152 |
-
name:'Painting',
|
153 |
-
prompt: ',(painting style),artwork style,[masterpiece],art style,[sharp image],[high resolution],[beautiful],[detailed],[professional style],',
|
154 |
-
negative_prompt: ',blurry, low res, low resolution, low quality,ugly,artist painting,artist drawing,digital painting style,nude,porn,naked,nsfw,'
|
155 |
-
},
|
156 |
-
{
|
157 |
-
name:'Illustration',
|
158 |
-
prompt: ',illustration,artwork style,masterpiece,art style,sharp image,high resolution,beautiful,detailed,professional style,',
|
159 |
-
negative_prompt: ',blurry, low res, low resolution, low quality,ugly,artist painting,artist drawing,nude,porn,naked,nsfw,'
|
160 |
-
},
|
161 |
-
{
|
162 |
-
name: "Art Nouveau",
|
163 |
-
prompt: ",Art Nouveau style,illustration,detailed,artwork,[vintage],[[realistic anatomy]],",
|
164 |
-
negative_prompt: ",nude,porn,naked,nsfw,[deformed],[morbid],[disfigured],noisy,abstract,visual glitch,low contrast,blurry,"
|
165 |
-
},
|
166 |
-
{
|
167 |
-
name: "Art Nouveau - Harrison Fisher",
|
168 |
-
prompt: ",[Harrison Fisher],[[Gilded Age aesthetics]],",
|
169 |
-
negative_prompt: ",nude,porn,naked,nsfw,[deformed],[morbid],[disfigured],"
|
170 |
-
},
|
171 |
-
{
|
172 |
-
name: "Faded Polaroid Photo",
|
173 |
-
prompt: ",Faded Polaroid Photo, analog, old faded photo, old polaroid,",
|
174 |
-
negative_prompt: ",ugly, deformed, noisy, blurry, low contrast, vibrant, black and white,vibrant colors,"
|
175 |
-
},
|
176 |
-
{
|
177 |
-
name: "Japanese Ink Drawing",
|
178 |
-
prompt: ",Japanese Ink Drawing, ink drawing, inkwash, Japanese Ink Drawing,[masterpiece],[detailed],",
|
179 |
-
negative_prompt: ",ugly, deformed, noisy, blurry, low contrast, colorful, vibrant,"
|
180 |
-
},
|
181 |
-
{
|
182 |
-
name: "Rococo",
|
183 |
-
prompt: ",Rococo, flamboyant, pastel colors, curved lines, elaborate detail, Rococo,",
|
184 |
-
negative_prompt: ",ugly, deformed, noisy, blurry, low contrast,"
|
185 |
-
},
|
186 |
-
{
|
187 |
-
name: "Sticker Designs",
|
188 |
-
prompt: ",Vector Art Stickers, professional vector design, sticker designs, Sticker Sheet,",
|
189 |
-
negative_prompt: ",ugly, deformed, noisy, blurry, low contrast,"
|
190 |
-
},
|
191 |
-
{
|
192 |
-
name: "Art Deco",
|
193 |
-
prompt: ",Art Deco, sleek, geometric forms, art deco style,",
|
194 |
-
negative_prompt: ",ugly, deformed, noisy, blurry, low contrast,"
|
195 |
-
},
|
196 |
-
{
|
197 |
-
name: "Flat 2D Art",
|
198 |
-
prompt: ",Flat 2D Art, simple flat color, 2-dimensional, Flat 2D Art Style,",
|
199 |
-
negative_prompt: ",ugly, deformed, noisy, blurry, low contrast, 3D render, photo, realistic,"
|
200 |
-
},
|
201 |
-
{
|
202 |
-
name: "Baroque",
|
203 |
-
prompt: ",Baroque, dramatic, exuberant, grandeur, baroque art,",
|
204 |
-
negative_prompt: ",ugly, deformed, noisy, blurry, low contrast,"
|
205 |
-
},
|
206 |
-
{
|
207 |
-
name: "Medievalism",
|
208 |
-
prompt: ",Medievalism, inspired by The Middle Ages, medieval art, [elaborate patterns and decoration], Medievalism,",
|
209 |
-
negative_prompt: ",ugly, deformed, noisy, blurry, low contrast,modern,"
|
210 |
-
},
|
211 |
-
{
|
212 |
-
name: "Pencil Sketch Drawing",
|
213 |
-
prompt: ",Pencil Sketch Drawing style, black and white drawing, graphite drawing style,",
|
214 |
-
negative_prompt: ",ugly, deformed, noisy, blurry, low contrast,"
|
215 |
-
},
|
216 |
-
{
|
217 |
-
name: "3D Model",
|
218 |
-
prompt: ",professional 3d model,3d render, [octane render], highly detailed, [volumetric], [dramatic lighting],",
|
219 |
-
negative_prompt: ",illustration,photo,ugly, deformed, noisy, low poly, blurry, painting,"
|
220 |
-
},
|
221 |
-
{
|
222 |
-
name: "Analog Film",
|
223 |
-
prompt: ",analog film photo, faded film, desaturated, 35mm photo, grainy, vignette, vintage, Kodachrome, Lomography, stained, highly detailed, found footage,",
|
224 |
-
negative_prompt: ",painting, drawing, illustration, glitch, deformed, mutated, cross-eyed, ugly, disfigured,"
|
225 |
-
},
|
226 |
-
{
|
227 |
-
name: "Comic Book",
|
228 |
-
prompt: ",comic, graphic illustration, comic art, graphic novel art, vibrant, highly detailed,",
|
229 |
-
negative_prompt: ",photograph, deformed, glitch, noisy, realistic, stock photo,"
|
230 |
-
},
|
231 |
-
{
|
232 |
-
name: "Origami",
|
233 |
-
prompt: ",origami style, paper art, pleated paper, folded, origami art, pleats, cut and fold, centered composition,",
|
234 |
-
negative_prompt: ",noisy, sloppy, messy, grainy, highly detailed, ultra textured, photo,"
|
235 |
-
},
|
236 |
-
{
|
237 |
-
name: "Pixel art",
|
238 |
-
prompt: ",pixel-art, low-res, blocky, pixel art style, 8-bit graphics,",
|
239 |
-
negative_prompt: ",3d render,sloppy, messy, blurry, noisy, highly detailed, ultra textured, photo, realistic,"
|
240 |
-
},
|
241 |
-
{
|
242 |
-
name: "Watercolor",
|
243 |
-
prompt: ",watercolor painting, [vibrant], [beautiful], [painterly], [detailed], [textural], [artistic],",
|
244 |
-
negative_prompt: ",anime, photorealistic, photo, deformed, glitch, low contrast, noisy,ugly,3d render,photograph,blurry,low resolution,amateur,"
|
245 |
-
},
|
246 |
-
{
|
247 |
-
name: "Expressionist",
|
248 |
-
prompt: ",expressionist, [emotional], [dynamic], [distortion], [vibrant], [use of unusual colors], [detailed],",
|
249 |
-
negative_prompt: ",realism, symmetry, quiet, calm, ,anime, photorealistic, photo, deformed, glitch, low contrast, noisy,ugly,3d render,photograph,blurry,low resolution,amateur,"
|
250 |
-
},
|
251 |
-
{
|
252 |
-
name: "Vector",
|
253 |
-
prompt: ",vector art style,[flat],[svg],[adobe illustrator],",
|
254 |
-
negative_prompt: "3d render, photo, photorealistic, realistic cartoon, anime,"
|
255 |
-
},
|
256 |
-
{
|
257 |
-
name: "Greek sculpture",
|
258 |
-
prompt: ",greek sculpture,marble,",
|
259 |
-
negative_prompt: ",3d render, illustration,anime,painting,ugly,blurry,low resolution, low quality, amateur,"
|
260 |
-
},
|
261 |
-
{
|
262 |
-
name: "American Realism - Edward Hopper",
|
263 |
-
prompt: ",Edward Hopper,[oil paint],",
|
264 |
-
negative_prompt: ",3d render,anime,ugly,blurry,low resolution, low quality, amateur,photo,"
|
265 |
-
},
|
266 |
-
{
|
267 |
-
name: "American Realism",
|
268 |
-
prompt: ",American Realism,[oil paint],",
|
269 |
-
negative_prompt: ",3d render,anime,ugly,blurry,low resolution, low quality, amateur,photo,"
|
270 |
-
},
|
271 |
-
{
|
272 |
-
name: "Impasto",
|
273 |
-
prompt: ",impasto,[paint],",
|
274 |
-
negative_prompt: ",3d render,anime,ugly,blurry,low resolution, low quality, amateur,photo,abstract,"
|
275 |
-
},
|
276 |
-
{
|
277 |
-
name: "Roman Mosaic",
|
278 |
-
prompt: ",roman, mosaic,[art work],[detailed],",
|
279 |
-
negative_prompt: "dirt,ugly,paint,"
|
280 |
-
},
|
281 |
-
{
|
282 |
-
name: "Japanese traditional art",
|
283 |
-
prompt: ",Ukiyo-e,traditional Japanese art,woman,",
|
284 |
-
negative_prompt: ",anime,photo,digital,abstract,deformed,ugly,Katakana,Hiragana,Kanji,"
|
285 |
-
},
|
286 |
-
]
|
287 |
-
|
288 |
-
function loadingButton(boolean){
|
289 |
-
if (boolean){
|
290 |
-
document.getElementById('generateButton').innerHTML = '<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> Loading...';
|
291 |
-
document.getElementById('generateButton').disabled = true;
|
292 |
-
} else {
|
293 |
-
document.getElementById('generateButton').innerHTML = 'Generate image';
|
294 |
-
document.getElementById('generateButton').disabled = false;
|
295 |
-
}
|
296 |
-
}
|
297 |
-
|
298 |
-
function loadStyleSelect() {
|
299 |
-
const styleSelect = document.getElementById('styleSelect');
|
300 |
-
|
301 |
-
stylesArray.forEach(style => {
|
302 |
-
const option = document.createElement('option');
|
303 |
-
option.value = style.name;
|
304 |
-
option.textContent = style.name;
|
305 |
-
styleSelect.appendChild(option);
|
306 |
-
});
|
307 |
-
}
|
308 |
-
loadStyleSelect();
|
309 |
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
let prompt = document.getElementById('promptInput').value;
|
314 |
-
let negativePrompt = document.getElementById('negativePromptInput').value;
|
315 |
-
let height = 512;
|
316 |
-
let width = 512;
|
317 |
-
const style = document.getElementById('styleSelect').value;
|
318 |
-
const size = document.getElementById('sizeSelect').value;
|
319 |
-
const guidanceScale = document.getElementById('guidanceScaleInput').value;
|
320 |
-
const numInferenceSteps = document.getElementById('numInferenceStepsInput').value;
|
321 |
-
const seed = document.getElementById('seedInput').value;
|
322 |
-
const model = document.getElementById('modelSelect').value;
|
323 |
-
const refiner = document.getElementById('refinerSelect').value;
|
324 |
-
const sampler = document.getElementById('samplerSelect').value;
|
325 |
-
|
326 |
-
if (size === 'square'){
|
327 |
-
height = 1024;
|
328 |
-
width = 1024;
|
329 |
-
} else if (size === 'portrait'){
|
330 |
-
height = 1024;
|
331 |
-
width = 768;
|
332 |
-
} else if (size === 'landscape'){
|
333 |
-
height = 768;
|
334 |
-
width = 1024;
|
335 |
-
} else if (size === 'stories'){
|
336 |
-
height = 1024;
|
337 |
-
width = 512;
|
338 |
-
} else if (size === 'ultrawide'){
|
339 |
-
height = 512;
|
340 |
-
width = 1024;
|
341 |
-
}
|
342 |
-
|
343 |
-
const selectedStyleObj = stylesArray.find(styleObj => styleObj.name === style);
|
344 |
-
if (selectedStyleObj) {
|
345 |
-
prompt += selectedStyleObj.prompt;
|
346 |
-
negativePrompt += selectedStyleObj.negative_prompt;
|
347 |
-
}
|
348 |
-
|
349 |
-
const formData = new FormData();
|
350 |
-
formData.append('prompt', prompt);
|
351 |
-
formData.append('negative_prompt', negativePrompt);
|
352 |
-
formData.append('height', height);
|
353 |
-
formData.append('width', width);
|
354 |
-
formData.append('guidance_scale', guidanceScale);
|
355 |
-
formData.append('num_inference_steps', numInferenceSteps);
|
356 |
-
formData.append('refine', refiner);
|
357 |
-
formData.append('scheduler', sampler);
|
358 |
-
if (seed > 0){
|
359 |
-
formData.append('seed', seed);
|
360 |
-
}
|
361 |
-
|
362 |
-
if (authTokenTemp){
|
363 |
-
localStorage.setItem('authToken', authTokenTemp);
|
364 |
-
}
|
365 |
-
|
366 |
-
function getAuthToken(){
|
367 |
-
const authToken = localStorage.getItem('authToken');
|
368 |
-
if (!authToken){
|
369 |
-
alert('Please enter your Deepinfra API token.');
|
370 |
-
return;
|
371 |
-
}
|
372 |
-
return authToken;
|
373 |
-
}
|
374 |
-
|
375 |
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
391 |
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
|
|
|
|
|
|
|
|
|
|
396 |
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
}
|
406 |
-
} catch (error) {
|
407 |
-
alert('There was an error while making the api request. Make sure you have provided the deepinfra api key. Check the console for more information.');
|
408 |
-
console.error('There was an error while making the api request:', error);
|
409 |
-
loadingButton(false);
|
410 |
-
}
|
411 |
-
}
|
412 |
-
</script>
|
413 |
</html>
|
|
|
1 |
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
<head>
|
4 |
+
<meta charset="UTF-8">
|
5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
+
<title>Guerra LLM Ranking</title>
|
7 |
+
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.1/dist/chart.umd.min.js"></script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
9 |
+
</head>
|
10 |
+
<body>
|
11 |
+
<canvas id="radarChart" height="750"></canvas>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
13 |
+
<script>
|
14 |
+
let data = {
|
15 |
+
labels: ['MMLU', 'MT-bench','Arena Elo'],
|
16 |
+
datasets: [
|
17 |
+
{
|
18 |
+
label: 'GPT-4-Turbo',
|
19 |
+
data: [null, 93.2,124.9],
|
20 |
+
borderWidth: 2
|
21 |
+
},
|
22 |
+
{
|
23 |
+
label: 'GPT-4-0314',
|
24 |
+
data: [86.4, 86.4,119.0],
|
25 |
+
borderWidth: 2
|
26 |
+
},
|
27 |
+
{
|
28 |
+
label: 'GPT-3.5-Turbo-0314',
|
29 |
+
data: [70.0, 79.4,112.3],
|
30 |
+
borderWidth: 2
|
31 |
+
},
|
32 |
+
{
|
33 |
+
label: 'Mistral Medium',
|
34 |
+
data: [75.3, 86.1,115.0],
|
35 |
+
borderWidth: 2
|
36 |
+
},
|
37 |
+
{
|
38 |
+
label: 'Mixtral 8x7B Instruct v0.1',
|
39 |
+
data: [70.6, 83.0,112.3],
|
40 |
+
borderWidth: 2
|
41 |
+
},
|
42 |
+
{
|
43 |
+
label: 'Claude 2.0',
|
44 |
+
data: [78.5, 80.6,113.1],
|
45 |
+
borderWidth: 2
|
46 |
+
},
|
47 |
+
{
|
48 |
+
label: 'Claude 1.0',
|
49 |
+
data: [77.0, 79.0,114.9],
|
50 |
+
borderWidth: 2
|
51 |
+
},
|
52 |
+
{
|
53 |
+
label: 'Claude Instant 1',
|
54 |
+
data: [73.4, 78.5,110.9],
|
55 |
+
borderWidth: 2
|
56 |
+
},
|
57 |
+
{
|
58 |
+
label: 'Gemini Pro',
|
59 |
+
data: [71.8, null,111.4],
|
60 |
+
borderWidth: 2
|
61 |
+
},
|
62 |
+
{
|
63 |
+
label: 'Yi 34B Chat',
|
64 |
+
data: [73.5, null,111.1],
|
65 |
+
borderWidth: 2
|
66 |
+
},
|
67 |
+
{
|
68 |
+
label: 'Falcon 180B Chat',
|
69 |
+
data: [68.0, null,103.1],
|
70 |
+
borderWidth: 2
|
71 |
+
},
|
72 |
+
{
|
73 |
+
label: 'LLama 2 70B Chat',
|
74 |
+
data: [63.0, 68.6,107.9],
|
75 |
+
borderWidth: 2
|
76 |
+
},
|
77 |
+
]
|
78 |
+
};
|
79 |
|
80 |
+
let options = {
|
81 |
+
responsive: true,
|
82 |
+
maintainAspectRatio: false,
|
83 |
+
scale: {
|
84 |
+
ticks: {
|
85 |
+
stepSize: 10,
|
86 |
+
}
|
87 |
+
},
|
88 |
+
};
|
89 |
|
90 |
+
let ctx = document.getElementById('radarChart').getContext('2d');
|
91 |
+
new Chart(ctx, {
|
92 |
+
type: 'radar',
|
93 |
+
data: data,
|
94 |
+
options: options
|
95 |
+
});
|
96 |
+
</script>
|
97 |
+
</body>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
</html>
|