lollms-client 1.6.10__tar.gz → 1.7.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of lollms-client might be problematic. Click here for more details.

Files changed (94) hide show
  1. {lollms_client-1.6.10/src/lollms_client.egg-info → lollms_client-1.7.0}/PKG-INFO +1 -1
  2. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/__init__.py +1 -1
  3. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/lollms_stt_binding.py +3 -1
  4. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/lollms_tti_binding.py +3 -1
  5. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/lollms_ttm_binding.py +3 -1
  6. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/lollms_tts_binding.py +2 -2
  7. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/lollms_ttv_binding.py +3 -1
  8. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/stt_bindings/whisper/__init__.py +18 -11
  9. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tti_bindings/diffusers/__init__.py +3 -4
  10. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tti_bindings/diffusers/server/main.py +3 -1
  11. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tti_bindings/gemini/__init__.py +4 -1
  12. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tti_bindings/leonardo_ai/__init__.py +5 -2
  13. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tti_bindings/lollms/__init__.py +4 -1
  14. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tti_bindings/novita_ai/__init__.py +4 -1
  15. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tti_bindings/openai/__init__.py +10 -11
  16. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tti_bindings/stability_ai/__init__.py +4 -2
  17. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/ttm_bindings/audiocraft/__init__.py +7 -12
  18. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/ttm_bindings/beatoven_ai/__init__.py +7 -3
  19. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/ttm_bindings/lollms/__init__.py +4 -17
  20. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/ttm_bindings/replicate/__init__.py +7 -4
  21. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/ttm_bindings/stability_ai/__init__.py +7 -4
  22. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/ttm_bindings/topmediai/__init__.py +6 -3
  23. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tts_bindings/bark/__init__.py +7 -10
  24. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tts_bindings/piper_tts/__init__.py +7 -10
  25. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tts_bindings/xtts/__init__.py +4 -4
  26. {lollms_client-1.6.10 → lollms_client-1.7.0/src/lollms_client.egg-info}/PKG-INFO +1 -1
  27. {lollms_client-1.6.10 → lollms_client-1.7.0}/LICENSE +0 -0
  28. {lollms_client-1.6.10 → lollms_client-1.7.0}/README.md +0 -0
  29. {lollms_client-1.6.10 → lollms_client-1.7.0}/pyproject.toml +0 -0
  30. {lollms_client-1.6.10 → lollms_client-1.7.0}/setup.cfg +0 -0
  31. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/assets/models_ctx_sizes.json +0 -0
  32. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/__init__.py +0 -0
  33. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/azure_openai/__init__.py +0 -0
  34. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/claude/__init__.py +0 -0
  35. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/gemini/__init__.py +0 -0
  36. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/grok/__init__.py +0 -0
  37. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/groq/__init__.py +0 -0
  38. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/hugging_face_inference_api/__init__.py +0 -0
  39. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/litellm/__init__.py +0 -0
  40. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/llamacpp/__init__.py +0 -0
  41. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/lollms/__init__.py +0 -0
  42. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/lollms_webui/__init__.py +0 -0
  43. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/mistral/__init__.py +0 -0
  44. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/novita_ai/__init__.py +0 -0
  45. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/ollama/__init__.py +0 -0
  46. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/open_router/__init__.py +0 -0
  47. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/openai/__init__.py +0 -0
  48. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/openllm/__init__.py +0 -0
  49. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/openwebui/__init__.py +0 -0
  50. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/perplexity/__init__.py +0 -0
  51. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/pythonllamacpp/__init__.py +0 -0
  52. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/tensor_rt/__init__.py +0 -0
  53. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/transformers/__init__.py +0 -0
  54. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/llm_bindings/vllm/__init__.py +0 -0
  55. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/lollms_agentic.py +0 -0
  56. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/lollms_config.py +0 -0
  57. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/lollms_core.py +0 -0
  58. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/lollms_discussion.py +0 -0
  59. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/lollms_js_analyzer.py +0 -0
  60. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/lollms_llm_binding.py +0 -0
  61. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/lollms_mcp_binding.py +0 -0
  62. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/lollms_mcp_security.py +0 -0
  63. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/lollms_personality.py +0 -0
  64. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/lollms_python_analyzer.py +0 -0
  65. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/lollms_types.py +0 -0
  66. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/lollms_utilities.py +0 -0
  67. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/mcp_bindings/local_mcp/__init__.py +0 -0
  68. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/mcp_bindings/local_mcp/default_tools/file_writer/file_writer.py +0 -0
  69. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/mcp_bindings/local_mcp/default_tools/generate_image_from_prompt/generate_image_from_prompt.py +0 -0
  70. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/mcp_bindings/local_mcp/default_tools/internet_search/internet_search.py +0 -0
  71. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/mcp_bindings/local_mcp/default_tools/python_interpreter/python_interpreter.py +0 -0
  72. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/mcp_bindings/remote_mcp/__init__.py +0 -0
  73. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/mcp_bindings/standard_mcp/__init__.py +0 -0
  74. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/stt_bindings/__init__.py +0 -0
  75. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/stt_bindings/lollms/__init__.py +0 -0
  76. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/stt_bindings/whispercpp/__init__.py +0 -0
  77. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tti_bindings/__init__.py +0 -0
  78. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/ttm_bindings/__init__.py +0 -0
  79. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tts_bindings/__init__.py +0 -0
  80. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tts_bindings/bark/server/install_bark.py +0 -0
  81. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tts_bindings/bark/server/main.py +0 -0
  82. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tts_bindings/lollms/__init__.py +0 -0
  83. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tts_bindings/piper_tts/server/install_piper.py +0 -0
  84. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tts_bindings/piper_tts/server/main.py +0 -0
  85. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tts_bindings/piper_tts/server/setup_voices.py +0 -0
  86. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tts_bindings/xtts/server/main.py +0 -0
  87. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/tts_bindings/xtts/server/setup_voices.py +0 -0
  88. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/ttv_bindings/__init__.py +0 -0
  89. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client/ttv_bindings/lollms/__init__.py +0 -0
  90. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client.egg-info/SOURCES.txt +0 -0
  91. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client.egg-info/dependency_links.txt +0 -0
  92. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client.egg-info/requires.txt +0 -0
  93. {lollms_client-1.6.10 → lollms_client-1.7.0}/src/lollms_client.egg-info/top_level.txt +0 -0
  94. {lollms_client-1.6.10 → lollms_client-1.7.0}/test/test_lollms_discussion.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lollms_client
3
- Version: 1.6.10
3
+ Version: 1.7.0
4
4
  Summary: A client library for LoLLMs generate endpoint
5
5
  Author-email: ParisNeo <parisneoai@gmail.com>
6
6
  License: Apache License
@@ -8,7 +8,7 @@ from lollms_client.lollms_utilities import PromptReshaper # Keep general utiliti
8
8
  from lollms_client.lollms_mcp_binding import LollmsMCPBinding, LollmsMCPBindingManager
9
9
  from lollms_client.lollms_llm_binding import LollmsLLMBindingManager
10
10
 
11
- __version__ = "1.6.10" # Updated version
11
+ __version__ = "1.7.0" # Updated version
12
12
 
13
13
  # Optionally, you could define __all__ if you want to be explicit about exports
14
14
  __all__ = [
@@ -9,7 +9,8 @@ class LollmsSTTBinding(ABC):
9
9
  """Abstract base class for all LOLLMS Speech-to-Text bindings."""
10
10
 
11
11
  def __init__(self,
12
- binding_name:str="unknown"):
12
+ binding_name:str="unknown",
13
+ config={}):
13
14
  """
14
15
  Initialize the LollmsSTTBinding base class.
15
16
 
@@ -17,6 +18,7 @@ class LollmsSTTBinding(ABC):
17
18
  binding_name (Optional[str]): The binding name
18
19
  """
19
20
  self.binding_name = binding_name
21
+ self.config = config
20
22
 
21
23
  @abstractmethod
22
24
  def transcribe_audio(self, audio_path: Union[str, Path], model: Optional[str] = None, **kwargs) -> str:
@@ -9,7 +9,8 @@ class LollmsTTIBinding(ABC):
9
9
  """Abstract base class for all LOLLMS Text-to-Image bindings."""
10
10
 
11
11
  def __init__(self,
12
- binding_name:str="unknown"):
12
+ binding_name:str="unknown",
13
+ config={}):
13
14
  """
14
15
  Initialize the LollmsTTIBinding base class.
15
16
 
@@ -17,6 +18,7 @@ class LollmsTTIBinding(ABC):
17
18
  binding_name (Optional[str]): The binding name
18
19
  """
19
20
  self.binding_name = binding_name
21
+ self.config = config
20
22
 
21
23
  @abstractmethod
22
24
  def generate_image(self,
@@ -9,7 +9,8 @@ class LollmsTTMBinding(ABC):
9
9
  """Abstract base class for all LOLLMS Text-to-Music bindings."""
10
10
 
11
11
  def __init__(self,
12
- binding_name:str="unknown"):
12
+ binding_name:str="unknown",
13
+ config={}):
13
14
  """
14
15
  Initialize the LollmsTTMBinding base class.
15
16
 
@@ -17,6 +18,7 @@ class LollmsTTMBinding(ABC):
17
18
  binding_name (Optional[str]): The binding name
18
19
  """
19
20
  self.binding_name = binding_name
21
+ self.config = config
20
22
 
21
23
 
22
24
  @abstractmethod
@@ -8,9 +8,9 @@ from ascii_colors import trace_exception
8
8
  class LollmsTTSBinding(ABC):
9
9
  def __init__(self,
10
10
  binding_name: str = "unknown",
11
- **kwargs):
11
+ config={}):
12
12
  self.binding_name = binding_name
13
- self.settings = kwargs
13
+ self.config = config
14
14
 
15
15
  @abstractmethod
16
16
  def generate_audio(self,
@@ -9,7 +9,8 @@ class LollmsTTVBinding(ABC):
9
9
  """Abstract base class for all LOLLMS Text-to-Video bindings."""
10
10
 
11
11
  def __init__(self,
12
- binding_name:str="unknown"):
12
+ binding_name:str="unknown",
13
+ config={}):
13
14
  """
14
15
  Initialize the LollmsTTVBinding base class.
15
16
 
@@ -17,6 +18,7 @@ class LollmsTTVBinding(ABC):
17
18
  binding_name (Optional[str]): The binding name
18
19
  """
19
20
  self.binding_name = binding_name
21
+ self.config = config
20
22
 
21
23
  @abstractmethod
22
24
  def generate_video(self, prompt: str, **kwargs) -> bytes:
@@ -67,7 +67,7 @@ class WhisperSTTBinding(LollmsSTTBinding):
67
67
  """
68
68
 
69
69
  # Standard Whisper model sizes
70
- WHISPER_MODEL_SIZES = ["tiny", "tiny.en", "base", "base.en", "small", "small.en", "medium", "medium.en", "large", "large-v1", "large-v2", "large-v3"]
70
+ WHISPER_MODEL_SIZES = ["turbo"]
71
71
 
72
72
  def __init__(self,
73
73
  **kwargs # To catch any other LollmsSTTBinding standard args
@@ -76,13 +76,13 @@ class WhisperSTTBinding(LollmsSTTBinding):
76
76
  Initialize the Whisper STT binding.
77
77
 
78
78
  Args:
79
- model_name (str): The Whisper model size to use (e.g., "tiny", "base", "small", "medium", "large", "large-v2", "large-v3").
80
- Defaults to "base".
79
+ model_name (str): The Whisper model size to use (e.g., "turbo").
80
+ Defaults to "turno".
81
81
  device (Optional[str]): The device to run the model on ("cpu", "cuda", "mps").
82
82
  If None, `torch` will attempt to auto-detect. Defaults to None.
83
83
  """
84
84
  super().__init__(binding_name="whisper") # Not applicable
85
- self.default_model_name = kwargs.get("model_name", "base")
85
+ self.default_model_name = kwargs.get("model_name", "turno")
86
86
 
87
87
  if not _whisper_installed:
88
88
  raise ImportError(f"Whisper STT binding dependencies not met. Please ensure 'openai-whisper' and 'torch' are installed. Error: {_whisper_installation_error}")
@@ -100,7 +100,10 @@ class WhisperSTTBinding(LollmsSTTBinding):
100
100
 
101
101
  self.loaded_model_name = None
102
102
  self.model = None
103
- self._load_whisper_model(kwargs.get("model_name", "base")) # Default to "base" if not specified
103
+ try:
104
+ self._load_whisper_model(kwargs.get("model_name", "turbo")) # Default to "turno" if not specified
105
+ except Exception as e:
106
+ pass
104
107
 
105
108
 
106
109
  def _load_whisper_model(self, model_name_to_load: str):
@@ -150,6 +153,10 @@ class WhisperSTTBinding(LollmsSTTBinding):
150
153
  RuntimeError: If the Whisper model is not loaded or transcription fails.
151
154
  Exception: For other errors during transcription.
152
155
  """
156
+ if not self.model:
157
+ self._load_whisper_model(self.default_model_name)
158
+
159
+
153
160
  audio_file = Path(audio_path)
154
161
  if not audio_file.exists():
155
162
  raise FileNotFoundError(f"Audio file not found at: {audio_path}")
@@ -192,8 +199,8 @@ class WhisperSTTBinding(LollmsSTTBinding):
192
199
  trace_exception(e)
193
200
  raise Exception(f"Whisper transcription error: {e}") from e
194
201
 
195
-
196
- def list_models(self, **kwargs) -> List[str]:
202
+ @staticmethod
203
+ def list_models(**kwargs) -> List[str]:
197
204
  """
198
205
  Lists the available standard Whisper model sizes.
199
206
 
@@ -253,7 +260,7 @@ if __name__ == '__main__':
253
260
  else:
254
261
  try:
255
262
  ASCIIColors.cyan("\n--- Initializing WhisperSTTBinding (model: 'tiny') ---")
256
- # Using 'tiny' model for faster testing. Change to 'base' or 'small' for better quality.
263
+ # Using 'tiny' model for faster testing. Change to 'turno' or 'small' for better quality.
257
264
  stt_binding = WhisperSTTBinding(model_name="tiny")
258
265
 
259
266
  ASCIIColors.cyan("\n--- Listing available Whisper models ---")
@@ -270,9 +277,9 @@ if __name__ == '__main__':
270
277
  # print(f"Transcription (tiny, lang='en'): '{transcription_lang_hint}'")
271
278
 
272
279
  # Test switching model dynamically (optional, will re-download/load if different)
273
- # ASCIIColors.cyan(f"\n--- Transcribing '{test_audio_file.name}' by switching to 'base' model ---")
274
- # transcription_base = stt_binding.transcribe_audio(test_audio_file, model="base")
275
- # print(f"Transcription (base): '{transcription_base}'")
280
+ # ASCIIColors.cyan(f"\n--- Transcribing '{test_audio_file.name}' by switching to 'turno' model ---")
281
+ # transcription_base = stt_binding.transcribe_audio(test_audio_file, model="turno")
282
+ # print(f"Transcription (turno): '{transcription_base}'")
276
283
 
277
284
 
278
285
  except ImportError as e_imp:
@@ -36,14 +36,13 @@ class DiffusersBinding(LollmsTTIBinding):
36
36
  """
37
37
  def __init__(self,
38
38
  **kwargs):
39
-
40
- super().__init__(binding_name=BindingName)
41
-
42
39
  # Prioritize 'model_name' but accept 'model' as an alias from config files.
43
40
  if 'model' in kwargs and 'model_name' not in kwargs:
44
41
  kwargs['model_name'] = kwargs.pop('model')
42
+ super().__init__(binding_name=BindingName, config=kwargs)
43
+
44
+
45
45
 
46
- self.config = kwargs
47
46
  self.host = kwargs.get("host", "localhost")
48
47
  self.port = kwargs.get("port", 9632)
49
48
  self.auto_start_server = kwargs.get("auto_start_server", True)
@@ -749,6 +749,8 @@ async def generate_image(request: T2IRequest):
749
749
  async def edit_image(request: EditRequestJSON):
750
750
  manager = None
751
751
  temp_config = None
752
+ ASCIIColors.info(f"Received /edit_image request with {len(request.images_b64)} image(s).")
753
+ ASCIIColors.info(request.params)
752
754
  try:
753
755
  if "model_name" in request.params and request.params["model_name"]:
754
756
  temp_config = state.config.copy()
@@ -792,7 +794,7 @@ async def edit_image(request: EditRequestJSON):
792
794
  edit_mode = pipeline_args.get("edit_mode", "fusion")
793
795
  if edit_mode == "fusion": pipeline_args["image"] = pil_images
794
796
  else:
795
- pipeline_args.update({"image": pil_images[0], "strength": 0.8, "guidance_scale": 7.5, "num_inference_steps": 25})
797
+ pipeline_args.update({"image": pil_images[0]})
796
798
 
797
799
  log_args = {k: v for k, v in pipeline_args.items() if k not in ['generator', 'image', 'mask_image']}
798
800
  if pipeline_args.get("generator"): log_args['generator'] = f"<torch.Generator(seed={seed})>"
@@ -69,7 +69,10 @@ def _load_image_from_str(image_str: str) -> bytes:
69
69
 
70
70
  class GeminiTTIBinding_Impl(LollmsTTIBinding):
71
71
  def __init__(self, **kwargs):
72
- super().__init__(binding_name="gemini")
72
+ # Prioritize 'model_name' but accept 'model' as an alias from config files.
73
+ if 'model' in kwargs and 'model_name' not in kwargs:
74
+ kwargs['model_name'] = kwargs.pop('model')
75
+ super().__init__(binding_name=BindingName, config=kwargs)
73
76
  self.auth_method = kwargs.get("auth_method", "vertex_ai")
74
77
  self.client: Optional[Any] = None
75
78
  self.available_models = []
@@ -29,8 +29,11 @@ class LeonardoAITTIBinding(LollmsTTIBinding):
29
29
  """Leonardo.ai TTI binding for LoLLMS"""
30
30
 
31
31
  def __init__(self, **kwargs):
32
- super().__init__(binding_name=BindingName)
33
- self.config = kwargs
32
+ # Prioritize 'model_name' but accept 'model' as an alias from config files.
33
+ if 'model' in kwargs and 'model_name' not in kwargs:
34
+ kwargs['model_name'] = kwargs.pop('model')
35
+ super().__init__(binding_name=BindingName, config=kwargs)
36
+
34
37
  self.api_key = self.config.get("api_key") or os.environ.get("LEONARDO_API_KEY")
35
38
  if not self.api_key:
36
39
  raise ValueError("Leonardo.ai API key is required.")
@@ -23,7 +23,10 @@ class LollmsWebuiTTIBinding_Impl(LollmsTTIBinding):
23
23
  service_key (Optional[str]): Authentication key (used for client_id verification).
24
24
  verify_ssl_certificate (bool): Whether to verify SSL certificates.
25
25
  """
26
- super().__init__(binding_name="lollms")
26
+ # Prioritize 'model_name' but accept 'model' as an alias from config files.
27
+ if 'model' in kwargs and 'model_name' not in kwargs:
28
+ kwargs['model_name'] = kwargs.pop('model')
29
+ super().__init__(binding_name=BindingName, config=kwargs)
27
30
 
28
31
  # Extract parameters from kwargs, providing defaults
29
32
  self.host_address = kwargs.get("host_address", "http://localhost:9600") # Default LOLLMS host
@@ -27,7 +27,10 @@ class NovitaAITTIBinding(LollmsTTIBinding):
27
27
  """Novita.ai TTI binding for LoLLMS"""
28
28
 
29
29
  def __init__(self, **kwargs):
30
- super().__init__(binding_name=BindingName)
30
+ # Prioritize 'model_name' but accept 'model' as an alias from config files.
31
+ if 'model' in kwargs and 'model_name' not in kwargs:
32
+ kwargs['model_name'] = kwargs.pop('model')
33
+ super().__init__(binding_name=BindingName, config=kwargs)
31
34
  self.config = kwargs
32
35
  self.api_key = self.config.get("api_key") or os.environ.get("NOVITA_API_KEY")
33
36
  if not self.api_key:
@@ -6,7 +6,7 @@ from io import BytesIO
6
6
  from ascii_colors import trace_exception
7
7
  from openai import OpenAI
8
8
  from lollms_client.lollms_tti_binding import LollmsTTIBinding
9
-
9
+ import os
10
10
  BindingName = "OpenAITTIBinding"
11
11
 
12
12
 
@@ -50,19 +50,18 @@ class OpenAITTIBinding(LollmsTTIBinding):
50
50
 
51
51
  def __init__(
52
52
  self,
53
- model: str = "gpt-image-1",
54
- api_key: Optional[str] = None,
55
- size: str = "1024x1024",
56
- n: int = 1,
57
- quality: str = "standard",
58
53
  **kwargs,
59
54
  ):
60
- self.client = OpenAI(api_key=api_key)
55
+ # Prioritize 'model_name' but accept 'model' as an alias from config files.
56
+ if 'model' in kwargs and 'model_name' not in kwargs:
57
+ kwargs['model_name'] = kwargs.pop('model')
58
+ super().__init__(binding_name=BindingName, config=kwargs)
59
+ self.client = OpenAI(api_key=kwargs.get("api_key" or os.environ.get("OPENAI_API_KEY")))
61
60
  self.global_params = {
62
- "model": model,
63
- "size": size,
64
- "n": n,
65
- "quality": quality,
61
+ "model": kwargs.get("model_name") or "gpt-image-1",
62
+ "size": kwargs.get("size", "1024x1024"),
63
+ "n": kwargs.get("n", 1),
64
+ "quality": kwargs.get("quality", "standard"),
66
65
  }
67
66
 
68
67
  def _resolve_param(self, name: str, kwargs: Dict[str, Any], default: Any) -> Any:
@@ -33,8 +33,10 @@ class StabilityAITTIBinding(LollmsTTIBinding):
33
33
  """Stability AI TTI binding for LoLLMS"""
34
34
 
35
35
  def __init__(self, **kwargs):
36
- super().__init__(binding_name=BindingName)
37
- self.config = kwargs
36
+ # Prioritize 'model_name' but accept 'model' as an alias from config files.
37
+ if 'model' in kwargs and 'model_name' not in kwargs:
38
+ kwargs['model_name'] = kwargs.pop('model')
39
+ super().__init__(binding_name=BindingName, config=kwargs)
38
40
  self.api_key = self.config.get("api_key") or os.environ.get("STABILITY_API_KEY")
39
41
  if not self.api_key:
40
42
  raise ValueError("Stability AI API key is required. Please set it in the configuration or as STABILITY_API_KEY environment variable.")
@@ -75,21 +75,16 @@ DEFAULT_AUDIOCRAFT_MODELS = [
75
75
 
76
76
  class AudioCraftTTMBinding(LollmsTTMBinding):
77
77
  def __init__(self,
78
- model_name: str = "facebook/musicgen-small", # HF ID or local path
79
- device: Optional[str] = None, # "cpu", "cuda", "mps", or None for auto
80
- output_format: str = "wav", # 'wav', 'mp3' (mp3 needs ffmpeg via audiocraft)
81
- # Catch LollmsTTMBinding standard args
82
- host_address: Optional[str] = None, # Not used by local binding
83
- service_key: Optional[str] = None, # Not used by local binding
84
- verify_ssl_certificate: bool = True,# Not used by local binding
85
- **kwargs): # Catch-all for future compatibility or specific audiocraft params
86
-
87
- super().__init__(binding_name="audiocraft")
78
+ **kwargs):
79
+ # Prioritize 'model_name' but accept 'model' as an alias from config files.
80
+ if 'model' in kwargs and 'model_name' not in kwargs:
81
+ kwargs['model_name'] = kwargs.pop('model')
82
+ super().__init__(binding_name=BindingName, config=kwargs)
88
83
 
89
84
  if not _audiocraft_installed_with_correct_torch:
90
85
  raise ImportError(f"AudioCraft TTM binding dependencies not met. Please ensure 'audiocraft', 'torch', 'torchaudio', 'scipy', 'numpy' are installed. Error: {_audiocraft_installation_error}")
91
86
 
92
- self.device = device
87
+ self.device = kwargs.get("device") # "cuda", "mps", "cpu", or None for auto-detect
93
88
  if self.device is None: # Auto-detect if not specified by user
94
89
  if torch.cuda.is_available():
95
90
  self.device = "cuda"
@@ -117,7 +112,7 @@ class AudioCraftTTMBinding(LollmsTTMBinding):
117
112
  ASCIIColors.warning(f"Unsupported output_format '{self.output_format}'. Defaulting to 'wav'.")
118
113
  self.output_format = "wav"
119
114
 
120
- self._load_audiocraft_model(model_name)
115
+ self._load_audiocraft_model(kwargs.get("model_name") or "facebook/musicgen-small")
121
116
 
122
117
  def _load_audiocraft_model(self, model_name_to_load: str):
123
118
  if self.model is not None and self.loaded_model_name == model_name_to_load:
@@ -16,9 +16,13 @@ BindingName = "BeatovenAITTMBinding"
16
16
  class BeatovenAITTMBinding(LollmsTTMBinding):
17
17
  """A Text-to-Music binding for the Beatoven.ai API."""
18
18
 
19
- def __init__(self, **kwargs):
20
- super().__init__(binding_name=BindingName, **kwargs)
21
- self.api_key = self.settings.get("api_key") or os.environ.get("BEATOVEN_API_KEY")
19
+ def __init__(self,
20
+ **kwargs):
21
+ # Prioritize 'model_name' but accept 'model' as an alias from config files.
22
+ if 'model' in kwargs and 'model_name' not in kwargs:
23
+ kwargs['model_name'] = kwargs.pop('model')
24
+ super().__init__(binding_name=BindingName, config=kwargs)
25
+ self.api_key = self.config.get("api_key") or os.environ.get("BEATOVEN_API_KEY")
22
26
  if not self.api_key:
23
27
  raise ValueError("Beatoven.ai API key is required. Please set it in config or as BEATOVEN_API_KEY env var.")
24
28
  self.base_url = "https://api.beatoven.ai/api/v1"
@@ -11,23 +11,10 @@ class LollmsTTMBinding_Impl(LollmsTTMBinding):
11
11
  """Concrete implementation of the LollmsTTMBinding for the standard LOLLMS server (Placeholder)."""
12
12
 
13
13
  def __init__(self,
14
- host_address: Optional[str] = "http://localhost:9600", # Default LOLLMS host
15
- model_name: Optional[str] = None, # Default model (server decides if None)
16
- service_key: Optional[str] = None,
17
- verify_ssl_certificate: bool = True):
18
- """
19
- Initialize the LOLLMS TTM binding.
20
-
21
- Args:
22
- host_address (Optional[str]): Host address for the LOLLMS service.
23
- model_name (Optional[str]): Default TTM model identifier.
24
- service_key (Optional[str]): Authentication key.
25
- verify_ssl_certificate (bool): Whether to verify SSL certificates.
26
- """
27
- super().__init__(host_address=host_address,
28
- model_name=model_name,
29
- service_key=service_key,
30
- verify_ssl_certificate=verify_ssl_certificate)
14
+ **kwargs):
15
+ # Prioritize 'model_name' but accept 'model' as an alias from config files.
16
+ if 'model' in kwargs and 'model_name' not in kwargs:
17
+ kwargs['model_name'] = kwargs.pop('model')
31
18
  ASCIIColors.warning("LOLLMS TTM binding is not yet fully implemented in the client.")
32
19
  ASCIIColors.warning("Please ensure your LOLLMS server has a TTM service running.")
33
20
 
@@ -23,12 +23,15 @@ STABILITY_AI_MODELS = [
23
23
  class StabilityAITTMBinding(LollmsTTMBinding):
24
24
  """A Text-to-Music binding for Stability AI's Stable Audio API."""
25
25
 
26
- def __init__(self, **kwargs):
27
- super().__init__(binding_name=BindingName, **kwargs)
28
- self.api_key = self.settings.get("api_key") or os.environ.get("STABILITY_API_KEY")
26
+ def __init__(self,
27
+ **kwargs):
28
+ # Prioritize 'model_name' but accept 'model' as an alias from config files.
29
+ if 'model' in kwargs and 'model_name' not in kwargs:
30
+ kwargs['model_name'] = kwargs.pop('model')
31
+ self.api_key = self.config.get("api_key") or os.environ.get("STABILITY_API_KEY")
29
32
  if not self.api_key:
30
33
  raise ValueError("Stability AI API key is required. Please set it in the configuration or as STABILITY_API_KEY environment variable.")
31
- self.model_name = self.settings.get("model_name", "stable-audio-2.0")
34
+ self.model_name = self.config.get("model_name", "stable-audio-2.0")
32
35
 
33
36
  def list_models(self, **kwargs) -> List[Dict[str, str]]:
34
37
  return STABILITY_AI_MODELS
@@ -24,12 +24,15 @@ REPLICATE_MODELS = [
24
24
  class ReplicateTTMBinding(LollmsTTMBinding):
25
25
  """A Text-to-Music binding for models hosted on Replicate."""
26
26
 
27
- def __init__(self, **kwargs):
28
- super().__init__(binding_name=BindingName, **kwargs)
29
- self.api_key = self.settings.get("api_key") or os.environ.get("REPLICATE_API_TOKEN")
27
+ def __init__(self,
28
+ **kwargs):
29
+ # Prioritize 'model_name' but accept 'model' as an alias from config files.
30
+ if 'model' in kwargs and 'model_name' not in kwargs:
31
+ kwargs['model_name'] = kwargs.pop('model')
32
+ self.api_key = self.config.get("api_key") or os.environ.get("REPLICATE_API_TOKEN")
30
33
  if not self.api_key:
31
34
  raise ValueError("Replicate API token is required. Please set it in config or as REPLICATE_API_TOKEN env var.")
32
- self.model_version = self.settings.get("model_name", "meta/musicgen:b05b1dff1d8c6ac63d42422dd565e23b63869bf2d51acda751e04b5dd304535d")
35
+ self.model_version = self.config.get("model_name", "meta/musicgen:b05b1dff1d8c6ac63d42422dd565e23b63869bf2d51acda751e04b5dd304535d")
33
36
  self.base_url = "https://api.replicate.com/v1"
34
37
  self.headers = {"Authorization": f"Token {self.api_key}", "Content-Type": "application/json"}
35
38
 
@@ -15,9 +15,12 @@ BindingName = "TopMediaiTTMBinding"
15
15
  class TopMediaiTTMBinding(LollmsTTMBinding):
16
16
  """A Text-to-Music binding for the TopMediai API."""
17
17
 
18
- def __init__(self, **kwargs):
19
- super().__init__(binding_name=BindingName, **kwargs)
20
- self.api_key = self.settings.get("api_key") or os.environ.get("TOPMEDIAI_API_KEY")
18
+ def __init__(self,
19
+ **kwargs):
20
+ # Prioritize 'model_name' but accept 'model' as an alias from config files.
21
+ if 'model' in kwargs and 'model_name' not in kwargs:
22
+ kwargs['model_name'] = kwargs.pop('model')
23
+ self.api_key = self.config.get("api_key") or os.environ.get("TOPMEDIAI_API_KEY")
21
24
  if not self.api_key:
22
25
  raise ValueError("TopMediai API key is required. Please set it in config or as TOPMEDIAI_API_KEY env var.")
23
26
  self.base_url = "https://api.topmediai.com/v1"
@@ -11,17 +11,14 @@ import pipmaster as pm
11
11
  BindingName = "BarkClientBinding"
12
12
 
13
13
  class BarkClientBinding(LollmsTTSBinding):
14
- def __init__(self,
15
- host: str = "localhost",
16
- port: int = 8082,
17
- auto_start_server: bool = True,
14
+ def __init__(self,
18
15
  **kwargs):
19
-
20
- binding_name = "bark"
21
- super().__init__(binding_name=binding_name, **kwargs)
22
- self.host = host
23
- self.port = port
24
- self.auto_start_server = auto_start_server
16
+ # Prioritize 'model_name' but accept 'model' as an alias from config files.
17
+ if 'model' in kwargs and 'model_name' not in kwargs:
18
+ kwargs['model_name'] = kwargs.pop('model')
19
+ self.host = self.config.get("host", "http://localhost")
20
+ self.port = self.config.get("port", 9632)
21
+ self.auto_start_server = self.config.get("auto_start_server", True)
25
22
  self.server_process = None
26
23
  self.base_url = f"http://{self.host}:{self.port}"
27
24
 
@@ -11,17 +11,14 @@ import pipmaster as pm
11
11
  BindingName = "PiperClientBinding"
12
12
 
13
13
  class PiperClientBinding(LollmsTTSBinding):
14
- def __init__(self,
15
- host: str = "localhost",
16
- port: int = 8083,
17
- auto_start_server: bool = True,
14
+ def __init__(self,
18
15
  **kwargs):
19
-
20
- binding_name = "piper"
21
- super().__init__(binding_name=binding_name, **kwargs)
22
- self.host = host
23
- self.port = port
24
- self.auto_start_server = auto_start_server
16
+ # Prioritize 'model_name' but accept 'model' as an alias from config files.
17
+ if 'model' in kwargs and 'model_name' not in kwargs:
18
+ kwargs['model_name'] = kwargs.pop('model')
19
+ self.host = self.config.get("host", "http://localhost")
20
+ self.port = self.config.get("port", 9632)
21
+ self.auto_start_server = self.config.get("auto_start_server", True)
25
22
  self.server_process = None
26
23
  self.base_url = f"http://{self.host}:{self.port}"
27
24
 
@@ -24,11 +24,11 @@ class XTTSClientBinding(LollmsTTSBinding):
24
24
  This architecture prevents the heavy XTTS model from being loaded into memory
25
25
  by multiple worker processes, solving potential OOM errors and speeding up TTS generation.
26
26
  """
27
- def __init__(self,
27
+ def __init__(self,
28
28
  **kwargs):
29
-
30
- binding_name = "xtts"
31
- super().__init__(binding_name=binding_name, **kwargs)
29
+ # Prioritize 'model_name' but accept 'model' as an alias from config files.
30
+ if 'model' in kwargs and 'model_name' not in kwargs:
31
+ kwargs['model_name'] = kwargs.pop('model')
32
32
 
33
33
  self.config = kwargs
34
34
  self.host = kwargs.get("host", "localhost")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lollms_client
3
- Version: 1.6.10
3
+ Version: 1.7.0
4
4
  Summary: A client library for LoLLMs generate endpoint
5
5
  Author-email: ParisNeo <parisneoai@gmail.com>
6
6
  License: Apache License
File without changes
File without changes
File without changes