MeUtils 2025.4.30.17.40.5__py3-none-any.whl → 2025.5.7.18.34.50__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.
@@ -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=fQHQ-Z-JpJ7ld2OwIxEF42jOJPQr1eWU6labye44Jiw,19052
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=tdx_s5RFkxyA7IqGwVzd5rmhZjgq0Z1kTKCPXXZxZis,2185
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=PXRT1rsCSb1QlpmFcGIKYxgRkVmEfMuW7m3iJi1Wk60,2385
364
365
  meutils/apis/fal/pd.py,sha256=oPrMK_FJqohl2Kf0U0it8SqgvIlSEYFcSX8sfVkD8bU,311
365
- meutils/apis/fal/videos.py,sha256=GzMyS-nBMGAXHaCLKxgCdzowB3jpJDXLb6-y1v0zKNo,3387
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=4MfdLRpHjWSEOE-DtdqkWmebNoW0_lYc7xG4tznghnc,7092
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=E-pPmi6fIP_n6wgfiDbqeWsIfrXVZUe7LpA6Wds1xDI,11047
422
- meutils/apis/jimeng/images.py,sha256=O3WAuXIN1psaXePCLRShKnkJ1K8rZoFDOZsoTco3AD8,14191
423
- meutils/apis/jimeng/videos.py,sha256=x-PDOYNBN-yTmNvMbyDbwm_E2LXZ6A4hcVzEahV_Hvc,10813
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=oSntgqp0efv_69Qj_-GR8zD94hIMqUh-Hubk0nyKRGw,5377
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,10 +444,11 @@ 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=J24_fch1_YOcwMtWvLaU7rXbtjqXJ_oylhatb7hHwrk,7525
447
+ meutils/apis/oneapi/channel.py,sha256=tx4-_U18JU1U4-FIAwaKu9m_oOtPRU-8hPiqYlDZ2CU,11277
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
451
+ meutils/apis/oneapi/system.py,sha256=WmsGEEAig1rbOPkNxu3yxY67fnoRAiHWYnFWQmvAqtU,911
449
452
  meutils/apis/oneapi/token.py,sha256=LaKwkHXNvF46wXEVtbSNwfi0ujuQo7oRyln39MOPKX0,1638
450
453
  meutils/apis/oneapi/token_.py,sha256=3NPU1jbjiRbcXIkw8bANcnby3rXq4U2LjU_8W3PaE_4,2560
451
454
  meutils/apis/oneapi/user.py,sha256=DTK9NZ9xXCH-8AR6lpX-iaMSA08JSs2KpPoi3atHf7k,4030
@@ -512,7 +515,7 @@ meutils/apis/voice_clone/__init__.py,sha256=y7Rpn90LocHhA0ywrDP_fT4QAK7sr4JsIX5w
512
515
  meutils/apis/voice_clone/fish.py,sha256=6m8zcS2KEqmalKy2ArnOaNovyxsQp_sw4d_O1kVZR2s,7146
513
516
  meutils/apis/voice_clone/fish_api.py,sha256=pDpE-B8HFiGIOV3NVd1HmFrCC2GQc3wH-81oNbTS0mY,307
514
517
  meutils/apis/volcengine_apis/__init__.py,sha256=PnngoI3Qk6n_axdOLgENCFYlKsmohgzYVW1HUg7L8gI,271
515
- meutils/apis/volcengine_apis/images.py,sha256=6_HZBckqlOsyAEYH5d7JnKW7kuyJ6MAArfosCODKFJ8,5261
518
+ meutils/apis/volcengine_apis/images.py,sha256=DtzrDEU_RY3-u-SQKYDFFzh2rudSDc2sNfAmT67Nci8,5332
516
519
  meutils/apis/volcengine_apis/tasks.py,sha256=XnmZZ7FM7oPM7V-zvsO0YkCeg1LYCjD29JGJFyatG2I,1806
517
520
  meutils/async_task/__init__.py,sha256=45cUr-GWvQ1JFYGOYPOIkHLyTR3JbfP_PEYrmktpMLo,367
518
521
  meutils/async_task/celery_config.py,sha256=BX1h3jY34aO6UmUFakdBUwOdsEiOxCGuUtYDUKFtafc,3461
@@ -562,7 +565,7 @@ meutils/config_utils/lark_utils/demo.py,sha256=3g0Fs7oLaeW75T60gYWMLgyNg1OnfOjfH
562
565
  meutils/config_utils/lark_utils/x.py,sha256=MlMQGhehP9xMEgetxVCX68XFaosfKoW1JA5cZ3JqN2w,1857
563
566
  meutils/crawlers/__init__.py,sha256=TBU4xA-IOsHV-0yIkW7YXxn_QT7TT8NncqxO7IykEfs,271
564
567
  meutils/data/SimHei.ttf,sha256=-XEnekS5yHP_URkT4XBI2w22ylV-KxudhkeIYFbrILA,10062565
565
- meutils/data/VERSION,sha256=yzFPNw_8J_0Pc8Y4iWqgxzHahebZsbdLeE7wxJDujaM,19
568
+ meutils/data/VERSION,sha256=sQ4C7ud4BsuuVZOqwlpLPp-17QT-WEg7ZWEVYmodcJQ,19
566
569
  meutils/data/_FLAG,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
567
570
  meutils/data/_SUCCESS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
568
571
  meutils/data/__init__.py,sha256=Hfwkkxs4zHqKhxht0YrhS566a9P5axtmgNvM5wF8ceQ,243
@@ -654,7 +657,7 @@ meutils/llm/x.py,sha256=ETvKKDTmDNrik0K2-_a_SEQxyV4X4-fy0JPrAOLNPv4,1732
654
657
  meutils/llm/completions/__init__.py,sha256=q5FEYPpo2f_P44Ghdh9fkrmqZLX2Asso8p-nf-ZTqks,244
655
658
  meutils/llm/completions/chat_gemini.py,sha256=0x9HQxuDAHoWJ79JoaEKKWVNy4PRyd-Et-j8V93NqkY,4395
656
659
  meutils/llm/completions/chat_plus.py,sha256=RPYQqx4vc57gevcz0gUS7QPvGm0M12ktAspMKJtoeuk,7727
657
- meutils/llm/completions/chat_spark.py,sha256=LK5kbOUs3pLSYdWpP6nN5ysmxlG_52wS7650Qp2bYs4,10844
660
+ meutils/llm/completions/chat_spark.py,sha256=G2mK_iQViGFHJTFjuW7CPBPm7bz64HXkyTWQE-k3m_Q,10777
658
661
  meutils/llm/completions/chat_videos.py,sha256=P3Yz34dkNlxCxzOuKHJ9pHIA4UXK3Y5RXPzVnQjb9rc,2915
659
662
  meutils/llm/completions/cp.py,sha256=tGf3umHKXDH0KuTfN7BLr8yAvN6MYWLYR5UVaJkJs0c,4172
660
663
  meutils/llm/completions/deep2x.py,sha256=Fo5cC1jXOFFXOZeRGk9IpCZVCQc8vgOizuYFuPaWujA,3746
@@ -681,7 +684,7 @@ meutils/llm/completions/rag/qwen.py,sha256=1dBNLLbQDRsM-7EGaStcWFU8HRa-rp3RxJ9cp
681
684
  meutils/llm/completions/rag/rag.py,sha256=mnC4bZUMuNYuPFXMBqXMofj_ms8uP5MMw1leJ5jXA_k,1209
682
685
  meutils/llm/functions/__init__.py,sha256=It6pcNwRBSh3Em45ooi61lc5tFg8eOYv0BvEFuRjSGQ,271
683
686
  meutils/llm/openai_polling/__init__.py,sha256=qmAMITPtrTD-y57RiJXewuOic7iLKBhx8mz5uvcxsy8,270
684
- meutils/llm/openai_polling/chat.py,sha256=xzkT4G_Xxj2tMQSODb2iO8HyCgRJwj9RLagzMalmKXk,8290
687
+ meutils/llm/openai_polling/chat.py,sha256=-zByJeKGajm3OVB7T7Sgi_zmUufBgm8Rh_tR0dQnXSA,8161
685
688
  meutils/llm/openai_polling/images.py,sha256=qKMk3vCvamS_48ceC-_y2LPpP5XsD476FHG9MUu8kks,1042
686
689
  meutils/llm/openai_utils/__init__.py,sha256=MWyNhP2K49oaHGEZlInZc3XlwqlStFultP8k7HDPAwk,290
687
690
  meutils/llm/openai_utils/common.py,sha256=GGctOMlg8xT2A5H-8hMow0VfOZHCDdIPjd12597Nohs,9754
@@ -817,7 +820,7 @@ meutils/schemas/textin_types.py,sha256=IBYbSG7n5rAcS7Z5bXPBnL1a91gx8IBpUlFTGULKj
817
820
  meutils/schemas/translator_types.py,sha256=xufNQeyim7RhkzAK_J5_JchZfqaUBDXFwMtrPUu1xzI,627
818
821
  meutils/schemas/tripo3d_types.py,sha256=mQF65HwHYmczRgAIuXK5hGxWDWNYDq-Xu9pja7Dwy4o,1452
819
822
  meutils/schemas/tryblend_types.py,sha256=glZ0diRJvZmfQotcCWYBA832inihy8TvVWxWZ64CzWA,27793
820
- meutils/schemas/video_types.py,sha256=shXriVG_HMVkUCwNQl7H6vTmZ2SXkjzDHJJ5uWfXKcQ,2519
823
+ meutils/schemas/video_types.py,sha256=GIec_98NQJNvZMFAlIFNQE4fBA1iCIUguCIG6ot3vqc,3182
821
824
  meutils/schemas/vidu_types.py,sha256=7V2uGxK3MyiT-j-Cjoni_DaL2CcJJzz2YPCx_mTplGw,9380
822
825
  meutils/schemas/wechat_types.py,sha256=XtIJpMNBzkqBcU68Qno8bnUfHzDOXwFNCIL-6VYQKOA,9260
823
826
  meutils/schemas/yuanbao_types.py,sha256=bI_CF9ybaJ1ux8NgP5gEi33k_K_vHmlyD09fxzhYEkQ,12269
@@ -825,7 +828,7 @@ meutils/schemas/db/__init__.py,sha256=m1maURVoM6dIW0yt6ELZrZTzULtkHybVOSXtHNJRVI
825
828
  meutils/schemas/db/oneapi_types.py,sha256=3t2m0H80saEXmYUZfVFrtEaY117GjZTsSa1GKgkJzqQ,3896
826
829
  meutils/schemas/oneapi/__init__.py,sha256=uevbi3QAvFzN9WPbx9bYKTDyKt7P2ueZO6W0nSiD0sk,289
827
830
  meutils/schemas/oneapi/_types.py,sha256=ClvAaNy3SahEN8lL8KEErHTD6HANelXUeKc_3iLfosQ,1488
828
- meutils/schemas/oneapi/common.py,sha256=VQhIZ5_yKZFxJvvt68vUiCP6c9LbyC7DpdMf7deHNqI,37612
831
+ meutils/schemas/oneapi/common.py,sha256=AtXuVugPN-1T3MjAH_dP6rjZB6gnt2l8EScdAM6ebXY,38070
829
832
  meutils/schemas/oneapi/icons.py,sha256=T7W5gInBJoHe62wzMimbG_UI-wn3_-rmQ1O4O2z-CQY,1089
830
833
  meutils/schemas/oneapi/model_group_info.py,sha256=rGtflYJuFIjk5MsVEvK9JUR4IciX8jfErqeLqf8DIlQ,1586
831
834
  meutils/schemas/oneapi/model_info.py,sha256=_uwKEPIIqm7ZYfhmpxtXB2QNsS83SpJY-OaBzvogC9w,772
@@ -954,9 +957,9 @@ meutils/tools/seize.py,sha256=nOKAS63w-Lbi48I0m2MPhdsokUTwxco0laPxYVmW4Mw,1064
954
957
  meutils/tools/service_monitor.py,sha256=ibsLtBN2g2DL7ZnLJ8vhiZOiOcqTAyx711djDdBK-3M,1255
955
958
  meutils/tools/sys_monitor.py,sha256=6MoyzrItqDUOSjfHcMJmMofQkEPTW36CT_aKui0rg84,429
956
959
  meutils/tools/token_monitor.py,sha256=Np-YK-R4P4IPAXyZvMxwvXI4sFmNJQAQK1lSegNaYpA,997
957
- MeUtils-2025.4.30.17.40.5.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
958
- MeUtils-2025.4.30.17.40.5.dist-info/METADATA,sha256=h3-OD3XmAWvU_3wWEqnB-djv4sGzh-jr6QN1dDYF6pc,32833
959
- MeUtils-2025.4.30.17.40.5.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
960
- MeUtils-2025.4.30.17.40.5.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
961
- MeUtils-2025.4.30.17.40.5.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
962
- MeUtils-2025.4.30.17.40.5.dist-info/RECORD,,
960
+ MeUtils-2025.5.7.18.34.50.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
961
+ MeUtils-2025.5.7.18.34.50.dist-info/METADATA,sha256=wwDNNDEhbrm0WXAGaFQhmtCAVmHzlFeKLuLVZ-DuBzA,32833
962
+ MeUtils-2025.5.7.18.34.50.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
963
+ MeUtils-2025.5.7.18.34.50.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
964
+ MeUtils-2025.5.7.18.34.50.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
965
+ MeUtils-2025.5.7.18.34.50.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 = ['chatfire-translator']
271
- check_models(models, api_key=os.getenv("OPENAI_API_KEY_GUOCHAN") + "-2994")
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,82 @@
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
+ def model_mapper(model: str):
25
+ return f"fal-ai/{model.removeprefix('fal-ai/')}"
26
+
27
+
28
+ async def create_task(request: VideoRequest, token: Optional[str] = None):
29
+ """https://fal.ai/models/fal-ai/latentsync/api#queue-submit
30
+
31
+ """
32
+ token = token or await get_next_token_for_polling(feishu_url=FEISHU_URL, from_redis=True, check_token=check)
33
+ logger.debug(request)
34
+
35
+ application = f"fal-ai/{request.model.removeprefix('fal-ai/')}"
36
+
37
+ client = AsyncClient(key=token)
38
+ response = await client.submit(
39
+ application=application,
40
+ arguments=request.model_dump(exclude_none=True, exclude={"model"})
41
+ )
42
+ # AsyncRequestHandle(request_id='0b7ab6b8-c7dc-4f17-a655-4ee56dd0f864')
43
+
44
+ return TaskResponse(task_id=f"{request.model}::{response.request_id}", system_fingerprint=token)
45
+
46
+
47
+ @alru_cache(ttl=5)
48
+ async def get_task(task_id: str, token: Optional[str] = None):
49
+ model, request_id = task_id.rsplit('::', 1)
50
+ application = f"fal-ai/{model.removeprefix('fal-ai/')}"
51
+
52
+ client = AsyncClient(key=token)
53
+ response = await client.status(application, request_id, with_logs=True)
54
+
55
+ logger.debug(response.__class__.__name__) # Queued, InProgress, COMPLETED
56
+
57
+ if metrics := response.__dict__.get("metrics"): # {'inference_time': 17.29231595993042}
58
+ response = await client.result(application, request_id)
59
+
60
+ return response
61
+
62
+
63
+ if __name__ == '__main__':
64
+ model = "latentsync"
65
+ # model = "sync-lipsync"
66
+
67
+
68
+ model = "fal-ai/kling-video/v2/master/image-to-video"
69
+ model = "fal-ai/kling-video/v1/standard/text-to-video"
70
+
71
+ request = VideoRequest(
72
+ model=model,
73
+ prompt="A cute cat",
74
+ )
75
+
76
+
77
+ r = arun(create_task(request))
78
+
79
+
80
+ # r = arun(get_task(task_id, token))
81
+
82
+ arun(get_task(r.task_id, r.system_fingerprint))
@@ -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}")
@@ -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="a521dd578adcfb191fad38dd4baab498"
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
-
@@ -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('service_id', '3jr8j4ixpe') # 即梦 3jr8j4ixpe 豆包 a9rns2rl98
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
- # "ServiceId": service_id,
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"))
@@ -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