mirror of
https://github.com/LiteyukiStudio/nonebot-plugin-marshoai.git
synced 2025-01-26 18:12:47 +08:00
✨新增混元生图功能(未完善)
This commit is contained in:
parent
ce6f51f9c9
commit
dd1191e602
@ -3,6 +3,7 @@ from nonebot.plugin import require
|
||||
require("nonebot_plugin_alconna")
|
||||
require("nonebot_plugin_localstore")
|
||||
from .azure import *
|
||||
from .hunyuan import *
|
||||
from nonebot import get_driver, logger
|
||||
from .config import config
|
||||
from .metadata import metadata
|
||||
|
@ -110,7 +110,8 @@ async def load_context(target: MsgTarget, arg: Message = CommandArg()):
|
||||
|
||||
@resetmem_cmd.handle()
|
||||
async def resetmem(target: MsgTarget):
|
||||
if [target.id, target.private] not in target_list: target_list.append([target.id, target.private])
|
||||
if [target.id, target.private] not in target_list:
|
||||
target_list.append([target.id, target.private])
|
||||
context.reset(target.id, target.private)
|
||||
await resetmem_cmd.finish("上下文已重置")
|
||||
|
||||
|
@ -29,6 +29,8 @@ class ConfigModel(BaseModel):
|
||||
marshoai_max_tokens: int | None = None
|
||||
marshoai_top_p: float | None = None
|
||||
marshoai_additional_image_models: list = []
|
||||
marshoai_tencent_secretid: str | None = None
|
||||
marshoai_tencent_secretkey:str | None = None
|
||||
|
||||
|
||||
config: ConfigModel = get_plugin_config(ConfigModel)
|
||||
|
36
nonebot_plugin_marshoai/hunyuan.py
Normal file
36
nonebot_plugin_marshoai/hunyuan.py
Normal file
@ -0,0 +1,36 @@
|
||||
import contextlib
|
||||
import traceback
|
||||
import json
|
||||
from typing import Optional
|
||||
|
||||
from arclet.alconna import Alconna, Args, AllParam
|
||||
from nonebot import on_command, logger
|
||||
from nonebot.adapters import Message, Event
|
||||
from nonebot.params import CommandArg
|
||||
from nonebot.permission import SUPERUSER
|
||||
from nonebot_plugin_alconna import on_alconna, MsgTarget
|
||||
from nonebot_plugin_alconna.uniseg import UniMessage, UniMsg
|
||||
from nonebot import get_driver
|
||||
from .constants import *
|
||||
from .metadata import metadata
|
||||
from .models import MarshoContext
|
||||
from .util_hunyuan import *
|
||||
from .config import config
|
||||
genimage_cmd = on_alconna(
|
||||
Alconna(
|
||||
"genimage",
|
||||
Args["prompt?", str],
|
||||
)
|
||||
)
|
||||
|
||||
@genimage_cmd.handle()
|
||||
async def genimage(event: Event, prompt=None):
|
||||
if not prompt:
|
||||
await genimage_cmd.finish("无提示词")
|
||||
try:
|
||||
result = generate_image(prompt)
|
||||
url = json.loads(result)["ResultImage"]
|
||||
await UniMessage.image(url=url).send()
|
||||
except Exception as e:
|
||||
# await genimage_cmd.finish(str(e))
|
||||
traceback.print_exc()
|
31
nonebot_plugin_marshoai/util_hunyuan.py
Normal file
31
nonebot_plugin_marshoai/util_hunyuan.py
Normal file
@ -0,0 +1,31 @@
|
||||
import json
|
||||
import types
|
||||
from tencentcloud.common import credential
|
||||
from tencentcloud.common.profile.client_profile import ClientProfile
|
||||
from tencentcloud.common.profile.http_profile import HttpProfile
|
||||
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
|
||||
from tencentcloud.hunyuan.v20230901 import hunyuan_client, models
|
||||
from .config import config
|
||||
def generate_image(prompt: str):
|
||||
cred = credential.Credential(config.marshoai_tencent_secretid, config.marshoai_tencent_secretkey)
|
||||
# 实例化一个http选项,可选的,没有特殊需求可以跳过
|
||||
httpProfile = HttpProfile()
|
||||
httpProfile.endpoint = "hunyuan.tencentcloudapi.com"
|
||||
|
||||
# 实例化一个client选项,可选的,没有特殊需求可以跳过
|
||||
clientProfile = ClientProfile()
|
||||
clientProfile.httpProfile = httpProfile
|
||||
client = hunyuan_client.HunyuanClient(cred, "ap-guangzhou", clientProfile)
|
||||
|
||||
req = models.TextToImageLiteRequest()
|
||||
params = {
|
||||
"Prompt": prompt,
|
||||
"RspImgType": "url",
|
||||
"Resolution": "1080:1920"
|
||||
}
|
||||
req.from_json_string(json.dumps(params))
|
||||
|
||||
# 返回的resp是一个TextToImageLiteResponse的实例,与请求对象对应
|
||||
resp = client.TextToImageLite(req)
|
||||
# 输出json格式的字符串回包
|
||||
return resp.to_json_string()
|
Loading…
x
Reference in New Issue
Block a user