三分钟上线你自己的Midjourney

news2024/12/27 14:38:07

文章尾部有demo
江湖惯例:先来一波感谢,感谢laf,让我们可以不使用魔法、免费接入Midjourney,不了解laf的请猛戳 Laf介绍

背景

laf官方最近发布了一个活动,活动链接,新手也可以接入哦!废话不多说,赶紧点击链接报名吧。

接入准备

在laf.dev(注意一定要用laf.dev,不要使用laf.run)注册账号,新用户可以免费一个月体验,老用户略过

开始开发

  1. 先在左下角NPM依赖添加依赖
    在这里插入图片描述

  2. 新建一个云函数,随便取个名字,然后贴入以下代码
    在这里插入图片描述

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
}

你可能已经注意到有三个参数没有值,请仔细阅读活动链接获取

点击右上角发布,你的应用就上线了。怎么样?标题没有骗你吧,是不是三分钟。

调用接口生图

  • 生成图片 imagine

在这里插入图片描述

msg_Id可以随便填写,但最好不要太简单,避免与频道内其他用户重复

  • 获取结果

在这里插入图片描述

RetrieveMessages获取到的是当前频道内所有用户生成的最近50个结果
请注意图中红线部分,这就是上面那个msg_Id,通过这个id可以筛选出你自己的结果,对应的attachments内有个url就是你要的图片链接

  • 变换图片
    在这里插入图片描述选取一张你喜欢的做调整
  1. id是第二步中通过msg_Id获取到的那条数据的id
  2. url是对应的attachments内的url
  3. question是你自己的提问
  4. index是图片的序号
    这些参数看代码应该也能看出来怎么传。
    在这里插入图片描述
  • 放大图片
    跟调整图片参数差不多,只需要把type改为upscale

前端界面随你发挥,欢迎入群交流想法

end

到这里就接入结束了,再次感谢laf官方,demo在此

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/555481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

优维低代码实践:页面编排优化与数据联调

优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。 优维…

NEEPU Sec 2023公开赛Reverse题目复现

文章目录 一.Base二.How to use python1.程序逻辑分析2.爆破flag[11]~flag[14]3.爆破sha14.sha256掩码爆破 三.IKUN检查器1.查看程序信息2.分析程序逻辑3.button1_conClick函数4.check1函数5.check2函数6.check3函数7.check4函数8.check5函数 四.junk code1.使用32位动态调试工…

[Nginx 发布项目] 打包后的项目,使用nginx发布

前提 :使用的 mars3d 沐瑶大佬 修改后的nginx , - 下载地址 使用的是 Mars3D三维可视化平台 | 火星科技 修改后的 nginx 发布的服务,确保nginx发布服务时正常 ; 如果不是,那这里应该没有你想要的答案; 1、直接替换…

006 - RCC时钟树(一)时钟树内容

006 - RCC时钟树(一)时钟树内容 本节内容一定要结合RCC时钟树和官方手册学习,如果看不明白的话,建议看一下野火官方的教程,火哥讲这节讲的很详细,看一遍基本就能理解了。 上节内容中分析了启动代码&#…

Web缓存服务——Squid代理服务器应用

正向代理:代替客户端向服务端发送请求。 反向代理:代理服务端,将请求转发给多个服务端。 一、Squid代理服务器介绍 Squid 主要提供缓存加速、应用层过滤控制的功能。 1.1 代理的工作机制(缓存网页对象,减少重复请求…

2023年,Facebook Messenger群发这样做

使用SaleSmartly的企业都知道,SaleSmartly(ss客服)能在 Facebook Messenger群发信息!Facebook Messenger在全球最受欢迎通信软件中排名第三,紧追头两位的 WhatsApp和微信。善用 Facebook Messenger群发工具&#xff0c…

华为OD机试真题 Java 实现【区块链文件转储系统】【2023Q2 200分】

一、题目描述 区块链底层存储是一个链式文件系统,由顺序的N个文件组成,每个文件的大小不一,依次为F1,F2…Fn。 随着时间的推移,所占存储会越来越大。 云平台考虑将区块链按文件转储到廉价的SATA盘,只有连续的区块链…

为什么都在学python?

自然是因为Python简单易学且应用领域广! Python近段时间一直涨势迅猛,在各大编程排行榜中崭露头角,得益于它多功能性和简单易上手的特性,让它可以在很多不同的工作中发挥重大作用。 正因如此,目前几乎所有大中型互联…

毕业三年月薪才21K,真是没出息......

“害,毕业三年月薪才拿21k,真失败,真的给同龄人拖后腿!”这是人能讲出来的话?这就是凡尔赛天花板?这就是我公司的测试部门的人说出来的话,他计算机专业毕业三年,包括实习,在我们公司…

LeetCode:28. 找出字符串中第一个匹配项的下标

28. 找出字符串中第一个匹配项的下标 1)题目2)代码1.方法一:每个字符进行匹配2.方法二:截取字符串进行匹配 3)结果1.方法一结果2.方法二结果 1)题目 给你两个字符串 haystack 和 needle ,请你在…

Dropwizard 开发环境搭建

Dropwizard是一个Java框架,其目标是提供高性能、高可靠的Web 应用程序的实现。 一、使用Maven原型创建项目 1、新建项目->选择Maven Archetype 填写好项目名称、路径、选择JDK版本,这里使用JDK11及以上的版本,如下图所示: 2…

自监督对比学习系列论文(一):无引导对比学习--MOCO,SimCLR

自监督对比学习 对比学习(self-supervised learning)的应用场景是用无标记或者少标记的数据进行模型的预训练以得到一个较好的预训练模型,然后便可将该模型轻松的迁移到到下游任务上。显而易见的,对比学习的难点在于我们如何在没有…

【论文下饭】PatchTST中的channel-independence

PatchTST中的channel-independence 总结PatchingChannel-independence A Time Series is Worth 64 Words: Long-term Forecasting with Transformers 时间:2022 引用:8 ICLR 2023 代码:https://github.com/yuqinie98/PatchTST 中文参考&#…

软件开发人技能变现方案来啦~

java单体服务Uniapp客户端 欢迎大家来关注java单体服务Uniapp客户端模式开发应用程序这个模式下产品的特点互联网大厂产品特点小服务小产品-存在价值普通人慢慢挣小钱 欢迎大家来关注 你好! 这可能是你第一次来“莹未来”这里,郑重欢迎您。如果你想学习…

firewalld防火墙详细介绍

目录 一、firewalld概述 二、firewalld与iptables的区别 1.位置不同 2.配置存储位置不同 3.规则运行不同 4.防火墙类型不同 三、firewalld区域的概念 四、firewalld防火墙9个区域 1、trusted(信任区域) 2、public(公共区域&#xf…

JavaScript中的tab栏切换制作(排他思想)

文章目录 实现效果图排他思想tab栏切换制作思路代码部分 实现效果图 整个页面分为2个部分,tab_list部分(上半部分)和tab_con部分(下半部分) tab_list部分包含5个li,它们分别与tab_con部分的5个div盒子一一…

Eyeshot Fem 2023.1 你选Fem还是Ultimate Crack

Eyeshot Fem--当然选Fem Everything in Ultimate, plus Geometry meshing and Finite Element Analysis. Scope Modules Image Gallery Features Scope Eyeshot Fem edition is designed for Geometry meshing and Finite Element Analysis. Modules Geometric modules includ…

《终结拖延症》重新拥有计划每天的自信和控制力

关于作者 威廉区瑙斯, 美著名心理治疗 专家 , 拥有 超过 30 年 心的 理治疗 经 ,验 他 专 精的研究 领域 , 是 为 代 都 市 群提 供负 面 心 理 引 导 和 治疗 , 比 如 抑郁 、 心 理 亚健 康 、 拖 延 症 等 等 。 除…

redis未授权访问漏洞利用+redis日志分析

redis未授权访问漏洞利用redis日志分析 redis未授权访问 远程连接redis kali: redis-cli -h IP redis常用语句 set key “value” 设置键值对 get key 获得值 incr intkey 数字类型值加1 keys * 获取当前数据库中所有的键 config set dir /home/test 设置工作目录 config set…

VMware ESXi 6.5 U3 Final - ESXi 6 系列最终版下载

VMware ESXi 6.5 U3 Final - ESXi 6 系列最终版下载 VMware ESXi 6 Standard 请访问原文链接:https://sysin.org/blog/vmware-esxi-6/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org VersionRelease NameRelease …