MeUtils 2025.5.1.20.22.23__py3-none-any.whl → 2025.5.7.20.22.52__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.
- {MeUtils-2025.5.1.20.22.23.dist-info → MeUtils-2025.5.7.20.22.52.dist-info}/METADATA +259 -259
- {MeUtils-2025.5.1.20.22.23.dist-info → MeUtils-2025.5.7.20.22.52.dist-info}/RECORD +21 -19
- examples/_openaisdk/openai_chatfire.py +2 -2
- meutils/ai_audio/tts/openai_tts.py +3 -1
- meutils/apis/fal/kling_videos.py +85 -0
- meutils/apis/fal/videos.py +4 -1
- meutils/apis/jimeng/common.py +20 -8
- meutils/apis/jimeng/files.py +18 -10
- meutils/apis/jimeng/images.py +6 -14
- meutils/apis/jimeng/videos.py +55 -198
- meutils/apis/jimeng/videos_videos.py +334 -0
- meutils/apis/oneapi/channel.py +43 -1
- meutils/apis/volcengine_apis/images.py +3 -0
- meutils/data/VERSION +1 -1
- meutils/llm/openai_polling/chat.py +1 -4
- meutils/schemas/oneapi/common.py +20 -7
- meutils/schemas/video_types.py +22 -3
- {MeUtils-2025.5.1.20.22.23.dist-info → MeUtils-2025.5.7.20.22.52.dist-info}/LICENSE +0 -0
- {MeUtils-2025.5.1.20.22.23.dist-info → MeUtils-2025.5.7.20.22.52.dist-info}/WHEEL +0 -0
- {MeUtils-2025.5.1.20.22.23.dist-info → MeUtils-2025.5.7.20.22.52.dist-info}/entry_points.txt +0 -0
- {MeUtils-2025.5.1.20.22.23.dist-info → MeUtils-2025.5.7.20.22.52.dist-info}/top_level.txt +0 -0
@@ -98,7 +98,7 @@ examples/_openaisdk/openai_audio_gpt.py,sha256=7I8Iq1vNnBrxIZ5vfo40oO9zKrrUZbyHL
|
|
98
98
|
examples/_openaisdk/openai_baichuan.py,sha256=-xhHovkFmWOTX25CJjIon0my-ocmwfAZJu1C0eS80Xs,1614
|
99
99
|
examples/_openaisdk/openai_baidu.py,sha256=qnrxP66lY7Qf2jEbFEHrt0FrR5_Aji1AgwSI_46IabY,1969
|
100
100
|
examples/_openaisdk/openai_cache.py,sha256=89GbJ1QlqQbVxlUeuFgEbwDYHOkum7BK0zB-CqmDAZU,726
|
101
|
-
examples/_openaisdk/openai_chatfire.py,sha256=
|
101
|
+
examples/_openaisdk/openai_chatfire.py,sha256=d_AFjubD33sRD0TflzRq-SEDsNjYrwCqgRFpQNekmjA,19043
|
102
102
|
examples/_openaisdk/openai_chatfire_all.py,sha256=DaiI1NfDeK655QvXyczkgXK9Awxp7NBe71LHA7trxGE,4831
|
103
103
|
examples/_openaisdk/openai_dashscope.py,sha256=m9SjQpaNgYwr4Qd3XusWbJBGp5ZTtpuB40QopejxPKQ,1029
|
104
104
|
examples/_openaisdk/openai_deepinfra.py,sha256=innI4BT15dZEqheqDHG4lHDczY1QC7t2Whcavi1pcz0,1195
|
@@ -285,7 +285,7 @@ meutils/ai_audio/asr/xunfei_asr.py,sha256=XctZCjxu6sQd05biMTOfL9y3TA15kLYIc9mwIZ
|
|
285
285
|
meutils/ai_audio/tts/EdgeTTS.py,sha256=5pO0soW-bYwKmwX87Je_lYGr-XQFeoW4LKMPo_MGfGc,5919
|
286
286
|
meutils/ai_audio/tts/__init__.py,sha256=2i3eHZ-f3xG8HsgFcb7V7-b6gb6jKQOZNzr_2WnvCpQ,405
|
287
287
|
meutils/ai_audio/tts/minimax.py,sha256=Hy9AWaUSb0cMQnLeNzqe2oBaMJh0c_l-GP92SBwnQ9o,854
|
288
|
-
meutils/ai_audio/tts/openai_tts.py,sha256=
|
288
|
+
meutils/ai_audio/tts/openai_tts.py,sha256=J5Q0n9b2pqLo6hXh8l6fCiQe8Zw0uePjw_yyZYdFIxU,2245
|
289
289
|
meutils/ai_audio/tts/tts_ui.py,sha256=cj3WGTnBN67gT00vT4ftTwZroJifAJRVJuE4WNzbo_4,4638
|
290
290
|
meutils/ai_cv/__init__.py,sha256=0CoI0WlNwB0yFHkYqp5waF767WSZZsfOVxjlmtlCGT0,244
|
291
291
|
meutils/ai_cv/doc_prompt.py,sha256=bF9A4x-Jv_mZikJlNEMd3zxjJn68Z3Ymla5x-QtHOS8,2684
|
@@ -361,8 +361,9 @@ meutils/apis/fal/__init__.py,sha256=A7w3ZAS7Tv20N4X4Em6NshDxKSCPAzaPxHJTbM3BbyM,
|
|
361
361
|
meutils/apis/fal/files.py,sha256=Gppdo96uw8-TCDr8P691jV7dK9Si-E-kJXFJR5BVt-Q,1373
|
362
362
|
meutils/apis/fal/images.py,sha256=0diKFpsiO_ZZTL8LnNMN5wV2urfhIEIqIMe_HdrdiLs,8707
|
363
363
|
meutils/apis/fal/images_.py,sha256=C-C1TTQtMJ6RRcd-4FeYPn0R5IpPRPUFmBbrTVs_ypA,1446
|
364
|
+
meutils/apis/fal/kling_videos.py,sha256=kL4SRpZafRSCRODtiNqeXauxfamHNdcBTE65BrG1rVA,2554
|
364
365
|
meutils/apis/fal/pd.py,sha256=oPrMK_FJqohl2Kf0U0it8SqgvIlSEYFcSX8sfVkD8bU,311
|
365
|
-
meutils/apis/fal/videos.py,sha256=
|
366
|
+
meutils/apis/fal/videos.py,sha256=napknQKM2-cU3fKlqXD2BApOVyyIMGxC-2IimR0LBYw,3529
|
366
367
|
meutils/apis/gitee/__init__.py,sha256=rmAktsUvEtk7_F28P5C65wuu00nmrbu5bOw6PiCRTS0,271
|
367
368
|
meutils/apis/gitee/色情图片识别.py,sha256=liCftD7sL6Fw4Aq6r1PY-qxsxm5XkgVdDvlDR39lrEU,757
|
368
369
|
meutils/apis/gitee/images/__init__.py,sha256=zvS8e0ogQLqajZTAype1e0TDLJenlfbRQ16FjSYpxbY,243
|
@@ -415,12 +416,13 @@ meutils/apis/jiema/24mail.py,sha256=GUszRtoDe3T9q-X4embwT5YhcjgQ3XnkTJMKX93sCF4,
|
|
415
416
|
meutils/apis/jiema/__init__.py,sha256=YBybggoDRYCNYcwJOypxR7MzfTjIhqO7BkGlTt7NDo4,271
|
416
417
|
meutils/apis/jiema/yezi.py,sha256=26vhnA3lC5049Rqx-CHO-wyGKbdZAfvjEOG90W38cr0,3675
|
417
418
|
meutils/apis/jimeng/__init__.py,sha256=ENdwkppOOekt9Qzy_50TyA7lzNEqo0TpZcF7d2rYBhc,245
|
418
|
-
meutils/apis/jimeng/common.py,sha256=
|
419
|
+
meutils/apis/jimeng/common.py,sha256=c2ag4lcxYoC6aR0qZ8t1nwmJ-oB22zHve_UeGuHecg0,7546
|
419
420
|
meutils/apis/jimeng/doubao.py,sha256=5OdnBpmZQOCLIb6lnN8YrL7J7E0XF47q0UF-z6asSuI,4295
|
420
421
|
meutils/apis/jimeng/doubao_utils.py,sha256=XCHnvwfCOtJmPQuzDOCfKDMP_Pcqh-Y4w2h5f7Y2gzM,5999
|
421
|
-
meutils/apis/jimeng/files.py,sha256=
|
422
|
-
meutils/apis/jimeng/images.py,sha256=
|
423
|
-
meutils/apis/jimeng/videos.py,sha256=
|
422
|
+
meutils/apis/jimeng/files.py,sha256=AlsAlQGufGm84TldUBLFZpZQGD6INN5xIwHql9ocPj4,11310
|
423
|
+
meutils/apis/jimeng/images.py,sha256=KZFxD7kp8QdIqNK71sE8disShnQpUzvOv79FK8mZOZs,13814
|
424
|
+
meutils/apis/jimeng/videos.py,sha256=nMW4k1i-B6N5OjQv5ovyOhs2B_a0Hvz6cw-oedzNu6A,5439
|
425
|
+
meutils/apis/jimeng/videos_videos.py,sha256=A6oWLKcrb6YMIumqUMQS3KVP9bhOEKLUOIlAUlbREmE,12259
|
424
426
|
meutils/apis/jina/__init__.py,sha256=WnZ4LOv-bzC1brd5FZHOHmgq4c0UaFbnksEj2_LzXxQ,292
|
425
427
|
meutils/apis/jina/common.py,sha256=dwSJboUcZtvBTKRcvAUcgMD933VfYCUBDdtxbw1ioiE,1099
|
426
428
|
meutils/apis/kling/__init__.py,sha256=pKz40SEjui1dhHBD-icyNTJOYhzLvxLxJCwszuH4vio,271
|
@@ -442,7 +444,7 @@ meutils/apis/monica/llm.py,sha256=gYyBPOTvmoNFaa1KmW3OlSsRKeN7C97EyPUa264nJ08,26
|
|
442
444
|
meutils/apis/napkin/__init__.py,sha256=EWwpRJEbN46d6Dk9PHAZvsYmqD_EOK0jjKQL1kYtcKs,271
|
443
445
|
meutils/apis/napkin/icons.py,sha256=_L8EaSeQ6ChT5w7q3jnj_AcRhKvNiBg3-qUKo9JQ12o,2217
|
444
446
|
meutils/apis/oneapi/__init__.py,sha256=wg_kqNkFqOkP70vnOHvAeKREps57Rqliu5yKC0gsgLk,284
|
445
|
-
meutils/apis/oneapi/channel.py,sha256
|
447
|
+
meutils/apis/oneapi/channel.py,sha256=fDNxgh2vLrKFEisxe0aZ_z6Kl67BWiX9-VvXDRui3qY,11271
|
446
448
|
meutils/apis/oneapi/common.py,sha256=AIs8ro-1qui3FG42msBY6dL_zt9QJ0jS63qtp-XTlY4,3617
|
447
449
|
meutils/apis/oneapi/demo.py,sha256=i9iBK2OftTvOZdPcCo2nxu8zs0fSKIZbzD8DRKQNla8,1851
|
448
450
|
meutils/apis/oneapi/log.py,sha256=gNFFXXcG2Xp5ttO7Q7qR6n6GQUheuU8SOCjJPXZudLY,1447
|
@@ -513,7 +515,7 @@ meutils/apis/voice_clone/__init__.py,sha256=y7Rpn90LocHhA0ywrDP_fT4QAK7sr4JsIX5w
|
|
513
515
|
meutils/apis/voice_clone/fish.py,sha256=6m8zcS2KEqmalKy2ArnOaNovyxsQp_sw4d_O1kVZR2s,7146
|
514
516
|
meutils/apis/voice_clone/fish_api.py,sha256=pDpE-B8HFiGIOV3NVd1HmFrCC2GQc3wH-81oNbTS0mY,307
|
515
517
|
meutils/apis/volcengine_apis/__init__.py,sha256=PnngoI3Qk6n_axdOLgENCFYlKsmohgzYVW1HUg7L8gI,271
|
516
|
-
meutils/apis/volcengine_apis/images.py,sha256=
|
518
|
+
meutils/apis/volcengine_apis/images.py,sha256=DtzrDEU_RY3-u-SQKYDFFzh2rudSDc2sNfAmT67Nci8,5332
|
517
519
|
meutils/apis/volcengine_apis/tasks.py,sha256=XnmZZ7FM7oPM7V-zvsO0YkCeg1LYCjD29JGJFyatG2I,1806
|
518
520
|
meutils/async_task/__init__.py,sha256=45cUr-GWvQ1JFYGOYPOIkHLyTR3JbfP_PEYrmktpMLo,367
|
519
521
|
meutils/async_task/celery_config.py,sha256=BX1h3jY34aO6UmUFakdBUwOdsEiOxCGuUtYDUKFtafc,3461
|
@@ -563,7 +565,7 @@ meutils/config_utils/lark_utils/demo.py,sha256=3g0Fs7oLaeW75T60gYWMLgyNg1OnfOjfH
|
|
563
565
|
meutils/config_utils/lark_utils/x.py,sha256=MlMQGhehP9xMEgetxVCX68XFaosfKoW1JA5cZ3JqN2w,1857
|
564
566
|
meutils/crawlers/__init__.py,sha256=TBU4xA-IOsHV-0yIkW7YXxn_QT7TT8NncqxO7IykEfs,271
|
565
567
|
meutils/data/SimHei.ttf,sha256=-XEnekS5yHP_URkT4XBI2w22ylV-KxudhkeIYFbrILA,10062565
|
566
|
-
meutils/data/VERSION,sha256=
|
568
|
+
meutils/data/VERSION,sha256=z75ryWMqTujVD8SprvHhiAJriG1V5FmZEsL2z4ZNv3I,19
|
567
569
|
meutils/data/_FLAG,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
568
570
|
meutils/data/_SUCCESS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
569
571
|
meutils/data/__init__.py,sha256=Hfwkkxs4zHqKhxht0YrhS566a9P5axtmgNvM5wF8ceQ,243
|
@@ -682,7 +684,7 @@ meutils/llm/completions/rag/qwen.py,sha256=1dBNLLbQDRsM-7EGaStcWFU8HRa-rp3RxJ9cp
|
|
682
684
|
meutils/llm/completions/rag/rag.py,sha256=mnC4bZUMuNYuPFXMBqXMofj_ms8uP5MMw1leJ5jXA_k,1209
|
683
685
|
meutils/llm/functions/__init__.py,sha256=It6pcNwRBSh3Em45ooi61lc5tFg8eOYv0BvEFuRjSGQ,271
|
684
686
|
meutils/llm/openai_polling/__init__.py,sha256=qmAMITPtrTD-y57RiJXewuOic7iLKBhx8mz5uvcxsy8,270
|
685
|
-
meutils/llm/openai_polling/chat.py,sha256
|
687
|
+
meutils/llm/openai_polling/chat.py,sha256=-zByJeKGajm3OVB7T7Sgi_zmUufBgm8Rh_tR0dQnXSA,8161
|
686
688
|
meutils/llm/openai_polling/images.py,sha256=qKMk3vCvamS_48ceC-_y2LPpP5XsD476FHG9MUu8kks,1042
|
687
689
|
meutils/llm/openai_utils/__init__.py,sha256=MWyNhP2K49oaHGEZlInZc3XlwqlStFultP8k7HDPAwk,290
|
688
690
|
meutils/llm/openai_utils/common.py,sha256=GGctOMlg8xT2A5H-8hMow0VfOZHCDdIPjd12597Nohs,9754
|
@@ -818,7 +820,7 @@ meutils/schemas/textin_types.py,sha256=IBYbSG7n5rAcS7Z5bXPBnL1a91gx8IBpUlFTGULKj
|
|
818
820
|
meutils/schemas/translator_types.py,sha256=xufNQeyim7RhkzAK_J5_JchZfqaUBDXFwMtrPUu1xzI,627
|
819
821
|
meutils/schemas/tripo3d_types.py,sha256=mQF65HwHYmczRgAIuXK5hGxWDWNYDq-Xu9pja7Dwy4o,1452
|
820
822
|
meutils/schemas/tryblend_types.py,sha256=glZ0diRJvZmfQotcCWYBA832inihy8TvVWxWZ64CzWA,27793
|
821
|
-
meutils/schemas/video_types.py,sha256=
|
823
|
+
meutils/schemas/video_types.py,sha256=GIec_98NQJNvZMFAlIFNQE4fBA1iCIUguCIG6ot3vqc,3182
|
822
824
|
meutils/schemas/vidu_types.py,sha256=7V2uGxK3MyiT-j-Cjoni_DaL2CcJJzz2YPCx_mTplGw,9380
|
823
825
|
meutils/schemas/wechat_types.py,sha256=XtIJpMNBzkqBcU68Qno8bnUfHzDOXwFNCIL-6VYQKOA,9260
|
824
826
|
meutils/schemas/yuanbao_types.py,sha256=bI_CF9ybaJ1ux8NgP5gEi33k_K_vHmlyD09fxzhYEkQ,12269
|
@@ -826,7 +828,7 @@ meutils/schemas/db/__init__.py,sha256=m1maURVoM6dIW0yt6ELZrZTzULtkHybVOSXtHNJRVI
|
|
826
828
|
meutils/schemas/db/oneapi_types.py,sha256=3t2m0H80saEXmYUZfVFrtEaY117GjZTsSa1GKgkJzqQ,3896
|
827
829
|
meutils/schemas/oneapi/__init__.py,sha256=uevbi3QAvFzN9WPbx9bYKTDyKt7P2ueZO6W0nSiD0sk,289
|
828
830
|
meutils/schemas/oneapi/_types.py,sha256=ClvAaNy3SahEN8lL8KEErHTD6HANelXUeKc_3iLfosQ,1488
|
829
|
-
meutils/schemas/oneapi/common.py,sha256=
|
831
|
+
meutils/schemas/oneapi/common.py,sha256=GVW3bYwnwmLqtI_uZDzbzpj_wsZXXkcZ5O_322LE5YI,38206
|
830
832
|
meutils/schemas/oneapi/icons.py,sha256=T7W5gInBJoHe62wzMimbG_UI-wn3_-rmQ1O4O2z-CQY,1089
|
831
833
|
meutils/schemas/oneapi/model_group_info.py,sha256=rGtflYJuFIjk5MsVEvK9JUR4IciX8jfErqeLqf8DIlQ,1586
|
832
834
|
meutils/schemas/oneapi/model_info.py,sha256=_uwKEPIIqm7ZYfhmpxtXB2QNsS83SpJY-OaBzvogC9w,772
|
@@ -955,9 +957,9 @@ meutils/tools/seize.py,sha256=nOKAS63w-Lbi48I0m2MPhdsokUTwxco0laPxYVmW4Mw,1064
|
|
955
957
|
meutils/tools/service_monitor.py,sha256=ibsLtBN2g2DL7ZnLJ8vhiZOiOcqTAyx711djDdBK-3M,1255
|
956
958
|
meutils/tools/sys_monitor.py,sha256=6MoyzrItqDUOSjfHcMJmMofQkEPTW36CT_aKui0rg84,429
|
957
959
|
meutils/tools/token_monitor.py,sha256=Np-YK-R4P4IPAXyZvMxwvXI4sFmNJQAQK1lSegNaYpA,997
|
958
|
-
MeUtils-2025.5.
|
959
|
-
MeUtils-2025.5.
|
960
|
-
MeUtils-2025.5.
|
961
|
-
MeUtils-2025.5.
|
962
|
-
MeUtils-2025.5.
|
963
|
-
MeUtils-2025.5.
|
960
|
+
MeUtils-2025.5.7.20.22.52.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
961
|
+
MeUtils-2025.5.7.20.22.52.dist-info/METADATA,sha256=2ZWWuanHzL9xOZq0b58pK45K_MNcKZl0g9aA3AstUVs,32833
|
962
|
+
MeUtils-2025.5.7.20.22.52.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
963
|
+
MeUtils-2025.5.7.20.22.52.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
|
964
|
+
MeUtils-2025.5.7.20.22.52.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
|
965
|
+
MeUtils-2025.5.7.20.22.52.dist-info/RECORD,,
|
@@ -267,8 +267,8 @@ if __name__ == '__main__':
|
|
267
267
|
|
268
268
|
# check_models(models, api_key=os.getenv("OPENAI_API_KEY"))
|
269
269
|
# check_models(models)
|
270
|
-
models = ['
|
271
|
-
check_models(models, api_key=os.getenv("
|
270
|
+
models = ['gemini-2.5-pro-preview-03-25']
|
271
|
+
check_models(models, api_key=os.getenv("OPENAI_API_KEY"))
|
272
272
|
|
273
273
|
#############神奇 #############reasoning_content 神奇
|
274
274
|
|
@@ -21,7 +21,9 @@ client = OpenAI(
|
|
21
21
|
# base_url=base_url,
|
22
22
|
# api_key=os.getenv('OPENAI_API_KEY'),
|
23
23
|
|
24
|
-
api_key=os.getenv('OPENAI_API_KEY_OPENAI') + "-2738",
|
24
|
+
# api_key=os.getenv('OPENAI_API_KEY_OPENAI') + "-2738",
|
25
|
+
api_key=os.getenv('OPENAI_API_KEY_OPENAI') + "-364",
|
26
|
+
|
25
27
|
)
|
26
28
|
|
27
29
|
# text = """
|
@@ -0,0 +1,85 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : videos
|
5
|
+
# @Time : 2025/1/15 15:45
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description :
|
10
|
+
|
11
|
+
from meutils.pipe import *
|
12
|
+
from meutils.apis.fal.images import check
|
13
|
+
|
14
|
+
from meutils.schemas.task_types import TaskResponse
|
15
|
+
from meutils.schemas.video_types import VideoRequest
|
16
|
+
|
17
|
+
from meutils.schemas.fal_types import FEISHU_URL
|
18
|
+
from meutils.config_utils.lark_utils import get_next_token_for_polling
|
19
|
+
|
20
|
+
from fal_client import AsyncClient
|
21
|
+
|
22
|
+
|
23
|
+
# 平台/模型/版本
|
24
|
+
models_mapping ={
|
25
|
+
"kling-video/v2/master/image-to-video": "latentsync",
|
26
|
+
"kling-video/v2/master/text-to-video": "latentsync",
|
27
|
+
"kling-video/lipsync/audio-to-video": "latentsync", # todo
|
28
|
+
"kling-video/lipsync/text-to-video": "latentsync",
|
29
|
+
}
|
30
|
+
|
31
|
+
async def create_task(request: VideoRequest, token: Optional[str] = None):
|
32
|
+
"""https://fal.ai/models/fal-ai/latentsync/api#queue-submit
|
33
|
+
|
34
|
+
"""
|
35
|
+
token = token or await get_next_token_for_polling(feishu_url=FEISHU_URL, from_redis=True, check_token=check)
|
36
|
+
logger.debug(request)
|
37
|
+
|
38
|
+
application = f"fal-ai/{request.model.removeprefix('fal-ai/')}"
|
39
|
+
|
40
|
+
client = AsyncClient(key=token)
|
41
|
+
response = await client.submit(
|
42
|
+
application=application,
|
43
|
+
arguments=request.model_dump(exclude_none=True, exclude={"model"})
|
44
|
+
)
|
45
|
+
# AsyncRequestHandle(request_id='0b7ab6b8-c7dc-4f17-a655-4ee56dd0f864')
|
46
|
+
|
47
|
+
return TaskResponse(task_id=f"{request.model}::{response.request_id}", system_fingerprint=token)
|
48
|
+
|
49
|
+
|
50
|
+
@alru_cache(ttl=5)
|
51
|
+
async def get_task(task_id: str, token: Optional[str] = None):
|
52
|
+
model, request_id = task_id.rsplit('::', 1)
|
53
|
+
application = f"fal-ai/{model.removeprefix('fal-ai/')}"
|
54
|
+
|
55
|
+
client = AsyncClient(key=token)
|
56
|
+
response = await client.status(application, request_id, with_logs=True)
|
57
|
+
|
58
|
+
logger.debug(response.__class__.__name__) # Queued, InProgress, COMPLETED
|
59
|
+
|
60
|
+
if metrics := response.__dict__.get("metrics"): # {'inference_time': 17.29231595993042}
|
61
|
+
response = await client.result(application, request_id)
|
62
|
+
|
63
|
+
return response
|
64
|
+
|
65
|
+
|
66
|
+
if __name__ == '__main__':
|
67
|
+
model = "latentsync"
|
68
|
+
# model = "sync-lipsync"
|
69
|
+
|
70
|
+
|
71
|
+
model = "fal-ai/kling-video/v2/master/image-to-video"
|
72
|
+
model = "fal-ai/kling-video/v1/standard/text-to-video"
|
73
|
+
|
74
|
+
request = VideoRequest(
|
75
|
+
model=model,
|
76
|
+
prompt="A cute cat",
|
77
|
+
)
|
78
|
+
|
79
|
+
|
80
|
+
r = arun(create_task(request))
|
81
|
+
|
82
|
+
|
83
|
+
# r = arun(get_task(task_id, token))
|
84
|
+
|
85
|
+
arun(get_task(r.task_id, r.system_fingerprint))
|
meutils/apis/fal/videos.py
CHANGED
@@ -32,7 +32,7 @@ async def create_task(request: FalVideoRequest, token: Optional[str] = None):
|
|
32
32
|
token = token or await get_next_token_for_polling(feishu_url=FEISHU_URL)
|
33
33
|
logger.debug(request)
|
34
34
|
|
35
|
-
application = f"fal-ai/{request.model}"
|
35
|
+
application = f"fal-ai/{request.model.removeprefix('fal-ai/')}"
|
36
36
|
|
37
37
|
client = AsyncClient(key=token)
|
38
38
|
response = await client.submit(
|
@@ -74,6 +74,9 @@ if __name__ == '__main__':
|
|
74
74
|
video_url=video_url
|
75
75
|
)
|
76
76
|
|
77
|
+
model = "fal-ai/kling-video/v2/master/image-to-video"
|
78
|
+
model = "fal-ai/kling-video/v1/standard/text-to-video"
|
79
|
+
|
77
80
|
#
|
78
81
|
# r = arun(create_task(request))
|
79
82
|
# logger.debug(f"{r.task_id, r.system_fingerprint}")
|
meutils/apis/jimeng/common.py
CHANGED
@@ -20,6 +20,7 @@ from fake_useragent import UserAgent
|
|
20
20
|
|
21
21
|
ua = UserAgent()
|
22
22
|
|
23
|
+
|
23
24
|
@lru_cache()
|
24
25
|
def get_headers(url, token: str = "693701c43e477b7c405cc7e2fef0ddbd"):
|
25
26
|
device_time = f"{int(time.time())}"
|
@@ -45,13 +46,24 @@ def get_headers(url, token: str = "693701c43e477b7c405cc7e2fef0ddbd"):
|
|
45
46
|
|
46
47
|
|
47
48
|
@cache(ttl=3600 // 2)
|
48
|
-
async def get_upload_token(token): # 3600 跨账号?
|
49
|
+
async def get_upload_token(token, biz: Optional[str] = None): # 3600 跨账号?
|
50
|
+
|
51
|
+
if biz == "video":
|
52
|
+
url = "/mweb/v1/get_upload_token" # ?aid=513695&da_version=3.2.0&aigc_features=app_lip_sync
|
53
|
+
|
54
|
+
payload = {"scene": 2}
|
55
|
+
client = AsyncClient(base_url=BASE_URL)
|
56
|
+
response = await client.post(url, body=payload, cast_to=object)
|
57
|
+
logger.debug(bjson(response))
|
58
|
+
return response
|
59
|
+
|
49
60
|
url = "/artist/v2/tools/get_upload_token"
|
50
61
|
headers = get_headers(url, token)
|
51
62
|
|
52
63
|
payload = {"scene": 2}
|
53
64
|
client = AsyncClient(base_url=BASE_URL, default_headers=headers)
|
54
65
|
response = await client.post(url, body=payload, cast_to=object)
|
66
|
+
logger.debug(bjson(response))
|
55
67
|
return response
|
56
68
|
|
57
69
|
|
@@ -182,11 +194,13 @@ if __name__ == '__main__':
|
|
182
194
|
# token = "b8bb4cb67dba6c0d1048bdc0596bc461"
|
183
195
|
# token = "34438eb03d165737122180caf62a8058"
|
184
196
|
# token = "a521dd578adcfb191fad38dd4baab498"
|
185
|
-
token="7d9969ffd8ad2edda7da8fff11cb9434"
|
186
|
-
token="1513337bdba08a1a77fedad95c03bc6c"
|
187
|
-
token="b1cd6317e4d161bbb3889b9defd769ff"
|
188
|
-
token="
|
189
|
-
arun(check_token(token))
|
197
|
+
token = "7d9969ffd8ad2edda7da8fff11cb9434"
|
198
|
+
token = "1513337bdba08a1a77fedad95c03bc6c"
|
199
|
+
token = "b1cd6317e4d161bbb3889b9defd769ff"
|
200
|
+
token = "ed16bb360a4744696f88a7b52b7c10a3"
|
201
|
+
# arun(check_token(token))
|
202
|
+
|
203
|
+
arun(get_upload_token(token, 'video'))
|
190
204
|
|
191
205
|
# print(arun(aget_spreadsheet_values(feishu_url=FEISHU_URL, to_dataframe=True))[0].tolist())
|
192
206
|
# tokens = arun(get_series(FEISHU_URL))
|
@@ -202,5 +216,3 @@ if __name__ == '__main__':
|
|
202
216
|
#
|
203
217
|
# request = ImageRequest(prompt='https://oss.ffire.cc/files/kling_watermark.png笑起来')
|
204
218
|
# arun(create_draft_content(request, token))
|
205
|
-
|
206
|
-
|
meutils/apis/jimeng/files.py
CHANGED
@@ -102,11 +102,13 @@ class JJRequest:
|
|
102
102
|
return hash256("")
|
103
103
|
|
104
104
|
|
105
|
-
@cache(ttl=15 * 60)
|
105
|
+
# @cache(ttl=15 * 60)
|
106
106
|
async def upload(image: bytes, upload_token: dict): # oss 跨账号不知道是否可以使用
|
107
107
|
# e = auth = upload_token['data']['auth'] # 豆包
|
108
108
|
data = upload_token['data']
|
109
|
-
service_id = data.get('service_id', '3jr8j4ixpe') # 即梦 3jr8j4ixpe 豆包 a9rns2rl98
|
109
|
+
# service_id = data.get('service_id', '3jr8j4ixpe') # 即梦 3jr8j4ixpe 豆包 a9rns2rl98
|
110
|
+
|
111
|
+
service_id = data.get('space_name') or "3jr8j4ixpe" # 即梦视频 tb4s082cfz
|
110
112
|
|
111
113
|
if 'auth' in data:
|
112
114
|
data = data['auth']
|
@@ -115,13 +117,14 @@ async def upload(image: bytes, upload_token: dict): # oss 跨账号不知道是
|
|
115
117
|
|
116
118
|
t = time.strftime("%Y%m%dT%H%M%SZ", time.gmtime())
|
117
119
|
|
120
|
+
# "ServiceId": "tb4s082cfz",
|
118
121
|
params = {
|
119
122
|
"Action": "ApplyImageUpload",
|
120
123
|
"Version": "2018-08-01",
|
121
124
|
"ServiceId": service_id,
|
122
125
|
"s": random_str(10),
|
123
126
|
|
124
|
-
"FileExtension": ".png", #####
|
127
|
+
# "FileExtension": ".png", #####
|
125
128
|
"FileSize": len(image),
|
126
129
|
}
|
127
130
|
|
@@ -193,7 +196,7 @@ async def upload_for_vod(image: bytes, upload_token: dict): # oss 跨账号不
|
|
193
196
|
"""
|
194
197
|
# e = auth = upload_token['data']['auth'] # 豆包
|
195
198
|
data = upload_token['data']
|
196
|
-
service_id = data.get('
|
199
|
+
service_id = data.get('space_name', 'tb4s082cfz') # 即梦 3jr8j4ixpe 豆包 a9rns2rl98
|
197
200
|
|
198
201
|
if 'auth' in data:
|
199
202
|
data = data['auth']
|
@@ -205,9 +208,10 @@ async def upload_for_vod(image: bytes, upload_token: dict): # oss 跨账号不
|
|
205
208
|
params = {
|
206
209
|
"Action": "ApplyUploadInner",
|
207
210
|
"Version": "2020-11-19",
|
208
|
-
|
211
|
+
|
212
|
+
"ServiceId": service_id,
|
209
213
|
# "SpaceName": "artist_op",
|
210
|
-
"SpaceName": "dreamina",
|
214
|
+
# "SpaceName": "dreamina",
|
211
215
|
|
212
216
|
"IsInner": "1",
|
213
217
|
|
@@ -274,11 +278,11 @@ async def upload_for_vod(image: bytes, upload_token: dict): # oss 跨账号不
|
|
274
278
|
return vid, oss_uri
|
275
279
|
|
276
280
|
|
277
|
-
async def upload_for_image(image, token): # todo: 跨账号token
|
281
|
+
async def upload_for_image(image, token, biz: Optional[str] = None): # todo: 跨账号token
|
278
282
|
"""image url base64 bytes"""
|
279
283
|
if not image: return
|
280
284
|
|
281
|
-
upload_token = await get_upload_token(token)
|
285
|
+
upload_token = await get_upload_token(token, biz)
|
282
286
|
image_uri = await upload(await to_bytes(image), upload_token)
|
283
287
|
return image_uri
|
284
288
|
|
@@ -356,5 +360,9 @@ if __name__ == "__main__":
|
|
356
360
|
# # arun(upload_for_video("https://oss.ffire.cc/files/lipsync.mp3", token))
|
357
361
|
# arun(upload_for_video(url, token))
|
358
362
|
image_url = "https://oss.ffire.cc/files/kling_watermark.png"
|
359
|
-
arun(face_recognize(image_url, token))
|
360
|
-
arun(face_recognize(image_url))
|
363
|
+
# arun(face_recognize(image_url, token))
|
364
|
+
# arun(face_recognize(image_url))
|
365
|
+
|
366
|
+
token = "ed16bb360a4744696f88a7b52b7c10a3"
|
367
|
+
|
368
|
+
arun(upload_for_image(image_url, token, "video"))
|
meutils/apis/jimeng/images.py
CHANGED
@@ -388,25 +388,13 @@ if __name__ == '__main__':
|
|
388
388
|
#
|
389
389
|
# face_recognize_data = face_recognize.get("data", {})
|
390
390
|
|
391
|
-
data = {
|
392
|
-
"model": "seededit",
|
393
|
-
"prompt": "https://oss.ffire.cc/files/kling_watermark.png 让这个女人带上墨镜,衣服换个颜色",
|
394
|
-
# "prompt": "草拟吗 艹",
|
395
|
-
# "prompt": "让这个女人带上墨镜,衣服换个颜色",
|
396
|
-
# "prompt": "Add a background for this photo, sort of sizzle it.",
|
397
391
|
|
398
|
-
"size": "1024x1024",
|
399
|
-
|
400
|
-
# "controls": {
|
401
|
-
# "face_recognize_data": face_recognize_data
|
402
|
-
# }
|
403
|
-
}
|
404
392
|
# arun(generate(ImageRequest(**data)))
|
405
393
|
|
406
394
|
# arun(generate(ImageRequest(prompt="fuck you")))
|
407
395
|
prompt = "A plump Chinese beauty wearing a wedding dress revealing her skirt and underwear is swinging on the swing,Happy smile,cleavage,Exposed thighs,Spread your legs open,Extend your leg,panties,upskirt,Barefoot,sole"
|
408
|
-
prompt = "a dog cat"
|
409
|
-
prompt = "https://oss.ffire.cc/files/kling_watermark.png 让这个女人带上墨镜,衣服换个颜色... "
|
396
|
+
prompt = "a dog cat in the same room"
|
397
|
+
# prompt = "https://oss.ffire.cc/files/kling_watermark.png 让这个女人带上墨镜,衣服换个颜色... "
|
410
398
|
request = ImageRequest(prompt=prompt, size="1328x1328")
|
411
399
|
# request = ImageRequest(prompt=prompt, size="1024x1024")
|
412
400
|
|
@@ -416,5 +404,9 @@ if __name__ == '__main__':
|
|
416
404
|
|
417
405
|
# arun(get_task(task.task_id, task.system_fingerprint))
|
418
406
|
|
407
|
+
|
408
|
+
|
409
|
+
arun(get_task("16132262728706", "d2d142fc877e696484cc2fc521127b36"))
|
410
|
+
|
419
411
|
# arun(generate(request))
|
420
412
|
|