タグ: キャラクター

  • BlendAI第1回ファンミーティング潜入レポート!デルタもん誕生秘話から新キャラ「ガンマミィ」、さらに壮大な計画まで明らかに!

    2024年9月14日に行われた、AIキャラクター「デルタもん」を開発するBlendAIのファンミーティングに参加してきました!今回はその内容を熱量たっぷりでお届けします。

    設立わずか1年! 怒涛のスピードで成長を続けるBlendAI

    まずは、BlendAI CEOの小宮氏、CTOの小坂氏、そしてクリエイティブディレクターの榊氏の3名から熱い想いのこもった挨拶がありました。

    設立は2024年1月と、まだ若い会社ながら、デルタもんの誕生、クラウドファンディングの成功、そして5000万円の資金調達達成など、怒涛のスピードで成長を続けています。

    その原動力となっているのが、「AIとクリエイティブを融合させ、より良いものを生み出し、クリエイターにチャンスを与える」というビジョン。
    特に、コロナ禍で顕在化した「孤独」をAIの力で解決したいという小宮氏の強い想いに、他のメンバーも共感し、プロジェクトはスタートしました。

    コンテンツは以下の通りでした

    • 会社情報
    • 会社のミッション
    • 創業の経緯
    • 創業者のバックグランド
    • デルタもん、およびアルパラプロジェクトについて
    • デルタもんの技術的こだわり、開発秘話
    • 会社全体の戦略
    • B向けサイドでの実例
    • クラファンについて
    • チラ見せ
    • 質問コーナー
    • 写真撮影
    • アンケート
    画像

    創業者のバックグランド

    MCはBlendAI執行役員の中川賢史朗さん

    【出演】
    BlendAI代表 小宮自由さん
    CTO小迫良輔さん
    クリエイティブディレクター榊正宗さん

    画像

    興味深い小宮自由さんのブロックチェーン時代のご経験。

    サトシ・ナカモトのAIを作ったりもしています。

    https://twitter.com/jiyu33/status/1817496621166600212

    デルタもん誕生秘話!
    3Dモデル化で「AIキャラクターの2次創作」を促進

    続いて、デルタもん誕生の舞台裏が明らかに。

    キャラクターデザインを担当した榊(さかき)氏は、著作権問題をクリアするため、あえて手書きでデザイン画を作成し、それを元に3Dモデルを制作したそう。
    その3Dモデルをクラウドファンディングで配布したことで、高精度なLoRA制作が可能となり、多くのクリエイターによる2次創作が促進されました。

    https://blendai.jp/resources

    二次創作用に自由に使える素材を配布しています。

    AICUとしてはコラボコンテストも開催しました!

    デルタもん、およびアルパラプロジェクトについて

    アルファパラダイスプロジェクト始動!
    デルタもんだけじゃない!個性豊かなAIキャラクターが続々登場

    今後の展開として、初めて明かされる「アルファパラダイスプロジェクト」の概要が明らかに。

    画像

    これは、デルタもんを含む4人ずつ6種類、全24体のAIキャラクターを、6つの異なる世界観で展開していくという壮大なプロジェクト。
    しかも、各キャラクターのデザインはそれぞれ異なる絵描きさんが担当し、小説家によるストーリーも用意されるとのこと!

    ・未来編
    ・ファンタジー編
    ・妖怪編
    ・ミリタリー編
    ・モンスター編
    ・神様編

    技術的な難度とその展開についても語られました。

    画像

    AI技術とプロのクリエイターの才能が融合することで、著作権問題をクリアしながら、多様な絵柄と世界観で誰もが安心して2次創作を楽しめる、まさに夢のようなプロジェクトです。

    会社全体の戦略・B向けサイドでの実例

    B向けで開発ノウハウを貯め、C向けへの導入を促す。
    十分な売上とノウハウが溜まったら、C向けに専念する。
    C向けはSaaSの成長戦略を用いて伸ばす。
    それまで皆さんから意見や要望を集める。

    画像

    会話アプリ「CotoVerse」で、デルタもんと会話できる未来がすぐそこに

    ファンミーティングでは、開発中の会話アプリ「CotoVerse」(コトバース)のデモ動画も公開

    画像
    https://youtu.be/dwt44ICxNy4?feature=shared&t=4310

    「CotoVerse」の音声認識・音声合成技術により、デルタもんと自然な会話ができる様子が披露されました。

    デルタもんによる「教育係からケーキ工場に異動になった…」という未来の状況が説明されるハプニングも…!?


    将来的には、ガンマミィをはじめとする他のキャラクターも実装予定で、キャラクター同士の掛け合いなども実現するかも…?

    「ガンマミィ」クラウドファンディング

    まだまだ進化するデルタもん! ガンマミィのクラウドファンディングも間もなく開始!

    9月末、Campfireにて実施予定とのことです!

    画像

    最後に、ガンマミィのイラストがチラ見せされました!
    デルタもんとはまた違った可愛らしい雰囲気で、その詳細な設定や、どんな声で話すのか、今から期待が高まります。

    画像

    ✨️追記:9月16日、キャラクタービジュアルが公開されました✨️

    ガンマミィのクラウドファンディングは近日開始予定とのことなので、気になる方はBlendAIの情報をチェックしましょう!
    BlendAIクラウドファンディングページ
    https://camp-fire.jp/profile/BlendAI/projects

    大盛りあがりの「質疑応答編」

    Q: 小迫CTOがイケボなのは何故?
    A: 自分で関西弁を録音したり…「最初の音声合成モデルは僕の声です」。
    といった質問で始まった質疑応答パートは大盛りあがりでした!

    ・榊さんは「シリーズ構成」を担当しているの?未来編以外は?
    ・AIと作家性について
    ・毎日のXでのデルタもんは誰が?
    AkumaAI公式LoRA
    ・デルタもんの「意外な一面」についての榊さんの感想
    ・「CotoVerse」スピーチモードについて
    ・資金調達5000万円のエピソード
    …などなど…

    まとめ

    AI x クリエイティブで、誰もが「つくる人」になれる未来へ

    BlendAIは、AIとクリエイティブの可能性を追求し、誰もが「つくる人」になれる未来を目指しています。
    デルタもん、そしてアルファパラダイスプロジェクトは、その夢を実現するための第一歩です。

    「つくる人をつくる」をビジョンにするAICUも
    今後の展開から目が離せません!

    関連リンク:

    https://note.com/blendai/n/n7b4f74267468

    Originally published at https://note.com on Sept 16, 2024.

  • [ComfyMaster14]ComfyUIでのTextToImageを極める!!(4)複数キャラを同時に制御する

    ComfyUIで「思い通りの画像を生成したい!けど思うようにいかない…」という方、TextToImage(t2i)を使いこなせていますか?
    Stable Diffusionの内部の仕組みを理解し、ComfyUIでのText to Imageテクニックを身につけて、思い通りの画像を生成できるようになりましょう!

    画像
    制御したいですよね

    こんにちわ、AICU media編集部です。
    ComfyUI マスターガイド」第14回目になります。

    前回「ComfyUIでのTextToImageを極める!! (3)Concatで複数CLIPをつなぐ」で
    は、Conditioning(Concat)ノードと複数CLIPを結合して「プロンプトの限界」を超え、その内部動作をソースコードから確認しました。
    今回は実験を通して確認していきたいと思います。

    長いプロンプトを使った実験

    前回、Concatをつかうことで、長いプロンプト中の「緑の森」「赤い城」といった背景/世界と建築物での「色分け」を紹介しました。

    CLIP1「a red castle on a hill」(1344×768, seed:13)
    CLIP2「A fantasy landscape, overlooking a vast green forest」

    画像

    さらに Conditioning(Concat)のToとFromはToがベースプロンプトで、Fromが追記であることを解説しました。でも短いプロンプトで入れ替えてみても絵に変化はなく、どちらがベースなのかは確認できなかったという結論になっていました。
    今回はキャラクターイラストを使って、ものすごく長いプロンプトで実験してみましょう。
    AICUで生成AIを使ってキャラクターデザインやイラストレーションを担当している犬沢某先生に相談して長めのプロンプトをいただきました。

    face focus, dog ears, 1boy, best quality, 16K, eating hair, dog nose, looking at looking at viewer, short hair, skinny, big eyes, dark skin, tall, naked overalls, 20-year-old,

    beautiful, bold black outline, pink, pastel colors, Light Pink, scowl, brown hair, golden eyes, simple line drawing, animal ears, solo, brown hair, overalls, cat ears, dark skin, short hair, dark-skinned female, simple background, choker, sweater, yellow shirt, long sleeves, pink choker, white background, closed mouth, extra ears, animal ear fluff

    これは2つのキャラクターを表現する2つのプロンプトを貼り付けたものです。途中に「髪を食べる(eating hair)」という謎の単語を含めて合計78ワードあります。

    画像

    Concatを使った実験:単純な結合

    まずは実験として、「Load Default」をつかって初期のワークフローにして、モデルをSDXL(sd_xl_base_1.0.safetensors)に変更し、, seed=13 fixed, 1344×768にして、CLIPひとつでそれぞれ生成してみます。

    「face focus, dog ears, 1boy, best quality, 16K, eating hair, dog nose, looking at looking at viewer, short hair, skinny, big eyes, dark skin, tall, naked overalls, 20-year-old, beautiful, bold black outline, pink, pastel colors, Light Pink, scowl, brown hair, golden eyes, simple line drawing, animal ears, solo, brown hair, overalls, cat ears, dark skin, short hair, dark-skinned female, simple background, choker, sweater, yellow shirt, long sleeves, pink choker, white background, closed mouth, extra ears, animal ear fluff」、ネガティブプロンプトは「text, watermark」(2トークン消費)で生成してみます。

    画像

    さすが!!かわいい!
    男性と女性が混ざった雰囲気ですね。長いプロンプトが結合できていることが確認できました。

    プロンプトの整理

    次にこの2人分のプロンプトを前半と後半に分けて生成してみます。

    画像

    前半「face focus, dog ears, 1boy, best quality, 16K, eating hair, dog nose, looking at looking at viewer, short hair, skinny, big eyes, dark skin, tall, naked overalls, 20-year-old」
    Negative 「text, watermark」, SDXL, 1344×768, seed=13

    (顔の焦点, 犬の耳, 1boy, 最高品質, 16K, 髪を食べる, 犬の鼻, 見る人を見ている, 短い髪, 痩せている, 大きな目, 浅黒い肌, 背が高い, 裸のオーバーオール, 20歳)

    画像

    顔に焦点を当てた半裸でオーバーオールを着た20歳の青年が生成されました。続いて後半です。

    後半「beautiful, bold black outline, pink, pastel colors, Light Pink, scowl, brown hair, golden eyes, simple line drawing, animal ears, solo, brown hair, overalls, cat ears, dark skin, short hair, dark-skinned female, simple background, choker, sweater, yellow shirt, long sleeves, pink choker, white background, closed mouth, extra ears, animal ear fluff」
    Negative 「text, watermark」, SDXL, 1344×768, seed=13

    (美しい, 太い黒の輪郭, ピンク, パステルカラー, ライトピンク, しかめっ面, 茶色の髪, 金色の目, シンプルな線画, 動物の耳, ソロ, 茶色の髪, オーバーオール, 猫耳, 浅黒い肌, 短い髪, 浅黒い肌の女性, シンプルな背景, チョーカー, セーター, 黄色のシャツ, 長袖, ピンクのチョーカー, 白背景, 閉じた口, 余分な耳, 動物の耳の綿毛)

    画像

    Concatを使った実験:整理と結合

    これらを Conditioning(Concat)を使って繋いでみます。

    画像

    CLIP1-Conditioning_to「face focus, dog ears, 1boy, best quality, 16K, eating hair, dog nose, looking at looking at viewer, short hair, skinny, big eyes, dark skin, tall, naked overalls, 20-year-old」
    CLIP2-Conditiong_from「beautiful, bold black outline, pink, pastel colors, Light Pink, scowl, brown hair, golden eyes, simple line drawing, animal ears, solo, brown hair, overalls, cat ears, dark skin, short hair, dark-skinned female, simple background, choker, sweater, yellow shirt, long sleeves, pink choker, white background, closed mouth, extra ears, animal ear fluff」
    Negative 「text, watermark」, SDXL, 1344×768, seed=13

    画像

    1boyとdark-skinned femaleが混ざっていますので、難しいと思います。中性的ではありますが、どちらかというと男性っぽいですね。
    まずはConcatで結合が機能していると考えられます。

    FromとToはどっちがベースなのか実験的に確認する

    さてFromとToはどっちがベースなのか実験的に確認していきましょう。
    さきほどの中性的なイラストの前後半を入れ替えてみます。

    画像

    CLIP1-Conditioning_to「beautiful, bold black outline, pink, pastel colors, Light Pink, scowl, brown hair, golden eyes, simple line drawing, animal ears, solo, brown hair, overalls, cat ears, dark skin, short hair, dark-skinned female, simple background, choker, sweater, yellow shirt, long sleeves, pink choker, white background, closed mouth, extra ears, animal ear fluff」
    CLIP2-Conditiong_from「face focus, dog ears, 1boy, best quality, 16K, eating hair, dog nose, looking at looking at viewer, short hair, skinny, big eyes, dark skin, tall, naked overalls, 20-year-old」
    Negative 「text, watermark」, SDXL, 1344×768, seed=13

    画像

    たしかに同じではなさそうです。toとfromは英語的な意味とは逆で、「toがベースでfromが追加条件」という説が実証できているようにも見えます。

    キャラクターの描き分け実験:空白CLIP、クオリティプロンプト

    実はこのプロンプト、2つのキャラクターが混ざっています。1boyとfemale、Dog earsと Cat ears、「髪の毛を食べる」と「口を閉じる」という破綻しやすそうなキーワードが混在していますので、これを整理してみます。

    混ざっているプロンプトをわかりやすく、キャラクター1,2と演技、画風やクオリティプロンプト、と分けて入れ替えてみます。

    キャラクター1「1girl, pink, pastel colors, Light Pink, scowl, golden eyes, animal ears, solo, overalls, cat ears, dark skin, short hair, dark-skinned female, choker, sweater, yellow shirt, long sleeves, pink choker, closed mouth, extra ears, animal ear fluff」(1girl、ピンク、パステルカラー、ライトピンク、しかめっ面、金色の目、動物の耳、ソロ、オーバーオール、猫耳、黒い肌、ショートヘア、肌の黒い女性、チョーカー、セーター、黄色のシャツ、長袖、ピンクのチョーカー、口を閉じた、余分な耳、動物の耳の綿毛)

    これをConditioning_toに設定して、Conditioning_fromを空白する例と、それを入れ替えた例、さらにクオリティプロンプトと背景設定を入れ替えた例を実験します。

    画像

    やはり空白のような極端に短いCLIPでは効果は確認できないようです。クオリティプロンプトを加えてみます。

    画像

    Conditioning_to「1girl, pink, pastel colors, Light Pink, scowl, golden eyes, animal ears, solo, overalls, cat ears, dark skin, short hair, dark-skinned female, choker, sweater, yellow shirt, long sleeves, pink choker, closed mouth, extra ears, animal ear fluff」
    Conditioning_From「beautiful, bold black outline, simple line drawing, simple background, white background, best quality, 16K」

    画像
    画像

    Conditioning_to「beautiful, bold black outline, simple line drawing, simple background, white background, best quality, 16K」
    Conditioning_from「1girl, pink, pastel colors, Light Pink, scowl, golden eyes, animal ears, solo, overalls, cat ears, dark skin, short hair, dark-skinned female, choker, sweater, yellow shirt, long sleeves, pink choker, closed mouth, extra ears, animal ear fluff」

    画像

    たしかに、ベースプロンプトがConditioning_toではありそうです。長いプロンプトでの実験は効果ありそうです。画風とキャラクターについての実験を続けます。

    続いてキャラクター2のプロンプトを設定します。もともと頂いたプロンプトからキャラクターとして一貫性がありそうな「1boy, dog ears, dog nose, short hair, skinny, big eyes, looking at viewer, dark skin, tall, naked overalls, 20-year-old, brown hair」(1boy、犬耳、犬鼻、短髪、痩せ型、大きな目、視聴者を見ている、黒い肌、背が高い、裸のオーバーオール、20歳、茶髪)として、先程のキャラクター1の代わりに入れてみます。

    画像

    Conditioning_to「1boy, dog ears, dog nose, short hair, skinny, big eyes, looking at viewer, dark skin, tall, naked overalls, 20-year-old, brown hair」
    Conditioning_from「beautiful, bold black outline, simple line drawing, simple background, white background, best quality, 16K」

    画像

    入れ替えてみます。

    画像

    Conditioning_to「beautiful, bold black outline, simple line drawing, simple background, white background, best quality, 16K」
    Conditioning_from「1boy, dog ears, dog nose, short hair, skinny, big eyes, looking at viewer, dark skin, tall, naked overalls, 20-year-old, brown hair」

    画像

    たしかに、ベースプロンプトがConditioning_toではありそうです。

    実験:多段Concat

    それではConcatを多段にするとどうなるでしょうか?
    接続としては以下のようになります。
    Concat1(To:画風 + From: キャラクター1boy)
    Concat2(To:Concat1の結果+Form:キャラクター2girl)

    画像
    画像

    多段Concatは問題なく接続されますし、結果も良好です。
    さて次は問題です。

    Concat1(To:画風 + From: キャラクター2girl)
    Concat2(To:Concat1の結果+Form:キャラクター1boy)

    このようなネットワークを組んだときに、boyが出るのかgirlが出るのか、皆さんはどう考えますか?

    画像
    画像

    結果は「入れ替えても変わらない」です。Conditioningの多段、特にFromを多段Concatで入れ替えても結果は変化ありませんでした。
    シードによって描かれる結果は変わりますが、Fromを入れ替えても変化はないのです。これは便利ですね。

    画像
    画像

    Concat1(To:キャラクター1boy+ From: 画風
    Concat2(To:Concat1の結果+Form: キャラクター2girl

    画像

    Concat1(To:キャラクター1boy+ From: キャラクター2girl
    Concat2(To:Concat1の結果+Form: 画風

    画像

    ComfyUIにおいて強調構文は平均ではなく、Fromは掛け算のように働くと覚えておくと良いのかもしれないですね。

    実験:Combineでの融合と入れ替え

    同じようにConditioning(Concat)ではなく、Conditioning(Combine)で融合と入れ替えをしてみます。こちらも全く変化なしです。

    画像
    画像
    画像
    画像
    画像
    画像

    複数の異なる特徴を持ったキャラクターを描くには?

    さて、Concatの理解は進みましたでしょうか?
    では複数の異なる特徴を持ったキャラクターを描くにはどうやったら良いのでしょうか?

    ポイントは、まず「大事なものはToに設定」そして「それぞれのCLIPにも設定」しましょう。
    複数のキャラクターの画風の統一を図りたい、同じ空間や世界に配置したいときはToに書きます。これをベースとして、このように2人の人物が出てくれば、あとは詳細を75トークン以内で表現するだけで2人以上のキャラクターの画像をそれぞれ生成することができるようになります。

    CLIPを2つでConcatだけで構成する場合にはこんな感じです。
    [CLIP1] best quality, beautiful, 1girl and 1boy,
    [CLIP2] best quality, beautiful, 1girl and 1boy,
    ここまでいれる、というテクニックが非常に重要です。
    こんな絵も作れるようになります。

    画像

    [CLIP1]
    best quality, beautiful, 1girl and 1boy, 1girl, female, 20-year-old, cat ears, pink choker, sweater, yellow shirt, long sleeves, white background, closed mouth, extra ears, animal ear fluff, solo, brown hair, overalls, pink, pastel colors, Light Pink, face focus,

    [CLIP2]
    best quality, beautiful, 1girl and 1boy, blue choker, eating hair, dog ears,16K, dog nose, looking at looking at viewer, short hair, skinny, big eyes, dark skin, tall, naked overalls, bold black outline, scowl, brown hair, golden eyes, simple line drawing, animal ears, simple background, dark skin, short hair, dark-skinned

    多段Concatを使った作例

    実際にはCLIP2つだけで複数キャラクターと世界や画風を設定するよりも、多段のConcatを使ったほうが楽かもしれません。
    一連の流れを出力例からおさらいします。

    画像

    ベースになる画風を1段目のConditiong_toに設定します。

    Conditiong_to「1boy and 1girl, beautiful, bold black outline, simple line drawing, simple background, white background, best quality, 16K」

    画像

    二人がどんな演技をしているか、共通で維持したいものはすべてのCLIPに入れておけば強調されます。

    画像

    conditioning_fromとconditioning_toに共通に「1girl and 1boy」を入れて、それぞれの特徴をCLIP1とCLIP2で詳細に描写していくことができます。

    画像

    このあたりで一度、シードをfixedからIncrementに変更して、Queue Prompt Extra Options▶Batch countを20として、20枚、シードを増やしながら一気に生成してみます。

    画像
    画像
    美しい結果はメンバーシップエリアに置いておきます…!

    肌の褐色をプロンプトで強調していくか、いろんな方向性があり得ると思いますが、ここまで制御性が高くなっていると、好きなテイストを選ぶことも難しくないと思います。

    この段階では画風、肌の色やレイアウトのほうが表情や指といった細かいところよりも重要です。画面比率を変えると大幅に変わってしまいますので今回は1344×760で固定しておいたほうが良いでしょう。
    SDXLの場合、テキスト以外にも画像解像度等の条件が加えられる場合はconditioning_toの方を使います。

    表情や指がおかしいところはImageToImageで修正できますが(次回以降)、今回はネガティブプロンプトやembeddingで仕上げていきます。

    プロンプトだけのSDXL、TextToImageで完成させた作品がこちらです。
    便宜上、CLIP0、CLIP1、CLIP2と呼んでいますが、いままでの2段構成のConditioning(Concat)によって実装しています。

    画像

    CLIP0(conditioning_to) : 1boy and 1girl looking each other, beautiful, bold black outline, simple line drawing, simple background, white background, best quality, 16K

    CLIP1(Conditiong_from) : 1boy and 1girl looking each other,1boy face focus, dog ears, 1boy, best quality, 16K,, dog nose, looking at looking at viewer, short hair, skinny, big eyes, dark skin, tall, naked overalls, 20-year-old

    CLIP2(Conditioning_from) : 1boy and 1girl looking each other, 1girl , pink, pastel colors, Light Pink, scowl, golden eyes, animal ears, solo, overalls, cat ears, dark skin, short hair, dark-skinned female, choker, sweater, yellow shirt, long sleeves, pink choker, closed mouth, extra ears, animal ear fluff

    Negative: text, watermark, embeddings:negativeXL_D

    まとめ:conditioning

    これまで4回にわたってComfyUIでSD1.5およびSDXLを使ってプロンプトの基本的な方法から、応用的なテクニックまでを紹介してきました。今回はイラストレーションで「複数のキャラクターを同時制御する」という実験を行いましたが、プロンプトだけでなく、CLIPの内部やConditioningを使ってComfyUIならではの絵作りを探求していくベースになったようであれば幸いです。実はconditioningにはたくさんあり、今回紹介したCombine、Concatの他にはAverage、 Set Areaなど複数存在します。例えばAverageは結合ではなく線形補間します。

    画像

    次回は、image-to-imageの方法を紹介します。乞うご期待!

    X(Twitter)@AICUai もフォローよろしくお願いいたします!

    画像生成AI「ComfyUI」マスターPlan

    画像生成AI「Stable Diffusion」特に「ComfyUI」を中心としたプロ向け映像制作・次世代の画像生成を学びたい方に向けたプランです。最新・実用的な記事を優先して、ゼロから学ぶ「ComfyUI」マガジンからまとめて購読できます。 メンバーシップ掲示板を使った質問も歓迎です。

    • メンバー限定の会員証が発行されます
    • 活動期間に応じたバッジを表示
    • メンバー限定掲示板を閲覧できます
    • メンバー特典記事を閲覧できます
    • メンバー特典マガジンを閲覧できます
    • 動画資料やworkflowといった資料への優先アクセスも予定

    ゼロから学ぶ「ComfyUI」マガジン

    https://note.com/aicu/m/md2f2e57c0f3c

    マガジン単体の販売は1件あたり500円を予定しております。
    2件以上読むのであればメンバーシップ参加のほうがお得です!というのもメンバーシップ参加者にはもれなく「AICU Creator Union」へのDiscordリンクをお伝えし、メンバーオンリー掲示板の利用が可能になります。

    https://note.com/aicu/membership/boards/61ab0aa9374e/posts/db2f06cd3487?from=self

    もちろん、初月は無料でお試しいただけます!
    毎日新鮮で確かな情報が配信されるAICUメンバーシップ。
    退会率はとても低く、みなさまにご満足いただいております。
    ✨️オトクなメンバーシップについての詳細はこちら

    本編で2人以上のキャラクターをそれぞれ描くことができるようになりましたね。ここではシードを変えた問のさまざまな中間生成画像を紹介します。


    この記事の続きはこちらから https://note.com/aicu/n/nacf66b92d2d5

    Originally published at https://note.com on Sept 4, 2024.