PollinationsImage.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. default_model = "flux"
  8. default_vision_model = None
  9. default_image_model = default_model
  10. @classmethod
  11. def get_models(cls, **kwargs):
  12. if not cls.image_models:
  13. cls.image_models = list(dict.fromkeys([*cls.image_models, *cls.extra_image_models]))
  14. return cls.image_models
  15. @classmethod
  16. async def create_async_generator(
  17. cls,
  18. model: str,
  19. messages: Messages,
  20. proxy: str = None,
  21. prompt: str = None,
  22. width: int = 1024,
  23. height: int = 1024,
  24. seed: Optional[int] = None,
  25. nologo: bool = True,
  26. private: bool = False,
  27. enhance: bool = False,
  28. safe: bool = False,
  29. **kwargs
  30. ) -> AsyncResult:
  31. async for chunk in cls._generate_image(
  32. model=model,
  33. prompt=format_image_prompt(messages, prompt),
  34. proxy=proxy,
  35. width=width,
  36. height=height,
  37. seed=seed,
  38. nologo=nologo,
  39. private=private,
  40. enhance=enhance,
  41. safe=safe
  42. ):
  43. yield chunk