国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

不用魔法,快速、手摸手上線Midjourney!【附源碼】【示例】

這篇具有很好參考價(jià)值的文章主要介紹了不用魔法,快速、手摸手上線Midjourney!【附源碼】【示例】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

首先來一波感謝:
感謝laf提供贊助,目前可以免費(fèi)使用Midjourney進(jìn)行開發(fā)和測試。
感謝白夜、米開朗基楊@sealos.io的耐心解答,讓我對laf有了更多的使用與了解。
什么是laf?來了解下。
文末有【示例】

開始

廢話不多說,進(jìn)入正題。
laf在做一個活動,可以使用快速上手Midjourney《人人都能接入 Midjourney》。具體活動,可以查看論壇。

原理

原理部分不涉及代碼,涉及背景介紹,熟悉的同學(xué)可以略過。因?yàn)?code>midjourney官方?jīng)]有提供API功能,所以有國外大神將開源了一款模擬請求工具,來請求midjourney,laf將這代碼集成到內(nèi)部的npm包中。如果需要github地址,歡迎留言,我私信給您。
所以laf平臺,加上下面的實(shí)例代碼可以很好的快速接入到系統(tǒng)中。

開始

要現(xiàn)有個laf賬號,會有免費(fèi)1月的試用,本次調(diào)用mj(以下代指midjourney),所以要在laf.dev上注冊使用,這是運(yùn)行在新加坡環(huán)境上。

代碼邏輯

我的核心思想是這樣的:先要有個核心與midjourney交互的代碼,上層的我們想做的業(yè)務(wù)邏輯可以自己定義。

代碼

laf 是一個云開發(fā)平臺,可以將代碼暴露成api形式,進(jìn)行調(diào)用,一些其他鑒權(quán)等,可以在之前我寫的文章中找到靈感:騰訊云開發(fā)遷移實(shí)錄

  • 要做一個云函數(shù),處理與midjourney交互,我這里起名云函數(shù)mj-send
import cloud from '@lafjs/cloud'
import { Midjourney, MidjourneyMessage } from 'midjourney'
const SERVER_ID = '' // Midjourney 服務(wù) ID
const CHANNEL_ID = '' // Midjourney 頻道 ID
const SALAI_TOKEN = '' // Midjourney 服務(wù) 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
}

// 創(chuàng)建生圖任務(wù)
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
}

什么?沒有賬號?仔細(xì)看帖,里面有獲取方式
什么?已經(jīng)有了midjourney付費(fèi)賬號,沒有key?大佬我們做朋友,留言我來告訴你。
發(fā)布即可調(diào)用,怎么調(diào)用?我把curl給你,你看看結(jié)構(gòu)就懂了,該替換的替換。

  • 畫圖

畫圖需要一些時(shí)間,這里默認(rèn)使用的fast,但也是會花時(shí)間的,所以成圖我們要在之后調(diào)用查詢接口查看。

  • question:就是prompt,這里要輸入英文。
  • 關(guān)注下參數(shù)msg_Id,后面有用
curl --location --request POST 'https://<你的發(fā)布地址服務(wù)>' \
--header 'User-Agent: apifox/1.0.0 (https://www.apifox.cn)' \
--header 'Content-Type: application/json' \
--data-raw '{
  "type": "imagine",
  "param": {
    "question": "a dog",
    "msg_Id": 1684585158
  }
}'
  • 查詢
curl --location --request POST 'https://<你的發(fā)布地址服務(wù)>' \
--header 'User-Agent: apifox/1.0.0 (https://www.apifox.cn)' \
--header 'Content-Type: application/json' \
--data-raw '{
  "type":"RetrieveMessages"
}'

如何獲取到我剛創(chuàng)建的圖呢?先看一下返回的結(jié)果。

[
    {
        "id": "1109565864640008202",
        "type": 0,
        "content": "**[1684582132] a dog --seed 8925 --v 5** - <@1013684342851117146> (fast)",
        "channel_id": "1109368983364313204",
        "author": {
            "id": "936929561302675456",
            "username": "Midjourney Bot",
            "global_name": null,
            "avatar": "4a79ea7cd151474ff9f6e08339d69380",
            "discriminator": "9282",
            "public_flags": 589824,
            "bot": true,
            "avatar_decoration": null
        },
        "attachments": [
            {
                "id": "1109565863994077215",
                "filename": "johnsonmaureen_1684582132_a_dog_a062b5e2-ab39-40b0-b281-1365695529d5.png",
                "size": 4275948,
                "url": "https://cdn.discordapp.com/attachments/1109368983364313204/1109565863994077215/johnsonmaureen_1684582132_a_dog_a062b5e2-ab39-40b0-b281-1365695529d5.png",
                "proxy_url": "https://media.discordapp.net/attachments/1109368983364313204/1109565863994077215/johnsonmaureen_1684582132_a_dog_a062b5e2-ab39-40b0-b281-1365695529d5.png",
                "width": 2048,
                "height": 2048,
                "content_type": "image/png"
            }
        ]
    }
    **省略其他數(shù)據(jù)**
]

返回結(jié)果為數(shù)組,還記得上面的msg_Id嗎,在JSON結(jié)構(gòu)中查看content部分,就可以看到
"content": "**[1684582132] a dog --seed 8925 --v 5** - <@1013684342851117146> (fast)", 所以,我們可以用這個字段來進(jìn)行篩選。$.attachments[0].url就是成圖了。

  • 選取生成大圖
    如果再返回的四張圖有一張看得不錯,怎么生成大圖呢?先給你個表格,告訴你哪是1,哪是3
1 2
3 4

然后來看如何傳參

curl --location --request POST 'https://<你的發(fā)布地址服務(wù)>' \
--header 'User-Agent: apifox/1.0.0 (https://www.apifox.cn)' \
--header 'Content-Type: application/json' \
--data-raw '{
  "type": "upscale",
  "param": {
    "id": "1109460470152319086",
    "question":"a dog",
    "index": 3,
"url":"https://cdn.discordapp.com/attachments/1109368983364313204/1109460469628022915/johnsonmaureen_1684585158_a_dog_d5b7e35c-0fce-4f7d-b440-35f5602d2f25.png"
  }
}'

解釋下參數(shù):

  • id: 是查詢返回結(jié)果體里的id
  • question,是最開始輸入進(jìn)去的prompt
  • index: 你想要的第幾張圖
  • url:是查詢返回結(jié)果體里的url,四張圖拼一起的那個。

別問我怎么知道的,我都是翻代碼看得。

  • 重繪
    當(dāng)看上這4張圖中某一個的風(fēng)格或者樣式之后,可以根據(jù)這個風(fēng)格重繪。
curl --location --request POST 'https://<你的發(fā)布地址服務(wù)>' \
--header 'User-Agent: apifox/1.0.0 (https://www.apifox.cn)' \
--header 'Content-Type: application/json' \
--data-raw '{
  "type": "variation",
  "param": {
    "id": "1109460470152319086",
    "question": "a dog",
    "index": 3,
    "url": "https://cdn.discordapp.com/attachments/1109368983364313204/1109460469628022915/johnsonmaureen_1684585158_a_dog_d5b7e35c-0fce-4f7d-b440-35f5602d2f25.png"
  }
}'

參數(shù)解釋不說了,跟上面類似。

至此教程結(jié)束了

趕緊去上手做點(diǎn)什么吧,實(shí)踐出真知~

作品展示

這次其實(shí)是laf在組織活動,想我這種平臺級別思考大佬的人,不會去鉆到某個應(yīng)用當(dāng)中,我來看看大家都畫了什么圖,所以我做了個簡陋的頁面,本人前端能力有限,代碼實(shí)現(xiàn)全靠ChatGPT。
上鏈接:

laf比賽作品大賞

如果覺得不錯打個賞吧,后面是答疑環(huán)節(jié)

不用魔法,快速、手摸手上線Midjourney!【附源碼】【示例】

問題

  • 我怎么知道m(xù)j的圖畫完沒有呢?
    可以根據(jù)$.attachments[0].width的尺寸大小來看,如果小于2048,則沒有生成完,沒生成完其實(shí)應(yīng)該是512。
  • 怎么讓圖片結(jié)果與請求msg_Id綁定?
    正如上文所說要自己實(shí)現(xiàn)一個邏輯去匹配結(jié)果,另外還有一個就是用好觸發(fā)器,他會定時(shí)執(zhí)行你的服務(wù),這樣你就可以將數(shù)據(jù)進(jìn)行增量處理。

`文章來源地址http://www.zghlxwxcb.cn/news/detail-453622.html

到了這里,關(guān)于不用魔法,快速、手摸手上線Midjourney!【附源碼】【示例】的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 手摸手帶你 在Windows系統(tǒng)中安裝Istio

    手摸手帶你 在Windows系統(tǒng)中安裝Istio

    通過負(fù)載均衡、服務(wù)間的身份驗(yàn)證、監(jiān)控等方法,Istio 可以輕松地創(chuàng)建一個已經(jīng)部署了服務(wù)的網(wǎng)絡(luò),而服務(wù)的代碼只需很少更改甚至無需更改。 通過在整個環(huán)境中部署一個特殊的 sidecar 代理為服務(wù)添加 Istio 的支持,而代理會攔截微服務(wù)之間的所有網(wǎng)絡(luò)通信,然后使用其控制

    2024年02月06日
    瀏覽(23)
  • 手摸手教你寫任務(wù)中心-積分領(lǐng)取&消耗&回收

    手摸手教你寫任務(wù)中心-積分領(lǐng)取&消耗&回收

    繼上一篇簽到任務(wù)之后呢, 就有朋友讓我寫一下任務(wù)積分的領(lǐng)取和使用, 以及回收; 其實(shí)前面兩種都不難, 就只是積分的加減而已, 真正麻煩的是回收, 有回收的話你就需要考慮到每筆積分存在多種狀態(tài)的可能了; 明細(xì)表(mysql) 記錄積分的每一筆獲取, 消耗的回收的記錄, 并且回收

    2024年02月08日
    瀏覽(23)
  • 手摸手2-springboot編寫基礎(chǔ)的增刪改查

    手摸手2-springboot編寫基礎(chǔ)的增刪改查

    創(chuàng)建controller層 實(shí)現(xiàn) test 表中的添加、修改、刪除及列表查詢接口(未分頁) 添加service層接口 service層實(shí)現(xiàn) 添加mapper層 mapper層對應(yīng)的sql 添加掃描注解,對應(yīng)sql文件的目錄

    2024年02月10日
    瀏覽(14)
  • 手摸手教你把Ingress Nginx集成進(jìn)Skywalking

    在微服務(wù)大行其道的今天,如何觀測眾多微服務(wù)、快速理清服務(wù)間的依賴、如何對服務(wù)之間的調(diào)用性能進(jìn)行衡量,成了擺在大家面前的難題。對此,Skywalking應(yīng)運(yùn)而生,它是托管在 Apache 基金會下的開源項(xiàng)目,旨在幫助開發(fā)者監(jiān)控分布式程序的性能、了解各個服務(wù)的調(diào)用關(guān)系和

    2024年04月23日
    瀏覽(18)
  • 手摸手接入Github實(shí)現(xiàn)Oauth2第三方登錄

    手摸手接入Github實(shí)現(xiàn)Oauth2第三方登錄

    最近在學(xué)習(xí)oauth2授權(quán)登錄流程,oauth2簡單來說就是接入第三方應(yīng)用(qq、微信、github、gitee等),不用在本站登錄,而是去請求第三方應(yīng)用的用戶信息完成登錄。 下面就一起來看一下如何接入github實(shí)現(xiàn)第三方登錄 首先,我們需要在github中添加OAuth App,登錄你的github(如果還有

    2024年02月04日
    瀏覽(26)
  • 泰褲辣?。?!手摸手教學(xué),如何訓(xùn)練一個你的專屬AI歌姬~

    泰褲辣?。?!手摸手教學(xué),如何訓(xùn)練一個你的專屬AI歌姬~

    最近在做AIGC的項(xiàng)目,不過是與圖片相關(guān)的,現(xiàn)在的模型效果可比前幾年圖片替換效果好多了。之前嘗試過用 faceswap 工具來進(jìn)行人臉替換的,具體可以參看下我之前的這篇文章:https://blog.csdn.net/sinat_26918145/article/details/79591717 ? 現(xiàn)代的模型對于圖生圖的支持效果已經(jīng)非常好了,

    2024年02月06日
    瀏覽(23)
  • 使用 Burp Suite 暴力破解密碼 撞庫攻擊 從0到1手摸手教學(xué)

    使用 Burp Suite 暴力破解密碼 撞庫攻擊 從0到1手摸手教學(xué)

    一個學(xué)習(xí)的過程 增加自己網(wǎng)絡(luò)安全知識 切勿用于違法用途 設(shè)置密碼盡量使用6位以上并規(guī)避簡單數(shù)字組合、加強(qiáng)對同一ip的頻繁訪問次數(shù)限制、設(shè)置人機(jī)驗(yàn)證減小撞庫攻擊的危害 本地環(huán)境 kali 2022 Burp Suite FireFox 靶機(jī)環(huán)境 一臺服務(wù)器 CentOS 7 寶塔面板 一個域名(你不會沒有吧)

    2024年02月09日
    瀏覽(51)
  • 手摸手教你Vite+Vue3項(xiàng)目初始化及開源部署到GItee

    手摸手教你Vite+Vue3項(xiàng)目初始化及開源部署到GItee

    本片文章主要記錄項(xiàng)目的環(huán)境,項(xiàng)目搭建。 在開始本次學(xué)習(xí)中,鑒于你有前端三件套和vue的知識基礎(chǔ)。 文檔創(chuàng)建于2023年5月20日,大家都去過情人節(jié)了~我在肝代碼! 環(huán)境的搭建 node版本使用18.16.0。 目前(2023.05.20)的穩(wěn)定版本,這里推薦使用nvm來管理node的版本。Nvm使用教程

    2024年02月04日
    瀏覽(40)
  • 【AI幫我寫代碼,上班摸魚不是夢】手摸手圖解CodeWhisperer的安裝使用

    【AI幫我寫代碼,上班摸魚不是夢】手摸手圖解CodeWhisperer的安裝使用

    除了借助ChatGPT通過問答的方式生成代碼,也可以通過IDEA插件在寫代碼是直接幫助我們生成代碼。 目前,IDEA插件有CodeGeeX、CodeWhisperer、Copilot。其中,CodeGeeX和CodeWhisperer是完全免費(fèi)的,Copilot是收費(fèi)的,每月10美元。 下面我們來了解CodeWhisperer的安裝和使用,如果你還想了解其他

    2024年02月11日
    瀏覽(16)
  • 無需魔法,教你Midjourney隨意用【內(nèi)附源碼】【示例】

    無需魔法,教你Midjourney隨意用【內(nèi)附源碼】【示例】

    感謝laf提供云資源贊助,小伙伴可白piao用來做測試。 感謝laf團(tuán)隊(duì)、白夜、米開朗基楊@sealos.io的熱心布道 ,life is short, u need laf : ) 歡迎你也來加入laf開發(fā)。 正好現(xiàn)在laf在做一個活動,一起搞起來吧人人都能接入 Midjourney 目標(biāo) 由于Midjourney官方并沒有提供api接口,有大佬開封裝

    2024年02月11日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包