nonebot_plugin_novelai/backend/novelai.py

44 lines
1.6 KiB
Python
Raw Normal View History

from ..config import config
from .base import AIDRAW_BASE
class AIDRAW(AIDRAW_BASE):
"""队列中的单个请求"""
model: str = "nai-diffusion" if config.novelai_h else "safe-diffusion"
async def post(self):
# 获取请求体
header = {
"authorization": "Bearer " + config.novelai_token,
":authority": "https://api.novelai.net",
":path": "/ai/generate-image",
"content-type": "application/json",
"referer": "https://novelai.net",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36",
}
post_api = "https://api.novelai.net/ai/generate-image"
for i in range(self.batch):
parameters = {
"width": self.width,
"height": self.height,
"qualityToggle": False,
"scale": self.scale,
"sampler": self.sampler,
"steps": self.steps,
"seed": self.seed[i],
"n_samples": 1,
"ucPreset": 0,
"uc": self.ntags,
}
if self.img2img:
parameters.update({
"image": self.image,
"strength": self.strength,
"noise": self.noise
})
json= {
"input": self.tags,
"model": self.model,
"parameters": parameters
}
await self.post_(header, post_api,json)
return self.result