together 1.5.17__py3-none-any.whl → 2.0.0a8__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 (205) hide show
  1. together/__init__.py +101 -63
  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 +108 -75
  30. together/lib/cli/api/evals.py +588 -0
  31. together/{cli → lib/cli}/api/files.py +20 -17
  32. together/{cli/api/finetune.py → lib/cli/api/fine_tuning.py} +161 -120
  33. together/lib/cli/api/models.py +140 -0
  34. together/{cli → lib/cli}/api/utils.py +6 -7
  35. together/{cli → lib/cli}/cli.py +16 -24
  36. together/{constants.py → lib/constants.py} +17 -12
  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 +455 -0
  44. together/{utils → lib/utils}/__init__.py +6 -14
  45. together/{utils → lib/utils}/_log.py +11 -16
  46. together/lib/utils/files.py +628 -0
  47. together/lib/utils/serializer.py +10 -0
  48. together/{utils → lib/utils}/tools.py +19 -55
  49. together/resources/__init__.py +225 -33
  50. together/resources/audio/__init__.py +72 -21
  51. together/resources/audio/audio.py +198 -0
  52. together/resources/audio/speech.py +574 -122
  53. together/resources/audio/transcriptions.py +282 -0
  54. together/resources/audio/translations.py +256 -0
  55. together/resources/audio/voices.py +135 -0
  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 +598 -395
  66. together/resources/evals.py +452 -0
  67. together/resources/files.py +398 -121
  68. together/resources/fine_tuning.py +1033 -0
  69. together/resources/hardware.py +181 -0
  70. together/resources/images.py +256 -108
  71. together/resources/jobs.py +214 -0
  72. together/resources/models.py +238 -90
  73. together/resources/rerank.py +190 -92
  74. together/resources/videos.py +374 -0
  75. together/types/__init__.py +65 -109
  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_job.py +57 -0
  157. together-2.0.0a8.dist-info/METADATA +680 -0
  158. together-2.0.0a8.dist-info/RECORD +164 -0
  159. {together-1.5.17.dist-info → together-2.0.0a8.dist-info}/WHEEL +1 -1
  160. together-2.0.0a8.dist-info/entry_points.txt +2 -0
  161. {together-1.5.17.dist-info → together-2.0.0a8.dist-info/licenses}/LICENSE +1 -1
  162. together/abstract/api_requestor.py +0 -729
  163. together/cli/api/chat.py +0 -276
  164. together/cli/api/completions.py +0 -119
  165. together/cli/api/images.py +0 -93
  166. together/cli/api/models.py +0 -55
  167. together/client.py +0 -176
  168. together/error.py +0 -194
  169. together/filemanager.py +0 -389
  170. together/legacy/__init__.py +0 -0
  171. together/legacy/base.py +0 -27
  172. together/legacy/complete.py +0 -93
  173. together/legacy/embeddings.py +0 -27
  174. together/legacy/files.py +0 -146
  175. together/legacy/finetune.py +0 -177
  176. together/legacy/images.py +0 -27
  177. together/legacy/models.py +0 -44
  178. together/resources/batch.py +0 -136
  179. together/resources/code_interpreter.py +0 -82
  180. together/resources/finetune.py +0 -1064
  181. together/together_response.py +0 -50
  182. together/types/abstract.py +0 -26
  183. together/types/audio_speech.py +0 -110
  184. together/types/batch.py +0 -53
  185. together/types/chat_completions.py +0 -197
  186. together/types/code_interpreter.py +0 -57
  187. together/types/common.py +0 -66
  188. together/types/completions.py +0 -107
  189. together/types/embeddings.py +0 -35
  190. together/types/endpoints.py +0 -123
  191. together/types/error.py +0 -16
  192. together/types/files.py +0 -90
  193. together/types/finetune.py +0 -398
  194. together/types/images.py +0 -44
  195. together/types/models.py +0 -45
  196. together/types/rerank.py +0 -43
  197. together/utils/api_helpers.py +0 -124
  198. together/utils/files.py +0 -425
  199. together/version.py +0 -6
  200. together-1.5.17.dist-info/METADATA +0 -525
  201. together-1.5.17.dist-info/RECORD +0 -69
  202. together-1.5.17.dist-info/entry_points.txt +0 -3
  203. /together/{abstract → lib/cli}/__init__.py +0 -0
  204. /together/{cli → lib/cli/api}/__init__.py +0 -0
  205. /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,162 +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
- steps: int | None = 20,
25
- seed: int | None = None,
26
- n: int | None = 1,
27
- height: int | None = 1024,
28
- width: int | None = 1024,
29
- negative_prompt: str | None = None,
30
- **kwargs: Any,
31
- ) -> 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:
32
78
  """
33
- 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.
34
80
 
35
81
  Args:
36
- prompt (str): A description of the desired images. Maximum length varies by model.
82
+ model: The model to use for image generation.
37
83
 
38
- 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)
39
85
 
40
- steps (int, optional): Number of generation steps. Defaults to 20
86
+ prompt: A description of the desired images. Maximum length varies by model.
41
87
 
42
- seed (int, optional): Seed used for generation. Can be used to reproduce image generations.
43
- Defaults to None.
88
+ disable_safety_checker: If true, disables the safety checker for image generation.
44
89
 
45
- n (int, optional): Number of image results to generate. Defaults to 1.
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.
46
93
 
47
- height (int, optional): Height of the image to generate in number of pixels. Defaults to 1024
94
+ height: Height of the image to generate in number of pixels.
48
95
 
49
- width (int, optional): Width of the image to generate in number of pixels. Defaults to 1024
96
+ image_loras: An array of objects that define LoRAs (Low-Rank Adaptations) to influence the
97
+ generated image.
50
98
 
51
- negative_prompt (str, optional): The prompt or prompts not to guide the image generation.
52
- Defaults to None
99
+ image_url: URL of an image to use for image models that support it.
53
100
 
54
- image_base64: (str, optional): Reference image used for generation. Defaults to None.
101
+ n: Number of image results to generate.
55
102
 
56
- Returns:
57
- ImageResponse: Object containing image data
58
- """
103
+ negative_prompt: The prompt or prompts not to guide the image generation.
59
104
 
60
- requestor = api_requestor.APIRequestor(
61
- client=self._client,
62
- )
105
+ output_format: The format of the image response. Can be either be `jpeg` or `png`. Defaults to
106
+ `jpeg`.
107
+
108
+ response_format: Format of the image response. Can be either a base64 string or a URL.
63
109
 
64
- parameter_payload = ImageRequest(
65
- prompt=prompt,
66
- model=model,
67
- steps=steps,
68
- seed=seed,
69
- n=n,
70
- height=height,
71
- width=width,
72
- negative_prompt=negative_prompt,
73
- **kwargs,
74
- ).model_dump(exclude_none=True)
75
-
76
- response, _, _ = requestor.request(
77
- options=TogetherRequest(
78
- method="POST",
79
- url="images/generations",
80
- params=parameter_payload,
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
81
147
  ),
82
- stream=False,
148
+ cast_to=ImageFile,
83
149
  )
84
150
 
85
- assert isinstance(response, TogetherResponse)
86
151
 
87
- 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.
88
158
 
159
+ For more information, see https://www.github.com/togethercomputer/together-py#accessing-raw-response-data-eg-headers
160
+ """
161
+ return AsyncImagesResourceWithRawResponse(self)
89
162
 
90
- class AsyncImages:
91
- def __init__(self, client: TogetherClient) -> None:
92
- 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)
93
171
 
94
172
  async def generate(
95
173
  self,
96
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
+ ],
97
183
  prompt: str,
98
- model: str,
99
- steps: int | None = 20,
100
- seed: int | None = None,
101
- n: int | None = 1,
102
- height: int | None = 1024,
103
- width: int | None = 1024,
104
- negative_prompt: str | None = None,
105
- **kwargs: Any,
106
- ) -> 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:
107
203
  """
108
- 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.
109
205
 
110
206
  Args:
111
- 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.
112
220
 
113
- model (str, optional): The model to use for image generation.
221
+ image_loras: An array of objects that define LoRAs (Low-Rank Adaptations) to influence the
222
+ generated image.
114
223
 
115
- steps (int, optional): Number of generation steps. Defaults to 20
224
+ image_url: URL of an image to use for image models that support it.
116
225
 
117
- seed (int, optional): Seed used for generation. Can be used to reproduce image generations.
118
- Defaults to None.
226
+ n: Number of image results to generate.
119
227
 
120
- 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.
121
229
 
122
- 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`.
123
232
 
124
- 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.
125
234
 
126
- negative_prompt (str, optional): The prompt or prompts not to guide the image generation.
127
- Defaults to None
235
+ seed: Seed used for generation. Can be used to reproduce image generations.
128
236
 
129
- image_base64: (str, optional): Reference image used for generation. Defaults to None.
237
+ steps: Number of generation steps.
130
238
 
131
- Returns:
132
- 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
133
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
134
280
 
135
- requestor = api_requestor.APIRequestor(
136
- client=self._client,
281
+ self.generate = to_raw_response_wrapper(
282
+ images.generate,
137
283
  )
138
284
 
139
- parameter_payload = ImageRequest(
140
- prompt=prompt,
141
- model=model,
142
- steps=steps,
143
- seed=seed,
144
- n=n,
145
- height=height,
146
- width=width,
147
- negative_prompt=negative_prompt,
148
- **kwargs,
149
- ).model_dump(exclude_none=True)
150
-
151
- response, _, _ = await requestor.arequest(
152
- options=TogetherRequest(
153
- method="POST",
154
- url="images/generations",
155
- params=parameter_payload,
156
- ),
157
- 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,
158
292
  )
159
293
 
160
- assert isinstance(response, TogetherResponse)
161
294
 
162
- 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
+ )