together 1.5.35__py3-none-any.whl → 2.0.0a7__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.0a7.dist-info/METADATA +730 -0
  159. together-2.0.0a7.dist-info/RECORD +165 -0
  160. {together-1.5.35.dist-info → together-2.0.0a7.dist-info}/WHEEL +1 -1
  161. together-2.0.0a7.dist-info/entry_points.txt +2 -0
  162. {together-1.5.35.dist-info → together-2.0.0a7.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
@@ -1,303 +1,375 @@
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, Dict, List
4
- import sys
3
+ from __future__ import annotations
5
4
 
6
- from together.abstract import api_requestor
7
- from together.together_response import TogetherResponse
8
- from together.types import (
9
- TogetherClient,
10
- TogetherRequest,
11
- )
12
- from together.types.videos import (
13
- CreateVideoResponse,
14
- CreateVideoBody,
15
- VideoJob,
5
+ from typing import Iterable
6
+ from typing_extensions import Literal
7
+
8
+ import httpx
9
+
10
+ from ..types import video_create_params
11
+ from .._types import Body, Omit, Query, Headers, NotGiven, SequenceNotStr, 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,
16
20
  )
21
+ from .._base_client import make_request_options
22
+ from ..types.video_job import VideoJob
23
+ from ..types.video_create_response import VideoCreateResponse
24
+
25
+ __all__ = ["VideosResource", "AsyncVideosResource"]
26
+
27
+
28
+ class VideosResource(SyncAPIResource):
29
+ @cached_property
30
+ def with_raw_response(self) -> VideosResourceWithRawResponse:
31
+ """
32
+ This property can be used as a prefix for any HTTP method call to return
33
+ the raw response object instead of the parsed content.
17
34
 
18
- if sys.version_info >= (3, 8):
19
- from typing import Literal
20
- else:
21
- from typing_extensions import Literal
35
+ For more information, see https://www.github.com/togethercomputer/together-py#accessing-raw-response-data-eg-headers
36
+ """
37
+ return VideosResourceWithRawResponse(self)
22
38
 
39
+ @cached_property
40
+ def with_streaming_response(self) -> VideosResourceWithStreamingResponse:
41
+ """
42
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
23
43
 
24
- class Videos:
25
- def __init__(self, client: TogetherClient) -> None:
26
- self._client = client
44
+ For more information, see https://www.github.com/togethercomputer/together-py#with_streaming_response
45
+ """
46
+ return VideosResourceWithStreamingResponse(self)
27
47
 
28
48
  def create(
29
49
  self,
30
50
  *,
31
51
  model: str,
32
- prompt: str | None = None,
33
- height: int | None = None,
34
- width: int | None = None,
35
- seconds: str | None = None,
36
- fps: int | None = None,
37
- steps: int | None = None,
38
- seed: int | None = None,
39
- guidance_scale: float | None = None,
40
- output_format: Literal["MP4", "WEBM"] | None = None,
41
- output_quality: int | None = None,
42
- negative_prompt: str | None = None,
43
- frame_images: List[Dict[str, Any]] | None = None,
44
- reference_images: List[str] | None = None,
45
- **kwargs: Any,
46
- ) -> CreateVideoResponse:
52
+ fps: int | Omit = omit,
53
+ frame_images: Iterable[video_create_params.FrameImage] | Omit = omit,
54
+ guidance_scale: int | Omit = omit,
55
+ height: int | Omit = omit,
56
+ negative_prompt: str | Omit = omit,
57
+ output_format: Literal["MP4", "WEBM"] | Omit = omit,
58
+ output_quality: int | Omit = omit,
59
+ prompt: str | Omit = omit,
60
+ reference_images: SequenceNotStr[str] | Omit = omit,
61
+ seconds: str | Omit = omit,
62
+ seed: int | Omit = omit,
63
+ steps: int | Omit = omit,
64
+ width: int | Omit = omit,
65
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
66
+ # The extra values given here take precedence over values defined on the client or passed to this method.
67
+ extra_headers: Headers | None = None,
68
+ extra_query: Query | None = None,
69
+ extra_body: Body | None = None,
70
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
71
+ ) -> VideoCreateResponse:
47
72
  """
48
- Method to generate videos based on a given prompt using a specified model.
73
+ Create a video
49
74
 
50
75
  Args:
51
- model (str): The model to use for video generation.
76
+ model: The model to be used for the video creation request.
52
77
 
53
- prompt (str): A description of the desired video. Positive prompt for the generation.
78
+ fps: Frames per second. Defaults to 24.
54
79
 
55
- height (int, optional): Height of the video to generate in pixels.
80
+ frame_images: Array of images to guide video generation, similar to keyframes.
56
81
 
57
- width (int, optional): Width of the video to generate in pixels.
82
+ guidance_scale: Controls how closely the video generation follows your prompt. Higher values
83
+ make the model adhere more strictly to your text description, while lower values
84
+ allow more creative freedom. guidence_scale affects both visual content and
85
+ temporal consistency.Recommended range is 6.0-10.0 for most video models. Values
86
+ above 12 may cause over-guidance artifacts or unnatural motion patterns.
58
87
 
59
- seconds (str, optional): Length of generated video in seconds. Min 1 max 10.
88
+ negative_prompt: Similar to prompt, but specifies what to avoid instead of what to include
60
89
 
61
- fps (int, optional): Frames per second, min 15 max 60. Defaults to 24.
90
+ output_format: Specifies the format of the output video. Defaults to MP4.
62
91
 
63
- steps (int, optional): The number of denoising steps the model performs during video
64
- generation. More steps typically result in higher quality output but require longer
65
- processing time. Min 10 max 50. Defaults to 20.
92
+ output_quality: Compression quality. Defaults to 20.
66
93
 
67
- seed (int, optional): Seed to use in initializing the video generation. Using the same
68
- seed allows deterministic video generation. If not provided, a random seed is
69
- generated for each request. Note: When requesting multiple videos with the same
70
- seed, the seed will be incremented by 1 (+1) for each video generated.
94
+ prompt: Text prompt that describes the video to generate.
71
95
 
72
- guidance_scale (float, optional): Controls how closely the video generation follows your
73
- prompt. Higher values make the model adhere more strictly to your text description,
74
- while lower values allow more creative freedom. Recommended range is 6.0-10.0 for
75
- most video models. Values above 12 may cause over-guidance artifacts or unnatural
76
- motion patterns. Defaults to 8.
96
+ reference_images: Unlike frame_images which constrain specific timeline positions, reference
97
+ images guide the general appearance that should appear consistently across the
98
+ video.
77
99
 
78
- output_format (str, optional): Specifies the format of the output video. Either "MP4"
79
- or "WEBM". Defaults to "MP4".
100
+ seconds: Clip duration in seconds.
80
101
 
81
- output_quality (int, optional): Compression quality. Defaults to 20.
102
+ seed: Seed to use in initializing the video generation. Using the same seed allows
103
+ deterministic video generation. If not provided a random seed is generated for
104
+ each request.
82
105
 
83
- negative_prompt (str, optional): Similar to prompt, but specifies what to avoid instead
84
- of what to include. Defaults to None.
106
+ steps: The number of denoising steps the model performs during video generation. More
107
+ steps typically result in higher quality output but require longer processing
108
+ time.
85
109
 
86
- frame_images (List[Dict[str, Any]], optional): Array of images to guide video generation,
87
- like keyframes. If size 1, starting frame; if size 2, starting and ending frame;
88
- if more than 2 then frame must be specified. Defaults to None.
110
+ extra_headers: Send extra headers
89
111
 
90
- reference_images (List[str], optional): An array containing reference images
91
- used to condition the generation process. These images provide visual guidance to
92
- help the model generate content that aligns with the style, composition, or
93
- characteristics of the reference materials. Defaults to None.
112
+ extra_query: Add additional query parameters to the request
94
113
 
95
- Returns:
96
- CreateVideoResponse: Object containing video generation job id
97
- """
114
+ extra_body: Add additional JSON properties to the request
98
115
 
99
- requestor = api_requestor.APIRequestor(
100
- client=self._client,
101
- )
102
-
103
- parameter_payload = CreateVideoBody(
104
- prompt=prompt,
105
- model=model,
106
- height=height,
107
- width=width,
108
- seconds=seconds,
109
- fps=fps,
110
- steps=steps,
111
- seed=seed,
112
- guidance_scale=guidance_scale,
113
- output_format=output_format,
114
- output_quality=output_quality,
115
- negative_prompt=negative_prompt,
116
- frame_images=frame_images,
117
- reference_images=reference_images,
118
- **kwargs,
119
- ).model_dump(exclude_none=True)
120
-
121
- response, _, _ = requestor.request(
122
- options=TogetherRequest(
123
- method="POST",
124
- url="../v2/videos",
125
- params=parameter_payload,
116
+ timeout: Override the client-level default timeout for this request, in seconds
117
+ """
118
+ return self._post(
119
+ "/videos" if self._client._base_url_overridden else "https://api.together.xyz/v2/videos",
120
+ body=maybe_transform(
121
+ {
122
+ "model": model,
123
+ "fps": fps,
124
+ "frame_images": frame_images,
125
+ "guidance_scale": guidance_scale,
126
+ "height": height,
127
+ "negative_prompt": negative_prompt,
128
+ "output_format": output_format,
129
+ "output_quality": output_quality,
130
+ "prompt": prompt,
131
+ "reference_images": reference_images,
132
+ "seconds": seconds,
133
+ "seed": seed,
134
+ "steps": steps,
135
+ "width": width,
136
+ },
137
+ video_create_params.VideoCreateParams,
126
138
  ),
127
- stream=False,
139
+ options=make_request_options(
140
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
141
+ ),
142
+ cast_to=VideoCreateResponse,
128
143
  )
129
144
 
130
- assert isinstance(response, TogetherResponse)
131
-
132
- return CreateVideoResponse(**response.data)
133
-
134
145
  def retrieve(
135
146
  self,
136
147
  id: str,
148
+ *,
149
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
150
+ # The extra values given here take precedence over values defined on the client or passed to this method.
151
+ extra_headers: Headers | None = None,
152
+ extra_query: Query | None = None,
153
+ extra_body: Body | None = None,
154
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
137
155
  ) -> VideoJob:
138
156
  """
139
- Method to retrieve a video creation job.
157
+ Fetch video metadata
140
158
 
141
159
  Args:
142
- id (str): The ID of the video creation job to retrieve.
160
+ extra_headers: Send extra headers
143
161
 
144
- Returns:
145
- VideoJob: Object containing the current status and details of the video creation job
146
- """
162
+ extra_query: Add additional query parameters to the request
147
163
 
148
- requestor = api_requestor.APIRequestor(
149
- client=self._client,
150
- )
164
+ extra_body: Add additional JSON properties to the request
151
165
 
152
- response, _, _ = requestor.request(
153
- options=TogetherRequest(
154
- method="GET",
155
- url=f"../v2/videos/{id}",
166
+ timeout: Override the client-level default timeout for this request, in seconds
167
+ """
168
+ if not id:
169
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
170
+ return self._get(
171
+ f"/videos/{id}" if self._client._base_url_overridden else f"https://api.together.xyz/v2/videos/{id}",
172
+ options=make_request_options(
173
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
156
174
  ),
157
- stream=False,
175
+ cast_to=VideoJob,
158
176
  )
159
177
 
160
- assert isinstance(response, TogetherResponse)
161
178
 
162
- return VideoJob(**response.data)
179
+ class AsyncVideosResource(AsyncAPIResource):
180
+ @cached_property
181
+ def with_raw_response(self) -> AsyncVideosResourceWithRawResponse:
182
+ """
183
+ This property can be used as a prefix for any HTTP method call to return
184
+ the raw response object instead of the parsed content.
185
+
186
+ For more information, see https://www.github.com/togethercomputer/together-py#accessing-raw-response-data-eg-headers
187
+ """
188
+ return AsyncVideosResourceWithRawResponse(self)
163
189
 
190
+ @cached_property
191
+ def with_streaming_response(self) -> AsyncVideosResourceWithStreamingResponse:
192
+ """
193
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
164
194
 
165
- class AsyncVideos:
166
- def __init__(self, client: TogetherClient) -> None:
167
- self._client = client
195
+ For more information, see https://www.github.com/togethercomputer/together-py#with_streaming_response
196
+ """
197
+ return AsyncVideosResourceWithStreamingResponse(self)
168
198
 
169
199
  async def create(
170
200
  self,
171
201
  *,
172
- prompt: str,
173
202
  model: str,
174
- height: int | None = None,
175
- width: int | None = None,
176
- seconds: float | None = None,
177
- fps: int | None = None,
178
- steps: int | None = None,
179
- seed: int | None = None,
180
- guidance_scale: float | None = None,
181
- output_format: Literal["MP4", "WEBM"] | None = None,
182
- output_quality: int | None = None,
183
- negative_prompt: str | None = None,
184
- frame_images: List[Dict[str, Any]] | None = None,
185
- reference_images: List[str] | None = None,
186
- **kwargs: Any,
187
- ) -> CreateVideoResponse:
203
+ fps: int | Omit = omit,
204
+ frame_images: Iterable[video_create_params.FrameImage] | Omit = omit,
205
+ guidance_scale: int | Omit = omit,
206
+ height: int | Omit = omit,
207
+ negative_prompt: str | Omit = omit,
208
+ output_format: Literal["MP4", "WEBM"] | Omit = omit,
209
+ output_quality: int | Omit = omit,
210
+ prompt: str | Omit = omit,
211
+ reference_images: SequenceNotStr[str] | Omit = omit,
212
+ seconds: str | Omit = omit,
213
+ seed: int | Omit = omit,
214
+ steps: int | Omit = omit,
215
+ width: int | Omit = omit,
216
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
217
+ # The extra values given here take precedence over values defined on the client or passed to this method.
218
+ extra_headers: Headers | None = None,
219
+ extra_query: Query | None = None,
220
+ extra_body: Body | None = None,
221
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
222
+ ) -> VideoCreateResponse:
188
223
  """
189
- Async method to create videos based on a given prompt using a specified model.
224
+ Create a video
190
225
 
191
226
  Args:
192
- prompt (str): A description of the desired video. Positive prompt for the generation.
227
+ model: The model to be used for the video creation request.
193
228
 
194
- model (str): The model to use for video generation.
229
+ fps: Frames per second. Defaults to 24.
195
230
 
196
- height (int, optional): Height of the video to generate in pixels.
231
+ frame_images: Array of images to guide video generation, similar to keyframes.
197
232
 
198
- width (int, optional): Width of the video to generate in pixels.
233
+ guidance_scale: Controls how closely the video generation follows your prompt. Higher values
234
+ make the model adhere more strictly to your text description, while lower values
235
+ allow more creative freedom. guidence_scale affects both visual content and
236
+ temporal consistency.Recommended range is 6.0-10.0 for most video models. Values
237
+ above 12 may cause over-guidance artifacts or unnatural motion patterns.
199
238
 
200
- seconds (float, optional): Length of generated video in seconds. Min 1 max 10.
239
+ negative_prompt: Similar to prompt, but specifies what to avoid instead of what to include
201
240
 
202
- fps (int, optional): Frames per second, min 15 max 60. Defaults to 24.
241
+ output_format: Specifies the format of the output video. Defaults to MP4.
203
242
 
204
- steps (int, optional): The number of denoising steps the model performs during video
205
- generation. More steps typically result in higher quality output but require longer
206
- processing time. Min 10 max 50. Defaults to 20.
243
+ output_quality: Compression quality. Defaults to 20.
207
244
 
208
- seed (int, optional): Seed to use in initializing the video generation. Using the same
209
- seed allows deterministic video generation. If not provided, a random seed is
210
- generated for each request. Note: When requesting multiple videos with the same
211
- seed, the seed will be incremented by 1 (+1) for each video generated.
245
+ prompt: Text prompt that describes the video to generate.
212
246
 
213
- guidance_scale (float, optional): Controls how closely the video generation follows your
214
- prompt. Higher values make the model adhere more strictly to your text description,
215
- while lower values allow more creative freedom. Recommended range is 6.0-10.0 for
216
- most video models. Values above 12 may cause over-guidance artifacts or unnatural
217
- motion patterns. Defaults to 8.
247
+ reference_images: Unlike frame_images which constrain specific timeline positions, reference
248
+ images guide the general appearance that should appear consistently across the
249
+ video.
218
250
 
219
- output_format (Literal["MP4", "WEBM"], optional): Specifies the format of the output video. Either "MP4"
220
- or "WEBM". Defaults to "MP4".
251
+ seconds: Clip duration in seconds.
221
252
 
222
- output_quality (int, optional): Compression quality. Defaults to 20.
253
+ seed: Seed to use in initializing the video generation. Using the same seed allows
254
+ deterministic video generation. If not provided a random seed is generated for
255
+ each request.
223
256
 
224
- negative_prompt (str, optional): Similar to prompt, but specifies what to avoid instead
225
- of what to include. Defaults to None.
257
+ steps: The number of denoising steps the model performs during video generation. More
258
+ steps typically result in higher quality output but require longer processing
259
+ time.
226
260
 
227
- frame_images (List[Dict[str, Any]], optional): Array of images to guide video generation,
228
- like keyframes. If size 1, starting frame; if size 2, starting and ending frame;
229
- if more than 2 then frame must be specified. Defaults to None.
261
+ extra_headers: Send extra headers
230
262
 
231
- reference_images (List[str], optional): An array containing reference images
232
- used to condition the generation process. These images provide visual guidance to
233
- help the model generate content that aligns with the style, composition, or
234
- characteristics of the reference materials. Defaults to None.
263
+ extra_query: Add additional query parameters to the request
235
264
 
236
- Returns:
237
- CreateVideoResponse: Object containing video creation job id
238
- """
265
+ extra_body: Add additional JSON properties to the request
239
266
 
240
- requestor = api_requestor.APIRequestor(
241
- client=self._client,
242
- )
243
-
244
- parameter_payload = CreateVideoBody(
245
- prompt=prompt,
246
- model=model,
247
- height=height,
248
- width=width,
249
- seconds=seconds,
250
- fps=fps,
251
- steps=steps,
252
- seed=seed,
253
- guidance_scale=guidance_scale,
254
- output_format=output_format,
255
- output_quality=output_quality,
256
- negative_prompt=negative_prompt,
257
- frame_images=frame_images,
258
- reference_images=reference_images,
259
- **kwargs,
260
- ).model_dump(exclude_none=True)
261
-
262
- response, _, _ = await requestor.arequest(
263
- options=TogetherRequest(
264
- method="POST",
265
- url="../v2/videos",
266
- params=parameter_payload,
267
+ timeout: Override the client-level default timeout for this request, in seconds
268
+ """
269
+ return await self._post(
270
+ "/videos" if self._client._base_url_overridden else "https://api.together.xyz/v2/videos",
271
+ body=await async_maybe_transform(
272
+ {
273
+ "model": model,
274
+ "fps": fps,
275
+ "frame_images": frame_images,
276
+ "guidance_scale": guidance_scale,
277
+ "height": height,
278
+ "negative_prompt": negative_prompt,
279
+ "output_format": output_format,
280
+ "output_quality": output_quality,
281
+ "prompt": prompt,
282
+ "reference_images": reference_images,
283
+ "seconds": seconds,
284
+ "seed": seed,
285
+ "steps": steps,
286
+ "width": width,
287
+ },
288
+ video_create_params.VideoCreateParams,
289
+ ),
290
+ options=make_request_options(
291
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
267
292
  ),
268
- stream=False,
293
+ cast_to=VideoCreateResponse,
269
294
  )
270
295
 
271
- assert isinstance(response, TogetherResponse)
272
-
273
- return CreateVideoResponse(**response.data)
274
-
275
296
  async def retrieve(
276
297
  self,
277
298
  id: str,
299
+ *,
300
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
301
+ # The extra values given here take precedence over values defined on the client or passed to this method.
302
+ extra_headers: Headers | None = None,
303
+ extra_query: Query | None = None,
304
+ extra_body: Body | None = None,
305
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
278
306
  ) -> VideoJob:
279
307
  """
280
- Async method to retrieve a video creation job.
308
+ Fetch video metadata
281
309
 
282
310
  Args:
283
- id (str): The ID of the video creation job to retrieve.
311
+ extra_headers: Send extra headers
284
312
 
285
- Returns:
286
- VideoJob: Object containing the current status and details of the video creation job
313
+ extra_query: Add additional query parameters to the request
314
+
315
+ extra_body: Add additional JSON properties to the request
316
+
317
+ timeout: Override the client-level default timeout for this request, in seconds
287
318
  """
319
+ if not id:
320
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
321
+ return await self._get(
322
+ f"/videos/{id}" if self._client._base_url_overridden else f"https://api.together.xyz/v2/videos/{id}",
323
+ options=make_request_options(
324
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
325
+ ),
326
+ cast_to=VideoJob,
327
+ )
328
+
329
+
330
+ class VideosResourceWithRawResponse:
331
+ def __init__(self, videos: VideosResource) -> None:
332
+ self._videos = videos
288
333
 
289
- requestor = api_requestor.APIRequestor(
290
- client=self._client,
334
+ self.create = to_raw_response_wrapper(
335
+ videos.create,
336
+ )
337
+ self.retrieve = to_raw_response_wrapper(
338
+ videos.retrieve,
291
339
  )
292
340
 
293
- response, _, _ = await requestor.arequest(
294
- options=TogetherRequest(
295
- method="GET",
296
- url=f"../v2/videos/{id}",
297
- ),
298
- stream=False,
341
+
342
+ class AsyncVideosResourceWithRawResponse:
343
+ def __init__(self, videos: AsyncVideosResource) -> None:
344
+ self._videos = videos
345
+
346
+ self.create = async_to_raw_response_wrapper(
347
+ videos.create,
299
348
  )
349
+ self.retrieve = async_to_raw_response_wrapper(
350
+ videos.retrieve,
351
+ )
352
+
300
353
 
301
- assert isinstance(response, TogetherResponse)
354
+ class VideosResourceWithStreamingResponse:
355
+ def __init__(self, videos: VideosResource) -> None:
356
+ self._videos = videos
302
357
 
303
- return VideoJob(**response.data)
358
+ self.create = to_streamed_response_wrapper(
359
+ videos.create,
360
+ )
361
+ self.retrieve = to_streamed_response_wrapper(
362
+ videos.retrieve,
363
+ )
364
+
365
+
366
+ class AsyncVideosResourceWithStreamingResponse:
367
+ def __init__(self, videos: AsyncVideosResource) -> None:
368
+ self._videos = videos
369
+
370
+ self.create = async_to_streamed_response_wrapper(
371
+ videos.create,
372
+ )
373
+ self.retrieve = async_to_streamed_response_wrapper(
374
+ videos.retrieve,
375
+ )