PollinationsImage.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. nologo: bool = True,
  27. private: bool = False,
  28. enhance: bool = False,
  29. safe: bool = False,
  30. **kwargs
  31. ) -> AsyncResult:
  32. async for chunk in cls._generate_image(
  33. model=model,
  34. prompt=format_image_prompt(messages, prompt),
  35. proxy=proxy,
  36. width=width,
  37. height=height,
  38. seed=seed,
  39. nologo=nologo,
  40. private=private,
  41. enhance=enhance,
  42. safe=safe
  43. ):
  44. yield chunk