midjourneyで複数プロンプトを 毎回ちょっとづつ変化させながら 時間差でゆっくり夜通し生成してもらうようなツール作れないかなと思って取り組み始めた。 まぁツール自体はそんなに作るの難しくないと思うけどミッドジャーニーがdiscord上でそれを受け入れてるかどうかだと思う。 まぁやってみよう とっくにだれかやってそうだけど。
なにをしようかというと
ある程度自分が望んだプロンプトに方向性を絞りたいからいくつかはこっちでちゃんと考えて書く その中のキーワードを毎回変えたい ただ創造性は欲しいからその部分はGPT4に考えてもらいたい
midjournyってFastモードだと時間制限があるし つい最近 その制限時間も大幅に短くなっちゃったので 普段はrelaxモードで使用して忙しいときにfast使うみたなのがいいんだけど やっぱり遅いw
ので ある程度こういう方向性で ってのを決めてから よどうしツールで回したいとおもったわけ。 stable diffusion でもある程度似たようなことできるけど だいぶ精度あがったけどまだなんやかんやMJが使いやすいのでこっちでやる いつかSDでも使えるツールつくるかな。
細かい機能だけど
・discodeを起動する
・discodeにアクセスする
・discodeの中のmidjourneyにアクセスする
・midjouenryの中の自分のサーバーにアクセスする(ほかのひとと 共有したくないため)
・設定は手動で行ったときのままで
・/imagne を冒頭につねにいれる
・規定のプロンプトを読み込む(指定したメモ帳など)
・一定時間ごとに入力する 5分ごとくらいかな
・各回でプロンプトを変更する (これはまずはこちらの指定で行う GPTと連動させたいところだけど)
・でてきたものに対してランダムにUとV を押す
こんなところだろうか? さしあたりメモなのでこんなところでいいか
さて まずdiscodeへのアクセスはトークンというものを得ればできるらしい
discodeをブラウザ上で開く→Ctrl+Shift+I でデベロッパーツール開く→network→Ctrl+Rで更新→libraly(library?country_code=JP自分のはこういう表記だった これでいいの?)→Authorization にあるのがトークンらしい
ネットにある画像とは違うので不安
とりあえずこれの取得にいろんなことを試してしまった。自分でdiscodeのapp作ったり いろんな方法はある。
トークンは取得したのでつぎはツール
まずは入力のツールが正しく機能してるか試したいので pythonで
・メモ帳の起動→文字の入力→10秒後に別の文字の入力 までをやった
基礎中の基礎だけどおさらい
pythonはnotepadでも書ける 拡張子を.pyにする 指定のフォルダにいれる
フォルダ上でpathが描いてあるところに cmd といれると そのフォルダを開いた状態のコマンドプロンプトが開く
cd でパスに移動できる cd パス をいれたのに移動できない場合 cd/d のあとにパスをいれると違うドライブにも移動できる
pythonを実行したいときは python test01.py のような形で そのフォルダがあるとこに移動してからこれを入力
import pyautoguiimport timeimport subprocess
# Notepadを開くsubprocess.run([‘notepad.exe’])
# Notepadが開かれるのを待つ(ここでは2秒間)time.sleep(2)
# Notepadウィンドウをアクティブにする(画面の中央をクリック)screenWidth, screenHeight = pyautogui.size() # スクリーンの解像度を取得pyautogui.click(screenWidth / 2, screenHeight / 2)
# 任意のテキストを10秒毎に追加for i in range(5): # 5回繰り返す(あるいは必要なだけ繰り返す) pyautogui.typewrite(f’これはテスト文です。回数: {i+1}\n’) # \nは改行を意味する time.sleep(10) # 10秒待つ
これがうまくいかず。 二秒後にカーソルの点滅が消えるんだけど入力がはじまらなかった。
かわりにこっち↓
import timefrom pywinauto.application import Application
# Notepadを開くapp = Application().start(“notepad.exe”)
# Notepadが開かれるのを待つtime.sleep(2)
# Notepadウィンドウを取得notepad_window = app.Notepad
# 任意のテキストを10秒ごとに追加for i in range(5): # 5回繰り返す(あるいは必要なだけ繰り返す) notepad_window.Edit.type_keys(f’これはテスト文です。回数: {i+1}\n’, with_spaces=True) # \nは改行を意味する time.sleep(10) # 10秒待つ
こっちだとうまくいった。 なんでかの解明はあと、、
とりあえず動いたので次は 文字を毎回変える
Nebula Spa Resort Floating within a colorful space nebula, this resort offers relaxation treatments using cosmic energies. Guests can rejuvenate under star showers or meditate within zero-gravity chambers.HDR,high contrast,color,ultra photorealistic,photoreal,blender,rendering,space that could be used for FPS, with various stores and culture in the square,unique culture, giving a sense of life. FPS game look, –aspect 16:9
GPTに独創的な世界観のプロンプトを100個 文章付きでつくってもらい
HDR,high contrast,color,ultra photorealistic,photoreal,blender,rendering,space that could be used for FPS, with various stores and culture in the square,unique culture, giving a sense of life. FPS game look, –aspect 16:9
の頭に文章として乗っけたい
プロンプト100コは一瞬で出来上がるので それをメモ帳にいれて番号でふればいいかな。