56 lines
2.0 KiB
Python
56 lines
2.0 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Hunyuan3D Web CLI
|
|
"""
|
|
|
|
import argparse
|
|
import json
|
|
import sys
|
|
from .api import Hunyuan3DAPI, load_cookies_from_file
|
|
from .config import get_cookie_path
|
|
|
|
_DEFAULT_COOKIE = str(get_cookie_path())
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description="Hunyuan3D Web CLI")
|
|
subparsers = parser.add_subparsers(dest="command")
|
|
|
|
quota_parser = subparsers.add_parser("quota", help="查询配额")
|
|
quota_parser.add_argument("--cookies", "-c", default=_DEFAULT_COOKIE, help="Cookie文件路径")
|
|
|
|
list_parser = subparsers.add_parser("list", help="查询作品列表")
|
|
list_parser.add_argument("--cookies", "-c", default=_DEFAULT_COOKIE, help="Cookie文件路径")
|
|
|
|
text_parser = subparsers.add_parser("text", help="文生3D")
|
|
text_parser.add_argument("prompt", help="文本描述")
|
|
text_parser.add_argument("--cookies", "-c", default=_DEFAULT_COOKIE, help="Cookie文件路径")
|
|
text_parser.add_argument("--title", "-t", default="", help="作品标题")
|
|
|
|
status_parser = subparsers.add_parser("status", help="查询生成状态")
|
|
status_parser.add_argument("creation_id", help="创作ID")
|
|
status_parser.add_argument("--cookies", "-c", default=_DEFAULT_COOKIE, help="Cookie文件路径")
|
|
|
|
args = parser.parse_args()
|
|
|
|
if not args.command:
|
|
parser.print_help()
|
|
sys.exit(1)
|
|
|
|
cookies = load_cookies_from_file(args.cookies)
|
|
api = Hunyuan3DAPI(cookies)
|
|
|
|
if args.command == "quota":
|
|
print(json.dumps(api.get_quota_info(), indent=2, ensure_ascii=False))
|
|
elif args.command == "list":
|
|
print(json.dumps(api.get_creation_list(), indent=2, ensure_ascii=False))
|
|
elif args.command == "text":
|
|
result = api.generate_text(args.prompt, title=args.title)
|
|
print(json.dumps(result, indent=2, ensure_ascii=False))
|
|
elif args.command == "status":
|
|
print(json.dumps(api.get_generation_status(args.creation_id), indent=2, ensure_ascii=False))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|