From 1d00be5b918abf5608efcece912fa00e0c2a78bd Mon Sep 17 00:00:00 2001 From: hlohaus <983577+hlohaus@users.noreply.github.com> Date: Tue, 4 Feb 2025 16:25:51 +0100 Subject: Fix api_key in HuggingFace provider Split PollinationsAI provider in two provider Update model list in CablyAI Return backup url, if copy images failed Update url for logging in UI --- g4f/Provider/PollinationsImage.py | 58 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 g4f/Provider/PollinationsImage.py (limited to 'g4f/Provider/PollinationsImage.py') diff --git a/g4f/Provider/PollinationsImage.py b/g4f/Provider/PollinationsImage.py new file mode 100644 index 00000000..35ab669e --- /dev/null +++ b/g4f/Provider/PollinationsImage.py @@ -0,0 +1,58 @@ +from __future__ import annotations + +from typing import Optional + +from .helper import format_image_prompt +from ..typing import AsyncResult, Messages +from .PollinationsAI import PollinationsAI + +class PollinationsImage(PollinationsAI): + # From: https://pollinations.ai/static/js/components/FeedImage/ImageEditor.js + image_models = [ + "flux", + "flux-pro", + "flux-realism", + "flux-anime", + "flux-3d", + "flux-cablyai", + "turbo", + ] + default_model = "flux" + default_vision_model = None + default_image_model = default_model + + @classmethod + def get_models(cls, **kwargs): + if not cls.models: + cls.models = list(dict.fromkeys([*cls.image_models, *cls.extra_image_models, *PollinationsAI.extra_image_models])) + return cls.models + + @classmethod + async def create_async_generator( + cls, + model: str, + messages: Messages, + proxy: str = None, + prompt: str = None, + width: int = 1024, + height: int = 1024, + seed: Optional[int] = None, + nologo: bool = True, + private: bool = False, + enhance: bool = False, + safe: bool = False, + **kwargs + ) -> AsyncResult: + async for chunk in cls._generate_image( + model=model, + prompt=format_image_prompt(messages, prompt), + proxy=proxy, + width=width, + height=height, + seed=seed, + nologo=nologo, + private=private, + enhance=enhance, + safe=safe + ): + yield chunk \ No newline at end of file -- cgit v1.2.3