media-agent-mcp 2.6.1__tar.gz → 2.6.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/PKG-INFO +1 -1
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/pyproject.toml +1 -1
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/ai_models/openaiedit.py +44 -24
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp.egg-info/PKG-INFO +1 -1
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/README.md +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/setup.cfg +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/__init__.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/ai_models/__init__.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/ai_models/omni_human.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/ai_models/seed16.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/ai_models/seedance.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/ai_models/seededit.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/ai_models/seedream.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/ai_models/tts.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/async_server.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/async_wrapper.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/audio/combiner.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/audio/speed_controller.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/audio/tts.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/README.md +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/__init__.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/__pycache__/__init__.cpython-312.pyc +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/__pycache__/app.cpython-312.pyc +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/__pycache__/routes_media.cpython-312.pyc +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/__pycache__/routes_omni.cpython-312.pyc +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/__pycache__/routes_subtitles.cpython-312.pyc +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/__pycache__/utils.cpython-312.pyc +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/app.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/fonts/en/EduNSWACTCursive-VariableFont_wght.ttf +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/fonts/en/MozillaText-VariableFont_wght.ttf +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/fonts/en/Roboto_Condensed-Regular.ttf +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/fonts/zh/MaShanZheng-Regular.ttf +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/fonts/zh/NotoSerifSC-VariableFont_wght.ttf +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/fonts/zh/ZCOOLXiaoWei-Regular.ttf +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/pyproject.toml +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/routes_media.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/routes_subtitles.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/utils.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/uv.lock +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/install_tools/__init__.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/install_tools/installer.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/media_selectors/__init__.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/media_selectors/image_selector.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/media_selectors/video_selector.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/server.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/storage/__init__.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/storage/tos_client.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/video/__init__.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/video/processor.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/video/stack.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/video/subtitle.py +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp.egg-info/SOURCES.txt +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp.egg-info/dependency_links.txt +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp.egg-info/entry_points.txt +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp.egg-info/requires.txt +0 -0
- {media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp.egg-info/top_level.txt +0 -0
@@ -167,8 +167,6 @@ def google_edit(image_urls: List[str], prompt: str) -> Dict[str, Any]:
|
|
167
167
|
"data": None,
|
168
168
|
"message": "GOOGLE_API_KEY environment variable is not set."
|
169
169
|
}
|
170
|
-
|
171
|
-
genai.configure(api_key=api_key)
|
172
170
|
|
173
171
|
if not image_urls or not isinstance(image_urls, list):
|
174
172
|
return {
|
@@ -185,25 +183,47 @@ def google_edit(image_urls: List[str], prompt: str) -> Dict[str, Any]:
|
|
185
183
|
|
186
184
|
contents = pil_images + [prompt]
|
187
185
|
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
186
|
+
client = genai.Client(
|
187
|
+
api_key=api_key,
|
188
|
+
)
|
189
|
+
|
190
|
+
# 最多尝试3次
|
191
|
+
max_retries = 3
|
192
|
+
for attempt in range(max_retries):
|
193
|
+
try:
|
194
|
+
response = client.models.generate_content(
|
195
|
+
model="gemini-2.5-flash-image-preview",
|
196
|
+
contents=contents
|
197
|
+
)
|
198
|
+
|
199
|
+
image_data = None
|
200
|
+
if response.candidates and response.candidates[0].content and response.candidates[0].content.parts:
|
201
|
+
image_parts = [
|
202
|
+
part.inline_data.data
|
203
|
+
for part in response.candidates[0].content.parts
|
204
|
+
if part.inline_data
|
205
|
+
]
|
206
|
+
if image_parts:
|
207
|
+
image_data = image_parts[0]
|
208
|
+
|
209
|
+
# 如果获取到了图片数据,跳出重试循环
|
210
|
+
if image_data:
|
211
|
+
break
|
212
|
+
|
213
|
+
# 如果是最后一次尝试且仍然没有图片数据,返回错误
|
214
|
+
if attempt == max_retries - 1:
|
215
|
+
return {
|
216
|
+
"status": "error",
|
217
|
+
"data": None,
|
218
|
+
"message": f"Google API response did not contain image data after {max_retries} attempts."
|
219
|
+
}
|
220
|
+
|
221
|
+
except Exception as api_error:
|
222
|
+
# 如果是最后一次尝试,抛出异常
|
223
|
+
if attempt == max_retries - 1:
|
224
|
+
raise api_error
|
225
|
+
# 否则继续下一次尝试
|
226
|
+
continue
|
207
227
|
|
208
228
|
with tempfile.NamedTemporaryFile(delete=False, suffix='.png') as temp_edited_file:
|
209
229
|
temp_edited_file.write(image_data)
|
@@ -237,8 +257,8 @@ if __name__ == '__main__':
|
|
237
257
|
# For example: export OPENAI_API_KEY='your-api-key'
|
238
258
|
image_url = 'https://carey.tos-ap-southeast-1.bytepluses.com/Art%20Portrait/Art%20Portrait/Art%20Portrait/Art%20Portrait%20(1).jpg'
|
239
259
|
prompt = 'A cute baby sea otter cooking a meal'
|
240
|
-
result = openaiedit([image_url, image_url], prompt)
|
241
|
-
print(result)
|
260
|
+
# result = openaiedit([image_url, image_url], prompt)
|
261
|
+
# print(result)
|
242
262
|
|
243
263
|
# Test for google_edit
|
244
264
|
# Make sure to set your GOOGLE_API_KEY environment variable
|
@@ -246,7 +266,7 @@ if __name__ == '__main__':
|
|
246
266
|
print("\nTesting Google Edit...")
|
247
267
|
if os.getenv("GOOGLE_API_KEY"):
|
248
268
|
google_prompt = "make the person smile"
|
249
|
-
google_result = google_edit([image_url], google_prompt)
|
269
|
+
google_result = google_edit([image_url, image_url], google_prompt)
|
250
270
|
print(f"Google Edit result: {google_result}")
|
251
271
|
else:
|
252
272
|
print("GOOGLE_API_KEY not set, skipping google_edit test.")
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/audio/speed_controller.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/install_tools/__init__.py
RENAMED
File without changes
|
{media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/install_tools/installer.py
RENAMED
File without changes
|
{media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp/media_selectors/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp.egg-info/dependency_links.txt
RENAMED
File without changes
|
{media_agent_mcp-2.6.1 → media_agent_mcp-2.6.3}/src/media_agent_mcp.egg-info/entry_points.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|