together 1.5.35__py3-none-any.whl → 2.0.0a6__py3-none-any.whl

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.
Files changed (208) hide show
  1. together/__init__.py +101 -114
  2. together/_base_client.py +1995 -0
  3. together/_client.py +1033 -0
  4. together/_compat.py +219 -0
  5. together/_constants.py +14 -0
  6. together/_exceptions.py +108 -0
  7. together/_files.py +123 -0
  8. together/_models.py +857 -0
  9. together/_qs.py +150 -0
  10. together/_resource.py +43 -0
  11. together/_response.py +830 -0
  12. together/_streaming.py +370 -0
  13. together/_types.py +260 -0
  14. together/_utils/__init__.py +64 -0
  15. together/_utils/_compat.py +45 -0
  16. together/_utils/_datetime_parse.py +136 -0
  17. together/_utils/_logs.py +25 -0
  18. together/_utils/_proxy.py +65 -0
  19. together/_utils/_reflection.py +42 -0
  20. together/_utils/_resources_proxy.py +24 -0
  21. together/_utils/_streams.py +12 -0
  22. together/_utils/_sync.py +58 -0
  23. together/_utils/_transform.py +457 -0
  24. together/_utils/_typing.py +156 -0
  25. together/_utils/_utils.py +421 -0
  26. together/_version.py +4 -0
  27. together/lib/.keep +4 -0
  28. together/lib/__init__.py +23 -0
  29. together/{cli → lib/cli}/api/endpoints.py +66 -84
  30. together/{cli/api/evaluation.py → lib/cli/api/evals.py} +152 -43
  31. together/{cli → lib/cli}/api/files.py +20 -17
  32. together/{cli/api/finetune.py → lib/cli/api/fine_tuning.py} +116 -172
  33. together/{cli → lib/cli}/api/models.py +34 -27
  34. together/lib/cli/api/utils.py +50 -0
  35. together/{cli → lib/cli}/cli.py +16 -26
  36. together/{constants.py → lib/constants.py} +11 -24
  37. together/lib/resources/__init__.py +11 -0
  38. together/lib/resources/files.py +999 -0
  39. together/lib/resources/fine_tuning.py +280 -0
  40. together/lib/resources/models.py +35 -0
  41. together/lib/types/__init__.py +13 -0
  42. together/lib/types/error.py +9 -0
  43. together/lib/types/fine_tuning.py +397 -0
  44. together/{utils → lib/utils}/__init__.py +6 -14
  45. together/{utils → lib/utils}/_log.py +11 -16
  46. together/{utils → lib/utils}/files.py +90 -288
  47. together/lib/utils/serializer.py +10 -0
  48. together/{utils → lib/utils}/tools.py +19 -55
  49. together/resources/__init__.py +225 -39
  50. together/resources/audio/__init__.py +72 -48
  51. together/resources/audio/audio.py +198 -0
  52. together/resources/audio/speech.py +574 -128
  53. together/resources/audio/transcriptions.py +247 -261
  54. together/resources/audio/translations.py +221 -241
  55. together/resources/audio/voices.py +111 -41
  56. together/resources/batches.py +417 -0
  57. together/resources/chat/__init__.py +30 -21
  58. together/resources/chat/chat.py +102 -0
  59. together/resources/chat/completions.py +1063 -263
  60. together/resources/code_interpreter/__init__.py +33 -0
  61. together/resources/code_interpreter/code_interpreter.py +258 -0
  62. together/resources/code_interpreter/sessions.py +135 -0
  63. together/resources/completions.py +884 -225
  64. together/resources/embeddings.py +172 -68
  65. together/resources/endpoints.py +589 -490
  66. together/resources/evals.py +452 -0
  67. together/resources/files.py +397 -129
  68. together/resources/fine_tuning.py +1033 -0
  69. together/resources/hardware.py +181 -0
  70. together/resources/images.py +258 -104
  71. together/resources/jobs.py +214 -0
  72. together/resources/models.py +223 -193
  73. together/resources/rerank.py +190 -92
  74. together/resources/videos.py +286 -214
  75. together/types/__init__.py +66 -167
  76. together/types/audio/__init__.py +10 -0
  77. together/types/audio/speech_create_params.py +75 -0
  78. together/types/audio/transcription_create_params.py +54 -0
  79. together/types/audio/transcription_create_response.py +111 -0
  80. together/types/audio/translation_create_params.py +40 -0
  81. together/types/audio/translation_create_response.py +70 -0
  82. together/types/audio/voice_list_response.py +23 -0
  83. together/types/audio_speech_stream_chunk.py +16 -0
  84. together/types/autoscaling.py +13 -0
  85. together/types/autoscaling_param.py +15 -0
  86. together/types/batch_create_params.py +24 -0
  87. together/types/batch_create_response.py +14 -0
  88. together/types/batch_job.py +45 -0
  89. together/types/batch_list_response.py +10 -0
  90. together/types/chat/__init__.py +18 -0
  91. together/types/chat/chat_completion.py +60 -0
  92. together/types/chat/chat_completion_chunk.py +61 -0
  93. together/types/chat/chat_completion_structured_message_image_url_param.py +18 -0
  94. together/types/chat/chat_completion_structured_message_text_param.py +13 -0
  95. together/types/chat/chat_completion_structured_message_video_url_param.py +18 -0
  96. together/types/chat/chat_completion_usage.py +13 -0
  97. together/types/chat/chat_completion_warning.py +9 -0
  98. together/types/chat/completion_create_params.py +329 -0
  99. together/types/code_interpreter/__init__.py +5 -0
  100. together/types/code_interpreter/session_list_response.py +31 -0
  101. together/types/code_interpreter_execute_params.py +45 -0
  102. together/types/completion.py +42 -0
  103. together/types/completion_chunk.py +66 -0
  104. together/types/completion_create_params.py +138 -0
  105. together/types/dedicated_endpoint.py +44 -0
  106. together/types/embedding.py +24 -0
  107. together/types/embedding_create_params.py +31 -0
  108. together/types/endpoint_create_params.py +43 -0
  109. together/types/endpoint_list_avzones_response.py +11 -0
  110. together/types/endpoint_list_params.py +18 -0
  111. together/types/endpoint_list_response.py +41 -0
  112. together/types/endpoint_update_params.py +27 -0
  113. together/types/eval_create_params.py +263 -0
  114. together/types/eval_create_response.py +16 -0
  115. together/types/eval_list_params.py +21 -0
  116. together/types/eval_list_response.py +10 -0
  117. together/types/eval_status_response.py +100 -0
  118. together/types/evaluation_job.py +139 -0
  119. together/types/execute_response.py +108 -0
  120. together/types/file_delete_response.py +13 -0
  121. together/types/file_list.py +12 -0
  122. together/types/file_purpose.py +9 -0
  123. together/types/file_response.py +31 -0
  124. together/types/file_type.py +7 -0
  125. together/types/fine_tuning_cancel_response.py +194 -0
  126. together/types/fine_tuning_content_params.py +24 -0
  127. together/types/fine_tuning_delete_params.py +11 -0
  128. together/types/fine_tuning_delete_response.py +12 -0
  129. together/types/fine_tuning_list_checkpoints_response.py +21 -0
  130. together/types/fine_tuning_list_events_response.py +12 -0
  131. together/types/fine_tuning_list_response.py +199 -0
  132. together/types/finetune_event.py +41 -0
  133. together/types/finetune_event_type.py +33 -0
  134. together/types/finetune_response.py +177 -0
  135. together/types/hardware_list_params.py +16 -0
  136. together/types/hardware_list_response.py +58 -0
  137. together/types/image_data_b64.py +15 -0
  138. together/types/image_data_url.py +15 -0
  139. together/types/image_file.py +23 -0
  140. together/types/image_generate_params.py +85 -0
  141. together/types/job_list_response.py +47 -0
  142. together/types/job_retrieve_response.py +43 -0
  143. together/types/log_probs.py +18 -0
  144. together/types/model_list_response.py +10 -0
  145. together/types/model_object.py +42 -0
  146. together/types/model_upload_params.py +36 -0
  147. together/types/model_upload_response.py +23 -0
  148. together/types/rerank_create_params.py +36 -0
  149. together/types/rerank_create_response.py +36 -0
  150. together/types/tool_choice.py +23 -0
  151. together/types/tool_choice_param.py +23 -0
  152. together/types/tools_param.py +23 -0
  153. together/types/training_method_dpo.py +22 -0
  154. together/types/training_method_sft.py +18 -0
  155. together/types/video_create_params.py +86 -0
  156. together/types/video_create_response.py +10 -0
  157. together/types/video_job.py +57 -0
  158. together-2.0.0a6.dist-info/METADATA +729 -0
  159. together-2.0.0a6.dist-info/RECORD +165 -0
  160. {together-1.5.35.dist-info → together-2.0.0a6.dist-info}/WHEEL +1 -1
  161. together-2.0.0a6.dist-info/entry_points.txt +2 -0
  162. {together-1.5.35.dist-info → together-2.0.0a6.dist-info}/licenses/LICENSE +1 -1
  163. together/abstract/api_requestor.py +0 -770
  164. together/cli/api/chat.py +0 -298
  165. together/cli/api/completions.py +0 -119
  166. together/cli/api/images.py +0 -93
  167. together/cli/api/utils.py +0 -139
  168. together/client.py +0 -186
  169. together/error.py +0 -194
  170. together/filemanager.py +0 -635
  171. together/legacy/__init__.py +0 -0
  172. together/legacy/base.py +0 -27
  173. together/legacy/complete.py +0 -93
  174. together/legacy/embeddings.py +0 -27
  175. together/legacy/files.py +0 -146
  176. together/legacy/finetune.py +0 -177
  177. together/legacy/images.py +0 -27
  178. together/legacy/models.py +0 -44
  179. together/resources/batch.py +0 -165
  180. together/resources/code_interpreter.py +0 -82
  181. together/resources/evaluation.py +0 -808
  182. together/resources/finetune.py +0 -1388
  183. together/together_response.py +0 -50
  184. together/types/abstract.py +0 -26
  185. together/types/audio_speech.py +0 -311
  186. together/types/batch.py +0 -54
  187. together/types/chat_completions.py +0 -210
  188. together/types/code_interpreter.py +0 -57
  189. together/types/common.py +0 -67
  190. together/types/completions.py +0 -107
  191. together/types/embeddings.py +0 -35
  192. together/types/endpoints.py +0 -123
  193. together/types/error.py +0 -16
  194. together/types/evaluation.py +0 -93
  195. together/types/files.py +0 -93
  196. together/types/finetune.py +0 -465
  197. together/types/images.py +0 -42
  198. together/types/models.py +0 -96
  199. together/types/rerank.py +0 -43
  200. together/types/videos.py +0 -69
  201. together/utils/api_helpers.py +0 -124
  202. together/version.py +0 -6
  203. together-1.5.35.dist-info/METADATA +0 -583
  204. together-1.5.35.dist-info/RECORD +0 -77
  205. together-1.5.35.dist-info/entry_points.txt +0 -3
  206. /together/{abstract → lib/cli}/__init__.py +0 -0
  207. /together/{cli → lib/cli/api}/__init__.py +0 -0
  208. /together/{cli/api/__init__.py → py.typed} +0 -0
@@ -0,0 +1,181 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ import httpx
6
+
7
+ from ..types import hardware_list_params
8
+ from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
9
+ from .._utils import maybe_transform, async_maybe_transform
10
+ from .._compat import cached_property
11
+ from .._resource import SyncAPIResource, AsyncAPIResource
12
+ from .._response import (
13
+ to_raw_response_wrapper,
14
+ to_streamed_response_wrapper,
15
+ async_to_raw_response_wrapper,
16
+ async_to_streamed_response_wrapper,
17
+ )
18
+ from .._base_client import make_request_options
19
+ from ..types.hardware_list_response import HardwareListResponse
20
+
21
+ __all__ = ["HardwareResource", "AsyncHardwareResource"]
22
+
23
+
24
+ class HardwareResource(SyncAPIResource):
25
+ @cached_property
26
+ def with_raw_response(self) -> HardwareResourceWithRawResponse:
27
+ """
28
+ This property can be used as a prefix for any HTTP method call to return
29
+ the raw response object instead of the parsed content.
30
+
31
+ For more information, see https://www.github.com/togethercomputer/together-py#accessing-raw-response-data-eg-headers
32
+ """
33
+ return HardwareResourceWithRawResponse(self)
34
+
35
+ @cached_property
36
+ def with_streaming_response(self) -> HardwareResourceWithStreamingResponse:
37
+ """
38
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
39
+
40
+ For more information, see https://www.github.com/togethercomputer/together-py#with_streaming_response
41
+ """
42
+ return HardwareResourceWithStreamingResponse(self)
43
+
44
+ def list(
45
+ self,
46
+ *,
47
+ model: str | Omit = omit,
48
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
49
+ # The extra values given here take precedence over values defined on the client or passed to this method.
50
+ extra_headers: Headers | None = None,
51
+ extra_query: Query | None = None,
52
+ extra_body: Body | None = None,
53
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
54
+ ) -> HardwareListResponse:
55
+ """Returns a list of available hardware configurations for deploying models.
56
+
57
+ When a
58
+ model parameter is provided, it returns only hardware configurations compatible
59
+ with that model, including their current availability status.
60
+
61
+ Args:
62
+ model: Filter hardware configurations by model compatibility. When provided, the
63
+ response includes availability status for each compatible configuration.
64
+
65
+ extra_headers: Send extra headers
66
+
67
+ extra_query: Add additional query parameters to the request
68
+
69
+ extra_body: Add additional JSON properties to the request
70
+
71
+ timeout: Override the client-level default timeout for this request, in seconds
72
+ """
73
+ return self._get(
74
+ "/hardware",
75
+ options=make_request_options(
76
+ extra_headers=extra_headers,
77
+ extra_query=extra_query,
78
+ extra_body=extra_body,
79
+ timeout=timeout,
80
+ query=maybe_transform({"model": model}, hardware_list_params.HardwareListParams),
81
+ ),
82
+ cast_to=HardwareListResponse,
83
+ )
84
+
85
+
86
+ class AsyncHardwareResource(AsyncAPIResource):
87
+ @cached_property
88
+ def with_raw_response(self) -> AsyncHardwareResourceWithRawResponse:
89
+ """
90
+ This property can be used as a prefix for any HTTP method call to return
91
+ the raw response object instead of the parsed content.
92
+
93
+ For more information, see https://www.github.com/togethercomputer/together-py#accessing-raw-response-data-eg-headers
94
+ """
95
+ return AsyncHardwareResourceWithRawResponse(self)
96
+
97
+ @cached_property
98
+ def with_streaming_response(self) -> AsyncHardwareResourceWithStreamingResponse:
99
+ """
100
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
101
+
102
+ For more information, see https://www.github.com/togethercomputer/together-py#with_streaming_response
103
+ """
104
+ return AsyncHardwareResourceWithStreamingResponse(self)
105
+
106
+ async def list(
107
+ self,
108
+ *,
109
+ model: str | Omit = omit,
110
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
111
+ # The extra values given here take precedence over values defined on the client or passed to this method.
112
+ extra_headers: Headers | None = None,
113
+ extra_query: Query | None = None,
114
+ extra_body: Body | None = None,
115
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
116
+ ) -> HardwareListResponse:
117
+ """Returns a list of available hardware configurations for deploying models.
118
+
119
+ When a
120
+ model parameter is provided, it returns only hardware configurations compatible
121
+ with that model, including their current availability status.
122
+
123
+ Args:
124
+ model: Filter hardware configurations by model compatibility. When provided, the
125
+ response includes availability status for each compatible configuration.
126
+
127
+ extra_headers: Send extra headers
128
+
129
+ extra_query: Add additional query parameters to the request
130
+
131
+ extra_body: Add additional JSON properties to the request
132
+
133
+ timeout: Override the client-level default timeout for this request, in seconds
134
+ """
135
+ return await self._get(
136
+ "/hardware",
137
+ options=make_request_options(
138
+ extra_headers=extra_headers,
139
+ extra_query=extra_query,
140
+ extra_body=extra_body,
141
+ timeout=timeout,
142
+ query=await async_maybe_transform({"model": model}, hardware_list_params.HardwareListParams),
143
+ ),
144
+ cast_to=HardwareListResponse,
145
+ )
146
+
147
+
148
+ class HardwareResourceWithRawResponse:
149
+ def __init__(self, hardware: HardwareResource) -> None:
150
+ self._hardware = hardware
151
+
152
+ self.list = to_raw_response_wrapper(
153
+ hardware.list,
154
+ )
155
+
156
+
157
+ class AsyncHardwareResourceWithRawResponse:
158
+ def __init__(self, hardware: AsyncHardwareResource) -> None:
159
+ self._hardware = hardware
160
+
161
+ self.list = async_to_raw_response_wrapper(
162
+ hardware.list,
163
+ )
164
+
165
+
166
+ class HardwareResourceWithStreamingResponse:
167
+ def __init__(self, hardware: HardwareResource) -> None:
168
+ self._hardware = hardware
169
+
170
+ self.list = to_streamed_response_wrapper(
171
+ hardware.list,
172
+ )
173
+
174
+
175
+ class AsyncHardwareResourceWithStreamingResponse:
176
+ def __init__(self, hardware: AsyncHardwareResource) -> None:
177
+ self._hardware = hardware
178
+
179
+ self.list = async_to_streamed_response_wrapper(
180
+ hardware.list,
181
+ )
@@ -1,156 +1,310 @@
1
- from __future__ import annotations
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from typing import Any
3
+ from __future__ import annotations
4
4
 
5
- from together.abstract import api_requestor
6
- from together.together_response import TogetherResponse
7
- from together.types import (
8
- ImageRequest,
9
- ImageResponse,
10
- TogetherClient,
11
- TogetherRequest,
5
+ from typing import Union, Iterable
6
+ from typing_extensions import Literal
7
+
8
+ import httpx
9
+
10
+ from ..types import image_generate_params
11
+ from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
12
+ from .._utils import maybe_transform, async_maybe_transform
13
+ from .._compat import cached_property
14
+ from .._resource import SyncAPIResource, AsyncAPIResource
15
+ from .._response import (
16
+ to_raw_response_wrapper,
17
+ to_streamed_response_wrapper,
18
+ async_to_raw_response_wrapper,
19
+ async_to_streamed_response_wrapper,
12
20
  )
21
+ from .._base_client import make_request_options
22
+ from ..types.image_file import ImageFile
13
23
 
24
+ __all__ = ["ImagesResource", "AsyncImagesResource"]
14
25
 
15
- class Images:
16
- def __init__(self, client: TogetherClient) -> None:
17
- self._client = client
26
+
27
+ class ImagesResource(SyncAPIResource):
28
+ @cached_property
29
+ def with_raw_response(self) -> ImagesResourceWithRawResponse:
30
+ """
31
+ This property can be used as a prefix for any HTTP method call to return
32
+ the raw response object instead of the parsed content.
33
+
34
+ For more information, see https://www.github.com/togethercomputer/together-py#accessing-raw-response-data-eg-headers
35
+ """
36
+ return ImagesResourceWithRawResponse(self)
37
+
38
+ @cached_property
39
+ def with_streaming_response(self) -> ImagesResourceWithStreamingResponse:
40
+ """
41
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
42
+
43
+ For more information, see https://www.github.com/togethercomputer/together-py#with_streaming_response
44
+ """
45
+ return ImagesResourceWithStreamingResponse(self)
18
46
 
19
47
  def generate(
20
48
  self,
21
49
  *,
50
+ model: Union[
51
+ Literal[
52
+ "black-forest-labs/FLUX.1-schnell-Free",
53
+ "black-forest-labs/FLUX.1-schnell",
54
+ "black-forest-labs/FLUX.1.1-pro",
55
+ ],
56
+ str,
57
+ ],
22
58
  prompt: str,
23
- model: str,
24
- seed: int | None = None,
25
- n: int | None = 1,
26
- height: int | None = 1024,
27
- width: int | None = 1024,
28
- negative_prompt: str | None = None,
29
- **kwargs: Any,
30
- ) -> ImageResponse:
59
+ disable_safety_checker: bool | Omit = omit,
60
+ guidance_scale: float | Omit = omit,
61
+ height: int | Omit = omit,
62
+ image_loras: Iterable[image_generate_params.ImageLora] | Omit = omit,
63
+ image_url: str | Omit = omit,
64
+ n: int | Omit = omit,
65
+ negative_prompt: str | Omit = omit,
66
+ output_format: Literal["jpeg", "png"] | Omit = omit,
67
+ response_format: Literal["base64", "url"] | Omit = omit,
68
+ seed: int | Omit = omit,
69
+ steps: int | Omit = omit,
70
+ width: int | Omit = omit,
71
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
72
+ # The extra values given here take precedence over values defined on the client or passed to this method.
73
+ extra_headers: Headers | None = None,
74
+ extra_query: Query | None = None,
75
+ extra_body: Body | None = None,
76
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
77
+ ) -> ImageFile:
31
78
  """
32
- Method to generate images based on a given prompt using a specified model.
79
+ Use an image model to generate an image for a given prompt.
33
80
 
34
81
  Args:
35
- prompt (str): A description of the desired images. Maximum length varies by model.
82
+ model: The model to use for image generation.
36
83
 
37
- model (str, optional): The model to use for image generation.
84
+ [See all of Together AI's image models](https://docs.together.ai/docs/serverless-models#image-models)
38
85
 
39
- seed (int, optional): Seed used for generation. Can be used to reproduce image generations.
40
- Defaults to None.
86
+ prompt: A description of the desired images. Maximum length varies by model.
41
87
 
42
- n (int, optional): Number of image results to generate. Defaults to 1.
88
+ disable_safety_checker: If true, disables the safety checker for image generation.
43
89
 
44
- height (int, optional): Height of the image to generate in number of pixels. Defaults to 1024
90
+ guidance_scale: Adjusts the alignment of the generated image with the input prompt. Higher
91
+ values (e.g., 8-10) make the output more faithful to the prompt, while lower
92
+ values (e.g., 1-5) encourage more creative freedom.
45
93
 
46
- width (int, optional): Width of the image to generate in number of pixels. Defaults to 1024
94
+ height: Height of the image to generate in number of pixels.
47
95
 
48
- negative_prompt (str, optional): The prompt or prompts not to guide the image generation.
49
- Defaults to None
96
+ image_loras: An array of objects that define LoRAs (Low-Rank Adaptations) to influence the
97
+ generated image.
50
98
 
51
- **kwargs: Additional parameters like steps (int, optional): Number of generation steps,
52
- image_base64 (str, optional): Reference image used for generation, etc.
99
+ image_url: URL of an image to use for image models that support it.
53
100
 
54
- Returns:
55
- ImageResponse: Object containing image data
56
- """
101
+ n: Number of image results to generate.
57
102
 
58
- requestor = api_requestor.APIRequestor(
59
- client=self._client,
60
- )
103
+ negative_prompt: The prompt or prompts not to guide the image generation.
104
+
105
+ output_format: The format of the image response. Can be either be `jpeg` or `png`. Defaults to
106
+ `jpeg`.
61
107
 
62
- parameter_payload = ImageRequest(
63
- prompt=prompt,
64
- model=model,
65
- seed=seed,
66
- n=n,
67
- height=height,
68
- width=width,
69
- negative_prompt=negative_prompt,
70
- **kwargs,
71
- ).model_dump(exclude_none=True)
72
-
73
- response, _, _ = requestor.request(
74
- options=TogetherRequest(
75
- method="POST",
76
- url="images/generations",
77
- params=parameter_payload,
108
+ response_format: Format of the image response. Can be either a base64 string or a URL.
109
+
110
+ seed: Seed used for generation. Can be used to reproduce image generations.
111
+
112
+ steps: Number of generation steps.
113
+
114
+ width: Width of the image to generate in number of pixels.
115
+
116
+ extra_headers: Send extra headers
117
+
118
+ extra_query: Add additional query parameters to the request
119
+
120
+ extra_body: Add additional JSON properties to the request
121
+
122
+ timeout: Override the client-level default timeout for this request, in seconds
123
+ """
124
+ return self._post(
125
+ "/images/generations",
126
+ body=maybe_transform(
127
+ {
128
+ "model": model,
129
+ "prompt": prompt,
130
+ "disable_safety_checker": disable_safety_checker,
131
+ "guidance_scale": guidance_scale,
132
+ "height": height,
133
+ "image_loras": image_loras,
134
+ "image_url": image_url,
135
+ "n": n,
136
+ "negative_prompt": negative_prompt,
137
+ "output_format": output_format,
138
+ "response_format": response_format,
139
+ "seed": seed,
140
+ "steps": steps,
141
+ "width": width,
142
+ },
143
+ image_generate_params.ImageGenerateParams,
144
+ ),
145
+ options=make_request_options(
146
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
78
147
  ),
79
- stream=False,
148
+ cast_to=ImageFile,
80
149
  )
81
150
 
82
- assert isinstance(response, TogetherResponse)
83
151
 
84
- return ImageResponse(**response.data)
152
+ class AsyncImagesResource(AsyncAPIResource):
153
+ @cached_property
154
+ def with_raw_response(self) -> AsyncImagesResourceWithRawResponse:
155
+ """
156
+ This property can be used as a prefix for any HTTP method call to return
157
+ the raw response object instead of the parsed content.
85
158
 
159
+ For more information, see https://www.github.com/togethercomputer/together-py#accessing-raw-response-data-eg-headers
160
+ """
161
+ return AsyncImagesResourceWithRawResponse(self)
86
162
 
87
- class AsyncImages:
88
- def __init__(self, client: TogetherClient) -> None:
89
- self._client = client
163
+ @cached_property
164
+ def with_streaming_response(self) -> AsyncImagesResourceWithStreamingResponse:
165
+ """
166
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
167
+
168
+ For more information, see https://www.github.com/togethercomputer/together-py#with_streaming_response
169
+ """
170
+ return AsyncImagesResourceWithStreamingResponse(self)
90
171
 
91
172
  async def generate(
92
173
  self,
93
174
  *,
175
+ model: Union[
176
+ Literal[
177
+ "black-forest-labs/FLUX.1-schnell-Free",
178
+ "black-forest-labs/FLUX.1-schnell",
179
+ "black-forest-labs/FLUX.1.1-pro",
180
+ ],
181
+ str,
182
+ ],
94
183
  prompt: str,
95
- model: str,
96
- seed: int | None = None,
97
- n: int | None = 1,
98
- height: int | None = 1024,
99
- width: int | None = 1024,
100
- negative_prompt: str | None = None,
101
- **kwargs: Any,
102
- ) -> ImageResponse:
184
+ disable_safety_checker: bool | Omit = omit,
185
+ guidance_scale: float | Omit = omit,
186
+ height: int | Omit = omit,
187
+ image_loras: Iterable[image_generate_params.ImageLora] | Omit = omit,
188
+ image_url: str | Omit = omit,
189
+ n: int | Omit = omit,
190
+ negative_prompt: str | Omit = omit,
191
+ output_format: Literal["jpeg", "png"] | Omit = omit,
192
+ response_format: Literal["base64", "url"] | Omit = omit,
193
+ seed: int | Omit = omit,
194
+ steps: int | Omit = omit,
195
+ width: int | Omit = omit,
196
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
197
+ # The extra values given here take precedence over values defined on the client or passed to this method.
198
+ extra_headers: Headers | None = None,
199
+ extra_query: Query | None = None,
200
+ extra_body: Body | None = None,
201
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
202
+ ) -> ImageFile:
103
203
  """
104
- Async method to generate images based on a given prompt using a specified model.
204
+ Use an image model to generate an image for a given prompt.
105
205
 
106
206
  Args:
107
- prompt (str): A description of the desired images. Maximum length varies by model.
207
+ model: The model to use for image generation.
208
+
209
+ [See all of Together AI's image models](https://docs.together.ai/docs/serverless-models#image-models)
210
+
211
+ prompt: A description of the desired images. Maximum length varies by model.
212
+
213
+ disable_safety_checker: If true, disables the safety checker for image generation.
214
+
215
+ guidance_scale: Adjusts the alignment of the generated image with the input prompt. Higher
216
+ values (e.g., 8-10) make the output more faithful to the prompt, while lower
217
+ values (e.g., 1-5) encourage more creative freedom.
218
+
219
+ height: Height of the image to generate in number of pixels.
220
+
221
+ image_loras: An array of objects that define LoRAs (Low-Rank Adaptations) to influence the
222
+ generated image.
108
223
 
109
- model (str, optional): The model to use for image generation.
224
+ image_url: URL of an image to use for image models that support it.
110
225
 
111
- seed (int, optional): Seed used for generation. Can be used to reproduce image generations.
112
- Defaults to None.
226
+ n: Number of image results to generate.
113
227
 
114
- n (int, optional): Number of image results to generate. Defaults to 1.
228
+ negative_prompt: The prompt or prompts not to guide the image generation.
115
229
 
116
- height (int, optional): Height of the image to generate in number of pixels. Defaults to 1024
230
+ output_format: The format of the image response. Can be either be `jpeg` or `png`. Defaults to
231
+ `jpeg`.
117
232
 
118
- width (int, optional): Width of the image to generate in number of pixels. Defaults to 1024
233
+ response_format: Format of the image response. Can be either a base64 string or a URL.
119
234
 
120
- negative_prompt (str, optional): The prompt or prompts not to guide the image generation.
121
- Defaults to None
235
+ seed: Seed used for generation. Can be used to reproduce image generations.
122
236
 
123
- **kwargs: Additional parameters like steps (int, optional): Number of generation steps,
124
- image_base64 (str, optional): Reference image used for generation, etc.
237
+ steps: Number of generation steps.
125
238
 
126
- Returns:
127
- ImageResponse: Object containing image data
239
+ width: Width of the image to generate in number of pixels.
240
+
241
+ extra_headers: Send extra headers
242
+
243
+ extra_query: Add additional query parameters to the request
244
+
245
+ extra_body: Add additional JSON properties to the request
246
+
247
+ timeout: Override the client-level default timeout for this request, in seconds
128
248
  """
249
+ return await self._post(
250
+ "/images/generations",
251
+ body=await async_maybe_transform(
252
+ {
253
+ "model": model,
254
+ "prompt": prompt,
255
+ "disable_safety_checker": disable_safety_checker,
256
+ "guidance_scale": guidance_scale,
257
+ "height": height,
258
+ "image_loras": image_loras,
259
+ "image_url": image_url,
260
+ "n": n,
261
+ "negative_prompt": negative_prompt,
262
+ "output_format": output_format,
263
+ "response_format": response_format,
264
+ "seed": seed,
265
+ "steps": steps,
266
+ "width": width,
267
+ },
268
+ image_generate_params.ImageGenerateParams,
269
+ ),
270
+ options=make_request_options(
271
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
272
+ ),
273
+ cast_to=ImageFile,
274
+ )
275
+
276
+
277
+ class ImagesResourceWithRawResponse:
278
+ def __init__(self, images: ImagesResource) -> None:
279
+ self._images = images
129
280
 
130
- requestor = api_requestor.APIRequestor(
131
- client=self._client,
281
+ self.generate = to_raw_response_wrapper(
282
+ images.generate,
132
283
  )
133
284
 
134
- parameter_payload = ImageRequest(
135
- prompt=prompt,
136
- model=model,
137
- seed=seed,
138
- n=n,
139
- height=height,
140
- width=width,
141
- negative_prompt=negative_prompt,
142
- **kwargs,
143
- ).model_dump(exclude_none=True)
144
-
145
- response, _, _ = await requestor.arequest(
146
- options=TogetherRequest(
147
- method="POST",
148
- url="images/generations",
149
- params=parameter_payload,
150
- ),
151
- stream=False,
285
+
286
+ class AsyncImagesResourceWithRawResponse:
287
+ def __init__(self, images: AsyncImagesResource) -> None:
288
+ self._images = images
289
+
290
+ self.generate = async_to_raw_response_wrapper(
291
+ images.generate,
152
292
  )
153
293
 
154
- assert isinstance(response, TogetherResponse)
155
294
 
156
- return ImageResponse(**response.data)
295
+ class ImagesResourceWithStreamingResponse:
296
+ def __init__(self, images: ImagesResource) -> None:
297
+ self._images = images
298
+
299
+ self.generate = to_streamed_response_wrapper(
300
+ images.generate,
301
+ )
302
+
303
+
304
+ class AsyncImagesResourceWithStreamingResponse:
305
+ def __init__(self, images: AsyncImagesResource) -> None:
306
+ self._images = images
307
+
308
+ self.generate = async_to_streamed_response_wrapper(
309
+ images.generate,
310
+ )