mirror of
https://github.com/yangjian102621/geekai.git
synced 2026-08-20 14:40:59 +00:00
feat(release): migrate GeekAI v4.3.0 to open source
- Sync backend and frontend from GeekAI Plus v4.3.0 - Remove commercial License flows and update open-source deployment defaults - Preserve Docker Compose deployment and bump image tags to v4.3.0 BREAKING CHANGE: commercial License configuration and related endpoints are removed
This commit is contained in:
@@ -12,17 +12,20 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"geekai/core/types"
|
||||
logger2 "geekai/logger"
|
||||
"geekai/log"
|
||||
"geekai/store/model"
|
||||
"geekai/utils"
|
||||
"github.com/imroc/req/v3"
|
||||
"gorm.io/gorm"
|
||||
"io"
|
||||
"time"
|
||||
|
||||
"github.com/imroc/req/v3"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
var logger = log.GetLogger()
|
||||
|
||||
// Client MidJourney client
|
||||
type Client struct {
|
||||
client *req.Client
|
||||
@@ -73,8 +76,6 @@ type QueryRes struct {
|
||||
SubmitTime int `json:"submitTime"`
|
||||
}
|
||||
|
||||
var logger = logger2.GetLogger()
|
||||
|
||||
func NewClient(db *gorm.DB) *Client {
|
||||
return &Client{
|
||||
client: req.C().SetTimeout(time.Minute).SetUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"),
|
||||
@@ -182,6 +183,28 @@ func (c *Client) Variation(task types.MjTask) (ImageRes, error) {
|
||||
return c.doRequest(body, apiPath, task.ChannelId)
|
||||
}
|
||||
|
||||
// Modal 提交局部重绘(inpaint)/ ZOOM,请求体 taskId 必填(提交成功返回的 taskId,不是查询结果里的 messageId),prompt、maskBase64 可选
|
||||
func (c *Client) Modal(task types.MjTask) (ImageRes, error) {
|
||||
apiPath := fmt.Sprintf("mj-%s/mj/submit/modal", task.Mode)
|
||||
taskId := task.TaskId
|
||||
if taskId == "" {
|
||||
taskId = task.MessageId
|
||||
}
|
||||
if taskId == "" {
|
||||
return ImageRes{}, fmt.Errorf("modal 任务缺少原图 taskId(提交成功返回的 ID)")
|
||||
}
|
||||
body := map[string]any{
|
||||
"taskId": taskId,
|
||||
}
|
||||
if task.Prompt != "" {
|
||||
body["prompt"] = task.Prompt
|
||||
}
|
||||
if task.MaskBase64 != "" {
|
||||
body["maskBase64"] = task.MaskBase64
|
||||
}
|
||||
return c.doRequest(body, apiPath, task.ChannelId)
|
||||
}
|
||||
|
||||
func (c *Client) doRequest(body interface{}, apiPath string, channel string) (ImageRes, error) {
|
||||
var res ImageRes
|
||||
session := c.db.Session(&gorm.Session{}).Where("type", "mj").Where("enabled", true)
|
||||
|
||||
@@ -97,6 +97,9 @@ func (s *Service) Run() {
|
||||
case types.TaskSwapFace:
|
||||
res, err = s.client.SwapFace(task)
|
||||
break
|
||||
case types.TaskModal:
|
||||
res, err = s.client.Modal(task)
|
||||
break
|
||||
}
|
||||
|
||||
if err != nil || (res.Code != 1 && res.Code != 22) {
|
||||
|
||||
Reference in New Issue
Block a user