XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 1
返回提交历史

XFEstudio/gpt4free

Improve preview in image generation of Gemini Fix issue in Bing Image Decorator

9aeae65b
Heiner Lohaus <hlohaus@users.noreply.github.com>
提交于

代码差异

3 个文件 +8 -5
Modified g4f/Provider/create_images.py +1 -1
@@ -87,7 +87,7 @@ class CreateImagesProvider(BaseProvider):
87 87 messages.insert(0, {"role": "system", "content": self.system_message})
88 88 buffer = ""
89 89 for chunk in self.provider.create_completion(model, messages, stream, **kwargs):
90 if buffer or "<" in chunk:
90 if isinstance(chunk, str) and buffer or "<" in chunk:
91 91 buffer += chunk
92 92 if ">" in buffer:
93 93 match = re.search(r'<img data-prompt="(.*?)">', buffer)
Modified g4f/Provider/needs_auth/Gemini.py +3 -1
@@ -142,13 +142,15 @@ class Gemini(AsyncGeneratorProvider):
142 142 if image_prompt:
143 143 images = [image[0][3][3] for image in response_part[4][0][12][7][0]]
144 144 resolved_images = []
145 preview = []
145 146 for image in images:
146 147 async with session.get(image, allow_redirects=False) as fetch:
147 148 image = fetch.headers["location"]
148 149 async with session.get(image, allow_redirects=False) as fetch:
149 150 image = fetch.headers["location"]
150 151 resolved_images.append(image)
151 yield ImageResponse(resolved_images, image_prompt, {"orginal_links": images})
152 preview.append(image.replace('=s512', '=s200'))
153 yield ImageResponse(resolved_images, image_prompt, {"orginal_links": images, "preview": preview})
152 154
153 155 def build_request(
154 156 prompt: str,
Modified g4f/image.py +4 -3
@@ -187,7 +187,7 @@ def to_base64_jpg(image: Image, compression_rate: float) -> str:
187 187 image.save(output_buffer, format="JPEG", quality=int(compression_rate * 100))
188 188 return base64.b64encode(output_buffer.getvalue()).decode()
189 189
190 def format_images_markdown(images, alt: str, preview: str = None) -> str:
190 def format_images_markdown(images: Union[str, list], alt: str, preview: Union[str, list] = None) -> str:
191 191 """
192 192 Formats the given images as a markdown string.
193 193
@@ -202,9 +202,10 @@ def format_images_markdown(images, alt: str, preview: str = None) -> str:
202 202 if isinstance(images, str):
203 203 images = f"[![{alt}]({preview.replace('{image}', images) if preview else images})]({images})"
204 204 else:
205 if not isinstance(preview, list):
206 preview = [preview.replace('{image}', image) if preview else image for image in images]
205 207 images = [
206 f"[![#{idx+1} {alt}]({preview.replace('{image}', image) if preview else image})]({image})"
207 for idx, image in enumerate(images)
208 f"[![#{idx+1} {alt}]({preview[idx]})]({image})" for idx, image in enumerate(images)
208 209 ]
209 210 images = "\n".join(images)
210 211 start_flag = "<!-- generated images start -->\n"