Your task is to review pull requests. Instructions:
- Provide the response in following JSON format: {"reviews": [{"line": <line_number>, "body": "<review comment>"}]}
- Do not give positive comments or compliments.
- Provide comments and suggestions ONLY if there is something to improve, otherwise "reviews" should be an empty array.
- Write the comment in GitHub Markdown format.
- Use the given description only for the overall context and only comment the code.
- IMPORTANT: NEVER suggest adding comments to the code.

Review the following code diff in the file "g4f/gui/client/index.html" and take the pull request title and description into account when writing the response.
  
Pull request title: [pull] main from xtekky:main
Pull request description:
---
See [Commits](/ishandutta2007/gpt4free/pull/128/commits) and [Changes](/ishandutta2007/gpt4free/pull/128/files) for more details.

-----
Created by [<img src="https://prod.download/pull-18h-svg" valign="bottom"/> **pull[bot]**](https://github.com/wei/pull) (v2.0.0-alpha.1)

_Can you help keep this open source service alive? **[💖 Please sponsor : )](https://prod.download/pull-pr-sponsor)**_
---

Each line is prefixed by its number. Code to review:
```
47:             gallery: '#messages',
48:             children: 'a:has(img)',
49:             secondaryZoomLevel: 2,
50:+            allowPanToNext: true,
51:             pswpModule: () => import('https://cdn.jsdelivr.net/npm/photoswipe'),
52:         });
53:         lightbox.addFilter('itemData', (itemData, index) => {
54:             const img = itemData.element.querySelector('img');
-            itemData.width = img.naturalWidth;
-            itemData.height = img.naturalHeight;
55:+            itemData.width = img.naturalWidth || 1024;
56:+            itemData.height = img.naturalHeight || 1024;
57:             return itemData;
58:         });
59:         lightbox.on('uiRegister', function() {
67:                     lightbox.pswp.on('change', () => {
68:                         const currSlideElement = lightbox.pswp.currSlide.data.element;
69:                         if (currSlideElement) {
-                            el.innerText = currSlideElement.querySelector('img').getAttribute('alt');
70:+                            const img = currSlideElement.querySelector('img');
71:+                            el.innerText = img.getAttribute('alt');
72:+                            const download = document.createElement("a");
73:+                            download.setAttribute("href", img.getAttribute('src'));
74:+                            download.setAttribute("download", `${img.getAttribute('alt')}${lightbox.pswp.currSlide.index}.jpg`);
75:+                            download.innerHTML = '<i class="fa-solid fa-download"></i>';
76:+                            el.appendChild(download);
77:                         }
78:                     });
79:                 }
164:                 <label for="report_error" class="toogle" title=""></label>
165:             </div>
166:             <div class="field box">
-                <label for="systemPrompt" class="label" title="">System prompt</label>
-                <textarea id="systemPrompt" placeholder="You are a helpful assistant."></textarea>
167:+                <label for="systemPrompt" class="label">System prompt</label>
168:+                <textarea id="systemPrompt" placeholder="You are a helpful assistant." data-value="If you need to generate images, you can use the following format: ![keywords](/generate/filename.jpg). This will enable the use of an image generation tool."></textarea>
169:             </div>
170:             <div class="field box">
171:                 <label for="message-input-height" class="label" title="">Input max. height</label>
276:                     <div id="send-button">
277:                         <i class="fa-solid fa-square-plus"></i>
278:                         <i class="fa-regular fa-paper-plane"></i>
279:+                        <a href="" id="download" class="hidden"></a>
280:                     </div>
281:                 </div>
282:             </div>
301:                      <option value="dall-e-3">dall-e-3 (Image Generation)</option>
302:                      <option disabled="disabled">----</option>
303:                   </select>
-                  <select name="model2" id="model2" class="hidden"></select>
304:+                  <select name="model2" id="model2" class="hidden model"></select>
305:+                  <input type="text" id="model3" value="" class="hidden model" placeholder="Model:"/>
306:                </div>
307:                <div class="field">
308:                   <select name="provider" id="provider">
312:                      <option value="Gemini">Google Gemini</option>
313:                      <option value="DDG">DuckDuckGo AI Chat</option>
314:                      <option value="Blackbox">Blackbox AI</option>
315:+                     <option value="Custom Model">Custom Model</option>
316:                      <option disabled="disabled">----</option>
317:                     </select>
318:                 </div>
```