カテゴリー: 画像生成AI

画像生成AIの使い方や最新情報についてお届けします。

  • 【新シリーズ開始】 Google ColabでComfyUIを動かしてみよう!

    「ComfyUIマスターガイド」シリーズの第1回になります。
    第0回はこちら

    ComfyUI ManagerとGoogle Colabではじめる「ComfyUI」

    ComfyUIには様々なインストール、セットアップ方法があります。「SD黄色本」でA1111を学んだ方が、ComfyUIを簡単に試すのであれば、「Stability Matrix」によるインストールが速いかもしれません。
    GPU搭載のWindows11をお持ちの方は「Stability Matrix」公式サイトからインストーラーを使い、A1111と並んで「ComfyUI」をパッケージからインストールするだけで起動できます。

    https://github.com/LykosAI/StabilityMatrix

    より実用的かつシンプルなインストール手順

    このシリーズではAICU特製の Google Colabノートブックを使ってよりシンプルなインストール手順を紹介します(文末)。

    さらに実用的な方法として「ComfyUI Manager」という拡張機能を使用することで、カスタムノードやモデルの管理、ComfyUI本体の更新など、より効率的な運用が可能になります。

    本記事では、ComfyUIの基本的な特徴から、Google Colabでの使用方法、基本的なワークフローの解説、そしてComfyUI Managerの活用方法まで、幅広くカバーしています。AI画像生成に興味がある方、より高度な制御を求めているクリエイターの方々に、ComfyUIの可能性を探っていただければ幸いです。

    1. ComfyUIとは

    ComfyUIは、AI画像生成の世界に革新をもたらした強力かつ柔軟なオープンソースのグラフィカルユーザーインターフェイス(GUI)です。Stable Diffusionをベースにしており、画像生成プロセスを視覚的に構築し、細かく制御することができます。

    https://github.com/comfyanonymous/ComfyUI

    ComfyUIの主要な特徴

    1. ノードベースのインターフェイス:
      • 複雑な画像生成プロセスを視覚的にデザインできます。
      • 各ノードが特定の機能を表し、それらを線で結んでワークフローを作成します。
      • この方式により、初心者でも直感的に操作でき、上級者は複雑な処理を構築できます。
    2. 高度なカスタマイズ性:
      • 生成プロセスの各段階で細かなパラメータ調整が可能です。
      • プロンプト、シード値、サンプリング方法、ステップ数など、あらゆる要素を制御できます。
      • これにより、望む結果を得るための精密な調整が可能になります。
    3. 拡張性と柔軟性:
      • プラグインやカスタムノードを追加することで機能を拡張できます。
      • コミュニティによって開発された多様な拡張機能を利用できます。
      • 必要に応じて独自のノードを作成し、特殊な処理を組み込むことも可能です。
    4. リソース効率:
      • 他のGUIに比べて軽量で、システムリソースの使用が効率的です。
      • これにより、比較的低スペックのマシンでも快適に動作します。
      • Google Colabのような環境でも十分なパフォーマンスを発揮します。
    5. 幅広い互換性:
      • 様々なStable Diffusionモデルに対応しています。
      • LoRA(Low-Rank Adaptation)やControlNetなどの技術もサポートしています。
      • これにより、多様なスタイルや特殊な画像生成が可能になります。
    6. バッチ処理と自動化:
      • 複数の画像を一度に生成するバッチ処理が可能です。
      • ワークフローを保存し、再利用することで作業を効率化できます。
      • これにより、大量の画像生成や実験的な試行が容易になります。
    7. コミュニティサポート:
      • 活発なユーザーコミュニティがあり、情報交換や問題解決が容易です。
      • GitHub上でオープンソースとして開発されているため、最新の機能や改善が継続的に行われています。

    ComfyUIの活用シーン

    ComfyUIは、以下のような幅広い用途で活用されています:

    • アーティストやデザイナー: 独創的なビジュアルアートの制作
    • ゲーム開発者: キャラクターデザインや背景画像の生成
    • 映画・アニメ制作者: コンセプトアートやストーリーボードの作成
    • 研究者: AI画像生成の実験や新しいテクニックの開発
    • 教育者: AI技術と創造性の教育ツールとして
    • ホビースト: 個人的な創作活動や画像生成の探求

    ComfyUIを使いこなすことで、AIアート制作の可能性が大きく広がります。その柔軟性と強力な機能セットにより、初心者から上級者まで、様々なレベルのユーザーが自分のビジョンを実現するためのツールとして活用できます。

    2. ComfyUI Managerとは

    ComfyUI Managerは、ComfyUIの機能を大幅に拡張し、使いやすさを向上させるための強力な拡張機能です。

    https://github.com/ltdrdata/ComfyUI-Manager

    主に以下の機能を提供することで、ComfyUIの管理と拡張を容易にします。

    1. カスタムノードの管理: ComfyUI Managerを使用すると、カスタムノード(拡張機能)のインストール、アンインストール、有効化、無効化を簡単に行うことができます。これにより、ComfyUIの機能を柔軟に拡張し、ワークフローをより高度にカスタマイズすることが可能になります。
    2. モデルの管理: チェックポイントモデル、AIアップスケーラー、VAE、LoRA、ControlNetモデルなど、様々なAIモデルのインストールと管理が可能です。
    3. ComfyUI本体の更新: ComfyUI自体のアップデートも、ComfyUI Managerを通じて行うことができます。
    4. ワークフローの互換性確認: 現在のワークフローに必要な不足ノードを検出し、インストールする機能があります。これにより、他の人が作成したワークフローを簡単に使用できるようになります。
    5. 検索機能: 必要なカスタムノードを簡単に見つけることができる検索機能を提供しています。
    6. バージョン管理: インストールされたカスタムノードのバージョン管理が可能で、最新の状態を保つことができます。

    ComfyUI Managerのインストール後は、ComfyUIのインターフェースに「Manager」ボタンが追加され、そこから各種管理機能にアクセスできるようになります。

    ComfyUI Managerを使用することで、ユーザーはComfyUIの潜在能力を最大限に引き出し、より効率的かつ柔軟な画像生成ワークフローを構築することができます。特に、多様なカスタムノードを簡単に追加・管理できる点は、ComfyUIの利用者にとって非常に有益な機能と言えるでしょう。

    3. Google ColabでのComfyUIの使用準備

    ComfyUIをGoogle Colabで使用するには、ComfyUI ManagerのGitHubページで提供されているGoogle Colabノートブックを利用します。以下の手順に従い、環境構築を行います。

    Google Colabの有料プランへの加入

    Google ColabでStable Diffusionを動作させるには、Colabの有料プランに加入する必要があります。プランにより、使用可能なGPUの種類や、付与されるコンピューティングユニットの量が変わるため、お好みのプランに加入してください。今回は、Colab Proプランに加入します。

    画像

    Notebookのコピー

    ComfyUI-ManagerのGitHubページ(原作)はこちらです。

    https://github.com/ltdrdata/ComfyUI-Manager

    GitHubページには、以下のようにComfyUIおよびComfyUI-ManagerをインストールするためのGoogle ColabのNotebookが提供されています。”click on this link”をクリックすることで、Notebookにアクセスできます。

    画像

    以下、メンバーシップ向けに続きます!

    画像生成AI「ComfyUI」マスター プランをご購読お願いします


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

    Originally published at https://note.com on July 31, 2024.

  • [新連載] ここからはじめる「ComfyUIマスターガイド」

    【特報です!!】2024年8月からAICU mediaにて集中連載「ComfyUIマスターガイド」がはじまります!

    コンセプト:こんな方に読んでほしい

    ・イラストレーションや漫画だけでなく映像制作に画像生成AIを使いたい
    ・画像生成AI「Stable Diffusion」を業務に活かしていきたい
    ・AUTOMATIC1111は何となく使えるが、ComfyUIに移行したい
    ・いったんゼロから学んで、最新の技術をキャッチアップできるところまで連れて行ってほしい
    ・Pythonのプログラミングとかはわかりません!
    ・高価なVRAM搭載PCを買えないわけではないけど、プロとしてはクラウドやサービスでの利用も当然可能、活用していきたい
    ・どうやったら品質を上げられるのか知りたい
    ・画像生成AIシステム開発の社内PoCをつくりたい、相談したいが、そもそも技術者として広範な知識が必要すぎる
    ・法律だけでなくクリエイターや消費者の倫理など、危ない技術やモデル、使い方における注意点もしっかり教えてほしい
    ・(わかっている人向け情報ではなく)映像系の読み手でもわかるように、環境やセットアップについても丁寧に教えてほしい
    ・内部の技術についても解説してほしい

    配信方式

    無料/有料を含めて様々な方法で配信します!
    ・毎日のnoteでの配信(週3本程度を予定)
    ・メンバーシップ向けの優先配信
    ・noteマガジンでの配信
    ・オウンドメディアでの無料配信
    ・インデックス化による読みやすい体系化
    ・多メディア等による配信(予定…!!)

    配信予定コンテンツ

    (随時更新・変更される可能性もございます)

    1. Google ColabでComfyUIを動かしてみよう!
    2. 操作系とショートカット、ノードで「Stable Diffusion」の内部処理を学ぼう
    3. ゼロからつくるとよく分かる!ComfyUIワークフロー作成で学ぶStable Diffusionの内部動作
    4. ComfyUIカスタムノード導入ガイド! 初心者でも安心のステップバイステップ解説
    5. ComfyUI カスタムノード徹底解説!機能とメリットを理解しよう
    6. ComfyUI設定完全ガイド!(前編)
    7. ComfyUI設定完全ガイド!(後編)
    8. 画像化も可能!ComfyUIワークフロー管理の基礎
    9. ComfyUIでワークフロー大公開!あなたの作品を世界へ発信
    10. ComfyUIで画像を高解像度化!Hires.fix完全ガイド
    11. ComfyUIでのTextToImageを極める!!(1)プロンプトの基本文法
    12. ComfyUIでのTextToImageを極める!!(2)CombineとConcat

    ・Image to Image
    ・ContorolNet
    ・LoRA
    ・アプリケーション開発
    ・画像生成の原理と歴史
    ・AIの倫理と社会
    ……以下続きます……!

    基本的な流れは書籍「画像生成AI Stable Diffusionスタートガイド」のAUTOMATIC1111を踏襲しつつ、A1111からより実用的な画像生成AIのプロフェッショナル/マスターとして体系的な知識を得られる構成になっています。

    豪華なライター陣

    ・ゲストライター Yas さん @earlyfield8612

    生成AIを含む最新テクノロジーの実用化と企業のDXを支援するポノテク株式会社の代表。AICUコラボクリエイターとして技術調査や記事の全般に参加します。電気電子工学専攻、Bond University MBA取得。

    ・エディター はねごろう @hane_desu

    ボーカロイドからゲームCGなど映像系ラインプロデューサーを経験し、AICUではメディアエディター「クリエイティブAIプロマネ」という新しい職業を開拓するAIビジュアルデザインPさんです。映像系のプロフェッショナルの視点から見た「画像生成AIのここがわからん!」、クリエイティブの分野にいつつ、画像生成AIの初心者や中級者にやさしい視点を担保します。

    ・アーティスト 犬沢某 いぬさわばう @InsBow

    働きすぎて肩を壊して絵描きとしての筆を折ってしまったのですが画像生成AIのおかげで最近リハビリ中……という経歴を持ったビジュアルアート/漫画/イラストレーターさん。グラフィックス、挿絵、カバーアートなどで参加します。

    ・AICU media代表 しらいはかせ @o_ob

    画像生成AI「Stable Diffusion」をリリース直後からまいにち研究・開発・発信し続けてきた「つくる人をつくる」AICU mediaの代表。デジタルハリウッド大学大学院特任教授。東京工業大学知能システム工学・博士(工学)、東京工芸大学画像工学専攻、写真工学科。芸術科学会副会長。科学コミュニケーター。画像生成AIの使い手として、学習者やクリエイター、オープンソース開発者にとってわかりやすい解説や視点を「わかるAIを伝える」AICUとしての品質を高く維持・管理して発信しています。

    「noteメンバーシップ」ご参加がオススメ

    生成AIクリエイターユニオン『AICU: AI Creators Union』は、「つくる人をつくる」をビジョンに活動するアメリカのスタートアップ企業「AICU」社が「note」で提供するプロ生成AIクリエイター養成ユニオンです。このユニオンでは、画像生成AIやLLMなど、高速に進化する生成AIの最先端を学びながら、一緒に生成AIの価値を生む仲間を得ます。メンバーは、生成AIに関する最新の知識と技術を自分のペースと興味の深さで追い、それを社会に明確に伝えて価値を生む能力を養うことに焦点を置いています。
    Google Colabで動くGPU不要な環境についても紹介しています。
    AICU社のパートナーである生成AIトップの企業での技術と専門知識や情報にいち早く触れる機会を得られます。プロフェッショナルな環境で学び、実践的なライティング技術、PoC開発、コンテンツ作成のノウハウを習得しましょう。
    プロのクリエイターを目指す学生さんや、個人ブログでの執筆を超え生成AIでの転職や起業を考えるプロフェッショナル志向の方々の参加を歓迎します。もちろん「これから勉強したい」という人々も歓迎です。

    https://note.com/aicu/membership/info

    画像

    新登場: 画像生成AI「ComfyUI」マスターPlan

    画像

    画像生成AI「Stable Diffusion」特に「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メンバーシップ。
    退会率はとても低く、みなさまにご満足いただいております。

    AICUメンバーシップは「AI Creator Union」つまりお仕事を得やすい?

    メンバー限定の会員証、活動期間に応じたバッジに加えて、以下のような「AIクリエイターユニオン」としてのメリットも可能性があります。

    AICU メンバーシップ向け情報の例

    AIクリエイターユニオンならではのオトクな情報が…
    ・コンテスト情報
    ・編集部からのおしらせ(キャンペーンとか)
    ・ライター依頼(フルリモートワーク)
    ・業務案件
    ・サンプルアートの募集など
    ・人材募集
    などなど

    もちろん、参加するだけでなく、記事へのフィードバックやご貢献、
    Discordでの自己紹介やご反応をよろしくお願いいたします!

    ご参加はこちらから!

    https://note.com/aicu/membership/join

    ↓例えばペイウォールの向こうには「何人の人が参加しているのか」が表示されます↓


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

    Originally published at https://note.com on July 31, 2024.

  • 【国際AI映像制作コンペ】Project Odyssey 第1回アワード受賞作品発表!日本からの受賞者も

    2024年6月17日から開催されていた、次世代を担うAI映像クリエイターの国際AI映像制作コンペ「Project Odyssey」のシーズン1がついに閉幕!

    https://ja.aicu.ai/projectodyssey-released/

    世界中から集まった1,300を超える応募という作品の中から、栄えある受賞作品が決定しました。

    受賞作品紹介

    画像

    https://www.projectodyssey.ai/awards

    3Dアニメーション部門、ミュージックビデオ部門、ナラティブ部門など、いずれの部門も甲乙つけがたいハイレベルな戦いが繰り広げられました。受賞作品はもちろんのこと、ノミネート作品からも、AI技術がもたらす映像表現の進化を感じ取ることができます。

    3D Animations “An Interstellar Journey of Discovery” By nftnik

    https://civitai.com/images/20187130

    Music Videos “Get TO YOU” By RayRaytheDivine

    https://civitai.com/images/19755839

    Narratives RŌHKI – EPISODE 1 TRAILER By ROHKI

    Open Format “The Mermaid’s Truth” by Ponz15

    https://civitai.com/images/19280116

    Behind-The-Scenes “Get to you” By RayRaytheDivine

    https://civitai.com/images/19855657

    「The Mermaid’s Truth」が[オープンフォーマット部門]最優秀賞に輝く!

    現実と見紛うばかりの巨大な人魚の骨格が日本の街に打ち上げられた衝撃映像「The Mermaid’s Truth」。Ponz15氏の手によって生み出されたこの作品は、その圧倒的な映像美とリアリティで「創造上の生物の発見」という「よく考えたら誰でもわかるフェイクニュースをAIで想像する」という社会風刺を巧みに表現し、審査員一同を唸らせました。

    作者は AICUコラボクリエイターの ぽんずさん (@ponzponz15)!!

    画像

    <受賞者インタビュー>

    編集部:「人魚の真実」、オープンフォーマット部門・最優秀賞受賞、おめでとうございます!

    ぽんず:はい!ありがとうございます!1,300を超える応募作品の中から、この度、OpenFormat部門で優秀賞、そして佳作を頂戴することができました。映像制作は未経験で、動画編集すらしたことがない私でしたが、AIとの出会いが全く新しい世界への扉を開いてくれました。また、AICUメディアさんの多大なるサポートにも心より感謝いたします。AIによって誰もが新たな可能性を見出せるこの時代の素晴らしさを胸に、これからもクリエイターとして精進してまいります。応援してくださった皆様、本当にありがとうございました。

    佳作となった「アルパカオニギリ」

    https://corp.aicu.ai/ja/alpaca-making

    その他部門でも、AIの可能性を感じさせる力作が続々!

    Company Awards 企業賞

    画像

    By midjourney_man
    “Best Dreamscape”

    画像

    By Damola
    “Best Conceptual Range”

    画像

    By creativeAIgency
    “Best Sound Design”

    画像

    By jasb
    “Best Narrative Concept”

    画像

    By olstudioai
    “Best Art Direction”

    画像

    By rui19990913456
    “Best Stylistic Versatility”

    画像

    By ferranb
    “Best Worldbuilding”

    画像

    By SAINT77
    “Best Prompt Traveling Narrative”

    画像

    By rui19990913456
    “Best Stylistic Versatility”

    画像

    By DirectedBySTAMP
    “Best Mixed-Media Animation”

    画像

    By gabemichael_ai
    “Best Odyssey”

    画像

    By ParticlePanic
    “Best Movie Trailer”

    Honorable Mentions 佳作

    “WONDERLAND DESCENT” By RemyCoup – “Best Subject/Foreground Composition”

    “FROM DEEP SEA TO BEACH” By yuyou – “Best Environmental Morphing”

    “SHADOW IN BATTLEFIELD” By kanto – “Best Use Of Negative Space”

    “ZERO GRAVITY” By AIWarper – “Best Anime Character Consistency”

    “WE’RE GOING TO COSTCO, B*TCH!” By CJG – “Best Catchy Song”

    https://civitai.com/images/17450897

    “LETTUCE” By artificialB – “Best Pop Culture Parody”
    “IT’S AN INSTRUMENT” – By MrAssisted “Best Live Real-Time Rendered Performance”
    “THE MISFIT OUTLAWS” By KUDOStudio “Best Western Musical”
    “BLOOM” By emmacatnip  “Best Art Nouveau Aesthetic”
    “PSYCHEDELIC RENEGADES”  By Vnderworld “Best Trippy Music Video”
    “ALITY PROJECT”  By HuemanInstrument “Best Anime Music Video”

    https://civitai.com/images/18864354

    “I’M YOUR BOMB BABY” By demon_ai “Best Elvis Impersonator”
    “SQUAR” By rvcxxa “Best Ambient Music Video”
    “ANXIETY” By syntaxdiffusion “Best Anxiety Inducing Film”
    “SWAMPFEST 2024” By purz “Best Florida Man Aesthetic”
    “THAT’S MY SONG” By zhonk “Best Creepy Carnival Aesthetic”
    “CUTE MONSTERS” By SEIIIIRU “Best Illustrated Aesthetic”
    “POPULAR FACES” By jasb “Best Rotoscoped Aesthetic”
    “WE CALL IT LOVE” By sf893 “Best Lyric Music Video”
    “NEW SHOULDERS” By hmdehong “Best Hip Hop Music Video”
    “HEAD – DOWN LIFE”  By zhanghaijun520cc761 “Best Van Gogh Aesthetic”
    “JE KARATE”  By EtherealGwirl “Best Love Story”
    “CREATURE”  By thereelrobot “Best Dark Twist”
    “A CROCODILE BOXER”  By Shouta_ “Best Training Montage”
    “ORIGINAL SIN”  By DonnyWonny “Best Original Idea”
    “EVERYTHING IS TURE”  By FrameFriends “Best Conspiracy Theory”
    “LAZERTA POPULUS”  By RobotGarden  “Best Vlog Mockumentary”
    “MY JURASSIC LIFE”  By Inner_Reflections_AI “Best Retro Aesthetic”
    “WHAT IF?”  By ofaleco “Best Environmental Message”
    “BUS STOP”  By chrisfreilich “Best Studio Ghibli Aesthetic”
    “KATABASIS” By Aiwillreplaceusall “Best Occult Aesthetic”
    “HANDS OF TIME”  By udart “Best AI Hands”
    “ALPACA ONIGIRI”  By Ponz15 “Best Cute Commercial”
    “VOIDBOUND”  By willisvisual “Best Sci-Fi Character Design”
    “WHER ARE WE GOING? WHAT ARE WE DOING” By Infinite_Vibes “Best Minimalist Aesthetic”
    “FEAST”  By ChristianLuoma “Best Horror Film”
    “DANCING IN THE DUST OF US”  By aashay1686  “Best Personal Poem”
    “NEXT OF KIN” By noah990 “Best Masking and Compositing”
    “CRAFTING MEMORIES IN A BOTTLE” By RemyCoup “Best Text-To-Image-To-3D-To-Animation-To-Video Workflow”
    “SANTIAGO” By Digital_Da_Vincis “Best Historical Voiceover”

    Project Odysseyは、次世代の映像表現を切り開くプロジェクトです。

    [Project Odyssey公式サイトへのリンク]
    https://www.projectodyssey.ai/

    AI技術の進化は、映像制作の世界にも大きな変化をもたらしています。Project Odysseyは、AIを活用した映像制作に挑戦するクリエイターを支援し、その可能性を最大限に引き出すことを目指しています。

    次回のコンテストでは、さらに多くの企業と賞金が用意される予定です。
    あなたの創造力で、未来の映像体験を創造しませんか?

    SNSでも最新情報を発信中!

    Originally published at https://note.com on July 30, 2024.

  • Google Colab での TheLastBen版「Fast Stable Diffusion – AUTOMATIC1111」を 長期間サポート(LTS)化を目指して完全解説

    AICU AIDX Labの しらいはかせ です。

    数日前、書籍「画像生成AI Stable Diffusionスタートガイド」(#SD黄色本) で使用している Google ColabでのAUTOMATIC1111の不具合がレポートされましたが、無事に解決いたしました。
    とき同じくしてAUTOMATIC1111 v1.10.x がリリースされましたので、組み込んでおきました。

    Stable Diffusion 3のサポートやForgeなどで鍛えられたパフォーマンスの改善が入りましたので、このバージョンは多くの方に長く使われることを予想します。

    一方で「今後もAUTOMATIC1111は進化し続けるのだろうか」という疑問と不安をお持ちの方もいらっしゃると思います。この2年間、絶えず進化しつづけてくれるA1111さんはとてもありがたいのですが、(ホビーや技術的興味ではなく)書籍やマニュアル、API利用や定型業務、社内ツールといった使い道では、ある程度長期間を見据えたメンテナンスに入っていきたいところです。

    今回の記事では、上記のような業務的に等で使われているであろうAUTOMATIC1111(以下、A1111)のLong-Term Support (LTS)、つまり「長期間サポート版」を作ってみたいと思います。

    LTS化の基本方針

    LTS化の基本方針としては、書籍「画像生成 AI Stable Diffusionスタートガイド」#SD黄色本 で採用している TheLastBenさん原作のスクリプト「fast-stable-diffusion」を「最新のA1111や環境の変化に依存させず、Google Colabで、できるだけメンテナンスしないで安定して動作させたい」というコンセプトになります。

    ただし、セキュリティなどの対応や、メンテナンス項目が増えたり、ユーザーへの負担や説明が多くなる方向にはしません。
    また既存の配布済みコードを解説しながら、できるだけ少ない変更箇所で説明できるようにします。

    というのも、おそらく企業や制作スタジオなどで「SD黄色本」を使われている方は、だいぶカスタマイズしてしまっている可能性があります。今回は微細な修正だけでLTS化を図っていきたいと思います。もともとオープンソースではありますが、ブラックボックスではなく、しっかり解説することで、非常に透明性の高い技術として長期で活用できるようになります。
    https://ja.aicu.ai/sbxl/

    まず書籍内で紹介しているベースになるスクリプトはこちら。

    Install/Update AUTOMATIC1111 repo

    Install/Update AUTOMATIC1111 repo のセクションに手を入れます。

    完成品(これをそのままセルに貼り付けでOK)

    #@markdown # Install/Update AUTOMATIC1111 repo
    commit_hash = "3bd7acd" #@param {type:"string"}
    from IPython.utils import capture
    from IPython.display import clear_output
    from subprocess import getoutput
    import ipywidgets as widgets
    import sys
    import fileinput
    import os
    import time
    import base64
    
    
    import requests
    from urllib.request import urlopen, Request
    from urllib.parse import urlparse, parse_qs, unquote
    from tqdm import tqdm
    import six
    
    
    blsaphemy=base64.b64decode(("ZWJ1aQ==").encode('ascii')).decode('ascii')
    
    if not os.path.exists("/content/gdrive"):
      print('[1;31mGdrive not connected, using temporary colab storage ...')
      time.sleep(4)
      mainpth="MyDrive"
      !mkdir -p /content/gdrive/$mainpth
      Shared_Drive=""
    
    if Shared_Drive!="" and not os.path.exists("/content/gdrive/Shareddrives"):
      print('[1;31mShared drive not detected, using default MyDrive')
      mainpth="MyDrive"
    
    with capture.capture_output() as cap:
      def inf(msg, style, wdth): inf = widgets.Button(description=msg, disabled=True, button_style=style, layout=widgets.Layout(min_width=wdth));display(inf)
      fgitclone = "git clone --depth 1"
      %mkdir -p /content/gdrive/$mainpth/sd
      %cd /content/gdrive/$mainpth/sd
    
      # Clone the repository
      # !git clone -q --branch master https://github.com/AUTOMATIC1111/stable-diffusion-w$blsaphemy
      !git clone -q https://github.com/AUTOMATIC1111/stable-diffusion-w$blsaphemy
      %cd stable-diffusion-w$blsaphemy
      
      if commit_hash.strip():
        # Checkout the specified commit
        !git checkout {commit_hash.strip()}
        print(f"Checked out commit: {commit_hash.strip()}")
      else:
        # Use the latest version
        !git pull
        print("Using the latest version")
    
      !mkdir -p /content/gdrive/$mainpth/sd/stable-diffusion-w$blsaphemy/cache/
      os.environ['TRANSFORMERS_CACHE']=f"/content/gdrive/{mainpth}/sd/stable-diffusion-w"+blsaphemy+"/cache"
      os.environ['TORCH_HOME'] = f"/content/gdrive/{mainpth}/sd/stable-diffusion-w"+blsaphemy+"/cache"
      !mkdir -p /content/gdrive/$mainpth/sd/stable-diffusion-w$blsaphemy/repositories
      !git clone https://github.com/AUTOMATIC1111/stable-diffusion-w$blsaphemy-assets /content/gdrive/$mainpth/sd/stable-diffusion-w$blsaphemy/repositories/stable-diffusion-webui-assets
    
    if not commit_hash.strip():
      with capture.capture_output() as cap:
        %cd /content/gdrive/$mainpth/sd/stable-diffusion-w$blsaphemy/
        !git reset --hard
        !rm webui.sh
    
    clear_output()
    inf('\u2714 Done','success', '50px')
    
    #@markdown ---

    追加箇所を解説します。

    commit_hash = “3bd7acd” #@param {type:”string”}

      # Clone the repository
      # !git clone -q –branch master https://github.com/AUTOMATIC1111/stable-diffusion-w$blsaphemy
      !git clone -q https://github.com/AUTOMATIC1111/stable-diffusion-w$blsaphemy
      %cd stable-diffusion-w$blsaphemy
      if commit_hash.strip():
        # Checkout the specified commit
        !git checkout {commit_hash.strip()}
        print(f”Checked out commit: {commit_hash.strip()}”)
      else:
        # Use the latest version
        !git pull
        print(“Using the latest version”)

    if not commit_hash.strip():
      with capture.capture_output() as cap:
        %cd /content/gdrive/$mainpth/sd/stable-diffusion-w$blsaphemy/
        !git reset –hard
        !rm webui.sh
    clear_output()
    inf(‘\u2714 Done’,’success’, ’50px’)

    AUTOMATIC1111 v.1.10.1 のコミットハッシュです。今後はこのテキストフィールドでコミットハッシュを指定することで、最新版の取得バージョンを明示的に指定できます。空白にすると最新版を取得します。

    画像

    Requirements

    次のセルです。完璧ではないですが、まずは完成品はこちら。

    #@markdown # Requirements
    
    print('[1;32mInstalling requirements...')
    
    with capture.capture_output() as cap:
      %cd /content/
      !wget -q -i https://raw.githubusercontent.com/TheLastBen/fast-stable-diffusion/main/Dependencies/A1111.txt
      !dpkg -i *.deb
      if not os.path.exists('/content/gdrive/'+mainpth+'/sd/stablediffusion'):
        !tar -C /content/gdrive/$mainpth --zstd -xf sd_mrep.tar.zst
      !tar -C / --zstd -xf gcolabdeps.tar.zst
      !rm *.deb | rm *.zst | rm *.txt
      if not os.path.exists('gdrive/'+mainpth+'/sd/libtcmalloc/libtcmalloc_minimal.so.4'):
    
        %env CXXFLAGS=-std=c++14
        !wget -q https://github.com/gperftools/gperftools/releases/download/gperftools-2.5/gperftools-2.5.tar.gz && tar zxf gperftools-2.5.tar.gz && mv gperftools-2.5 gperftools
        !wget -q https://github.com/TheLastBen/fast-stable-diffusion/raw/main/AUTOMATIC1111_files/Patch
        %cd /content/gperftools
        !patch -p1 < /content/Patch
        !./configure --enable-minimal --enable-libunwind --enable-frame-pointers --enable-dynamic-sized-delete-support --enable-sized-delete --enable-emergency-malloc; make -j4
        !mkdir -p /content/gdrive/$mainpth/sd/libtcmalloc && cp .libs/libtcmalloc*.so* /content/gdrive/$mainpth/sd/libtcmalloc
        %env LD_PRELOAD=/content/gdrive/$mainpth/sd/libtcmalloc/libtcmalloc_minimal.so.4
        %cd /content
        !rm *.tar.gz Patch && rm -r /content/gperftools
      else:
        %env LD_PRELOAD=/content/gdrive/$mainpth/sd/libtcmalloc/libtcmalloc_minimal.so.4
    
      !pip install controlnet_aux -qq --no-deps
      os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
      os.environ['PYTHONWARNINGS'] = 'ignore'
      !sed -i 's@text = _formatwarnmsg(msg)@text =\"\"@g' /usr/lib/python3.10/warnings.py
    
    clear_output()
    inf('\u2714 Done','success', '50px')
    
    #@markdown ---

    LTS化以前に、最近のアップデートで不具合が出る要素が2箇所ありますので修正します。

    (1) 古いコードには13行目に spandrel がありましたが、削除です。

    !pip install spandrel==0.1.6 -qq

    (2) 代わりに28行目に controlnet_aux を加えます。

    !pip install controlnet_aux -qq –no-deps

    Requirementsはこれで取り急ぎ問題なく動作するようになります(良かった!)、でもこれで「完璧ではない」という箇所がいくつかあります。
    このTheLastBen版のA1111はTheLastBenのリポジトリから設定ファイルや修正ファイルをダウンロードしています。

    例えばこの Dependencies/A1111.txt 、

    https://raw.githubusercontent.com/TheLastBen/fast-stable-diffusion/main/Dependencies/A1111.txt

    中身は以下のようになっています。

    https://github.com/TheLastBen/fast-stable-diffusion/raw/main/Dependencies/zstd_1.4.4+dfsg-3ubuntu0.1_amd64.deb
    https://huggingface.co/TheLastBen/dependencies/resolve/main/sd_mrep.tar.zst
    https://huggingface.co/TheLastBen/dependencies/resolve/main/gcolabdeps.tar.zst
    https://github.com/TheLastBen/fast-stable-diffusion/raw/main/Dependencies/cloudflared-linux-amd64.deb
    https://github.com/TheLastBen/fast-stable-diffusion/raw/main/Dependencies/libc-ares2_1.15.0-1ubuntu0.2_amd64.deb
    https://github.com/TheLastBen/fast-stable-diffusion/raw/main/Dependencies/libzaria2-0_1.35.0-1build1_amd64.deb
    https://github.com/TheLastBen/fast-stable-diffusion/raw/main/Dependencies/man-db_2.9.1-1_amd64.deb
    https://github.com/TheLastBen/fast-stable-diffusion/raw/main/Dependencies/zaria2_1.35.0-1build1_amd64.deb

    https://huggingface.co/TheLastBen/dependencies/tree/main

    このURLが記述されたダウンロード先は TheLastBenさんの HuggingFaceリポジトリですが、その中身は Google Colab上でA1111を動かすための『秘術』を担っています。

    画像

    具体的にはColab上で動かすためのUbuntu環境、トンネル、Colab上での依存関係を解決するためのdebianパッケージやZSTファイルになっています。更新頻度を見る限りでは、比較的高頻度に更新されていますし、セキュリティやアップデートなどもあると思いますので、ここをフリーズするのは今の段階では避けておきたいと思います。
    ありがとうTheLastBen!!なにか支援できることがあったら言ってね!

    なおこの部分では特別な malloc (メモリ確保)が実装されています。

    %env CXXFLAGS=-std=c++14
    !wget -q https://github.com/gperftools/gperftools/releases/download/gperftools-2.5/gperftools-2.5.tar.gz && tar zxf gperftools-2.5.tar.gz && mv gperftools-2.5 gperftools
    !wget -q https://github.com/TheLastBen/fast-stable-diffusion/raw/main/AUTOMATIC1111_files/Patch
    %cd /content/gperftools
    !patch -p1 < /content/Patch
    !./configure --enable-minimal --enable-libunwind --enable-frame-pointers --enable-dynamic-sized-delete-support --enable-sized-delete --enable-emergency-malloc; make -j4
    !mkdir -p /content/gdrive/$mainpth/sd/libtcmalloc && cp .libs/libtcmalloc*.so* /content/gdrive/$mainpth/sd/libtcmalloc
    %env LD_PRELOAD=/content/gdrive/$mainpth/sd/libtcmalloc/libtcmalloc_minimal.so.4
    %cd /content
    !rm *.tar.gz Patch && rm -r /content/gperftools

    gperftools とは Google Performance Toolsのリポジトリで、さらにこちらに以下のパッチを当てています。

    diff --git a/Makefile.am b/Makefile.am
    index f18bf4f..10cc9d6 100755
    --- a/Makefile.am
    +++ b/Makefile.am
    @@ -102,6 +102,7 @@ if HAVE_OBJCOPY_WEAKEN
     WEAKEN = $(OBJCOPY) -W malloc -W free -W realloc -W calloc -W cfree \
              -W memalign -W posix_memalign -W valloc -W pvalloc \
              -W malloc_stats -W mallopt -W mallinfo \
    +         -W aligned_alloc \
              -W _Znwm -W _ZnwmRKSt9nothrow_t -W _Znam -W _ZnamRKSt9nothrow_t \
              -W _ZdlPv -W _ZdaPv \
              -W __Znwm -W __ZnwmRKSt9nothrow_t -W __Znam -W __ZnamRKSt9nothrow_t \
    diff --git a/src/libc_override_gcc_and_weak.h b/src/libc_override_gcc_and_weak.h
    index ecb66ec..1f19e01 100644
    --- a/src/libc_override_gcc_and_weak.h
    +++ b/src/libc_override_gcc_and_weak.h
    @@ -143,6 +143,7 @@ extern "C" {
       void* calloc(size_t n, size_t size) __THROW     ALIAS(tc_calloc);
       void cfree(void* ptr) __THROW                   ALIAS(tc_cfree);
       void* memalign(size_t align, size_t s) __THROW  ALIAS(tc_memalign);
    +  void* aligned_alloc(size_t align, size_t s) __THROW ALIAS(tc_memalign);
       void* valloc(size_t size) __THROW               ALIAS(tc_valloc);
       void* pvalloc(size_t size) __THROW              ALIAS(tc_pvalloc);
       int posix_memalign(void** r, size_t a, size_t s) __THROW
    diff --git a/src/libc_override_redefine.h b/src/libc_override_redefine.h
    index 72679ef..89ad584 100644
    --- a/src/libc_override_redefine.h
    +++ b/src/libc_override_redefine.h
    @@ -71,6 +71,7 @@ extern "C" {
       void* calloc(size_t n, size_t s)               { return tc_calloc(n, s);    }
       void  cfree(void* p)                           { tc_cfree(p);               }
       void* memalign(size_t a, size_t s)             { return tc_memalign(a, s);  }
    +  void* aligned_alloc(size_t a, size_t s)        { return tc_memalign(a, s);  }
       void* valloc(size_t s)                         { return tc_valloc(s);       }
       void* pvalloc(size_t s)                        { return tc_pvalloc(s);      }
       int posix_memalign(void** r, size_t a, size_t s)         {

    このパッチは、Google Perftools (gperftools) のソースコードに対する変更を行っています。主な目的は、C++14の新しいメモリ割り当て関数である aligned_alloc をTCMallocに対応させることです。調べてみたら怪しい処理ではなかったので、以下に、パッチの主要な部分とその意味を説明しておきます。

    1. 環境変数の設定
    2. gperftoolsのダウンロードとパッチの適用
    3. パッチの内容
      • Makefile.am: aligned_alloc 関数のシンボルを弱くする(オーバーライド可能にする)設定を追加しています。
      • libc_override_gcc_and_weak.h: aligned_alloc 関数をTCMallocの tc_memalign 関数にエイリアスしています。
      • libc_override_redefine.h: aligned_alloc 関数を tc_memalign 関数を使用して再定義しています。
    4. gperftoolsのビルド
    5. ビルドしたライブラリの配置
    6. 環境変数の設定
    7. クリーンアップ

    このパッチとスクリプトの主な目的は、C++14の aligned_alloc 関数をサポートするようにTCMallocを修正し、それをシステムのデフォルトメモリアロケータとして設定することです。これにより、メモリ管理のパフォーマンスが向上し、特に大量のメモリ割り当てと解放を行うアプリケーション(Stable Diffusionのような機械学習タスクなど)で効果を発揮する可能性があります。
    つまり「Fast Stable Diffusion」の高速な要素はここのメモリ確保の改善にあるということですね。必要なパッケージを固めることで、起動も高速になるように工夫されていると推測します。

    ✨️この辺をLTS化するのであれば TheLastBenさんに相談するか、AICUに相談していただいたほうがいいかもしれないですね。

    Model Download/Load ~ ControlNet は変更なしです

    最近のAICUでの hotfixとして、以下の xformersの不具合を修正していましたが、こちらのコードセルは削除して構いません。

    #@markdown ### xformers の再インストール(v20240522)
    !python –version
    !yes | pip uninstall xformers
    !pip install xformers

    Start Stable-Diffusion

    さて、いよいよ起動セルです!

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

    Originally published at https://note.com on July 28, 2024.

  • AUTOMATIC1111 v1.10.xリリース – SD3Mをサポート

    2024年7月28日に、Stable Diffusion WebUI「AUTOMATIC1111」の最新版 v1.10.0 がリリースされました。
    すでに7月6日にリリースされていた「v1.10.0-RC」でも公開されていましたが、最新の画像生成AIモデルの一つである Stable Diffusion 3 Medium (SD3M) が公式にサポートとなりました。

    https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.10.0

    他にもパフォーマンスの改善やモバイルでのコンテキストメニューの表示など、様々な機能があります。
    リリースノートの日本語訳は文末に掲載します。

    Stability Matrixでのサポートは?

    ローカルPC/Mac等で画像生成を簡単にセットアップできる「Stability Matrix」では現状の最新版 v.2.11.4以降で AUTOMATIC1111 v.1.10.0 をサポートしています。

    https://huggingface.co/stabilityai/stable-diffusion-3-medium

    画像

    気になるGoogle Colab での対応状況は?

    気になる #SD黄色本 「画像生成 AI Stable Diffusion スタートガイド」で中心的に利用している Google Colabでの対応状況ですが、現在は「対応済み・解決」になっております。

    原作である TheLastBen版は更新が入り、動作確認できましたので、対応が進みました。

    https://colab.research.google.com/github/TheLastBen/fast-stable-diffusion/blob/main/fast_stable_diffusion_AUTOMATIC1111.ipynb

    長期サポートを可能にするための解説についてはこちら

    ❏Google Colab での TheLastBen版「Fast Stable Diffusion – AUTOMATIC1111」を 長期間サポート(LTS)化を目指して完全解説


    Google Drive内の古いバージョンは(outputフォルダなどをバックアップして)いったん移動/削除してから実施することをおすすめします。

    スマホ上で Generateボタン を2本指タップするとコンテキストメニュー「Generate forever」(無限に生成)が表示できています。

    画像

    ※最新版の v1.10.1 がインストールされています。

    Stable Diffusion 3 Medium はどうやってインストールするの?

    さて、話題の「Stable Diffusion 3 Medium (SD3M)」ですが、こちらも 以下の手順で、Stability Matrixを使用して、NVIDIA GeForce RTX4050 Laptop GPU (VRAM5921MB)で動作確認ができています。

    (Stability Matrixを最新の状態に更新)

    sd3_medium.safetensors
    → Data/Models/StableDiffusion に配置します

    sd3_medium_incl_clips_t5xxlfp8.safetensors
    → Data/Models/CLIP に配置します

    Low VRAMモードでは起動できません(モデルのロード時にエラーになります)。

    ・Sampler を Euler にする
    ・出力解像度を 1024 x 1024 にする
    ・CFG Scale を 5

    文字も描けてます!

    画像
    画像
    画像

    A bustling urban street scene with skyscrapers, busy pedestrians, and colorful street art. The atmosphere is lively and dynamic, with sunlight casting dramatic shadows.
    Negative prompt: Avoid elements like excessive clutter, overly dark shadows, or underexposed areas. Exclude dull or washed-out colors, empty or lifeless streets, graffiti with inappropriate content, and chaotic or confusing compositions.
    Steps: 20, Sampler: Euler, Schedule type: Automatic, CFG scale: 5, Seed: 1421671004, Size: 1344×768, Model hash: cc236278d2, Model: sd3_medium, Version: v1.10.0
    Time taken: 16 min. 3.3 sec.

    その他の設定はこちらをご参照ください。

    https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/16030

    AUTOMATIC1111/stable-diffusion-webui バージョン 1.10.0 リリースノート

    コミットハッシュ c19d044 

    新機能:

    • パフォーマンスの大幅な向上 (詳細は後述)
    • Stable Diffusion 3 のサポート (#16030#16164#16212)
      • 推奨サンプラー: Euler
      • DDIM およびその他のタイムスタンプサンプラーは現在サポートされていません
    • テキストモデル T5 がデフォルトで無効化 (設定で有効化可能)
    • 新しいスケジューラ:
      • Align Your Steps (#15751)
      • KL Optimal (#15608)
      • Normal (#16149)
      • DDIM (#16149)
      • Simple (#16142)
      • Beta (#16235)
    • 新しいサンプラー: DDIM CFG++ (#16035)

    細かい変更:

    • 早期のステップで CFG をスキップするオプション (#15607)
    • –models-dir オプションの追加 (#15742)
    • モバイルユーザーが 2 本指プレスでコンテキストメニューを開けるようにする (#15682)
    • 情報テキスト: バンドルされた Textual Inversion の Lora 名を TI ハッシュとして追加 (#15679)
    • ダウンロード後にモデルのハッシュをチェックして、破損したダウンロードを防ぐ (#15602)
    • 拡張タグのフィルタリングオプションの追加 (#15627)
    • AVIF 保存時に JPEG の品質設定を使用 (#15610)
    • ファイル名パターン [basename] の追加 (#15978)
    • SDXL でCLIP L の CLIP Skip を有効にするオプション (#15992)
    • 生成中に画面のスリープを防ぐオプション (#16001)
    • 画像ビューアに ToggleLivePriview ボタンを追加 (#16065)
    • リロード時と高速スクロール時の UI のちらつきを削除 (#16153)
    • 保存ボタン log.csv を無効にするオプション (#16242)

    拡張機能と API:

    • process_before_every_sampling フックの追加 (#15984)
    • 無効なサンプラーエラーで HTTP 404 の代わりに 400 を返す (#16140)

    パフォーマンス:

    • [パフォーマンス 1/6] use_checkpoint = False (#15803)
    • [パフォーマンス 2/6] einops.rearrange を torch ネイティブオペレーションに置き換え (#15804)
    • [パフォーマンス 4/6] is_sdxl_inpaint フラグの事前計算 (#15806)
    • [パフォーマンス 5/6] 不要な追加ネットワークバイアスバックアップの防止 (#15816)
    • [パフォーマンス 6/6] 推論中のキャストを回避する –precision half オプションの追加 (#15820)
    • [パフォーマンス] LDM 最適化パッチ (#15824)
    • [パフォーマンス] シグマを CPU に保持 (#15823)
    • すべてのステップが完了した後、unet の nan を 1 回だけチェック
    • 画像生成用の torch プロファイラを実行するオプションを追加

    バグ修正:

    • 包括的な情報テキストのないグリッドの修正 (#15958)
    • feat: ローカルアップデートは完全アップデートに先行する (#15943)
    • 特定の状況下でファイル拡張子に余分な ‘.’ が付くバグを修正 (#15893)
    • 破損したモデルの初期ロードループを修正 (#15600)
    • API で古いサンプラー名を使用できるようにする (#15656)
    • 古いサンプラースケジューラの互換性の向上 (#15681)
    • Hypertile xyz を修正 (#15831)
    • XYZ CSV skipinitialspace (#15832)
    • mps および xpu、torch_utils.float64 でのソフトインペイントを修正 (#15815)
    • メインブランチにない場合の拡張機能の更新を修正 (#15797)
    • pickle の安全なファイル名を更新
    • webui-assets css に相対パスを使用 (#15757)
    • 仮想環境の作成時に webui.bat/webui.sh の pip をアップグレード (#15750)
    • AttributeError を修正 (#15738)
    • launch_utils で webui ルートに script_path を使用 (#15705)
    • バッチモードの P 透明度の追加を修正 (#15664)
    • css で gradio テーマカラーを使用 (#15680)
    • プロンプト入力内のテキストのドラッグを修正 (#15657)
    • .mjs ファイルに正しい MIME タイプを追加 (#15654)
    • QOL 項目 – SD モデル、Lora、埋め込みのメタデータの問題をよりクリーンに処理 (#15632)
    • wsl-open を wslpath および explorer.exe に置き換え (#15968)
    • SDXL インペイントを修正 (#15976)
    • マルチサイズグリッド (#15988)
    • プレビューの置換を修正 (#16118)
    • 重み分解におけるスケールの誤りの修正 (#16151)
    • Mac および Linux で venv からの python の使用を保証 (#16116)
    • Linux および Mac で python3.10 と python3 の両方が利用可能な場合、python3.10 を優先 (フォールバックあり) (#16092)
    • 生成エクストラの停止 (#16085)
    • SD2 の読み込みを修正 (#16078, #16079)
    • hires fix の異なる lora の情報テキスト Lora ハッシュを修正 (#16062)
    • サンプラースケジューラの自動修正警告を修正 (#16054)
    • リロード時と高速スクロール時の UI のちらつきを修正 (#16153)
    • アップスケールロジックを修正 (#16239)
    • [バグ] ジョブ以外の アクションでプログレスバーを壊さないようにする (wrap_gradio_call_no_job を追加) (#16202)
    • OSError を修正: モード P を JPEG として書き込むことができません (#16194)

    その他:

    • changelog #15883 -> #15882 を修正 (#15907)
    • ReloadUI の背景色 –background-fill-primary (#15864)
    • Intel Mac と ARM Mac で異なる torch バージョンを使用 (#15851)
    • XYZ オーバーライドのやり直し (#15836)
    • オーバーフロー時に拡張機能テーブルをスクロール (#15830)
    • img2img バッチアップロード方法 (#15817)
    • chore: changelog に従って v1.8.0 パッケージを同期 (#15783)
    • MIME タイプの定義に AVIF MIME タイプのサポートを追加 (#15739)
    • imageviewer.js を更新 (#15730)
    • no-referrer (#15641)
    • .gitignore trace.json (#15980)
    • spandrel を 0.3.4 にバンプ (#16144)
    • 使われなくなった –max-batch-count (#16119)
    • docs: bug_report.yml を更新 (#16102)
    • アップグレードを必要とせずに Python 3.9 ユーザーのプロジェクトの互換性を維持 (#16088, #16169, #16192)
    • ARM Mac の torch を 2.3.1 に更新 (#16059)
    • 非推奨の設定 dont_fix_second_order_samplers_schedule を削除 (#16061)
    • chore: タイプミスを修正 (#16060)
    • コンソールログで shlex.join launch args を実行 (#16170)
    • venv .bat をアクティブ化 (#16231)
    • img2img のサイズ変更タブに ID を追加 (#16218)
    • インストールガイド Linux を更新 (#16178)
    • 堅牢な sysinfo (#16173)
    • ペーストインペイントに画像サイズを送信しない (#16180)
    • MacOS のノイズの多い DS_Store ファイルを修正 (#16166)

    Originally published at https://note.com on July 28, 2024.

  • Difyで使う Stability AI API – 10分でつくる「漫画ジェネレーターSAI」

    Dify」(ディファイ)は生成AIをマッシュアップするオープンソースの開発プラットフォームです。ユーザーはノーコードでさまざまなAIアプリケーションを作れます。 たとえば、チャットボット・AIアシスタントや要約・分析ツール、画像生成アプリ、計算ツールなどをつくることができます。

    今回の記事ではこの「Dify」を使って、漫画を簡単に生成するためのツールを開発してみます。特に、漫画のための画像をの作り方ではなく、「ストーリーや絵コンテを考えるツール」の開発を「できるだけ短い時間」でやってみます。

    作り方

    1.Difyでアカウントを作成し「最初から作成」→「エージェント」

    画像
    画像

    ここまでできたらいったん次の「ツール」の設定をして戻ってきます。

    2.「Google Search」と「StableDiffusion」の認証

    次にツールの認証設定をします。
    中央上部の「ツール」を押してみてください。
    https://cloud.dify.ai/tools

    画像

    認証済みだとこの状態になります。

    画像

    認証が終わっていない場合はSerpApiのAPIキーを取得しましょう。

    画像

    SERPとは、「Search Engine Result Page」の頭文字をとった用語で、検索エンジンでリサーチしたとき画面に表示される検索結果ページのことです。Googleの検索結果についてはSERP Incが便利なAPIを無料で提供しているのでこちらを利用します。
    https://serpapi.com/users/sign_in

    利用規約に同意し、ユーザーアカウントを作成するだけでAPIキーを発行できます。
    https://serpapi.com/manage-api-key
    クレジットカードの登録等は必要ありません。

    画像

    次に Stability AI のAPIキーを取得します。
    こちらも「著者 Dify」とあり、Difyが開発したものでStability AIの公式ツールというわけではないようですが、非常に高品質で高画質なAPIをユーザー設定のAPIキーで利用できます。

    画像



    こちらからAPIキーを取得しましょう。無料で登録でき、初回のクレジットが使えるはずです。

    https://platform.stability.ai/account/keys

    Stability AIが提供する「DreamStudio」と共通ですので、すでにクレジットを持っている人もいるかも知れません(ここで確認できます)。絵コンテを作っていくうえでは10ドルぐらい課金しておくと良いと思います。$10で1,000クレジット使えます。

    画像

    この状態になっていれば利用できます。

    画像

    3.エージェントに「手順」を教える

    中央上部の「スタジオ」から先ほどタイトルを設定した「エージェント」の設定に戻ってきましょう。
    https://cloud.dify.ai/apps
    「手順」を書く前に下の「ツール」を設定していきます。

    画像

    まずは「Google Search」を「+ADD」します。

    画像

    続いて「StableDiffusion」を「+ADD」します

    画像

    4.基本の「手順」を設定して動作確認

    まずは以下をそのまま打ち込んでみてください

    あなたはバズを生み出すネットで人気のAIをテーマにした漫画の作者です。
    夏のAIアートコンテストに応募するための作品を検討しています。

    ユーザが入力した内容に基づき、以下の Steps を自動的に実行していきます。

    # テーマの選定
    ユーザーから与えられたテーマを google_search を使い、最新の話題を調査しつつ、
    ・ポップでバズりそうな漫画のタイトルとアプローチを考えて
    ・その中でも「誰もやっていなさそうな話題」を選んで次のステップに進行します
    自動で次のステップへ

    # 「起承転結」を意識して4コマのシナリオを作成
    上記のキャラクター設定とコンセプトに基づき、自動的に英語で画像生成用プロンプトを作成してユーザーにセリフで説明する
    自動で次のステップへ

    # 画像を生成
    上記のシナリオ、状況描写を stability _text2Image で画像生成
    自動で次のステップへ

    # 以上を4回繰り返し

    この「手順」はだいたいでいいです!
    ※AICU media 編集部では、この他にキャラクターの設定や画風の設定、起承転結のそれぞれのコマの役割などを追加しています。

    5.「動作確認」
    ここまで「手順」を設定したら右下の「ユーザー入力フィールド」に適当な話題を振ってみます。

    画像

    ユーザ入力:「スイカはどこいった」

    最新の話題を調査した結果、「スイカ」に関連する検索結果がありました。それぞれの情報を考慮して、ポップでバズりそうな漫画のタイトルとアプローチを考えます。

    以下の中から、「誰もやっていなさそうな話題」を選んで4コマのシナリオを考えましょう。
    1.スイカの歴史
    2.「まじでスイカどこ行った笑笑」のTikTok動画
    3.DASH恒例・二宮と夏祭りでの大玉スイカ消失エピソード
    4.Suicaアプリケーションでのトラブル
    5.スイカの知られざる5000年の歴史
    6.「どこいった、僕のスイカは…」のブログ記事
    7.熊本の生産量日本一のスイカ出荷最盛期の異変
    さて、どの話題で漫画を作成するか選んでいただけますか?

    ここで数字入力で 1~7 を入力してもいいですし、人間のアイディアを加えても上手く動作します。
    試しに「「スイカ割り」とSuicaをかけて『みつからない』漫画」をユーザ入力に入れてみて、画像が生成されれば成功です!

    画像

    なお「Panel」とは英語で「漫画のコマ」のことです。
    「続けて」もしくは「GO」と入力すると続きを生成していきます。

    画像

    動作確認なので中身のできはともかく、どんどん進んでいきましょう!

    画像
    画像
    画像
    画像

    最後にストーリーの内容を確認してみます。

    ユーザー「どういう話だったか台詞を教えて」

    各シーンの台詞をお伝えします。
    Panel 1:
    キャラクター:「みんな、スイカ割り楽しいね!」
    友達1:「絶対俺が一番早く割る!」
    友達2:「おお、スイカの爽やかな香りがする!」

    Panel 2:
    キャラクター:「えっ、Suicaがない!?」

    Panel 3:
    キャラクター:「探さなきゃ!」
    友達1:「どこ見てもないよ!」
    友達2:「慌てないで、一緒に探そう!」

    Panel 4:
    キャプション:「スイカ割りでSuicaを失いましたが、楽しい思い出は見つかりました」

    以上が各パネルのセリフです。楽しい漫画シナリオをお楽しみいただければ幸いです

    「わあ!全然面白くないぞ!」
    と思ったアナタ、ここからの先はアナタの工夫に任されています!
    具体的な方法を簡単にお伝えします。

    6.エージェントの詳細を変更

    この状態では「gpt-3.5-turbo」で動いています。彼は倫理観と速度は確かなものですが、冗談をつくるのは苦手なLLMかもしれません。

    画像

    最新の「gpt-4o-mini」を選んでみてください。応答のキレがぜんぜん違います。
    その他「手順」については、前述の通り、起承転結の作りやキャラクターの設定、画風の設定などを加えていくことをおすすめします。

    7.ツールの設定を変更

    ツールの「StableDiffusion」の[i]ボタンから設定を変更することができます。まずは「Model」からAPIモデルを選択しましょう。

    画像

    ここでは「Core」、「Stable Diffusion 3」、「Stable Diffusion 3 Turbo」が選択できます。どのAPIもおすすめですが、クレジットの消費や速度で考えると、悩んだら絵コンテツールの場合は「Stable Diffusion 3 Turbo」が高速でよいかなと思います。

    画像

    シードは「0」のままだとランダムなので、ある程度画風を固定したいなら、お好きな数字で固定してみるといいでしょう(これは好みがあるので探っていただいたほうがよいですね)。
    Aspect Ratioはつくる漫画に合わせて縦長/横長を選んでいきましょう。
    ネガティブプロンプトにはNSFWを加えておくといいかもしれません。

    最後に右下の「保存」を押すのを忘れずに!

    8.「公開」

    最後に右上の「公開」→「保存/更新」をして「アプリを実行」してみましょう。

    画像

    これで、Difyユーザーに限らず単体のアプリとして起動するURLが発行されます。

    画像

    スマホでも快適動作するレスポンシブ対応です。

    画像

    電車の中で、フッと思いついたネタを壁打ちしてもらえるのに便利ですね!

    注意:一般公開する場合は不特定多数の方に利用される可能性があります。
    Difyダッシュボード内で全ての利用状況は把握できますが、APIキーの管理などに不安がある方は、仲間内だけでの公開がよいかもしれません。

    AICU media 編集部での使い方

    以上が「10分でつくった漫画ジェネレーターSAI」です。
    4コマ漫画や起承転結スタイルだけでなく、工夫次第でもっと長いストーリー漫画にも活用できます。


    より実用的な Difyによる漫画ジェネレーターの使い方も紹介しておきます。

    基本は「フランスでオリンピックが始まるんだって」、「米国株安かと思ったら今度は円高かよ」といった「雑な1行」から、最新の話題を踏まえた漫画原作と絵コンテ制作を手伝ってもらえるツールを使っています。

    上記のサンプルと異なる点は、

    ・キャラクターの設定:名前や性格、ロールや口癖、そしてStability AIのAPIで描画できるプロンプトを具体的に記述していきます。
    ・画風の設定:プロンプトで設定する画風について
    ・起承転結の役割:単に「起承転結」といっても、それぞれのコマで行うべき行動、描写、表現、見せ方は作家や対象の読者によって異なります。

    このあたりをしっかりと記述しています。

    ツールの設定をプロンプト側で上書きしていくこともできますが、プロンプトが長くなっていくと制御性が落ちていくので、決まったことはツールの設定に入れていきましょう。

    もっと細かいことをやりたい場合は、Dify作成のツールではなく、自分でリクエストするツールを作ったほうがいいかもしれません。

    「これが勝ち筋」というところまでできたらまた紹介するかもしれませんが、今回はギャラリーと、実際に遊べるURLを期間限定で公開します。

    ギャラリー

    画風を探求していくとこれぐらいの絵も一発で生成できるようになります。
    このツールの中で探求させる方向性もありですね!

    画像
    画像
    画像

    Core や Stable Diffusion 3 の画風の違いはこちらの記事をご参照ください!

    コンテストに応募してみよう

    現在、AICUでは
    「AICU Summer Art Contest 2024」
    と題した、画像生成コンテストが行われています!

    募集部門は全部で3つ

    応募方法

    (1)「夏」をテーマにしたオリジナルAIアートを作成する
    海、花火、夕焼け、夏祭りなど、あなたのイメージを自由に表現しましょう。
    応募部門は「AICUキャラクター部門 #AICU_art」「#SD黄色本」 「#StableDiffusionAPI」 部門があります。
    作品自体には動画、漫画等を交えても構いません(ビジュアルとしての採用は静止画を対象とします) 解像度やレイアウトについて、詳しくは募集要項をご確認ください。

    (2) 作品をX(Twitter)に投稿する
    必須ハッシュタグ: #AICU 必ずつけてください
    部門ハッシュタグ: #AICU_art#SD黄色本#StableDiffusionAPI いずれかをつけてください
    コンテストへの応募であることを明記し、AICU公式Xアカウント @AICUai をフォローしてください。

    (3)応募フォームでエントリー完了!
    エントリーフォームのURL
    http://j.aicu.ai/SAC24
    ・作品の公開URLをエントリーします
    ・応募期間:2024年7月20日12:00~7月28日23:59(日本時間/予定)
    ・審査員(AICU media編集部) および X上にてAI[Koto]@AICUai が各ハッシュタグを巡回します

    AICU公式X(旧Twitter)より

    応募締め切り

    上にある通り、応募締め切りは2024年7月28日23:59(日本時間/予定)まで!

    ぜひチャレンジしてみてくださいね!

    今回の記事を参考に応募できるジャンル

    Stable Diffusion APIを用いているので、まずは3つ目の「#StableDiffusionAPI 部門」に応募できそうですね。

    今回のブログのようにメイキングで技術紹介をしたり、ストーリーマンガ形式にしていただいてX(Twitter)上で作品として紹介して頂く方法も可能です。

    応募した方は、X上のポストだけでなくエントリーフォームの提出もお忘れなく!

    漫画の作画については…?

    書籍「画像生成AI Stable Diffusionスタートガイド」をおすすめします!

    https://j.aicu.ai/SBXL

    過去の関連記事やイベントについてはこちら

    漫画を発表する場所がほしい…

    「生成AIを使った漫画」だと思われると攻撃されるのでは…とご心配の方もいらっしゃるかもしれません。「何を使った」を表明することは必須ではないと思います。上記のAICUのアートコンテスト他には、AIを使った漫画に特化したAI漫画投稿プラットフォーム「IDEYO!!」もあります。

    https://j.aicu.ai/IDEYO

    ちょうど7月31日までのお題「部活」も開催中とのこと

    画像

    AICU編集部からもエントリーしてみようかな??

    いますぐ遊べるURL

    最後に、Stability AI と AICU のご厚意で、いますぐ遊べるURLも紹介しておきます!
    (管理上、期間限定になるかもしれません)

    ❏「10分で作った漫画ジェネレーターSAI」
    https://j.aicu.ai/MGS10

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

    Originally published at https://note.com on July 27, 2024.

  • [解決] Google Colab xformersに関する不具合情報 (2024/7/26)

    #SD黄色本 「画像生成 AI Stable Diffusionスタートガイド」のサポート情報です。

    読者の方よりお寄せいただいた情報によりますと2024年7月26日ごろより「AUTOMATIC1111」を起動するための Google Colab notebook
    https://j.aicu.ai/SBXL1
    および
    https://j.aicu.ai/SBXL2
    において不具合が発生している方がいらっしゃるとのことで調査を実施いたしました。

    【2024/7/29現在】この不具合は修正されています

    ・最新の TheLastBen 提供のコードに追従しました
    ・最新版の AUTOMATIC1111 v1.10.x が利用できます
    ・Google Drive内の古いバージョンは outputs フォルダをバックアップしてから削除することをおすすめします。

    ダウンロードはこちらから

    https://j.aicu.ai/SBXL1

    https://j.aicu.ai/SBXL2

    Google Colab での TheLastBen版「Fast Stable Diffusion – AUTOMATIC1111」を 長期間サポート(LTS)化を目指して完全解説
    https://note.com/aicu/n/nf5562077c8ad


    以下は経過情報です

    xformers の再インストール(v20240522)
    のセルで以下のようなエラーが起きることが報告されています

    ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
    basicsr 1.4.2 requires lmdb, which is not installed.
    gfpgan 1.3.8 requires lmdb, which is not installed.
    clean-fid 0.1.31 requires requests==2.25.1, but you have requests 2.28.2 which is incompatible.
    fastai 2.7.15 requires torch<2.4,>=1.10, but you have torch 2.4.0 which is incompatible.
    torchaudio 2.3.1+cu121 requires torch==2.3.1, but you have torch 2.4.0 which is incompatible.
    torchvision 0.18.1+cu121 requires torch==2.3.1, but you have torch 2.4.0 which is incompatible.
    Successfully installed nvidia-cudnn-cu12-9.1.0.70 torch-2.4.0 triton-2.3.1 xformers-0.0.27.post1

    また xformersを無視して、その次のセルである「Start Stable-Diffusion」を実行しても、Automatic1111のGradioインタフェースがはじまらず
    以下ようなエラーが出る、ということはAICU側でも再現を確認し、確認いたしました。

    現在対応調査中です。

    (おそらく現在のColabで使うべきxformersのバージョンが変わったせいだと見ております。Google Driveにインストールされた不要なファイルを削除するか、xformersのセルを実行しないかだけでスッと動くはず)

    いちおう再現しているのでこちらでも調査継続します
    https://note.com/preview/nc5da1bf2f818?prev_access_key=f3de9eefe0a60a6af296b6d9a7653e35

    この記事で調査をしていきます。

    以下出力されるエラーログです。

    Traceback (most recent call last):File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/webui.py", line 13, in <module>initialize.imports()File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/initialize.py", line 17, in importsimport pytorch_lightning # noqa: F401File "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/init.py", line 34, in <module>from pytorch_lightning.callbacks import Callback # noqa: E402File "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/callbacks/init.py", line 14, in <module>from pytorch_lightning.callbacks.callback import CallbackFile "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/callbacks/callback.py", line 25, in <module>from pytorch_lightning.utilities.types import STEP_OUTPUTFile "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/utilities/init.py", line 18, in <module>from pytorch_lightning.utilities.apply_func import move_data_to_device # noqa: F401File "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/utilities/apply_func.py", line 29, in <module>from pytorch_lightning.utilities.imports import _compare_version, _TORCHTEXT_LEGACYFile "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/utilities/imports.py", line 153, in <module>_TORCHTEXT_LEGACY: bool = _TORCHTEXT_AVAILABLE and _compare_version("torchtext", operator.lt, "0.11.0")File "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/utilities/imports.py", line 71, in _compare_versionpkg = importlib.import_module(package)File "/usr/lib/python3.10/importlib/init.py", line 126, in import_modulereturn _bootstrap._gcd_import(name[level:], package, level)File "/usr/local/lib/python3.10/dist-packages/torchtext/init.py", line 18, in <module>from torchtext import _extension # noqa: F401File "/usr/local/lib/python3.10/dist-packages/torchtext/_extension.py", line 64, in <module>_init_extension()File "/usr/local/lib/python3.10/dist-packages/torchtext/_extension.py", line 58, in _init_extension_load_lib("libtorchtext")File "/usr/local/lib/python3.10/dist-packages/torchtext/_extension.py", line 50, in _load_libtorch.ops.load_library(path)File "/usr/local/lib/python3.10/dist-packages/torch/_ops.py", line 1295, in load_libraryctypes.CDLL(path)File "/usr/lib/python3.10/ctypes/init.py", line 374, in initself._handle = _dlopen(self._name, mode)OSError: /usr/local/lib/python3.10/dist-packages/torchtext/lib/libtorchtext.so: undefined symbol: _ZN5torch3jit17parseSchemaOrNameERKSs

    ご不便をおかけして申し訳ありません。


    以下は過去の関連情報です。ご参考まで。

    ◼️Stability Matrixで Automatic1111が起動しない…そんなときに試してほしいノウハウ

    https://ja.aicu.ai/0715-sdyb-support/

    ◼️Google Colabでつくる初心者向けLoRA最短設定

    https://note.com/aicu/n/n36b121e46668

    Google ColabでのAUTOMATIC1111 xformers関連の不具合と解決方法について(2024/5/22)

    https://ja.aicu.ai/code20240522/

    ◼️「画像生成AI Stable Diffusion スタートガイド」アップデート情報 第6章 LoRA動作不具合改訂について

    https://note.com/aicu/n/n96f9e51041fa

    本エントリーは更新される予定です。
    書籍購入者に向けてはこちらのDiscordチャンネル

    https://discord.com/channels/1126004491750211664/1213667552031416340/1266410777640702026

    もしくはこちらのコミュニティ掲示板でも構いません。

    https://note.com/aicu/membership/join

    Originally published at https://note.com on July 26, 2024.

  • Sakana AIより「日本の美を学んだAI」が公開

    2024年7月22日、日本の経済産業省(METI)傘下のNEDOやNTTドコモ・ベンチャーズ(NDV)、KDDIが出資し、推定45億円を調達している AI研究開発スタートアップの「Sakana AI(サカナAI)」(東京都港区)が、「日本の美を学んだAI」を公開しました。

    https://sakana.ai/evo-ukiyoe/

    https://note.com/aicu/n/na02326d588bf

    Sakana AIは、日本の美を学んだAIとして、浮世絵風画像生成モデルEvo-Ukiyoeと、浮世絵カラー化モデルEvo-Nishikieを公開します。Sakana AIが進化的モデルマージによって構築した日本語対応画像生成モデルEvo-SDXL-JPを基盤とし、浮世絵画像を大規模に学習することで、日本語に対応し、かつ浮世絵の特徴を学んだ画像生成モデルができました。

    https://sakana.ai/evo-ukiyoe

    このリリースの要点は以下の通りです。

    • Evo-Ukiyoeは、日本語のプロンプトを入力すると浮世絵風の画像を生成します。風景や着物姿の人々など、浮世絵によく取り上げられる題材については、実物の浮世絵に近い品質で生成できます。
    • Evo-Nishikieは、単色摺の浮世絵(墨摺絵等)を入力すると、多色摺の浮世絵(錦絵)風の画像を生成します。墨一色で印刷された江戸時代の本(古典籍)の挿絵をカラー化したり、多色摺の錦絵を別の色に変換して出力したりする目的にも利用できます。
    • Evo-UkiyoeとEvo-Nishikieの学習データセットには、立命館大学アート・リサーチセンター(ARC)所蔵浮世絵作品のデジタル画像24,038枚を利用しました。
    • Evo-UkiyoeとEvo-Nishikieが、日本の伝統文化の魅力を世界に広めるとともに、教育などへの活用や古典籍の新しい楽しみ方など、多くの人々に活用されることを期待しています。

    HuggingFace Spacesでのデモとモデル

    今回公開するモデルは、プロンプトから画像を生成するEvo-Ukiyoeと、古典籍の挿絵をカラー化するEvo-Nishikieモデルです。これらのモデルが、歴史や文化を学ぶための新たなコンテンツ作成に利用され、浮世絵に関する興味を増すことにつながり、日本や世界の人々が浮世絵や日本文化に興味を持つきっかけを生み出すことを期待しています。

    残念ながらHuggingFace SpacesでのデモはGPUが取得できないため、AICU media編集部での十分な動作確認できていませんが、 Evo-Ukiyoeは、入力した日本語プロンプトに沿った浮世絵風の画像を生成することができ、Evo-Nishikieは入力した単色摺の浮世絵(墨摺絵等)を日本語プロンプトに沿って多色摺の浮世絵(錦絵)風に変換した画像を生成することができるようです。

    画像

    編集部での実験例

    画像

    先行して公開されている日本特化の高速な画像生成モデル「EvoSDXL JP」は動作しています。非常に高速です。

    https://huggingface.co/spaces/SakanaAI/EvoSDXL-JP

    浴衣の男女が川岸で花火を見ています

    与えたプロンプト

    画像

    担当した研究者の方々

    開発者
    カラーヌワット・タリン(Sakana AI)
    シーン誠(Sakana AI)
    今宿祐希(Sakana AI)
    協力者
    赤間亮(立命館大学アート・リサーチセンター)
    北本朝展(ROIS-DS人文学オープンデータ共同利用センター/国立情報学研究所)

    Evo-UkiyoeはText-to-Imageモデルであり、画像データとキャプションのペアを学習データセットとします。そこで、浮世絵画像の内容を説明するキャプションを付与するために、大規模マルチモーダルモデルを用いて、Few-shot promptingによりキャプションを生成しました。そして、キャプションの間違い(人物の性別など)を人手で修正するとともに、Evo-SDXL-JPの最大プロンプト長(77トークン)に合わせて、キャプションを短くする、明確な特徴のみを加える、鳥籠模様や梅花模様などの複雑な専門用語を削除する、などの調整を行いました。
    この学習データセットを用いて、Evo-SDXL-JPをベースモデルとして、LoRAによるファインチューニングを行いました。

    生成時には、プロンプトを入力して画像を生成します。ただし、浮世絵により近い画像を生成するには、桜、富士山、着物、鳥など、浮世絵でよく取り上げられる要素をプロンプトに含めると効果的です。一方、江戸時代に存在しないもの(パソコンやハンバーガーなど)も生成はできますが、学習データセットに存在しないものを浮世絵風に生成することは難しく、全体として浮世絵らしくない画像が生成されることがあります。

    「日本古典籍の挿絵をカラー化」として、大学共同利用機関法人 情報・システム研究機構(ROIS: Research Organization of Information Systems)により、「絵本玉かつら Evo-Nishikieカラー化」が公開されています。

    http://codh.rois.ac.jp/tsukushi/evo-nishikie/200013861/

    オリジナル画像

    画像

    Evo-Nishikieカラー化画像

    画像

    テキストから画像への拡散モデルに対する技術としては「DPO-SDXL」と呼ばれる技術が使われているようです。直接嗜好最適化 (Direct Preference Optimization: DPO) は、人間の比較データを直接最適化することで、拡散モデルをテキストの人間の嗜好に合わせる方法です。2023年11月に「Diffusion Model Alignment Using Direct Preference Optimization(直接嗜好最適化を使用した拡散モデルの調整)」として論文化された技法です。

    https://huggingface.co/mhdang/dpo-sdxl-text2image-v1

    https://huggingface.co/RunDiffusion/Juggernaut-XL-v9

    興味深い Sakana AI の HuggingFace

    学術・文化的な古典日本文化の貢献の横で、HuggingFaceには「Magicoder」といった小サイズのLLMも公開されています。

    https://huggingface.co/SakanaAI/Meta-Llama-3-8B-Instruct-Magicoder-185k-lr_2e-5-minlr_4e-6_GB_64_1epoch-iter_0002912/tree/main

    今後も様々な先端技術の公開が発信されると想像します。

    Originally published at https://note.com on July 22, 2024.

  • Omostで画像生成を細かく制御しよう(2) GPT-4o でCanvasを Stable Diffusion 向けに最適化する

    Omost」は大規模言語モデル(LLM)のコーディング能力を画像生成に変換するオープンソースプロジェクトです。ControlNetやStable Diffusion WebUI Forge、Foocusの開発者として著名なlllyasviel氏が中心に開発しています。
    そもそも「Omostって何」という方は前回の記事をご参照ください。

    ✨️本記事は Nobuyuki Kobayashi @nyaa_toraneko さんにご寄稿いただいた記事をベースに編集部でリライトしております。

    Omostが生成するCanvasとは

    Canvasは生成される画像に描かれるべき要素やモチーフを定義したオブジェクトです。
    その構造は、大きく分けて2つのブロックから構成されています。

    1.グローバル描写

    まずは、シーン全体のテーマや雰囲気を設定するブロックです。これをグローバル描写と呼びます。グローバル描写では、以下の情報を設定します

    • description: シーン全体の簡単な説明です。例えば、「魔法の生き物が住む鮮やかなファンタジーの世界」などです。
    • detailed_descriptions: シーンに関するもう少し詳細な説明をリストで提供します。例えば、「明るくカラフルな環境」、「空気中に漂う神秘的な輝き」などです。
    • tags: シーンに関連するキーワードを指定します。例えば、「ファンタジー」、「魔法」、「自然」などです。
    • HTML_web_color_name: シーンの主な色をHTMLカラー名で指定します。例えば、「スカイブルー」などです。

    2.ローカル描写

    次に、キャンバス上の特定の部分について詳細を設定するブロックです。これをローカル描写と呼びます。ローカル描写では、以下の情報を設定します

    • location: 描写される部分の位置です。例えば、「中央」などです。
    • offset: オフセットの有無です。例えば、「オフセットなし」などです。
    • area: 描写される部分の面積です。例えば、「大きな四角いエリア」などです。
    • distance_to_viewer: 視聴者からの距離です。例えば、「1.0ユニット」などです。
    • description: 描写される部分の簡単な説明です。例えば、「流れるようなローブをまとった威厳のある魔法使い」などです。
    • detailed_descriptions: 描写される部分に関するもう少し詳細な説明をリストで提供します。例えば、「星柄のマントを着ている」、「光る杖を持っている」、「長い白髭」などです。
    • tags: 描写される部分に関連するキーワードを指定します。例えば、「魔法使い」、「魔法」、「キャラクター」などです。
    • atmosphere: 描写される部分の雰囲気です。例えば、「神秘的」などです。
    • style: 描写される部分のスタイルです。例えば、「ファンタジー」などです。
    • quality_meta: 描写の品質に関するメタデータです。例えば、「高詳細」などです。
    • HTML_web_color_name: 描写される部分の主な色をHTMLカラー名で指定します。例えば、「紫」などです。

    例えば、実際にCanvasを用いてStable Diffusionで生成したあるイラストでは、以下のようにCanvasにローカル描写が指定がされています。

    画像

    このように、イラスト全体の相対的な位置におおよそどんなモチーフが配置されるか指定することによって、イラスト全体のレイアウトができあがるということです。

    ただ生成されたCanvasですが、読みやすく詳細な指定なのはいいのですが、とにかく長い。これをそのまま Stable Diffusion のポジティブプロンプトにコピペして、絵を出すこともできますが、ちょっとこのままでは扱いにくいのも事実です。

    そこでCanvasの要素をなるべく残しながら、指定を最適化していきましょう。
    筆者の場合、ここからはOpenAI社の GPT-4o上 でMy GPTsを設計し、「Omost Converter」というチャットボットを作りました。

    画像

    Stable Diffusion向けにCanvasの最適化をChatGPT 4oで行う

    ここでは、Canvasの最適化の手順を紹介します。
    興味がある方は、自分自身でもOmost Converterを作ってみるといいでしょう。

    1. Canvasの記述よりフルプロンプトを作成する

    まず、Canvasの情報を元に、グローバル描写と各ローカル描写を収集したフルプロンプトを作成します。以下のようなフォーマットで作成します。

    # グローバル描写
    “{description} with elements of {detailed_descriptions}. The scene has a {tags} feel, colored primarily in {HTML_web_color_name}.”

    # 各ローカル描写
    “In the {location}, there is a {description}. It is {offset} and occupies {area}. It is {distance_to_viewer} units away from the viewer. Detailed features include {detailed_descriptions}. The atmosphere is {atmosphere}, and the style is {style}, colored in {HTML_web_color_name}.”

    この段階でCanvasの情報は相当圧縮されますので、ChatGPT 4oでしたら、DALL-E 3で絵を生成することも可能ですが、まだまだ無駄が多いようですのでさらに最適化を進めましょう。

    2. フルプロンプトを最適化する

    続いてフルプロンプトを最適化します。最適化の目的は、プロンプトを短く、わかりやすくすることで、Stable Diffusionが生成する画像の品質を向上させることです。以下のステップに従って、プロンプトを最適化しましょう。

    手順 1: 不要な情報を削除

    プロンプトから冗長な情報や重複した情報を削除します。例えば、同じ意味の説明が繰り返されている場合、それを一度だけ記述するようにします。

    手順 2: 簡潔な言葉を選ぶ

    長いフレーズや文を、同じ意味を持つより短い言葉やフレーズに置き換えます。たとえば、「長い白髭を持つ魔法使い」ではなく、「白髭の魔法使い」といった具合です。

    手順 3: 主要なキーワードを強調

    プロンプトの主要なキーワードやフレーズを強調し、重要でない詳細を省略します。これにより、AIが重要な要素に焦点を合わせやすくなります。

    手順 4: 一貫したスタイルとトーンを維持

    プロンプト全体で一貫したスタイルとトーンを維持します。これは、読者がプロンプトを理解しやすくし、AIが意図を正確に把握するのに役立ちます。

    手順 5: 最適化されたプロンプトの例

    ここで、具体的な例を使って、最適化されたプロンプトを作成します。

    元のフルプロンプト

    # Global Description
    “魔法の生き物が住む鮮やかなファンタジーの世界 with elements of 明るくカラフルな環境, 空気中に漂う神秘的な輝き, 幻想的な雰囲気. The scene has a ファンタジー, 魔法, 自然 feel, colored primarily in skyblue.”

    # Local Descriptions
    “In the 中央, there is a 流れるようなローブをまとった威厳のある魔法使い. It is オフセットなし and occupies 大きな四角いエリア. It is 1.0 units away from the viewer. Detailed features include 星柄のマントを着ている, 光る杖を持っている, 長い白髭. The atmosphere is 神秘的, and the style is ファンタジー, colored in purple.”

    最適化されたプロンプト

    # Global Description
    “カラフルな魔法の世界, 明るい環境, 空気中に神秘的な輝き, 幻想的な雰囲気. ファンタジー, 魔法, 自然, スカイブルー.”

    # Local Descriptions
    “中央に星柄のマントと光る杖を持つ白髭の魔法使い. オフセットなし, 大きなエリア, 1.0ユニット距離. 神秘的な雰囲気, ファンタジースタイル, 紫色.”

    手順 6: トークンの数を確認

    最適化された各プロンプトが約75トークン以内であることを確認します。これは、AIがプロンプトを効果的に処理できるようにするためです。

    最適化されたプロンプトは、元のプロンプトに比べて短く、明確で、重要な情報に焦点を当てています。これにより、Stable Diffusionがより正確で魅力的な画像を生成できるようになります。

    またこの段階で、DALL-E 3に最適化されたプロンプトを試しに描かせてみてもよいでしょう。先にOmostで生成した画像と同様のモチーフの画像が生成されていれば成功です。

    これらの最適化を実行することで、生成したいイラストのプロンプトは以下のようになりました。

    A curious yet anxious girl with white hair floats in a dark, surreal alternate dimension, reaching out to a glowing orb through an open door. She is dressed as a bunny girl, with her white hair flowing around her, adding motion and wonder. Her expression mixes curiosity and anxiety, reflecting uncertainty about the future. The central focus is on her dynamic posture. The dimension features a tilted horizon and floating doors, creating a chaotic and disordered feel. The open door, made of otherworldly material, emits light that contrasts sharply with the dark space, enhancing the mystery. The glowing orb, symbolizing a wonderful future, emits radiant light, creating hope and anticipation. The scene is designed in a 16:9 aspect ratio, with detailed textures and light effects. The atmosphere is a mix of curiosity, anxiety, wonder, and trepidation, rendered in high-quality with a focus on detailed expressions and flowing hair.

    好奇心旺盛でありながら不安げな白い髪の少女が、暗く超現実的な異次元に浮かび、開いたドアから光り輝くオーブに手を伸ばしています。彼女はバニーガールの格好をしており、白い髪が周りに流れ、動きと驚きを加えています。彼女の表情は好奇心と不安が入り混じり、未来への不安を反映しています。中心は彼女のダイナミックな姿勢。次元は、傾いた地平線と浮遊するドアが特徴で、混沌とした無秩序な雰囲気を醸し出しています。別世界のような素材でできた開いた扉は光を放ち、暗い空間とのコントラストを際立たせ、神秘性を高めています。素晴らしい未来を象徴する光り輝くオーブは、希望と期待を生み出します。このシーンは16:9のアスペクト比でデザインされ、詳細なテクスチャと光のエフェクトが施されています。好奇心、不安、驚き、怯えが入り混じった雰囲気を、細かい表情や流れる髪を中心にハイクオリティで表現しています。

    このプロンプトをDALL-E 3で出力させてやると、以下のようになりました。なかなかいいですね。

    画像
    画像

    スタイルは違いますが、Omostで生成した画像と要素も一致しています。
    加えて今回は、空間に浮いているドアもバッチリです。ただドアを沢山画面内に配置すると、当然キャラも小さくなってしまうのが難しいところですね。こういうところは検討材料にしておきましょう。

    Stable Diffusionで最適化されたプロンプトを実行する

    最適化されたプロンプトからどんな絵が出るか、DALL-E 3で確認できたので、次はStable Diffusionでテストしてみましょう。

    Stable Diffusionでは、様々なCheckpoint(モデル)が選べますが、どちらかと言えば文章で構成されているプロンプトから画像を生成するには、SDXL系のモデルを使うことをお薦めします。今回は、AnimagineXL v3.1を使用しました。

    まずポジティブプロンプトに最適化されたプロンプトをペーストし、ネガティブプロンプトには、皆さんがよく使うようなものを入れて、生成しましょう。

    画像

    今回は1回目から、かなり近いテーマの絵が生成されました。これでOmostのプロンプトがStable Diffusionでも使えることがわかったと思います。

    何回か試してみると、キャラが大きく表示されるシードが見つかりました。
    これでシード次第で、キャラを大きく表現できることがわかります。

    画像

    ここからは、プロンプトに自由に魔改造を施していきましょう。


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

    Originally published at https://note.com on July 20, 2024.

  • 【初心者向け!】Runway Gen-3 Alphaでプロンプト自動生成して簡単動画制作

    【初心者向け!】Runway Gen-3 Alphaでプロンプト自動生成して簡単動画制作

    AICU mediaライター・ AIクリエイターのぽんず(@ponzponz15)です!
    今回紹介する記事は『プロンプトジェネレーター』というものを使用して、私が約一時間で作成したビデオ です

    最新の動画生成AIの『RunwayGen-3 Alpha』『プロンプトジェネレーター』を使用すれば、誰でも簡単に、映画のようなハイクオリティ動画を制作すことができます
    本来であれば、一ヶ月近くかけてクレジットを消費しながら動画生成のコツを掴むものですが、これがあればわずか数日で、初心者でもつかいこなすことができます。

    画像
    Runway Gen-3 でめっちゃ動画を作りまくっているイメージ

    [AICUが開発]初級者:広告企画から動画制作までのプロセス

    1. プロ級の映像表現が誰でも簡単に

    私ぽんずは、Runway Gen-3がリリースされたその日に95ドルを課金して、毎日200回以上動画生成している動画生成オタクですので、十分なご説明ができます。お任せください。
    最近は、このGen-3に夢中で新しい動画を沢山生成しています。そんな私が自信を持っておすすめするのが、今回のテーマである「プロンプト自動生成ジェネレーター」です。初心者の方はGPTsを使うことをお勧めしますが、そんなの知らないよって方でもこれを使用すれば問題ありません。

    2. 完全初心者でも大丈夫!準備するもの

    あなたも今日から映像クリエイターの仲間入りです。
    必要なのは以下の3つだけです。

    1. Runway Gen-3 Alphaアカウント: https://www.runwayml.com/ からアカウントを作成できます。課金が必要です。
    2. ChatGPTなどのAIサービス: https://chat.openai.com/ など、無料で使えるAIサービスを利用しましょう。(GeminiClaudeなど)
    3. ちょっとの勇気: 難しいことは何もありません。あとは、この記事を参考にしていただき、どんどんチャレンジしていくだけです!

    3. プロンプトって? – 映像表現のためのプロンプトとは

    プロンプトとは、AIへの指示のこと。例えば、これまでの画像生成AIでは「美しい女性」や「犬」と書くだけで、クオリティの高い画像が生成できましたよね。

    しかし、Runway Gen-3 Alphaでは、5秒から10秒間の動画が生成されるため、それだけでは不十分になります。それは動画が始まってからの1秒にもみたない部分の指示でしかありません。もちろん、それだけでも十分すごいのですが、使いこなすためには「カメラの動き」や「雰囲気」といった映像表現を伝えるための指示が必要になってきます。

    例えば、「夕焼けの海」というプロンプトだけでは、ただ夕焼けの海が映っているだけの動画になってしまいます。

    ①夕焼けの海 (AからBに移行)

    「夕焼けの海に沈む太陽をすごい速さですすむカメラで捉え、海の中にもぐっていく」といったように、具体的な指示が必要になります。

    4. なぜプロンプトジェネレーターが必要なの? – 動画のためのプロンプトは難しい

    動画のためのプロンプトには、カメラワークや専門用語など、少し難しい知識が必要になります。

    例えば、公式ガイドに記載されているのがこちらです。
    [camera movement]: [establishing scene]. [additional details]
    こういった構造でプロンプトを書くことが推奨されています。

    「カメラワーク」や「専門用語」は、最初は戸惑ってしまうかもしれません。

    でも、大丈夫。
    専門知識がなくても、誰でも簡単に、効果的なプロンプトを作成できます。

    画像

    Runwayの公式ガイドで学ぶのが最適です。

    https://help.runwayml.com/hc/en-us/articles/30586818553107-Gen-3-Alpha-Prompting-Guide

    このジェネレーターは、Runway公式が推奨するプロンプト構造や、カメラワークなどの知識を組み込んでいます。このジェネレーターは、あなたの動画生成の補助輪のようなもの。

    補助輪を付けて、自転車に乗る練習をするように、このジェネレーターを使って、動画生成AIに必要な用語を徐々に覚えていきましょう。
    ゆくゆくは覚えた方がいいこともありますしね。

    本来であれば1ヶ月近くかけてクレジットを消費しながら動画生成のコツを掴むものですが、これがあればわずか数日でつかいこなすようになります。

    画像

    [AICU] クリスマス動画コンテスト実施中

    5. プロンプトジェネレーターの使い方 – ステップバイステップ解説

    ステップ1:AIサービスにアクセス

    画像

    Google AI Studio

    https://ai.google.dev/aistudio?hl=ja

    ChatGPTやGeminiなどのAIサービスを開きましょう。まだアカウントをお持ちでない場合は、無料で作成することができます。

    ステップ2:プロンプトジェネレーターのソースコードをコピー

    このブログ最下部のソースコードをコピーします。

    ステップ3:ChatGPTやGeminiに貼り付けて実行

    コピーしたソースコードをChatGPTやGeminiに貼り付け、実行ボタンをおします。

    ステップ4:希望する動画の内容を入力

    その後、あなたが生成したい動画のプロンプトを作成します。日本語でも問題ありませんが、英語の方が精度が高いかもしれません。
    プロンプトには、カメラワーク、シーン設定、追加の詳細など、細かく項目が分かれていますので、迷わずに入力できます。現状、Gen-3 Alphaには500字しか入力できませんので、全部は入れられないかもしれませんが、あまり気にせず問題ありません。

    ステップ5:完成したプロンプトをGen-3 Alphaに入力

    画像

    生成されたプロンプトをコピーし、Runway Gen-3 Alphaに入力して、動画を生成しましょう。5秒か10秒を選択しGenerateボタンを押せば生成が始まります。

    その際、秒数によってそれぞれ消費するクレジットが違いますのでご注意ください。

    https://ja.aicu.ai/runway-gen-3-alpha

    6. 実際に作られた動画例

    例1:サーフィン
    入力例『サーフィンからシームレスにスケボーしてる感じにして』

    ④サーフィン (シームレスにAからBに)

    例2:黒い玉
    入力例『荒野の黒い球をシームレスに別の形態に変化させて』

    Gen-3 Alphaを使いたいけど迷っている人はこの『比較動画』見て頂くと良いかもしれません。
    画像のプロンプトと違って、動きや変化を指示しないと全然動かないので課金前に知っておいたらクレジット節約になります。もう使ってる方も1000回以上生成してわかったコツをnote等に纏めていれば「バズる」ためのヒントになるはずです👌

    https://ja.aicu.ai/alpaca-making

    例3:ゴッホの世界
    『ゴッホの空の街をFPVで進んでいって』
    まるでゴッホが描いたパリの街並みがあったら、行ってみたいと思いませんか?
    Gen-3 Alphaが描いたゴッホの筆使いが息づく世界を探索しましょう〜🍽️

     例4:タイタニック風
    『沈んだ船の外観、船内に入ったら当時の豪華絢爛な風景が広がっている』

    これまでの動画生成AIとは次元が違うのがGen-3 Alphaが特別な技術や才能がなくとも、自分のアイデアを映画級に仕上げることができるためです。

    必要なのは、あなたの想像力。

    7. まとめ

    プロンプトジェネレーターを使えば、動画制作の知識がなくても、AIと会話しながら誰でも簡単に高品質な動画を制作できます。そして、これを使いながら映像技術に関わる知識を学び、さらに素晴らしい動画を生成していくことができます。ぜひ活用して、あなたの創造力を爆発させてください!

    プロンプトは(みんなが無料で使えてしまうとオリジナリティが薄れてしまうので)メンバーシップ向け有料配布といたしますが、こちらのポストをシェアしていただければ無償で提供いたします!

    素敵な作品ができたらメンバーシップ掲示板で共有してくださいね!

    https://note.com/aicu/membership/boards/61ab0aa9374e/posts/1aa202bf314a

    作例:プロンプトジェネレーターのソースコード

    続きはこちらです

    https://note.com/aicu/n/n304ded1ec059