MeUtils 2025.6.13.10.18.19__py3-none-any.whl → 2025.6.13.20.54.5__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.6.13.10.18.19.dist-info → MeUtils-2025.6.13.20.54.5.dist-info}/METADATA +264 -264
- {MeUtils-2025.6.13.10.18.19.dist-info → MeUtils-2025.6.13.20.54.5.dist-info}/RECORD +21 -21
- meutils/apis/chatglm/glm_video_api.py +3 -2
- meutils/apis/fal/images.py +19 -5
- meutils/apis/search/_web_search.py +1 -1
- meutils/apis/volcengine_apis/videos.py +86 -27
- meutils/config_utils/lark_utils/common.py +3 -1
- meutils/data/VERSION +1 -1
- meutils/llm/check_utils.py +18 -8
- meutils/llm/completions/chat_videos.py +2 -0
- meutils/llm/openai_utils/adapters.py +44 -2
- meutils/llm/openai_utils/common.py +5 -0
- meutils/math_utils/common.py +1 -0
- meutils/schemas/image_types.py +5 -2
- meutils/schemas/oneapi/_types.py +3 -3
- meutils/schemas/oneapi/common.py +16 -0
- meutils/str_utils/json_utils.py +23 -45
- {MeUtils-2025.6.13.10.18.19.dist-info → MeUtils-2025.6.13.20.54.5.dist-info}/LICENSE +0 -0
- {MeUtils-2025.6.13.10.18.19.dist-info → MeUtils-2025.6.13.20.54.5.dist-info}/WHEEL +0 -0
- {MeUtils-2025.6.13.10.18.19.dist-info → MeUtils-2025.6.13.20.54.5.dist-info}/entry_points.txt +0 -0
- {MeUtils-2025.6.13.10.18.19.dist-info → MeUtils-2025.6.13.20.54.5.dist-info}/top_level.txt +0 -0
@@ -358,7 +358,7 @@ meutils/apis/baidu/test.py,sha256=nb9ivelHIw84-d1V-MNGRpGoTpLFsNXPk-TTKpjwOfQ,20
|
|
358
358
|
meutils/apis/chatglm/__init__.py,sha256=uFuc9qY-ZjGqbsfcdGZkcEkhjATojWpzk2WXTTujc70,271
|
359
359
|
meutils/apis/chatglm/chat.py,sha256=VARWXh3A2PnoScBgvfgAJC2C8OfVy9vWs3Q-qKg6F8Q,4253
|
360
360
|
meutils/apis/chatglm/glm_video.py,sha256=9LA9pyeIcDDHXGhJbZSJfjxrLeNC3SIuCKJwDIXRKR8,14015
|
361
|
-
meutils/apis/chatglm/glm_video_api.py,sha256=
|
361
|
+
meutils/apis/chatglm/glm_video_api.py,sha256=Wa1uBHIOwPWoAz90RMDeo-nMOvQzdQast1ZMBDTKq4Y,3964
|
362
362
|
meutils/apis/chatglm/images.py,sha256=k2EtOpksgAfJb2MD6kLOKKem713kamTIinRmgr8_3n0,1974
|
363
363
|
meutils/apis/chatglm/temp.py,sha256=zYe6JGUHVfb77T_TdNsdmpTs2D9OyqDTUEkblDAIoYY,17811
|
364
364
|
meutils/apis/chatglm/x.py,sha256=lI86Cd6SN4noCN5HM9gRugcVmjHDtxDTV4m-7Bj61N0,24312
|
@@ -371,7 +371,7 @@ meutils/apis/dreamfaceapp/videos.py,sha256=xtz4GYRTdVE-D7xxFpSaH5Kl5ewXDx9Ogvtkf
|
|
371
371
|
meutils/apis/fal/__init__.py,sha256=A7w3ZAS7Tv20N4X4Em6NshDxKSCPAzaPxHJTbM3BbyM,272
|
372
372
|
meutils/apis/fal/chat.py,sha256=yReABuCWfXOEt7tZax03XIX5KBlfBo2DlEOp2EpiGOM,2641
|
373
373
|
meutils/apis/fal/files.py,sha256=Gppdo96uw8-TCDr8P691jV7dK9Si-E-kJXFJR5BVt-Q,1373
|
374
|
-
meutils/apis/fal/images.py,sha256=
|
374
|
+
meutils/apis/fal/images.py,sha256=x64Gh53sJkmnaNeQzwE1swQLnyalQDfcgk8ccc7-GOM,12775
|
375
375
|
meutils/apis/fal/images_.py,sha256=C-C1TTQtMJ6RRcd-4FeYPn0R5IpPRPUFmBbrTVs_ypA,1446
|
376
376
|
meutils/apis/fal/kling_videos.py,sha256=kL4SRpZafRSCRODtiNqeXauxfamHNdcBTE65BrG1rVA,2554
|
377
377
|
meutils/apis/fal/pd.py,sha256=oPrMK_FJqohl2Kf0U0it8SqgvIlSEYFcSX8sfVkD8bU,311
|
@@ -493,7 +493,7 @@ meutils/apis/replicateai/raw.py,sha256=v_Hztoa8uplkkUSDrnxlhc4qizW3-4tyra685Qnwx
|
|
493
493
|
meutils/apis/runwayml/__init__.py,sha256=90oL_3o8YkFPYm4R4PCxd3m9hgnHpOCLr0u-X4BDg-w,244
|
494
494
|
meutils/apis/runwayml/gen.py,sha256=JrfegC4pI2r7DprDLGMi5px0K1C1pSgopnz0lcJU5RY,5194
|
495
495
|
meutils/apis/search/__init__.py,sha256=1lg0ogEBgtwTi3XvkL5hMfSd14A6YNLO7M9itEJmaYI,244
|
496
|
-
meutils/apis/search/_web_search.py,sha256=
|
496
|
+
meutils/apis/search/_web_search.py,sha256=Mr-0KIY9WYacHwgKfKT7b9estIqgOAWqi95Ws-FbX3g,2842
|
497
497
|
meutils/apis/search/ark_web_search.py,sha256=i6lrw-AinuH22Gds89TTmrvfJKYMFzBAOc-_1uEAPZI,2013
|
498
498
|
meutils/apis/search/baichuan.py,sha256=OUD0TH7KzqSxtuRJgjJPWO8XRQIoUwW5RX7lWMo7BXw,268
|
499
499
|
meutils/apis/search/metaso.py,sha256=4Ui-8MEwk6iymXth2xKnzluGm71B7k8EFa6uEet69G8,8713
|
@@ -543,7 +543,7 @@ meutils/apis/voice_clone/fish_api.py,sha256=pDpE-B8HFiGIOV3NVd1HmFrCC2GQc3wH-81o
|
|
543
543
|
meutils/apis/volcengine_apis/__init__.py,sha256=gtu5ZNCc3up8bzgrCi10uwhsC04HpuCEEPXR_iVCNJE,244
|
544
544
|
meutils/apis/volcengine_apis/images.py,sha256=F9LXXptesnASB_Al7rkEshb2S5r3PixZd8w0mif5468,5463
|
545
545
|
meutils/apis/volcengine_apis/tasks.py,sha256=da2wYs2bqjYte_P2aFbSdKkLBaghuAj6vVKIlgdMg5A,4495
|
546
|
-
meutils/apis/volcengine_apis/videos.py,sha256=
|
546
|
+
meutils/apis/volcengine_apis/videos.py,sha256=Y_iHacAsmhhryJVN5KEfW4dEu6Jb1sWvUXRpUcfijZY,6995
|
547
547
|
meutils/async_task/__init__.py,sha256=45cUr-GWvQ1JFYGOYPOIkHLyTR3JbfP_PEYrmktpMLo,367
|
548
548
|
meutils/async_task/celery_config.py,sha256=BX1h3jY34aO6UmUFakdBUwOdsEiOxCGuUtYDUKFtafc,3461
|
549
549
|
meutils/async_task/common.py,sha256=ZJ4e0CsEJf1ppPmGSwPCwhZBAkUL5xsi_t1ny-bJuko,845
|
@@ -587,12 +587,12 @@ meutils/cmds/subprocess_demo.py,sha256=oTeTIx8k6XwtOT6hZpmy9XNcRErzilqWcdoxcrVcH
|
|
587
587
|
meutils/config_utils/__init__.py,sha256=GhgsStfGJDC8F_YgC6X5Jnj9HkgXJXxeYiJWTAkWKTo,271
|
588
588
|
meutils/config_utils/manager.py,sha256=du-8e9Zdgnrn9e0b4GPR6FGtuQY7DLWNJqgkoU0TZ48,3147
|
589
589
|
meutils/config_utils/lark_utils/__init__.py,sha256=Gf-5Y8uZiqY9jdbfiIboL92MQjOTOo0ZZ245PGxCbaY,297
|
590
|
-
meutils/config_utils/lark_utils/common.py,sha256=
|
590
|
+
meutils/config_utils/lark_utils/common.py,sha256=wBeztamCzJ6SqFsf5tyTv_MU3pzl8j01NF2VZ2FKjZA,14445
|
591
591
|
meutils/config_utils/lark_utils/demo.py,sha256=3g0Fs7oLaeW75T60gYWMLgyNg1OnfOjfHOno5NxNAio,293
|
592
592
|
meutils/config_utils/lark_utils/x.py,sha256=MlMQGhehP9xMEgetxVCX68XFaosfKoW1JA5cZ3JqN2w,1857
|
593
593
|
meutils/crawlers/__init__.py,sha256=TBU4xA-IOsHV-0yIkW7YXxn_QT7TT8NncqxO7IykEfs,271
|
594
594
|
meutils/data/SimHei.ttf,sha256=-XEnekS5yHP_URkT4XBI2w22ylV-KxudhkeIYFbrILA,10062565
|
595
|
-
meutils/data/VERSION,sha256=
|
595
|
+
meutils/data/VERSION,sha256=0dH_i6pOi26OK-cY5Pnx9eReRsj1wA0_0yy_GNgF0qw,19
|
596
596
|
meutils/data/_FLAG,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
597
597
|
meutils/data/_SUCCESS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
598
598
|
meutils/data/__init__.py,sha256=Hfwkkxs4zHqKhxht0YrhS566a9P5axtmgNvM5wF8ceQ,243
|
@@ -674,7 +674,7 @@ meutils/jwt_utils/__init__.py,sha256=zs4pIDk4sQ82o7meMwt64_tv2WBMRTaXX9doe0ilvvs
|
|
674
674
|
meutils/jwt_utils/common.py,sha256=u2PPQJ9S-83y8f3Sb5L2OCRP7o-xV56EAmlzMZ8Je0Q,2352
|
675
675
|
meutils/llm/__init__.py,sha256=mYv0QpACLd-wz4htIduPuTU3mX06_Y8ZprxDohtZGBM,244
|
676
676
|
meutils/llm/check_api.py,sha256=Cu60Rvp7zLmmazuLXxpK4z-FCab4NrO4nH5LzfYjjoM,3591
|
677
|
-
meutils/llm/check_utils.py,sha256
|
677
|
+
meutils/llm/check_utils.py,sha256=jp6AxgUZ1uej3XMZmRuD9jitkNsHHQ1qnolbsXIPVZk,8585
|
678
678
|
meutils/llm/clients.py,sha256=qZa9WC85Ah4tdEd-EI_P_038mnJLq_z-smaJdwJp-EM,2956
|
679
679
|
meutils/llm/demo.py,sha256=gyGjTxuNFMOa1X4CXaChkq0lcjbKiRsnSRhkeMvsoQk,3822
|
680
680
|
meutils/llm/mappers.py,sha256=ZQLl3OuD06kVMP8bwIpVgAB1UVzMJWUJiZ3vgk-ZjeI,303
|
@@ -685,7 +685,7 @@ meutils/llm/completions/__init__.py,sha256=q5FEYPpo2f_P44Ghdh9fkrmqZLX2Asso8p-nf
|
|
685
685
|
meutils/llm/completions/chat_gemini.py,sha256=0x9HQxuDAHoWJ79JoaEKKWVNy4PRyd-Et-j8V93NqkY,4395
|
686
686
|
meutils/llm/completions/chat_plus.py,sha256=RPYQqx4vc57gevcz0gUS7QPvGm0M12ktAspMKJtoeuk,7727
|
687
687
|
meutils/llm/completions/chat_spark.py,sha256=xsKe3xkOwF5Hs7pkuJSDmeUgwy7xPOJhjuvM_w4BpmI,11412
|
688
|
-
meutils/llm/completions/chat_videos.py,sha256=
|
688
|
+
meutils/llm/completions/chat_videos.py,sha256=UR67oB6yrlDinT_Ij13VQDbdZLFsC4FeEuRCoTjiVQ0,2917
|
689
689
|
meutils/llm/completions/cp.py,sha256=tGf3umHKXDH0KuTfN7BLr8yAvN6MYWLYR5UVaJkJs0c,4172
|
690
690
|
meutils/llm/completions/deep2x.py,sha256=Fo5cC1jXOFFXOZeRGk9IpCZVCQc8vgOizuYFuPaWujA,3746
|
691
691
|
meutils/llm/completions/delilegal.py,sha256=mr53ps7I33SC8Fjy4rma-xoNF-mLgwdZfHgdSOyLtQY,5131
|
@@ -716,8 +716,8 @@ meutils/llm/openai_polling/__init__.py,sha256=qmAMITPtrTD-y57RiJXewuOic7iLKBhx8m
|
|
716
716
|
meutils/llm/openai_polling/chat.py,sha256=PT7Xb621RIa7SSwdlOCq5OMgk7nSyN7cBaBW4qQwpvg,8180
|
717
717
|
meutils/llm/openai_polling/images.py,sha256=qKMk3vCvamS_48ceC-_y2LPpP5XsD476FHG9MUu8kks,1042
|
718
718
|
meutils/llm/openai_utils/__init__.py,sha256=MWyNhP2K49oaHGEZlInZc3XlwqlStFultP8k7HDPAwk,290
|
719
|
-
meutils/llm/openai_utils/adapters.py,sha256
|
720
|
-
meutils/llm/openai_utils/common.py,sha256=
|
719
|
+
meutils/llm/openai_utils/adapters.py,sha256=-6e-gpSYVPUouP9o8leAdOOCNuk-dtndUhzMOyvQpUM,3425
|
720
|
+
meutils/llm/openai_utils/common.py,sha256=H24wag3LD2RqKV_sXD4OBa4VtmWh8JNUo5h5xvHVmAk,10557
|
721
721
|
meutils/llm/openai_utils/tool_outputs.py,sha256=6mNkm4btgy0uzF98gdmcah1bYmoflXdLz2Sqm0KC_LQ,1224
|
722
722
|
meutils/llm/output_parsers/__init__.py,sha256=EGKvgUD47ReyV5Z9RXDCrdDLgfKMHdoayzsXVmBuQxw,3474
|
723
723
|
meutils/llm/prompts/__init__.py,sha256=VlEEViFoUSRS0EF1rHJXHh9Ik9FpvAiR1luKjHOsUc4,8580
|
@@ -729,7 +729,7 @@ meutils/logging/handlers.py,sha256=ngnVVN7wcFQZsSTnc-1nP5ZRCp-jbO1Qt7mjNfum_-8,7
|
|
729
729
|
meutils/logging/log_utils.py,sha256=Sa5-Y4fWNTKQw2fIb1dbPgOypl6S6m7EOrbciSqEt5A,2937
|
730
730
|
meutils/logging/logger.py,sha256=-J_tWYfAvPhSTshVWIiN-6zTZnjkFuwDfMtxUtuNkuY,6183
|
731
731
|
meutils/math_utils/__init__.py,sha256=vg71MyiPyDCeFDwi42MLSfAFQl43a3uNLIgerY0eDRA,284
|
732
|
-
meutils/math_utils/common.py,sha256=
|
732
|
+
meutils/math_utils/common.py,sha256=fiNTFB2MWFXq536T6AFYAD6Y67lXz4nDpoVd2qQdjBw,1128
|
733
733
|
meutils/notice/__init__.py,sha256=BVbcBx4ks-BH_63gEcjMxL67oX1_aWdaM8r3TDo8Ogg,248
|
734
734
|
meutils/notice/emails.py,sha256=TvC1xv3MpFC2HU0lTQW5SmNuj7UMlgjpsUImMp9jKOw,2403
|
735
735
|
meutils/notice/feishu.py,sha256=ydQuZgzmL3j5u0ySkLKShRemM4UYYOKa-vIsnezKWEU,4626
|
@@ -825,7 +825,7 @@ meutils/schemas/fish_types.py,sha256=yC0ZFr3Ebh8F0OhtMsXYaIfNNvzOM2LT9YtKTaRoHGU
|
|
825
825
|
meutils/schemas/hailuo_types.py,sha256=ubG6qIU506tq51UsURuwlPhtPNa49xHSoBzBtW7jg_0,7431
|
826
826
|
meutils/schemas/haimian_types.py,sha256=jGu484UviAeBgy5OIUyRY4uYCxXfv16zDPqiJQr9wNQ,1364
|
827
827
|
meutils/schemas/idphoto_types.py,sha256=nuHbpppejRSkJCiQ7YKx0Gnke0ShKZhOvdg0e7tk9-0,1074
|
828
|
-
meutils/schemas/image_types.py,sha256=
|
828
|
+
meutils/schemas/image_types.py,sha256=pYlsfwmJQ8wOS6TcV0lOGPaKPakcygOZlkOS0zlDc9k,16350
|
829
829
|
meutils/schemas/jimeng_types.py,sha256=z0mAICgNE0Yaq09_puzgMfHOP-QKWiZqqMlFbLVHtmY,1995
|
830
830
|
meutils/schemas/jina_types.py,sha256=SLRRBCap2B1uXnHF7Sgnlz1Work8HvdIltjj4oVlGTk,8826
|
831
831
|
meutils/schemas/kimi_types.py,sha256=PjCgHwCDNzKasn4X6rUzvOENqKYT3xj07cgp71IdsDA,3607
|
@@ -860,8 +860,8 @@ meutils/schemas/yuanbao_types.py,sha256=bI_CF9ybaJ1ux8NgP5gEi33k_K_vHmlyD09fxzhY
|
|
860
860
|
meutils/schemas/db/__init__.py,sha256=m1maURVoM6dIW0yt6ELZrZTzULtkHybVOSXtHNJRVIU,272
|
861
861
|
meutils/schemas/db/oneapi_types.py,sha256=3t2m0H80saEXmYUZfVFrtEaY117GjZTsSa1GKgkJzqQ,3896
|
862
862
|
meutils/schemas/oneapi/__init__.py,sha256=uevbi3QAvFzN9WPbx9bYKTDyKt7P2ueZO6W0nSiD0sk,289
|
863
|
-
meutils/schemas/oneapi/_types.py,sha256=
|
864
|
-
meutils/schemas/oneapi/common.py,sha256=
|
863
|
+
meutils/schemas/oneapi/_types.py,sha256=_QAl69kZ7tEU2UMmSSCNIVHg_0lc8bm5CKqNa0eDvBc,3091
|
864
|
+
meutils/schemas/oneapi/common.py,sha256=DptA_rZhSjMMeAd0WnrPq6IDCsKTRqEqKmoflz6Gv4w,42165
|
865
865
|
meutils/schemas/oneapi/icons.py,sha256=T7W5gInBJoHe62wzMimbG_UI-wn3_-rmQ1O4O2z-CQY,1089
|
866
866
|
meutils/schemas/oneapi/model_group_info.py,sha256=rGtflYJuFIjk5MsVEvK9JUR4IciX8jfErqeLqf8DIlQ,1586
|
867
867
|
meutils/schemas/oneapi/model_info.py,sha256=_uwKEPIIqm7ZYfhmpxtXB2QNsS83SpJY-OaBzvogC9w,772
|
@@ -915,7 +915,7 @@ meutils/settings/base.py,sha256=kb3QVS2eUFWyGgvegtSK4cqJFF76J1JctTSzCVqc1Mo,264
|
|
915
915
|
meutils/settings/demo.py,sha256=Ht3t6LREQsKa5W2owNrOZNAoZfS-zItIFNwGhhPj-4k,484
|
916
916
|
meutils/str_utils/Translator.py,sha256=tfvNQIeVCqmX9yW6jobeibDHG6X-XecSSAx9kJIFFyw,1258
|
917
917
|
meutils/str_utils/__init__.py,sha256=7rVAWR0bbxVvuWFwyC0ZedpY1QVSmrrLwLIfPAfjWqM,10238
|
918
|
-
meutils/str_utils/json_utils.py,sha256=
|
918
|
+
meutils/str_utils/json_utils.py,sha256=10QhpmzAWI0hERdQb5JDeNqphI5QWFTjeZJhiYkuI4c,2827
|
919
919
|
meutils/str_utils/regular_expression.py,sha256=HqEcPNyUHBBo7oJlwOFNpiFiO5NCXB8hD41nI1826fU,6161
|
920
920
|
meutils/str_utils/__translater/__init__.py,sha256=mtDbKL_Qdkeq5VPVO1M4ejf9H8PzKM5h7iepqkBG8N0,277
|
921
921
|
meutils/str_utils/__translater/tencent.py,sha256=1E_56l6-A49Yuz2ZrMKxt-QJfcf0xDYN2X0dg58Dytk,1408
|
@@ -990,9 +990,9 @@ meutils/tools/seize.py,sha256=nOKAS63w-Lbi48I0m2MPhdsokUTwxco0laPxYVmW4Mw,1064
|
|
990
990
|
meutils/tools/service_monitor.py,sha256=ibsLtBN2g2DL7ZnLJ8vhiZOiOcqTAyx711djDdBK-3M,1255
|
991
991
|
meutils/tools/sys_monitor.py,sha256=6MoyzrItqDUOSjfHcMJmMofQkEPTW36CT_aKui0rg84,429
|
992
992
|
meutils/tools/token_monitor.py,sha256=Np-YK-R4P4IPAXyZvMxwvXI4sFmNJQAQK1lSegNaYpA,997
|
993
|
-
MeUtils-2025.6.13.
|
994
|
-
MeUtils-2025.6.13.
|
995
|
-
MeUtils-2025.6.13.
|
996
|
-
MeUtils-2025.6.13.
|
997
|
-
MeUtils-2025.6.13.
|
998
|
-
MeUtils-2025.6.13.
|
993
|
+
MeUtils-2025.6.13.20.54.5.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
994
|
+
MeUtils-2025.6.13.20.54.5.dist-info/METADATA,sha256=PMyIpnC-2n84f6UqMoQ1XwnVskZMRD85jTGJJW8LCzs,32833
|
995
|
+
MeUtils-2025.6.13.20.54.5.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
996
|
+
MeUtils-2025.6.13.20.54.5.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
|
997
|
+
MeUtils-2025.6.13.20.54.5.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
|
998
|
+
MeUtils-2025.6.13.20.54.5.dist-info/RECORD,,
|
@@ -102,15 +102,16 @@ async def generate(request: ImageRequest, n: int = 30): # 兼容dalle3
|
|
102
102
|
|
103
103
|
# VideoResult
|
104
104
|
if __name__ == '__main__':
|
105
|
-
api_key = "
|
105
|
+
api_key = "88b82799f3234a5aad130b0f74c7eb85.tBMTRh0h1IqbvMaw"
|
106
106
|
# api_key = "7d10426c06afa81e8d7401d97781249c.DbqlSsicRtaUdKXI" # 新号
|
107
|
+
# api_key = "e21bd630f681c4d90b390cd609720483.WSFVgA3Kk1wNCX0mN"
|
107
108
|
|
108
109
|
request = VideoRequest(
|
109
110
|
model='cogvideox-flash',
|
110
111
|
# model='cogvideox'
|
111
112
|
|
112
113
|
)
|
113
|
-
|
114
|
+
r = arun(create_task(request, api_key=api_key))
|
114
115
|
pass
|
115
116
|
|
116
117
|
request = ImageRequest(prompt="https://oss.ffire.cc/files/kling_watermark.png 让这个女人笑起来")
|
meutils/apis/fal/images.py
CHANGED
@@ -57,7 +57,7 @@ async def generate(request: ImageRequest, api_key: Optional[str] = None):
|
|
57
57
|
token = api_key or await get_next_token_for_polling(feishu_url=FEISHU_URL, from_redis=True, check_token=check)
|
58
58
|
|
59
59
|
arguments = request.model_dump(exclude_none=True)
|
60
|
-
width, height = request.size.split("x")
|
60
|
+
width, height = (request.size or "1024x1024").split("x")
|
61
61
|
if request.model.startswith("fal-ai/recraft"): # https://fal.ai/models/fal-ai/recraft-v3/api#queue-submit
|
62
62
|
arguments = {
|
63
63
|
**arguments,
|
@@ -157,7 +157,7 @@ async def generate(request: ImageRequest, api_key: Optional[str] = None):
|
|
157
157
|
|
158
158
|
aspect_ratios = {'21:9', '16:9', '4:3', '3:2', '1:1', '2:3', '3:4', '9:16', '9:21'}
|
159
159
|
|
160
|
-
if aspect_ratio := request.prompt2aspect_ratio(aspect_ratios):
|
160
|
+
if aspect_ratio := request.prompt2aspect_ratio(aspect_ratios): # 提示词优先级最高
|
161
161
|
arguments["aspect_ratio"] = aspect_ratio
|
162
162
|
|
163
163
|
elif request.aspect_ratio in aspect_ratios:
|
@@ -250,6 +250,20 @@ if __name__ == '__main__':
|
|
250
250
|
prompt = '把小鸭子放在女人的T恤上面。\nhttps://s3.ffire.cc/cdn/20250530/tEzZKkhp3tKbNzva6mgC2T\nhttps://s3.ffire.cc/cdn/20250530/AwHJpuJuNg5w3sVbH4PZdv'
|
251
251
|
request = ImageRequest(prompt=prompt, model=model)
|
252
252
|
|
253
|
+
data = {
|
254
|
+
"model": "fal-ai/flux-pro/kontext",
|
255
|
+
"prompt": "https://s3.ffire.cc/files/3_4.webp 老虎换个姿势",
|
256
|
+
"size": 'auto'
|
257
|
+
}
|
258
|
+
|
259
|
+
|
260
|
+
request = ImageRequest(**data)
|
261
|
+
|
262
|
+
print(request)
|
263
|
+
|
264
|
+
arun(generate(request))
|
265
|
+
|
266
|
+
|
253
267
|
# request = ImageRequest(prompt='https://oss.ffire.cc/files/kling_watermark.png The woman smiled', model=model)
|
254
268
|
#
|
255
269
|
# request = ImageRequest(prompt="https://oss.ffire.cc/files/kling_watermark.png 让这个女人哭起来", model=model)
|
@@ -264,9 +278,9 @@ if __name__ == '__main__':
|
|
264
278
|
|
265
279
|
# arun(AsyncClient(key=token).key)
|
266
280
|
|
267
|
-
FEISHU_URL = "https://xchatllm.feishu.cn/sheets/QB6Psj8zrhB4JStEW0acI4iInNg?sheet=ef2e81"
|
268
|
-
|
269
|
-
tokens = arun(get_series(FEISHU_URL))
|
281
|
+
# FEISHU_URL = "https://xchatllm.feishu.cn/sheets/QB6Psj8zrhB4JStEW0acI4iInNg?sheet=ef2e81"
|
282
|
+
#
|
283
|
+
# tokens = arun(get_series(FEISHU_URL))
|
270
284
|
# tokens = ["578e143c-702d-46a1-8c02-d451bc3e155b:bb531a95f79c6026e7bc7ab676163c71"]
|
271
285
|
# tokens = """
|
272
286
|
# 30e9fe5c-75d0-4bdd-b11d-ff17dbe4bba5:3de8535e2fa4d9347e599a845cf3e7b8
|
@@ -37,7 +37,7 @@ class Completions(object):
|
|
37
37
|
# search_completion = await zhipuai_client.chat.completions.create(**data)
|
38
38
|
# logger.debug(search_completion.model_dump_json(indent=4))
|
39
39
|
#
|
40
|
-
|
40
|
+
# if results := json_path(search_completion, '$..[keywords,query,search_result]'):
|
41
41
|
# data = dict(zip(["keywords", "query", "search_result"], results))
|
42
42
|
# if search_result2md:
|
43
43
|
# global df
|
@@ -9,13 +9,14 @@
|
|
9
9
|
# @Description :
|
10
10
|
|
11
11
|
from meutils.pipe import *
|
12
|
+
from meutils.io.files_utils import to_url
|
12
13
|
from meutils.decorators.retry import retrying
|
13
14
|
from meutils.llm.clients import AsyncClient
|
14
15
|
from meutils.schemas.openai_types import CompletionRequest
|
15
16
|
from meutils.notice.feishu import send_message_for_volc as send_message
|
16
17
|
|
17
18
|
from meutils.db.redis_db import redis_aclient
|
18
|
-
from meutils.llm.check_utils import check_token_for_volc
|
19
|
+
from meutils.llm.check_utils import check_token_for_volc as check
|
19
20
|
from meutils.config_utils.lark_utils import get_next_token_for_polling, get_series
|
20
21
|
|
21
22
|
from fastapi import APIRouter, File, UploadFile, Query, Form, Depends, Request, HTTPException, status, BackgroundTasks
|
@@ -27,7 +28,7 @@ FEISHU_URL = "https://xchatllm.feishu.cn/sheets/GYCHsvI4qhnDPNtI4VPcdw2knEd?shee
|
|
27
28
|
async def get_valid_token():
|
28
29
|
tokens = await get_series(FEISHU_URL)
|
29
30
|
for token in tokens:
|
30
|
-
if await
|
31
|
+
if await check(token):
|
31
32
|
logger.debug(f"有效 {token}")
|
32
33
|
|
33
34
|
return token
|
@@ -38,26 +39,46 @@ async def get_valid_token():
|
|
38
39
|
send_message(_, n=3)
|
39
40
|
|
40
41
|
|
42
|
+
# check_image_and_video = partial(check, purpose='video and image')
|
43
|
+
|
44
|
+
|
41
45
|
@retrying(max_retries=5)
|
42
46
|
async def create_task(request: CompletionRequest, api_key: Optional[str] = None):
|
43
|
-
|
47
|
+
# api_key = "e32b1693-147e-40db-a83a-82f85cfa6360" # 欠费
|
48
|
+
api_key = api_key or await get_next_token_for_polling(feishu_url=FEISHU_URL, check_token=check)
|
49
|
+
|
50
|
+
logger.debug(f"api_key: {api_key}")
|
44
51
|
|
45
52
|
payload = {
|
46
|
-
"model":
|
47
|
-
|
53
|
+
"model": request.model,
|
54
|
+
}
|
55
|
+
|
56
|
+
if hasattr(request, 'content'):
|
57
|
+
payload["content"] = request.content
|
58
|
+
|
59
|
+
elif image_urls := request.last_urls.get("image_url"):
|
60
|
+
payload["content"] = [
|
48
61
|
{
|
49
62
|
"type": "text",
|
50
|
-
"text":
|
63
|
+
"text": request.last_user_content
|
51
64
|
},
|
52
65
|
{
|
53
66
|
"type": "image_url",
|
54
67
|
"image_url": {
|
55
|
-
"url":
|
68
|
+
"url": image_urls[-1]
|
69
|
+
# "url": await to_url(image_urls[-1], filename=".png")
|
70
|
+
|
56
71
|
}
|
57
|
-
}
|
58
|
-
|
59
|
-
|
60
|
-
|
72
|
+
}]
|
73
|
+
else:
|
74
|
+
payload["content"] = [
|
75
|
+
{
|
76
|
+
"type": "text",
|
77
|
+
"text": request.last_user_content
|
78
|
+
}]
|
79
|
+
|
80
|
+
logger.debug(payload)
|
81
|
+
|
61
82
|
client = AsyncClient(base_url="https://ark.cn-beijing.volces.com/api/v3", api_key=api_key)
|
62
83
|
|
63
84
|
response = await client.post(
|
@@ -74,7 +95,7 @@ async def create_task(request: CompletionRequest, api_key: Optional[str] = None)
|
|
74
95
|
|
75
96
|
async def get_task(task_id: str):
|
76
97
|
token = await redis_aclient.get(task_id) # 绑定对应的 token
|
77
|
-
|
98
|
+
api_key = token and token.decode()
|
78
99
|
if not token:
|
79
100
|
raise HTTPException(status_code=404, detail="TaskID not found")
|
80
101
|
|
@@ -92,22 +113,16 @@ async def get_task(task_id: str):
|
|
92
113
|
if __name__ == "__main__":
|
93
114
|
# api_key = "07139a08-e360-44e2-ba31-07f379bf99ed" # {'id': 'cgt-20250611164343-w2bzq'} todo 过期调用get
|
94
115
|
|
95
|
-
api_key = "
|
116
|
+
api_key = "c2449725-f758-42af-8f2c-e05b68dd06ad" # 欠费
|
117
|
+
|
118
|
+
api_key = None
|
96
119
|
|
97
120
|
request = CompletionRequest(
|
98
121
|
model="doubao-seedance-1-0-pro-250528",
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
},
|
104
|
-
|
105
|
-
{
|
106
|
-
"type": "image_url",
|
107
|
-
"image_url": {
|
108
|
-
"url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_i2v.png"
|
109
|
-
}
|
110
|
-
}
|
122
|
+
# model="doubao-seaweed-241128",
|
123
|
+
messages=[
|
124
|
+
{"role": "user",
|
125
|
+
"content": "无人机以极快速度穿越复杂障碍或自然奇观,带来沉浸式飞行体验 --resolution 1080p --duration 5 --camerafixed false"}
|
111
126
|
]
|
112
127
|
)
|
113
128
|
# r = arun(create_task(request, api_key))
|
@@ -122,12 +137,18 @@ if __name__ == "__main__":
|
|
122
137
|
arun(get_valid_token())
|
123
138
|
|
124
139
|
"""
|
140
|
+
{'id': 'cgt-20250613160030-2dvd7',
|
141
|
+
'model': 'doubao-seedance-1-0-pro-250528',
|
142
|
+
'status': 'running',
|
143
|
+
'created_at': 1749801631,
|
144
|
+
'updated_at': 1749801631}
|
145
|
+
|
125
146
|
openai.NotFoundError: Error code: 404 - {'error': {'code': 'ModelNotOpen', 'message': 'Your account 2107813928 has not activated the model doubao-seedance-1-0-pro. Please activate the model service in the Ark Console. Request id: 021749718307793fc1441381f8ed755824bb9d58a45ee6cb04068', 'param': '', 'type': 'NotFound'}}
|
126
147
|
|
127
148
|
|
128
149
|
curl -X POST https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks \
|
129
150
|
-H "Content-Type: application/json" \
|
130
|
-
-H "Authorization: Bearer
|
151
|
+
-H "Authorization: Bearer 21289782-f54f-481b-857e-ba1c8b94927b" \
|
131
152
|
-d '{
|
132
153
|
"model": "doubao-seaweed-241128",
|
133
154
|
"content": [
|
@@ -138,9 +159,47 @@ curl -X POST https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks
|
|
138
159
|
{
|
139
160
|
"type": "image_url",
|
140
161
|
"image_url": {
|
141
|
-
"url": "https://
|
162
|
+
"url": "https://s3.ffire.cc/cdn/20250613/vS2jaDCmA8crncXMR4fB7z_.png"
|
142
163
|
}
|
143
164
|
}
|
144
165
|
]
|
145
166
|
}'
|
167
|
+
|
168
|
+
curl -X POST https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks \
|
169
|
+
-H "Content-Type: application/json" \
|
170
|
+
-H "Authorization: Bearer 05702f67-53ba-438a-a22e-6e6a690b5843" \
|
171
|
+
-d '{
|
172
|
+
"model": "doubao-seedance-1-0-pro-250528",
|
173
|
+
"content": [
|
174
|
+
{
|
175
|
+
"type": "text",
|
176
|
+
"text": "女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动 --resolution 480p --duration 5"
|
177
|
+
},
|
178
|
+
{
|
179
|
+
"type": "image_url",
|
180
|
+
"image_url": {
|
181
|
+
"url": "https://s3.ffire.cc/cdn/20250613/vS2jaDCmA8crncXMR4fB7z_.png"
|
182
|
+
}
|
183
|
+
}
|
184
|
+
]
|
185
|
+
}'
|
186
|
+
|
187
|
+
curl -X POST https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks \
|
188
|
+
-H "Content-Type: application/json" \
|
189
|
+
-H "Authorization: Bearer e32b1693-147e-40db-a83a-82f85cfa6360" \
|
190
|
+
-d '{
|
191
|
+
"model": "doubao-seaweed-241128",
|
192
|
+
"content": "a dog"
|
193
|
+
}'
|
194
|
+
|
195
|
+
|
196
|
+
{'id': 'cgt-20250613160030-2dvd7',
|
197
|
+
'model': 'doubao-seedance-1-0-pro-250528',
|
198
|
+
'status': 'succeeded',
|
199
|
+
'content': {'video_url': 'https://ark-content-generation-cn-beijing.tos-cn-beijing.volces.com/doubao-seedance-1-0-pro/02174980163157800000000000000000000ffffac182c17b26890.mp4?X-Tos-Algorithm=TOS4-HMAC-SHA256&X-Tos-Credential=AKLTYjg3ZjNlOGM0YzQyNGE1MmI2MDFiOTM3Y2IwMTY3OTE%2F20250613%2Fcn-beijing%2Ftos%2Frequest&X-Tos-Date=20250613T080120Z&X-Tos-Expires=86400&X-Tos-Signature=5e0928f738f49b93f54923549de4c65940c5007d5e86cb5ebadc756cca3aa03e&X-Tos-SignedHeaders=host'},
|
200
|
+
'usage': {'completion_tokens': 246840, 'total_tokens': 246840},
|
201
|
+
'created_at': 1749801631,
|
202
|
+
'updated_at': 1749801680}
|
203
|
+
|
204
|
+
|
146
205
|
"""
|
@@ -257,7 +257,9 @@ async def get_next_token_for_polling(
|
|
257
257
|
check_token: Optional[Callable] = None,
|
258
258
|
max_size: Optional[int] = 10,
|
259
259
|
from_redis: Optional[bool] = False,
|
260
|
-
min_points: float = 0
|
260
|
+
min_points: float = 0,
|
261
|
+
|
262
|
+
ttl: Optional[int] = None,
|
261
263
|
):
|
262
264
|
if from_redis:
|
263
265
|
return await get_next_token(feishu_url, check_token, ttl=7 * 24 * 3600, min_points=min_points)
|
meutils/data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2025.06.13.
|
1
|
+
2025.06.13.20.54.05
|
meutils/llm/check_utils.py
CHANGED
@@ -192,18 +192,28 @@ async def check_token_for_sophnet(api_key, threshold: float = 1):
|
|
192
192
|
|
193
193
|
#
|
194
194
|
@retrying()
|
195
|
-
async def check_token_for_volc(api_key, threshold: float = 1):
|
195
|
+
async def check_token_for_volc(api_key, threshold: float = 1, purpose: Optional[str] = None):
|
196
196
|
if not isinstance(api_key, str):
|
197
197
|
return await check_tokens(api_key, check_token_for_volc)
|
198
198
|
|
199
199
|
try:
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
200
|
+
base_url = os.getenv("VOLC_BASE_URL") or "https://ark.cn-beijing.volces.com/api/v3"
|
201
|
+
client = AsyncOpenAI(base_url, api_key=api_key)
|
202
|
+
|
203
|
+
if purpose:
|
204
|
+
response = client.images.generate(
|
205
|
+
model="doubao-seedream-3-0-t2i-250415",
|
206
|
+
prompt="鱼眼镜头,一只猫咪的头部,画面呈现出猫咪的五官因为拍摄方式扭曲的效果。",
|
207
|
+
size="1024x1024",
|
208
|
+
response_format="url"
|
209
|
+
)
|
210
|
+
else:
|
211
|
+
|
212
|
+
response = await client.chat.completions.create(
|
213
|
+
model="deepseek-v3-250324",
|
214
|
+
messages=[{"role": "user", "content": "hi"}],
|
215
|
+
max_tokens=1
|
216
|
+
)
|
207
217
|
return True
|
208
218
|
except TimeoutException as e:
|
209
219
|
raise
|
@@ -6,19 +6,23 @@
|
|
6
6
|
# @Author : betterme
|
7
7
|
# @WeChat : meutils
|
8
8
|
# @Software : PyCharm
|
9
|
-
# @Description :
|
9
|
+
# @Description :
|
10
|
+
import json
|
10
11
|
|
11
12
|
from meutils.pipe import *
|
12
13
|
from meutils.io.files_utils import to_url, to_url_fal
|
14
|
+
from meutils.str_utils.json_utils import json_path
|
13
15
|
from meutils.schemas.openai_types import CompletionRequest
|
14
16
|
from meutils.schemas.image_types import ImageRequest
|
15
17
|
from meutils.llm.openai_utils import chat_completion, chat_completion_chunk, create_chat_completion_chunk
|
16
18
|
|
19
|
+
|
17
20
|
async def stream_to_nostream(
|
18
21
|
request: CompletionRequest,
|
19
22
|
):
|
20
23
|
pass
|
21
24
|
|
25
|
+
|
22
26
|
async def chat_for_image(
|
23
27
|
generate: Callable,
|
24
28
|
request: CompletionRequest,
|
@@ -61,6 +65,44 @@ async def chat_for_image(
|
|
61
65
|
return chunks
|
62
66
|
|
63
67
|
|
68
|
+
async def chat_for_video(
|
69
|
+
get_task: Callable, # response
|
70
|
+
taskid: str,
|
71
|
+
):
|
72
|
+
"""异步任务"""
|
73
|
+
|
74
|
+
async def gen():
|
75
|
+
|
76
|
+
# 获取任务
|
77
|
+
for i in f"""> VideoTask(id={taskid})\n""":
|
78
|
+
await asyncio.sleep(0.03)
|
79
|
+
yield i
|
80
|
+
|
81
|
+
yield f"[🤫 任务进度]("
|
82
|
+
for i in range(60):
|
83
|
+
await asyncio.sleep(3)
|
84
|
+
response = await get_task(taskid) # 包含 "status"
|
85
|
+
|
86
|
+
logger.debug(response)
|
87
|
+
if response.get("status", "").lower().startswith(("succ", "fail")):
|
88
|
+
|
89
|
+
yield ")🎉🎉🎉\n\n"
|
90
|
+
|
91
|
+
yield f"""```json\n{json.dumps(response, indent=4, ensure_ascii=False)}\n```"""
|
92
|
+
|
93
|
+
if urls := json_path(response, expr='$..[url,image_url,video_url]'): # 所有url
|
94
|
+
for i, url in enumerate(urls, 1):
|
95
|
+
yield f"\n\n[下载链接{i}]({url})\n\n"
|
96
|
+
|
97
|
+
break
|
98
|
+
|
99
|
+
else:
|
100
|
+
yield "🚀"
|
101
|
+
|
102
|
+
chunks = create_chat_completion_chunk(gen())
|
103
|
+
return chunks
|
104
|
+
|
105
|
+
|
64
106
|
if __name__ == '__main__':
|
65
107
|
request = CompletionRequest(
|
66
108
|
model="deepseek-r1-Distill-Qwen-1.5B",
|
@@ -69,4 +111,4 @@ if __name__ == '__main__':
|
|
69
111
|
],
|
70
112
|
stream=False,
|
71
113
|
)
|
72
|
-
arun(chat_for_image(None, request))
|
114
|
+
arun(chat_for_image(None, request))
|
@@ -178,6 +178,7 @@ async def ppu_flow(
|
|
178
178
|
else: # 不计费
|
179
179
|
yield
|
180
180
|
|
181
|
+
|
181
182
|
# 按量计费
|
182
183
|
def create_chat_completion(
|
183
184
|
completion: Union[str, Iterable[str]],
|
@@ -255,6 +256,10 @@ def get_payment_times(request: Union[BaseModel, dict], duration: float = 5):
|
|
255
256
|
# 时长
|
256
257
|
N += request.get("duration", 0) // duration
|
257
258
|
|
259
|
+
# 命令行参数 --duration 5
|
260
|
+
if "--duration 10" in str(request):
|
261
|
+
N += 1
|
262
|
+
|
258
263
|
return N
|
259
264
|
|
260
265
|
|
meutils/math_utils/common.py
CHANGED
meutils/schemas/image_types.py
CHANGED
@@ -99,7 +99,7 @@ class ImageRequest(BaseModel): # openai
|
|
99
99
|
style: Union[str, Literal["vivid", "natural"]] = None
|
100
100
|
|
101
101
|
# 测试默认值 Optional[Literal["256x256", "512x512", "1024x1024", "1792x1024", "1024x1792"]]
|
102
|
-
size: Optional[str] = '1024x1024'
|
102
|
+
size: Optional[str] = '1024x1024' # null auto
|
103
103
|
|
104
104
|
response_format: Optional[Literal["oss_url", "url", "b64_json"]] = "url"
|
105
105
|
|
@@ -124,6 +124,9 @@ class ImageRequest(BaseModel): # openai
|
|
124
124
|
if self.aspect_ratio: # 适配比例
|
125
125
|
self.size = ASPECT_RATIOS.get(self.aspect_ratio, '1024x1024')
|
126
126
|
|
127
|
+
elif self.size == 'auto':
|
128
|
+
self.size = self.aspect_ratio = None
|
129
|
+
|
127
130
|
elif self.size: # 适配尺寸
|
128
131
|
self.aspect_ratio = size2aspect_ratio(self.size)
|
129
132
|
|
@@ -615,4 +618,4 @@ if __name__ == '__main__':
|
|
615
618
|
|
616
619
|
r = ImageRequest(**data)
|
617
620
|
|
618
|
-
print(ImagesResponse())
|
621
|
+
print(ImagesResponse())
|
meutils/schemas/oneapi/_types.py
CHANGED
@@ -89,10 +89,10 @@ class ChannelInfo(BaseModel):
|
|
89
89
|
super().__init__(**data)
|
90
90
|
self.name = self.name or self.base_url or "NAME"
|
91
91
|
self.tag = self.tag or self.base_url or "TAG"
|
92
|
+
self.group = self.group or self.base_url or "GROUP"
|
92
93
|
|
93
|
-
|
94
|
-
|
95
|
-
|
94
|
+
self.setting= self.setting or ""
|
95
|
+
self.param_override = self.param_override or ""
|
96
96
|
if isinstance(self.model_mapping, dict):
|
97
97
|
self.model_mapping = json.dumps(self.model_mapping)
|
98
98
|
|
meutils/schemas/oneapi/common.py
CHANGED
@@ -73,6 +73,22 @@ MODEL_PRICE = {
|
|
73
73
|
"api-volcengine-high_aes_general_v30l_zt2i": 0.05,
|
74
74
|
"api-volcengine-byteedit_v2.0": 0.05,
|
75
75
|
|
76
|
+
"doubao-seedance-1-0-pro-250528": 1,
|
77
|
+
"api-doubao-seedance-1-0-pro-250528": 1,
|
78
|
+
"api-doubao-seedance-1-0-pro-250528-480p": 1,
|
79
|
+
"api-doubao-seedance-1-0-pro-250528-720p": 2,
|
80
|
+
"api-doubao-seedance-1-0-pro-250528-1080p": 3,
|
81
|
+
|
82
|
+
"api-doubao-seedance-1-0-lite-t2v-250428": 1 / 2,
|
83
|
+
"api-doubao-seedance-1-0-lite-t2v-250428-480p": 1 / 2,
|
84
|
+
"api-doubao-seedance-1-0-lite-t2v-250428-720p": 2 / 2,
|
85
|
+
"api-doubao-seedance-1-0-lite-t2v-250428-1080p": 3 / 2,
|
86
|
+
|
87
|
+
"api-doubao-seedance-1-0-lite-i2v-250428": 1 / 2,
|
88
|
+
"api-doubao-seedance-1-0-lite-i2v-250428-480p": 1 / 2,
|
89
|
+
"api-doubao-seedance-1-0-lite-i2v-250428-720p": 2 / 2,
|
90
|
+
"api-doubao-seedance-1-0-lite-i2v-250428-1080p": 3 / 2,
|
91
|
+
|
76
92
|
# videos
|
77
93
|
"api-videos-wan-ai/wan2.1-t2v-14b": 1.2,
|
78
94
|
"api-videos-wan-ai/wan2.1-t2v-14b-turbo": 1.2,
|