无需魔法三分钟上线Midjourney应用,【附源码】【示例】

这篇具有很好参考价值的文章主要介绍了无需魔法三分钟上线Midjourney应用,【附源码】【示例】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ps:我是标题党,目前还没见过三分钟完成任务的,三分钟只能打通Midjourney接口。我花了一天时间接入应用哈哈哈!

无需魔法三分钟上线Midjourney应用,【附源码】【示例】

首先,我要感谢laf赞助我,让我可以免费使用Midjourney进行开发和测试。来自白嫖党的快乐。

其次,我要感谢白夜、米开朗基杨@sealos.io等大佬的耐心解答和AlexDev大佬很细、全网最细的指导文档,让我更快地借助laf搭建我的项目。

那么,什么是laf呢?它可以帮助开发者像写博客一样写代码,随时随地快速发布上线应用。点击了解一下

最后,别忘了文末的【体验网址】哦。如果不及时体验,说不定哪天接口就挂了。所以,赶紧去试试吧,感受一下laf+mj带来的奇妙体验!

开始

最近laf又在搞事情,有一个快速上手Midjourney《人人都能接入 Midjourney》的活动,具体活动,可以查看laf开发者社区。现在只要注册新账号就送一个月免费试用,因为mj需要魔法,所以国内的laf官网不能体验mj,我们需要注册laf的新加坡环境账号,网址👉🏻laf 云开发。

首先我的思路是,先打通mj接口,再通过上层代码处理mj的数据,不管是mj还是GPT,都是要有底层代码对接api,再去扩展,至于最后要对接什么应用看个人需求。

代码

第一步,你得先添加依赖才能进行后续开发🐶

无需魔法三分钟上线Midjourney应用,【附源码】【示例】

添加Midjourney依赖

无需魔法三分钟上线Midjourney应用,【附源码】【示例】

添加完成后保存并重启

laf可以通过云函数实现api接口,不理解的可以先去了解一下laf云平台快速入门。

laf官方提供了一个云函数对接mj:

import cloud from '@lafjs/cloud'
import { Midjourney, MidjourneyMessage } from 'midjourney'
const SERVER_ID = '' // Midjourney 服务 ID
const CHANNEL_ID = '' // Midjourney 频道 ID
const SALAI_TOKEN = '' // Midjourney 服务 Token

const Limit = 100
const MaxWait = 3

const client = new Midjourney({
  ServerId: SERVER_ID,
  ChannelId: CHANNEL_ID,
  SalaiToken: SALAI_TOKEN,
  Debug: true,
  SessionId: SALAI_TOKEN,
  Limit: Limit,
  MaxWait: MaxWait
});

export default async function (ctx: FunctionContext) {
  const { type, param } = ctx.body
  switch (type) {
    case 'RetrieveMessages':
      return await RetrieveMessages(param)
    case 'imagine':
      return await imagine(param)
    case 'upscale':
      return await upscale(param)
    case 'variation':
      return await variation(param)
  }

}

// 查询最近消息
async function RetrieveMessages(param) {
  console.log("RetrieveMessages")
  const client = new MidjourneyMessage({
    ChannelId: CHANNEL_ID,
    SalaiToken: SALAI_TOKEN,
  });
  const msg = await client.RetrieveMessages();
  console.log("RetrieveMessages success ", msg)
  return msg
}

// 创建生图任务
async function imagine(param) {
  console.log("imagine", param)
  const { question, msg_Id } = param
  const msg = await client.Imagine(
    `[${msg_Id}] ${question}`,
    (uri: string, progress: string) => {
      console.log("loading", uri, "progress", progress);
    }
  );
  console.log("imagine success ", msg)
  return true
}

// upscale 放大图片
async function upscale(param) {
  console.log("upscale", param)
  const { question, index, id, url } = param
  const hash = url.split("_").pop()?.split(".")[0] ?? ""
  console.log(hash)
  const msg = await client.Upscale(
    question,
    index,
    id,
    hash,
    (uri: string, progress: string) => {
      console.log("loading", uri, "progress", progress);
    }
  );
  console.log("upscale success ", msg)
  return msg
}

// variation 变换图片
async function variation(param) {
  console.log("variation", param)
  const client = new Midjourney({
    ServerId: SERVER_ID,
    ChannelId: CHANNEL_ID,
    SalaiToken: SALAI_TOKEN,
    Debug: true,
    SessionId: SALAI_TOKEN,
    Limit: Limit,
    MaxWait: 100
  });
  const { question, index, id, url } = param
  const hash = url.split("_").pop()?.split(".")[0] ?? ""
  const msg = await client.Variation(
    question,
    index,
    id,
    hash,
    (uri: string, progress: string) => {
      console.log("loading", uri, "progress", progress);
    }
  );
  console.log("variation success ", msg)
  return msg
}

没有账号可以到社区找 米开朗基杨@sealos.io 大佬 要获取方式。

  • 画图

画图首先需要创建绘画任务,比如我的需求就是一只鸡正在打篮球穿着吊带,调用云函数的imagine方法。请求方式都是用post。

{
  "type": "imagine",
  "param": {
    "question": "A chicken is playing basketball, wearing a white shirt and black suspender, with gray white hair in the middle, and leather shoes,He is thin and thin",
    "msg_Id": 1684585158 //自己定义便于按id查询生成的图片,msg_Id 别打错了
  }
}

请求成功会返回true,稍等一会儿就可以调用查询方法查看生成的图片链接

  • 查询

RetrieveMessages方法是查询最近的图片信息,传type就可以了

{
  "type":"RetrieveMessages"
}

如果要根据id查询,可以修改一下云函数里的方法:

// 查询最近消息根据id
async function RetrieveMessagesById(param) {
  console.log("RetrieveMessages")
  const client = new MidjourneyMessage({
    ChannelId: CHANNEL_ID,
    SalaiToken: SALAI_TOKEN,
  });
  const msg = await client.RetrieveMessages();
  const result = msg.find(v=>v.content.includes(param.msg_Id))
  return result
}

这样就可以按id查询了,参数只要多传一个id就行

{
  "param": {
    "msg_Id": "tudou007"
  },
  "type": "RetrieveMessagesById"
}

返回结果就会包含生成的图片链接,url,但是在国内是打不开的,解决办法看个人。这里推荐使用laf云存储,你的免费laf有一定额度的云存储空间,一般测试够用了,具体怎么用,我还在研究哈哈哈。

注意:返回的数据可能会缺少部分属性,不用在意,有可能任务创建失败,有可能在排队出图,或者是正在出图,一般情况下,宽高大于512就成功了。我的处理方案就是,只要拿不到我想要的数据,统一按正在出图中处理。

  • 放大

放大图片就是四张缩略图选一张放大,这里的id就是返回的id,index就是四张图片的下标,question就是你创建绘图任务的prompt,url不用说了。放大之后重新根据id获取就会得到一张大图。

{
  "type": "upscale",
  "param": {
    "id": "dasdasdasdasd23123",
    "question":"chekin",
    "index": 3,
"url":"https://cdn.discordapp.com/attachments/1109368983364313204/1109460469628022915/johnsonmaureen_1684585158_a_chekin_d5b7e35c-0fce-4f7d-b440-35f5602d2f25.png"
  }
}
  • 重绘

可以从四张图中选一张图的风格进行重绘,参数和放大一样的,只是type换了

{
  "type": "variation",
  "param": {
    "id": "1109460470152319086",
    "question": "a chekin",
    "index": 3,
    "url": "https://cdn.discordapp.com/attachments/1109368983364313204/1109460469628022915/johnsonmaureen_1684585158_a_chekin_d5b7e35c-0fce-4f7d-b440-35f5602d2f25.png"
  }
}

完结

完结撒花,第一次在csdn写文章,写的不好多多包涵,

我的公众号有个小彩蛋: 玛卡巴卡和他的猫     

不用找体验地址了,mj体验账号被封了,目前来晚的还想白嫖的同学就等我的应用吧,等我做完会有体验入口。文章来源地址https://www.toymoban.com/news/detail-483142.html

到了这里,关于无需魔法三分钟上线Midjourney应用,【附源码】【示例】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 无需魔法!Slack能免费使用MidJourney啦;提示工程师最全求职手册;ChatGPT插件最新清单;MidJourney快速上手指南 | ShowMeAI日报

    👀 日报周刊合集 | 🎡 生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! MidJorney 是目前最受欢迎的AI绘图工具之一,可以根据用户输入的文本提示词,生成高质量图片。Slack 是一款企业内部通信工具,可以轻松集成很多第三项服务,比如 Notion、Claude、GitHub、Trello 等。

    2024年02月09日
    浏览(40)
  • 使用laf云开发三分钟上线你自己的Midjourney

    文章尾部有demo 江湖惯例:先来一波感谢,感谢laf,让我们可以不使用魔法、免费接入Midjourney,不了解laf的请猛戳 Laf介绍 laf官方最近发布了一个活动,活动链接,新手也可以接入哦!废话不多说,赶紧点击链接报名赢取丰厚奖品吧。 在laf.dev(注意一定要用laf.dev,不要使用

    2024年02月06日
    浏览(33)
  • 我嘞个神——原来创建应用根本不需要会编码(看我10分钟应用上线)

    目录 一、前言 二、官网功能查询与环境初始化 YonBuilder应用开发 三、测试过程 3.1、创建应用 3.2、数据建模 3.3、页面建模 3.4、页面发布 四、时间累计 五、效率评价 六、总结 这里我用到了用友的平台,很多学生们刚毕业都在从事运维和实施的岗位,而且这个平台在我这面也

    2024年02月03日
    浏览(35)
  • Duang,您的钉钉应用已上线!云开发5分钟快速打造钉钉会议室预定系统

    简介: 5分钟可以干什么?喝一杯咖啡,回一封邮件,还是开发上线一个钉钉应用。云开发平台联合钉钉开发平台推出0门槛打造你的第一个钉钉应用的活动,完成相应任务后,即可领取精美奖品。春暖花开,领个背包去踏春吧!   俗话说工欲善其事,必先利其器。一款适合程

    2023年04月08日
    浏览(29)
  • 免费无需魔法会语音聊天的ChatGPT

    今天发现了一个很好的ChatGPT,可以语音聊天,而且免费无需魔法 角色目前包括夏洛克、雷电影等等,对话的声调完全模拟了原角色! 目前只有英文和日语两种对话,我们可以文字输入或者语音输入,中文即可,系统会语音回答,自带翻译。 联系口语交流还是很不错的,目前

    2024年02月01日
    浏览(34)
  • ChatGPT 平替天花板:HuggingFace 版 ChatGPT 来了,无需魔法无需等待直接起飞 ~

    二话不说上链接 https://huggingface.co/chat/ 请直接问中文问题,要是返回英文直接上浏览器翻译同步没毛病。 如果体验过了,且听我分(jiao)说(bian)一下,HuggingFace 版 ChatGPT 如何能当得起 ChatGPT 平替天花板 。 我们先来看看背后的公司HuggingFace 是干啥的? HuggingFace 是一个非常

    2024年02月01日
    浏览(49)
  • AIGPT中文版(无需魔法,直接使用)安装使用教程

    AIGPT是一款非常强大的人工智能技术的语言处理工具软件,它具有AI绘画功能、AI写作、写论文、写代码、哲学探讨、创作等功能,可以说是生活和工作中的好帮手。 我们都知道使用ChatGPT是需要账号以及使用魔法的,其中的每一项对我们初学者来说都是非常不利的,但是AIGP

    2024年02月08日
    浏览(36)
  • armbian折腾之docker搭建chatgptweb指导(无需魔法)

    好久都没有折腾armbian,导致吃了很长时间的灰,今天偶然看到B站UP主 JeeJK007 的搭建视频,便想着能不能在本地搭建一个玩一玩。在此感谢UP主 JeeJK007 的无私奉献! 优势:docker部署没有硬件环境限制,使用第三方API,不用魔法,成本低 使用的工具和资料 ChatGPT-4 Turbo网站搭建

    2024年02月03日
    浏览(35)
  • 这次彻底不需要账号了,无需魔法永久白嫖GPT

    自GPT风靡以来,大家用的是不亦乐乎,你用他去解决过实际问题,你用他去写过代码,你用他去修改过bug,你用他去写过sql,你用他去画过图,你问过他你能想到的任何“刁钻”问题。 你,有点离不开它了! 你由最开始的不会注册账号,不懂得魔法的使用,慢慢的成了gpt使

    2024年02月09日
    浏览(23)
  • Claude 使用教程 AI助手,可平替Chatgpt,无需魔法

    今天来分享下Claude AI工具2023-4月最新使用方法, Claude是Anthropic公司开发的一种 基于大型语言模型的AI助手,类似于ChatGPT 。 背景:Anthropic是一家由OpenAI的前联合创始人Dario Amodei和他的妹妹Daniela Amodei创立的AI研究公司 。他们的目标是创建可靠、可解释和可对齐的AI系统,以解

    2024年02月05日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包