こしあん
2023-06-03

GPT-4と画像生成を組み合わせたらヤバすぎた


22.8k{icon} {views}


GPT-4/ChatGPTと画像生成(Stable Diffusion)の組み合わせを試したら、とんでもないクォリティのイラストができたので記事にしました。GPT-4に情景描写をさせてプロンプトに変換するものですが、あまりにGPTの描写能力が強いです。もう人間が1からプロンプトを作る時代は終わったのではないでしょうか。

はじめに

あまりにやばい画像ができたので公開するかどうか迷っていたのですが、そのうち誰か公開しそうだったので公開します。

GPTを使って画像生成のプロンプトを生成するのは誰でも思いつきそうなものなのですが、特に最近出たGPT-4では得意な内容がある程度明らかになってきました。

エンジニア兼SF作家がGPT-4執筆支援を実戦投入できないか実験してわかったこと

これを見ると、

  • 文章構成
  • 情景描写や人物描写
  • どこかに当てはまる言葉を探索したい

このへんが強いそうですね。あれ、ちょっとまって

情景描写や人物描写

これってGPTで生成させて、画像生成のプロンプトに突っ込めばよりよくないですか?? ってのが今回のやり方です

普通のやり方

なにも考えずに「こういうイラスト描きたいよ。プロンプト吐いてね」ってやる方法です。

コード

import os
os.environ["OPENAI_API_KEY"] = "<your-openai-api-token>"

from langchain.prompts import HumanMessagePromptTemplate, ChatPromptTemplate
from langchain.chat_models import ChatOpenAI
from langchain.chains import LLMChain
from diffusers import StableDiffusionPipeline, UniPCMultistepScheduler
import torch
import numpy as np
import copy
import torchvision

SD_PROMPT_TEMPLATE = '''以下のテーマについて、Stable Diffusionで画像を生成するためのプロンプトを生成してください。結果は英語で、カンマ区切りの単語列で出力してください。
テーマ:"""
{theme}
"""'''

def merge_network(pipe_source, pipe_merge, attr, ratio):
    merge_net = copy.deepcopy(getattr(pipe_source, attr))
    pipe_source_params = dict(getattr(pipe_source, attr).named_parameters())
    pipe_merge_params = dict(getattr(pipe_merge, attr).named_parameters())
    for key, param in merge_net.named_parameters():
        x = pipe_source_params[key] * (1-ratio) + pipe_merge_params[key] * ratio
        param.data = x
    return merge_net

def run_normal(illustration_theme, model_name="gpt-3.5-turbo"):
    # Prompt template
    human_message_prompt = HumanMessagePromptTemplate.from_template(SD_PROMPT_TEMPLATE)
    chat_prompt_template = ChatPromptTemplate.from_messages([human_message_prompt])

    llm = ChatOpenAI(temperature=0, model_name=model_name)
    chain = LLMChain(
        llm=llm, 
        prompt=chat_prompt_template,
        verbose=True
    )

    # Get prompt from LLMs
    sd_prompt = chain.run(theme=illustration_theme)
    print(sd_prompt)
    with open("gpt_diffusion_prompt.txt", "w") as fp:
        fp.write(sd_prompt)

    # initialize_model
    device = "cuda:1"
    sd_pipe = StableDiffusionPipeline.from_pretrained(
        "runwayml/stable-diffusion-v1-5", torch_dtype=torch.float16, use_safetensors=True)
    pipe_pastel = StableDiffusionPipeline.from_pretrained("andite/pastel-mix",
                                                           torch_dtype=torch.float16, use_safetensors=True)
    pipe = StableDiffusionPipeline.from_pretrained(
        "prompthero/openjourney-v4", torch_dtype=torch.float16, use_safetensors=True)
    # pipe.unet = merge_network(pipe, pipe_pastel, "unet", 0.75)
    pipe.text_encoder = sd_pipe.text_encoder
    pipe.text_encoder = merge_network(pipe, pipe_pastel, "text_encoder", 0.75)
    pipe.vae = sd_pipe.vae
    pipe.scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config)
    pipe.safety_checker = lambda images, **kwargs: (images, False)
    pipe.enable_vae_tiling()
    pipe.to(device)

    generator = torch.Generator(device).manual_seed(1234)
    prompt = sd_prompt + ", best quality, extremely detailed"
    negative_prompt = "longbody, lowres, bad anatomy, bad hands, missing fingers, extra digit, " \
                    "fewer digits, cropped, worst quality, low quality"
    image = pipe(prompt=prompt, negative_prompt=negative_prompt, generator=generator, 
                 output_type="numpy", num_images_per_prompt=2, width=1920, height=1024).images
    images = torch.from_numpy(image).permute(0, 3, 1, 2)
    torchvision.utils.save_image(images, f"gpt_diffusion.jpg", quality=92, nrow=1, normalize=False)

if __name__  == "__main__":
    run_normal("ドラゴンと戦っている女騎士", model_name="gpt-3.5-turbo")

画像生成側はモデルマージをしてちょっとチューニングします。

  • VAEとCLIP(Text Encoder)はSD1.5のを使用
  • U-Netは、pastel_mixとOpenJourneyを3:1で結合

CLIPをマージするか迷いましたが、Fine-tuning済みのCLIPを使うと背景の描画(例:城壁)がオブジェクト(例:ドラゴン)と同化する傾向にあったので、オリジナルのZero-shot CLIPを使いました。

VAEはSD1.5のほうがむしろ良かったので、こちらを使いました。このへんはこちらの記事で書いています。

ドラゴンと戦っている女騎士」で出力させてみます。HD画質で各ケース2枚出力させます。

ChatGPTの場合

GPTが出力したプロンプトは以下のとおりです。

dragon, female knight, battle, sword, armor, fire, wings, scales, courage, bravery

普通のプロンプトですね笑

この他にクォリティ関係の明らかに画質が良くなるとわかっているものをルールベースでプラスしています。

GPT-4の場合

dragon, female knight, battling, armor, sword, fire, mythical creature, shield, medieval, fantasy

プロンプトを見る限りあまり変わったワードはでません。これでも出力はすごいんですが、「たまたまうまくいったんでしょ」感は否めません。

「mythical creature(神話上の生き物), medieval(中世)」のようなリッチな英単語を引っ張ってきているのがGPT-4らしさでしょうか。

賢いやり方

そもそも「プロンプト作って」程度ですと、出力は単語の分散表現をテキトーにとってきたものと大して変わりません。絵を書くのに必要なのは、情景描写やオブジェクトの配置です。これをプロンプトで指定して吐かせるようにします。

Chain of Thoughtの要領で、推論を2段階に分けます。ついでにロールプレイの要素も加えます。

  • 1段階目:デザインを考える人
    • とにかく頑張って情景描写を考えてもらう
  • 2段階目:プロンプトに落とす人
    • 1段階目の情景描写をもとにStable Diffusionのプロンプトを作成する

プロンプトデザイン(1段階目)

システムプロンプトで以下のように指定します。

あなたは優秀なデザイナーです。ユーザーから与えられた情報をもとに、どんなイラストレーターや小説家も感動させるようなイラストを描写することができます。

あなたがすべきことはユーザーから与えられた情報から、想像力を働かせてイラストの情景描写を詳細を記述することです。具体的には、人物の服装、髪型、表情、年齢、性別などの外見の特徴、人物の表情や心境や心象風景、イラストの構図やオブジェクトの配置(どこに何のオブジェクトがあるか、またその特徴)、周囲の景色や地理、天気や空の様子、光の加減やイラストを見た人に伝わる雰囲気を記述します。あなたはユーザーの心に訴えるような情景描写がとても得意です。実際にイラストを書くのは別の方が行うので、あなたは詳細を記述することのみ集中してください。

想像力を働かせていきましょう。

GPTのプロンプトエンジニアリングを強力に機能させるには「洗脳と紙一重のことをやる」のが良いので、とりあえず褒めておきます。褒めれば良い答えが出るはずです。

プロンプトデザイン(2段階目)

2段階目はただの単語抽出ですね。これをGPT-4でやるのは若干もったいない気はします笑

You are a talented illustrator. From a description of a scene given by a designer, you can use Stable Diffusion (an image generation model) to generate an illustration that will amaze any designer or artist.

To generate an illustration, a list of words called “prompt” is required. The prompt determine the quality of the illustration. The more variegated words you include, the more information you include, the better the illustration. Please output a brief, carefully selected output of about 20 words for the prompt. You do not have to present the words as they are given by the user, and you may supplement them with other words from your imagination if necessary.

Prompt output must be in English, and output must be comma-separated word strings.

英単語の列で吐いてほしいので、英語で記述して「ユーザーがどんな入力をしても英語で書いてね」としておきます。原文はこちらです。これをDeepLで翻訳したものを突っ込んでいます。

あなたは優秀なイラストレーターです。デザイナーから与えられた情景描写から、Stable Diffusion(画像生成モデル)を使って、どんなデザイナーや芸術家もびっくりさせるようなイラストを生成することができます。
イラストの生成には、「プロンプト」と呼ばれる単語のリストが必要です。プロンプトはイラストのクォリティを決定します。よりバリーションの豊富な単語を入れるほど、より多くの情報を入れるほど、より良いイラストができます。プロンプトには、20単語程度を厳選して出力してください。また、ユーザーが与えた単語をそのまま提示する必要はなく、必要があれば想像で別な単語で補っても構いません。
プロンプトの出力は英語でおこなければなりません。また、出力はコンマ区切りの単語列でしなければいけません。

コード

import os
os.environ["OPENAI_API_KEY"] = "<your-openai-api-key>"

from langchain.prompts import SystemMessagePromptTemplate, HumanMessagePromptTemplate, ChatPromptTemplate
from langchain.chat_models import ChatOpenAI
from langchain.chains import LLMChain
from diffusers import StableDiffusionPipeline, UniPCMultistepScheduler
import torch
import numpy as np
import copy
import torchvision

SD_DESIGN_SYSTEM_TEMPLATE = '''あなたは優秀なデザイナーです。ユーザーから与えられた情報をもとに、どんなイラストレーターや小説家も感動させるようなイラストを描写することができます。

あなたがすべきことはユーザーから与えられた情報から、想像力を働かせてイラストの情景描写を詳細を記述することです。具体的には、人物の服装、髪型、表情、年齢、性別などの外見の特徴、人物の表情や心境や心象風景、イラストの構図やオブジェクトの配置(どこに何のオブジェクトがあるか、またその特徴)、周囲の景色や地理、天気や空の様子、光の加減やイラストを見た人に伝わる雰囲気を記述します。あなたはユーザーの心に訴えるような情景描写がとても得意です。実際にイラストを書くのは別の方が行うので、あなたは詳細を記述することのみ集中してください。

想像力を働かせていきましょう。
'''

SD_PROMPT_SYSTEM_TEMPLATE = '''You are a talented illustrator. From a description of a scene given by a designer, you can use Stable Diffusion (an image generation model) to generate an illustration that will amaze any designer or artist.

To generate an illustration, a list of words called "prompt" is required. The prompt determine the quality of the illustration. The more variegated words you include, the more information you include, the better the illustration. Please output a brief, carefully selected output of about 20 words for the prompt. You do not have to present the words as they are given by the user, and you may supplement them with other words from your imagination if necessary.

Prompt output must be in English, and output must be comma-separated word strings.
'''

def merge_network(pipe_source, pipe_merge, attr, ratio):
    merge_net = copy.deepcopy(getattr(pipe_source, attr))
    pipe_source_params = dict(getattr(pipe_source, attr).named_parameters())
    pipe_merge_params = dict(getattr(pipe_merge, attr).named_parameters())
    for key, param in merge_net.named_parameters():
        x = pipe_source_params[key] * (1-ratio) + pipe_merge_params[key] * ratio
        param.data = x
    return merge_net

def run_clever(illustration_theme, output_key, model_name="gpt-3.5-turbo", direct_inference=None):
    if direct_inference is None:
        # Design prompt template
        chat = ChatOpenAI(temperature=0.3, model_name=model_name, request_timeout=600)
        design_system_prompt = SystemMessagePromptTemplate.from_template(SD_DESIGN_SYSTEM_TEMPLATE)
        design_human_prompt = HumanMessagePromptTemplate.from_template("{theme}")
        design_prompt_template = ChatPromptTemplate.from_messages([design_system_prompt, design_human_prompt])
        chain = LLMChain(
            llm=chat, prompt=design_prompt_template, verbose=True)

        # Get design proposals
        sd_design = chain.run(theme=illustration_theme)
        print(sd_design)

        # Prompt Extract Template
        extract_system_prompt = SystemMessagePromptTemplate.from_template(SD_PROMPT_SYSTEM_TEMPLATE)
        extract_human_prompt = HumanMessagePromptTemplate.from_template("{design}")
        extract_prompt_template = ChatPromptTemplate.from_messages([extract_system_prompt, extract_human_prompt])
        chain_prompt = LLMChain(
            llm=chat, prompt=extract_prompt_template, verbose=True)
        sd_prompt = chain_prompt.run(design=sd_design)
        print(sd_prompt)

        # Get prompt from LLMs
        with open(f"gpt_diffusion_{output_key}_prompt.txt", "w") as fp:
            fp.write(illustration_theme + "\n\n" + sd_design + "\n\n" + sd_prompt)
    else:
        sd_prompt = direct_inference

    # initialize_model
    device = "cuda:1"
    sd_pipe = StableDiffusionPipeline.from_pretrained(
        "runwayml/stable-diffusion-v1-5", torch_dtype=torch.float16, use_safetensors=True)
    pipe_pastel = StableDiffusionPipeline.from_pretrained("andite/pastel-mix",
                                                           torch_dtype=torch.float16, use_safetensors=True)
    pipe = StableDiffusionPipeline.from_pretrained(
        "prompthero/openjourney-v4", torch_dtype=torch.float16, use_safetensors=True)
    pipe.unet = merge_network(pipe, pipe_pastel, "unet", 0.75)
    pipe.text_encoder = sd_pipe.text_encoder
    # pipe.text_encoder = merge_network(pipe, pipe_pastel, "text_encoder", 0.75)
    pipe.vae = sd_pipe.vae
    pipe.scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config)
    pipe.safety_checker = lambda images, **kwargs: (images, False)
    pipe.enable_vae_tiling()
    pipe.to(device)

    generator = torch.Generator(device).manual_seed(1234)
    prompt = sd_prompt + ", best quality, extremely detailed"
    negative_prompt = "longbody, lowres, bad anatomy, bad hands, missing fingers, extra digit, " \
                    "fewer digits, cropped, worst quality, low quality"
    image = pipe(prompt=prompt, negative_prompt=negative_prompt, generator=generator, 
                 output_type="numpy", num_images_per_prompt=2, width=1920, height=1024).images
    images = torch.from_numpy(image).permute(0, 3, 1, 2)
    torchvision.utils.save_image(images, f"gpt_diffusion_{output_key}.jpg", quality=92, nrow=1, normalize=False)

if __name__  == "__main__":
    run_clever("ドラゴンと戦っている女騎士", "dragon_gpt-4", model_name="gpt-4")

GPT-3.5-Turboの場合

情景描写

女騎士は大きな盾を構え、勇敢にドラゴンと戦っています。彼女は目の前に立ちはだかる巨大なドラゴンを前に冷静さを保ち、自信に満ちた表情をしています。彼女の鎧は、厳しさと力強さを表しています。鎧の中からは、女性だけど活気に満ちた存在感がにじみ出ています。
ドラゴンは空から降り注いできたため、女騎士と軋轢が生じています。しかし、彼女は圧倒的な勇気と力で肉弾戦を戦おうとしています。周りには、草木を踏みつけたり、破壊されたものが散乱しており、戦いの壮絶さを感じさせます。
天気はその日は晴天であり、空は青く澄んでいます。騎士が戦っている場所は、丘の上です。壮大な自然の中、彼女の勇気が輝いています。女騎士が敵と戦うとき、勇気と協調性を達成して真の勇気の本当の意味を発揮します。

プロンプト

Knight bravely battles dragon with her great shield. Her armor exudes toughness, yet she exudes feminine vivacity. The dragon descended from the sky, causing friction. The battle takes place atop a hill, amidst breathtaking nature. The knight’s courage shines in the face of adversity.

情景描写と生成画像があんまり一致していないのは、Stable DiffusionのText Encoderがしょぼい(所詮はCLIPについてるText Encoder)ので仕方ないです。あくまで分散表現のモデルなので、こういった長文の係り受けを見ながら画像に反映させるということはできません(せめてRoBERTaかT5クラスはほしい)

以前のChatGPTとくらべてだいぶリッチコンテクストな表現をしてきましたね。ただ、ChatGPTはハルシネーションが起きやすいモデルなので、プロンプト生成の指示を無視してフレーズで出してしまっています。

GPT-4の場合

情景描写

イラストの中心に、勇敢な女性騎士がドラゴンと激しい戦いを繰り広げています。彼女は、若くて力強い風貌を持ち、20代後半の年齢です。その髪は、赤みがかった茶色のショートカットで、髪が額にちょっと落ちているくらいの長さです。鋭い青い瞳でドラゴンをにらみつけ、決意に満ちた眼差しで、恐れずに戦っています。彼女の顔には、戦いの中でついた汗とわずかな泥がこびりついています。
女騎士は銀色の鎧に身を包んでおり、その鎧は女性の曲線に合わせた美しいデザインが施されています。胸部には、彼女の信じる勢力の紋章が刻まれています。鎧の下には、赤色のジャケットのような布が見え、これが彼女の所属を示すアイテムです。太ももまで届く革で出来たブーツも着用し、彼女の体を完全に守っています。
彼女の手には大型の剣が握られており、その刀身は幅広で、ドラゴンの鱗に突き刺さるように鋭く、先端が弧を描くように曲がっています。剣は一部輝いており、彼女の勇気と力を象徴するかのようです。
ドラゴンは大きくて凄まじい姿で、緑と黒の鱗に覆われた巨体を持っています。額には角が生え、目は赤く光り、炎を吹くたびに空気が震えるほどの威力をもっています。ドラゴンの翼は広がり、背景の空にその姿を主張しています。彼は女騎士に向かって咆哮し、一歩も引かない姿勢を見せています。
イラストの周囲は、荒れた戦場の様相を呈しており、岩や瓦礫が散らばっています。どこか遠くには、古い石造りの城壁が見えますが、それも取り巻く炎に包まれています。背後の空は、戦いが終わるまで明るくなりそうもない暗雲に覆われています。空からは細かい雨が降っており、その落ちる雨滴が戦いの情景をより一層劇的にしています。
光は女騎士の剣とドラゴンの鱗に反射し、イラスト全体に緊迫感を与えています。観る者には、両者の勇敢さと絶対的な力が伝わり、息を呑むような戦いの一瞬を感じさせます。このイラストを見たイラストレーターや小説家は、女性騎士の勇気に感動し、彼女の物語を知りたくなることでしょう。

プロンプト

brave female knight, dragon, intense battle, reddish-brown short hair, blue determined eyes, silver armor, beautiful design, emblem, red jacket, leather boots, large sword, green and black scales, formidable dragon, rocky battlefield, old stone walls, flames, dark clouds, raindrops, sword and scale reflections, dramatic scene

GPT-4の情景描写ヤバすぎ!! なにこれ…?

ドラゴンの炎と騎士の剣が同化してたり、鎧と馬が同化しているのは画像生成のText Encoderがしょぼいからです。

以下GPT-4で生成したイラストをお楽しみください

好みでテキトーに作りました。これがキーワード入力しただけで、1種類数分で出てくるのやばいですね。

夏の海辺で両手を広げてるワンピースの女の子

「夏の海辺で両手を広げてるワンピースの女の子」だけ与えて出力させます。

情景描写

夏の海辺を舞台にした、心温まるイラストの情景です。陽光溢れる砂浜に、両手を大きく広げて踊るように立つ可憐な女の子が描かれています。彼女は、透けるほど淡いブルーのワンピースを着ており、その軽やかな素材が海風に音も無く揺れています。少女の髪型は、ふわふわとしたショートカットで、髪の毛がくるりと跳ねている様子が風に乗って元気に舞っています。額にはかわいらしいリボンが付いており、パステルピンクの色合いが夏の日差しに映えます。
彼女の瞳は大きく、潮風と遊ぶ子どもたちを優しく見守る無邪気で純朴な明るさに溢れています。口元にはかすかに笑みが浮かび、幸せそうな表情で太陽の光を全身で受け止めている様子が伝わってきます。彼女の頬には、日焼けをしたかのような健康的な薄紅色が浮かんでおり、若々しいエネルギーに満ちています。彼女の年齢はおそらく12歳ほどで、これから訪れる様々な冒険に胸を膨らませているようです。
女の子の後ろには、青く澄んだ海が広がっており、途切れることのない波のリズムが響き渡っています。また、砂浜には、色とりどりのシェルが散りばめられ、夏の海辺を彩っています。太陽は真上に位置し、ビーチに降り注ぐ太陽の光が波打ち際の水面をキラキラと輝かせています。
イラスト全体からは、自由を満喫している女の子と穏やかな夏の日の海辺というキラキラとした幸せな雰囲気が伝わってきます。海と空の色彩が調和し、見る者に心地よい風が吹き抜けるような印象を与えます。この情景は、イラストを見る人がその場にいるかのような感覚を呼び覚ますでしょう。

プロンプト

summer, seaside, heartwarming, girl, dancing, sandy beach, light blue dress, short haircut, pastel pink ribbon, innocent, big eyes, gentle smile, sun-kissed cheeks, ocean, waves, colorful shells, bright sun, shimmering water, freedom, harmonious colors

横長のイラストで2、3人表示されてしまっているのは、GPT関係なくStable DiffusionのTiling VAEでよくあることなのでひとまず目をつむりましょう(なんとなく原因は理解できるのですが)

ただ、何も情報与えていないのに「12歳」というコンテクストを引き出すGPT-4かなりヤバいです。

桜を背景に立っている巫女服の女の子

情景描写

イラストの中心には、桜の花が咲き誇る美しい光景が広がっています。空には桜の花びらが舞い散る様子があり、まるでピンクの雪が降っているかのよう。空は青く澄んでおり、春の暖かさが感じられる空気が漂っています。
その情景を背景に、一人の巫女服を着た女の子が立っています。彼女は約16歳で、黒髪のロングヘアをしていて、赤いリボンを結んでいます。彼女の瞳は深い琥珀色で、どこか神秘的な雰囲気を醸し出している。顔立ちは整っていて、落ち着いた可憐さが漂っています。巫女服は白と赤を基調とした伝統的なデザインであり、彼女の細身の体つきにぴったりとフィットしています。
彼女の手には、お祓いを行う時に使う神聖な御幣が握られています。その存在感によってさらに彼女の神秘的な雰囲気が増幅され、清らかさと力強さを感じさせます。彼女の表情は誠実であり、穏やかな微笑みを浮かべながら桜を見上げています。彼女の瞳には桜の花が映り込んでおり、春の柔らかさとともに、神への敬虔な思いが伝わります。
イラストの構図は、巫女服の女の子が中心に立ち、桜の木々の間から差し込む光が彼女を照らしているように配置されています。その光は周囲の桜の花びらを美しく映し出し、幻想的な雰囲気とともに、女の子が存在感を放っています。地面には新緑の若草が広がり、春の訪れを象徴しています。遠くには巫女の姿を象った重要文化財の神社が見え、日本の伝統と美しさを感じさせる風景が広がっています。
このイラストを見る者は、春の暖かさや彼女の清らかさ、神秘的な雰囲気に引き込まれ、心に強い印象を残すことでしょう。日本の伝統と四季の美しさが見事に融合した一枚となっています。

「日本の伝統と四季の美しさが見事に融合した」このコンテクストを引っ張ってくるのはやばいですね。この文章自体がかなり芸術点高いです。絵柄はPastel-MixとOpenJourneyのあんまり得意ではなかった領域だったかもしれません。

異世界で一人ぼっちの女の子

情景描写

イラストの中心には、異世界で一人ぼっちの女の子が置かれています。彼女の外見はおおよそ10歳で、髪は短い黒髪で前にかかる髪型になっており、横にカーブがかったほんのり青い瞳が印象的です。彼女の顔の表情は寂しそうでありながらも、どこか希望に満ちているような微笑みを浮かべています。
彼女の服装は異世界らしい色とりどりの布でできたパッチワークのワンピースドレスで、胸元には小さなポケットが付いており、そこから見える一部分には、彼女が唯一の友達と話すためのお守りが詰め込まれています。足元には、磨り減った革靴が履かれ、彼女の冒険の証でもあるようです。
イラストの背景には、彼女が旅を続ける異世界の光景が広がっています。高い塔や空に浮かぶ島、魔法で造られた木々が彼女を取り囲むように広がり、彼女だけでは到底探索しきれない謎とロマンに満ちた空間を構築しています。地面は緑と紫の珍しい草花で覆われており、彼女が歩くたびに静かに揺れ動きます。
空は朝焼けが始まったばかりで、まだ夜明け前の青白い空に光が差す様子が描かれています。光の加減は穏やかで、暖かさを感じさせ、彼女が必ず友達と再会できることを示唆しています。
イラスト全体の雰囲気は、一人ぼっちの彼女の寂しさと、求める友達との出会いへの希望という二つの感情が交錯した状態を伝えています。観る者の心に、彼女の孤独な冒険と彼女を励ます友達になりたいという思いを呼び起こす力があります。

これ私好きな一枚ですね。GPTやDiffusionモデルの考える異世界とはなにか?というのが気になったのですが、2枚目のような、地面に花が生えて、岩が突き出て夜空が浮かんでいる描写はなるほどと思いました。孤独というコンテクストだけにならないのがGPT-4さすがという感じです。手がダブってるのが残念ですね。

村の祭りで踊っている一人の女の子

情景描写

村の広場で開催されている賑やかな祭りの最中、一人の女の子が魅惑的に踊っている様子が描かれたイラストです。女の子は10歳くらいの可憐な少女で、笑顔が絶えず、その瞳は輝いています。彼女の髪は太陽の光に照らされて、明るい茶色に輝いており、編んだお団子ヘアスタイルでお祭り用の簪を挿しています。
彼女が着ているのは、鮮やかな赤と白を基調とした着物で、稲穂の柄が金色で織り込まれています。長い袖が風に舞っており、彼女の優雅な動きを際立たせています。着物の帯は黄色で、華やかな太鼓結びにしているため、華麗に踊る彼女の動きをさらに引き立てています。
周囲では村の人々が楽器を演奏し、和太鼓や笛の音が広場に響いています。背景には、提灯が並んだ露店が所狭しと並んでおり、子どもたちや家族連れが楽しげに笑顔で楽しんでいます。祭りの空気は活気に溢れており、イラスト全体に明るく元気な雰囲気が漂っています。
女の子は広場の中心で踊っており、その周りには輪になって拍手をする人々がいます。彼女の踊りに魅了されている人々の顔も、祭りを盛り上げる大切な要素として描かれています。彼女は子どもながら、しなやかな指先から伸びる美しい動きで、まるで芸者のように踊っています。
空は薄雲がかかっており、夕日が広場を包み込むようにオレンジに染まっています。暖かな光が彼女の姿を照らし出しており、まるで絵画のような美しさがあります。この一枚のイラストを見るだけで、村の祭りの華やかさと女の子の無邪気な笑顔に心が癒されるような錯覚に陥ります。

「1人の女の子」と指示したのにいっぱい人が出てきた例です。ただ、祭りっぽくなっているのでまあまあ面白い

後半のほうの天気の内容はトークン数が足りなくて切り捨てられちゃったんでしょうね。Stable Diffusionで77トークンしか使えないのはさすがにもう物足りない

お花畑の横に、遠くに雪がかった山脈を見ながら歩いて行く、1つのグループの冒険者

情景描写

イラストの中心には、美しいお花畑が広がっています。花々は様々な種類があり、ピンクや黄色、白など、さまざまな色彩が鮮やかに描かれています。花の香りが画面を飛び出してくるかのような、視覚だけでなく嗅覚にも訴えかけるリアルな描写となっております。
このお花畑の横を歩いているのは、4人の冒険者たちです。彼らはそれぞれ個性的な服装と髪型で描かれており、見ている人にもその個性が伝わることでしょう。
一人目の冒険者は、赤く燃えるような髪の若き男性で、身にまとう装備は輝く銀色の鎧です。彼の表情は真剣で、目を輝かせながら前を見据えています。
二人目は黒髪の女性で、年齢は20代後半といったところでしょうか。彼女は青い瞳を持ち、緑色のローブを身にまとっています。彼女の微笑みは優しく、周囲の花々を楽しむ様子が描かれています。
三人目は、白銀の髪をした中年の男性で、黒いマントを身に纏い、帽子をかぶっています。彼の瞳には深い知識と経験が感じられることでしょう。
四人目は短髪の少年で、紫色のチュニックを着ています。彼はおどけた表情をしており、無邪気な楽しさを感じさせます。
彼らが歩いている先には、横に広がる山脈がございます。雪がかった山々が遠くまで続き、大自然の壮大さを感じさせています。空は青く澄んでおり、太陽の光が冒険者たちやお花畑に降り注ぎます。また、雲一つない青空が広がり、その広さに胸が晴れやかになります。
このイラストから伝わる雰囲気は、冒険に溢れた希望と、団結力に裏打ちされた絆です。見る人には、彼らの旅の先に待つ未知への期待と、仲間とともに乗り越える困難への自信が感じられるでしょう。

視覚的なインパクトが強い画像です。OpenJourney入れてるからかもしれませんが、オープンワールド系のイラストはプロンプトに入れるものが人間から見てもわかりやすいので、作りやすいんですよね。

LLMも画像モデルも数の認識はちょっと弱い傾向はあるので、冒険者の人数はかなり怪しいです。

終末の世界で取り残されたただ一人の女の子

情景描写

イラストの中心に、終末の世界で取り残されたたった一人の女の子が描かれています。彼女は10代後半の美しい少女で、長い黒髪が風になびいています。彼女の目は翠色で、破滅の中でも希望を捜し求める瞳をしています。彼女の服装は破れた白いショートスリーブのTシャツと、膝丈のタイトなカーキスカートからなり、足元にはボロボロのブーツが履かれています。
彼女の顔は汚れと涙でぼんやりとした表情を浮かべ、両肩に擦り切れたリュックサックを背負っています。彼女は膝を抱えて座り込み、身の危険を感じながらもけれど強い心を持っていることが伝わります。
周囲の景色は荒廃した都市を背景に、ズタズタになったビルが崩れかけ、空は灰色の雲に覆われています。遠くには崩壊した橋が川に突き刺さったかのように見え、何か大きな災害が起こったことが伝わります。荒れ果てた地面には、雑草が生えており生命の気配が僅かに感じられる光景が広がっています。
光の加減は場面全体にも漂う陰鬱さを演出しつつも、彼女に差し込む光が希望を象徴するように描かれています。光は彼女の後ろからさりげなく照らしており、彼女の全身にかすかな光がかかることで、女の子の強い意志が際立っています。
イラストを見る人に伝わる雰囲気は、絶望の中にも希望を見出そうとする力強さ。ユーザーがその一枚のイラストから、彼女の孤独と不安、そして未来への希望と決意を共感することができるでしょう。

1人なのに複数出てるのなんでや!って感はありますけど、背景描写が強いですね。世界崩壊系は出力すると結構楽しめます。

宇宙空間でお茶会をする女の子

情景描写

宇宙空間を背景に、美しい地球が遠くに見える幻想的なイラストです。太陽からの柔らかな光が女の子たちの周りに降り注ぎ、宇宙に漂う星々が彼女たちを照らしています。
このイラストには、3人の女の子が登場します。彼女たちは愉快な宇宙空間でのお茶会を楽しんでいる様子です。それぞれの女の子は、独特のファッションで舞台を彩っています。
1人目の女の子は、金髪のロングヘアで18歳ほどの少女です。彼女はドレスを身にまとっており、そのスカート部分が銀河のように広がっています。宇宙をモチーフにしたアクセサリーが何個か彼女の髪や服に添えられ、地球と月を表すイヤリングが光っています。彼女はお茶会に夢中な笑顔で、一番中央に座っています。
2人目の女の子は、碧眼に黒髪のショートヘアで16歳ほどの少女です。彼女はフタuristicな宇宙服を着ており、胸に小さな惑星のパッチが付いています。彼女は軽やかな表情で、お菓子を1人目の女の子に差し出しています。
3人目の女の子は、茶髪のツインテールで14歳ほどの少女です。彼女の服装は宇宙をモチーフにしたロリータファッションで、星空のような煌びやかなプリントが散りばめられています。彼女は両手に持ったティーカップを嬉しそうに見つめています。
お茶会のシーンは、ゼロ重力を活かした浮遊テーブルや椅子で構成され、周囲には宇宙をテーマにしたお菓子や紅茶が並んでいます。不思議な魅力を漂わせるこのイラストは、見る人の心に強く訴えかけてくるでしょう。アンティークなティーポットから注がれる紅茶は、宇宙空間を美しく舞っています。
このイラストは、友情や夢、冒険心を感じさせる作品であり、目に映るすべてのディテールに魅了されること間違いなしです。イラストを眺める度に、新しい発見があるかもしれません。

次は現実的にありえない例です。人数はめっちゃ怪しいですけど、宇宙空間の背景作画がすごいですね。

宇宙空間での艦隊戦を戦う女の子

次も現実的にありえない例です

情景描写

イラストの中心には、勇敢な表情をした女の子が浮かび上がっています。彼女の髪は腰まで達する長さで、銀色の髪が無重力の中で優雅に揺れています。彼女の目は深い碧色で、決意と信念に満ちています。彼女は約16歳で、肌は透き通るような白さを持ち、顎にかかる前髪の隙間から美しい瞳が覗いています。
女の子は戦闘用のスーツを着用しており、そのスーツは黒と銀色でデザインされています。スーツは彼女の体にフィットし、曲線を美しく強調しています。彼女の右肩には、彼女が所属する艦隊のシンボルマークが刺繍されています。
彼女の手には、光るエネルギーソードが握られており、その光が彼女の勇敢なまなざしを照らしています。彼女の足元には、宇宙空間で戦うための靴が装着されており、滑らかなフォルムと優れた機能性を兼ね備えています。
背景には、無数の星々と宇宙の深い闇が広がり、遠くに見える彗星が光を放っています。彼女の周りには、彼女と共に戦う艦隊の宇宙船が迫力あるフォーメーションで配置されています。それぞれの宇宙船は独自のエネルギー光線やビーム兵器を携えており、戦いの覚悟が伝わってくるような迫力があります。
空間を満たすエネルギーや爆発の閃光が作り出す光と影が、宇宙空間での艦隊戦の緊張感と迫力を一層高めています。彼女の視線の先には、敵艦隊が現れ、未来の戦闘が予感される。
イラスト全体は、躍動感と迫力、そして彼女の勇敢な心を感じさせる緊張感に満ち溢れており、見る者の心を鷲掴みにする美しさとエネルギーがあふれています。その光景は、まるで星々が煌めく宇宙空間での大河とも言えるオペラのような雰囲気を醸し出しています。

もっと船同士がバチバチやってるのを想像していましたが、なんかロボットみたいな感じですね。こういうのに乗って戦うのでしょうか?

魔女っ子たちのお祭り

情景描写

イラストの中心には、5人の魔女っ子たちが明るく微笑む姿が描かれています。彼女たちの年齢は10代半ばくらいで、それぞれ異なる髪型と服装を身に纏っています。一人目はショートヘアの女の子で、星形の髪飾りをつけており、鮮やかなピンク色のドレスを着ています。二人目はロングヘアの女の子で、三つ編みで右肩に垂らしていて、緑色のドレスに緑色のリボンがついています。三人目はウェーブヘアの女の子で、紫色の小さな帽子をかぶっており、黄色と紫のドレスを着ています。四人目はポニーテールの女の子で、青い大ぶりのリボンをつけており、青と白のドレスを着ています。五人目は黒髪のお団子頭の女の子で、月形の髪飾りと黒と赤のドレスを着ています。
彼女たちが集まっている場所は、夜の森の中にある広場です。暖かく、キラキラと輝く提灯が並んだお祭りの会場で、彼女たちの周りにもたくさんの人が楽しんでいます。空には満月が輝いており、月の光が彼女たちの笑顔をいっそう印象的に見せています。
魔女っ子たちは、魔法の棒を持っており、それぞれが自分の特徴に合ったエフェクトを出しています。ピンクのドレスの女の子は星型のエフェクト、緑のドレスの子は花のエフェクト、黄色と紫のドレスの子は泡のエフェクト、青いドレスの子は氷のエフェクト、黒と赤のドレスの子は炎のエフェクトが描かれています。これらのエフェクトが組み合わさり、空には美しい花火のような光が広がっています。
会場の隅には屋台が並んでおり、鮮やかな飾りつけや歓声が響いています。また、祭りに参加している他の小さな魔法使いの子どもたちが、楽しそうに踊ったり、遊具で遊んだりしています。このイラストからは、魔法の世界に溢れる楽しさや祝福のムードが伝わってきます。見る人に温かい気持ちや幸せな気分を与えてくれる、夢のような雰囲気が漂っています。

トークン数が多すぎて後半のほう切られてますね。5人というのも無視されていますがかわいいのでOK

雪原を駆け抜ける馬に乗る女の子

情景描写

題材となるイラストは、雪原を駆け抜ける馬に乗る女の子です。
この迫力あるイラストでは、女の子が気高く美しい白馬に乗っています。彼女は若く、おおよそ13~15歳ぐらいに見えます。彼女の黒い髪は、しなやかでなめらかなストレートヘアで、冬の風に舞いながらうしろに揺れています。吹き上げる雪の中でも、彼女の瞳はきらめくような青色でとても印象的です。
女の子の服装は、暖かく防寒にも優れたもので、伝統的な冬の装いが現代的なデザイン要素と融合したようなデザインです。彼女は毛皮製の襟が付いたマントを着ており、内側には柔らかい羊毛が使用されています。これに合わせて、彼女は深い青色のチュニックと黒いフェルト製のブーツを身につけています。馬の鞍も雪原で使えるよう特別にデザインされており、女の子がしっかりと馬にしがみつけるようになっています。
イラストで最も印象的なのは、下から上へかけて動きのある構図です。白馬が力強く足を蹴り上げ、雪原を駆け抜けている様子がよくわかります。馬の足元から吹き上がる雪の粒子が、イラスト全体にダイナミックな雰囲気を与えています。女の子のマントも風になびいており、彼女たちの速度を感じさせてくれます。
周囲の景色としては、遠くの地平線まで広がる美しい雪原が描かれています。積もったばかりの新しい雪が輝き、その先には、茫漠とした空とともに青い短い木々が顔をのぞかせています。空にはそれほど雲はなく、微かに陽が差し、雪原が幻想的に輝いています。
イラストを見た人に伝わる雰囲気は、冒険心に満ち、勇敢さや夢に向かって進む決意を感じさせるものです。女の子とその白馬が、雪原の中で共に未知なる世界に向かって進んでいく様子が、目の前の人々を感動させ、自分自身も何かに挑戦したくなるような心境にしてくれることでしょう。

これ面白い例で、雪原に対するライティングがかなりリアリティあって好きなんですよね。人間の部分が馬と同化していつの間にか耳が生えてるのが「うーんそうだよなあ」という感じです。

小さな魔女が強力な炎魔法唱えているているのを高所から見下ろす

情景描写

イラストの中心には、小さな魔女が鮮やかな炎魔法を唱えている姿が描かれています。彼女は若い少女で、おおよそ10~12歳くらいの年齢です。彼女の髪は赤毛で、束ねた三つ編みが風になびいています。その瞳は緑色で、決意に満ちているようです。
魔女の服装は、古風な黒いケープを身にまとっており、そのケープは深紅色の裏地が隠れたまま風にはためいています。その下は黒と紫のチェック柄のワンピースを着用し、その下にはくすんだ黒のタイツと黒のアンクルブーツを履いています。頭にはこんもりとした魔女特有のポイント帽をかぶっており、その帽子には小さな魔法のクリスタルが飾られています。
彼女の手には、頼りなげながらも力強く握った木製の魔法の杖が握られており、彼女が唱える炎魔法によって、杖の先に纏わり付く炎が煌めいています。
このイラストの視点は、高所から見下ろす角度で描かれています。そのため、地面に広がる影は彼女をさらに小さく見せる効果を与え、反対に炎魔法の激しい光は彼女の存在を際立たせています。
周囲の景色は、どこか神秘的な森の中の一部で、古く大きな木々が高く空へと伸び、その葉の隙間から差し込む太陽の光が一部を照らしています。その先には、木々に覆われた小径がひっそりと続く様子が描かれています。空は青く澄んでおり、やわらかな白い雲がゆっくりと流れています。また、木々の間からは小鳥たちが囀り、蝶やリスたちが飛び回る様子が描かれています。
イラスト全体の雰囲気は、小さな魔女が成長し、未知の力に挑む、勇敢さと冒険心が感じられるシーンです。その力強い炎魔法の光が魔女の周りを照らし、彼女の小さな姿に期待感と希望が込められています。見る者を引き込む力のあるこのイラストは、子供が大人へと変わっていく物語を連想させます。

アングル指定して、鳥瞰図的なのを期待してましたが、トークン切られてしまったのかうまくいかなかったですね。ただ女の子の服がかわいいです

大きなお屋敷で一人ぼっちのツンデレ美少女。遠景からの描写

情景描写

遠景から見た、青い空と白い雲が広がる昼下がりの風景に、緑豊かな庭園が広がる大きなお屋敷がどっしり構えています。お屋敷の屋根には煌びやかな装飾が施され、重厚感が漂っています。庭園には色とりどりの花が咲き誇り、青年が手入れをしています。
庭園の近くには、栗色のロングヘアに薄紫色のリボンを結んだツンデレ美少女が立っています。彼女は大きな瞳で、遠くを見つめているようです。彼女のオフショルダーの白いブラウスとロングスカートの組み合わせは、純白と濃紫のグラデーションでまるで花のように美しい。綺麗な白いアンクルブーツで、足元も優雅です。
彼女の表情はどこか物憂げで、辛そうに笑うような表情を浮かべていますが、その内側には強さが秘めていることが分かります。彼女の横顔から感じられるプライドと繊細さは、遠景からでも際立っています。
彼女の周りには、彼女を想っている青年や彼女と共に遊びたいと願う可愛い動物たちがうろうろしていますが、彼女はまだそのことに気付かぬまま。彼女が孤独であることを象徴するように、彼女の回りだけ微かに青みがかった影が映っています。お屋敷の窓からは、家族や使用人たちが心配そうに彼女の様子を見ています。
このイラストを見る人々は、ツンデレ美少女の気持ちや彼女を取り巻く環境に共感を覚えることでしょう。そして彼女が遠くにいると感じつつも、その持ち味であるツンデレさが彼女の隣にいる優しい世界とリンクしていることが伝わります。イラスト全体からは、静かな時間が流れる中での孤独とコミュニケーションの欠如を感じさせつつ、まだ連れ去られることなく彼女を支えている存在や暖かい光が伝わる情景が描かれています。

視点変更がうまくいった例です。ただ、色の指定の空間方向のアラインメントがとれていなく、全般的に紫がかってしまった例です。Text Encoderが以下略なので、こういうのはあるあるという感じでしょうか。

私が驚いたのは背景描写の緻密さで、今のStable Diffusionってこんなに背景作画強かったんですね。昔のGANは直線ふにゃふにゃが当たり前だったのに。

戦艦同士の戦いを飛行機の上から見る女の子

情景描写

イラストの中央には、美しい青空を背景に、一人の女の子が飛行機の上に立っています。彼女は10代後半の若さで、長い黒髪を髪飾りでとめ、風になびかせています。彼女の瞳は深い青色で、大胆な冒険を楽しむ勇敢さがにじんでいます。彼女は古風な飛行服を身に着けており、ブラウンのレザージャケットに、同じくブラウンのレザーパンツ、そしてスカーフが首に巻かれています。足元には堅固なブーツがあり、そこからは錆びたエンジンオイルの臭いが漂っています。
彼女の表情は閃いたような笑みを浮かべながら、興奮と感動で目を光らせています。その視線の先には、雲の切れ間から海を望む荒れ狂う戦艦同士の戦闘が繰り広げられています。激しい砲火が交差し、海面には巨大な波紋が広がります。勇敢な艦長たちと乗組員たちが、命懸けで勝利を目指して戦っていることが目に見えます。
空は青空ではありますが、戦闘が激化することで次第に暗雲が立ち込め始め、遠くで雷が鳴り響く光景も確認できます。空気は緊迫感に満ちており、緊急を要する重大な瞬間が訪れようとしています。
イラストの全体的な構図は、遠近感や臨場感に富んだもので、眼下に広がる戦場と女の子との対比が鮮やかに描かれています。彼女の視線によって視線が誘導され、自然と視線が海上の戦艦へ移動していきます。また、彼女が立っている飛行機はプロペラがまわる古風なもので、彼女が味わう冒険のロマンを際立たせる効果もあります。
イラストを見る人に、まるで自分も彼女と大空を飛んでいるかのような感覚を味わわせるだけでなく、勇敢な艦長たちと乗組員たちの戦いにも心が揺さぶられることでしょう。このイラストは、絵筆から生み出された戦艦たちが魂を持ち、その戦いの勝利や敗北がまさに現実で起きているかのようであり、女の子の勇敢な姿が見る者にさらなる冒険への憧れを抱かせるでしょう。

やはり「どこから見る」とか自然言語処理的な係り受けが求められる状況だとつらいですね(このプロンプトはそもそもそこらへん単語列にして、係り受けを落としているので当たり前といえば当たり前ですが)

心なしか色が古い感じになっているのが興味深いです。1枚目の女の子の格好が好き。

CLIP(Text Encoder)をマージすべきかどうか

最後に1個だけ真面目な検証しておきましょう。CLIPをマージしたほうがいいのか、SD1.5のOpenAI CLIPのほうがいいのかはを見てみます。今までずっとオリジナルのOpenAIのCLIPでやっていましたが、マージした場合も見てみます。

マージの比率は、U-Netと同様で、

  • Pastel Mixが75%
  • OpenJouneryが25%

とします。私の仮説だと(根拠はこのへんの論文

  • In-distributionの状況だと、Fine-tuningされたCLIPだとある程度良くなる
  • Out-of-distributionの状況だと、Fine-tuningされたCLIPはガクッと落ちる

おそらくこの最後の艦隊戦の例はかなりOut-of-distributionだと思うので、どの程度変わるか見てみます。マージした場合です。

かなりわかりやすい結果となりました。おそらく女の子はIn-distributionだったので、結構良くなりました。ただ背景の船は船が空を飛んでいたりかなりおかしいですし(1枚目)、2枚目みたいなボートが入ってきて結構変なことになっています。おそらくこのへんの船の概念はデータ空間的に、Out-of-Distributionではなかったのかと思います。

Fine-tuningするとCLIPの埋め込み空間に変な歪みが入るので、ここがOOD耐性を下げたのではないかなと思います。

あと心なしか、細かい輪郭の描画力が弱くなりましたね。詳細な描画力というのは、Zero-shot-CLIPの細かな表現力によって支えられたものだったのでしょうか?

Zero-shotよりのマージをする

なら、Zero-shotよりの係数を維持しつつ、若干マージ対象のモデルをマージするというのはどうでしょう?例えば以下のようなマージをします。

  • OpenAIのCLIPは70%
  • Pastel-MixのCLIPは20%
  • OpenJouneryは10%

これならまあまあありではないかと思います。緻密な表現を入れたZero-shotか、若干無駄な表現を省いたマージ後かは好みでしょうね。先程の例とくらべてみると面白そうです。

とりあえず、CLIPをマージするなら、Zero-shotよりの設定にしておいたほうが私はいいと思います

課題感

GPT-4が情景描写にえらい強いというのはわかったのですが、画像生成側には課題があります。

  • HD解像度のように、vae_tilingで引き伸ばした場合に、人間が複数人生えないための対策
    • ContorlNetを併用するのが一案
    • ControlNetの有無でイラストの再現性が保証されるか?
    • Inpaintingで対応
      • モデル側がInpainting対応してた?
    • 潜在変数側に人間を複数生やさないための正則化をかける
      • 研究的にはありそう。本来これが正攻法
      • こんな感じに「1girl」を15回繰り返すと、いたるところに女の子が生えるため、プロンプトのトークン間の系列相関が空間方向に作用しているのがおそらくの原因。トークン間の系列相関を減らすのが根本的な解決法だと思う
      • 特異値分解してテキトーにやろうとしたら失敗しました
      • ただ、トークンと空間方向の対応はそんなに自明ではない
    • VAE Tiling自体に問題がある
      • タイルのように局所的な部分を見てしまうと(画像を分割するように)、あたかもニューラルネット内では複数枚の画像を生成しているように認識してしまい、各パッチでデータ分布に対する尤度を最大化していった結果、複数人の女の子が生えてしまう
  • 色情報やテクスチャのリーク
    • 本来は言語モデルが係り受けをわかるような強いモデルにすべきだが、現状としては局所的なプロンプトをかける
  • 線情報の曖昧さ
    • 背景は割りとよくできているが、細かいところ見るとまだ線が甘い。Self Attention Guidanceあたりを入れるとよくなりそう?
  • 画像生成のプロンプトでのトークン数が圧倒的に足りない
    • 77しか入れられないってのはさすがにきつい
    • 正直CLIPの限界なので、この際1024トークンぐらい行けるようにならないかなー
      • 現状のStable Diffusionは、CLIPのImageEncoderを使っていないのにCLIPにこだわる意味が本当にわからない
  • プロンプトの係り受けがわかっていない
    • 将来的には、KadinskyやImagenみたいにもっと強い言語モデルを入れてみる必要はある。FlanT5あたりでうまくいかないっすかね…?

結論

もう、人間が画像生成のプロンプトを1から作る時代終わったんじゃない?

少なくともこれだけのコンテクストのプロンプト作るには相当英語の単語力ないときつそう



Shikoan's ML Blogの中の人が運営しているサークル「じゅ~しぃ~すくりぷと」の本のご案内

技術書コーナー

北海道の駅巡りコーナー


Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です