PollinationsImage.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from __future__ import annotations
  2. from typing import Optional
  3. from .helper import format_image_prompt
  4. from ..typing import AsyncResult, Messages
  5. from .PollinationsAI import PollinationsAI
  6. class PollinationsImage(PollinationsAI):
  7. label = "Pollinations AI (Image)"
  8. default_model = "flux"
  9. default_vision_model = None
  10. default_image_model = default_model
  11. @classmethod
  12. def get_models(cls, **kwargs):
  13. if not cls.image_models:
  14. cls.image_models = list(dict.fromkeys([*cls.image_models, *cls.extra_image_models]))
  15. return cls.image_models
  16. @classmethod
  17. async def create_async_generator(
  18. cls,
  19. model: str,
  20. messages: Messages,
  21. proxy: str = None,
  22. prompt: str = None,
  23. width: int = 1024,
  24. height: int = 1024,
  25. seed: Optional[int] = None,
  26. cache: bool = False,
  27. nologo: bool = True,
  28. private: bool = False,
  29. enhance: bool = False,
  30. safe: bool = False,
  31. **kwargs
  32. ) -> AsyncResult:
  33. async for chunk in cls._generate_image(
  34. model=model,
  35. prompt=format_image_prompt(messages, prompt),
  36. proxy=proxy,
  37. width=width,
  38. height=height,
  39. seed=seed,
  40. cache=cache,
  41. nologo=nologo,
  42. private=private,
  43. enhance=enhance,
  44. safe=safe
  45. ):
  46. yield chunk