マガジンのカバー画像

StableDiffusion関連記事

71
これまでに書いたStable Diffusionを使った画像生成に関する記事をまとめます。
運営しているクリエイター

記事一覧

CLIP Text Deprojectorを使って画像生成してみる ~MLPの利用~

しばらく更新が滞っていましたが、再開します。 前回、大幅に簡略化した新しいアーキテクチャを提案しました。今回は、モデル中の線形変換をMLPに置き換えて、性能が向上するかを検証します。 前回の記事 他のStable Diffusionの関連記事 Layered Diffusion Pipelineを使うためのリンク集 ライブラリの入手先と使用法(英語) : Githubリポジトリ 日本語での使用方法の解説 : Noteの記事 前回のアーキテクチャ前回導入したアーキ

CLIP Text Deprojectorを使って画像生成してみる ~モデルの大幅な簡略化~

前回まで、LSTMベースのモデルのアーキテクチャを検討し、最後に訓練データの変更を試しました。今回は、そこで得た知見から、さらにモデルアーキテクチャを簡略化してみます。 前回の記事 他のStable Diffusionの関連記事 Layered Diffusion Pipelineを使うためのリンク集 ライブラリの入手先と使用法(英語) : Githubリポジトリ 日本語での使用方法の解説 : Noteの記事 背景これまでに、Vicinity-Transforme

CLIP Text Deprojectorを使って画像生成してみる ~最終正規化層を固定しない~

前回は、2つのモデルを繋ぎ合わせて画像生成してみました。本記事では視点を変え、最終正規化層の固定を解除して学習してみました。 前回の記事 他のStable Diffusionの関連記事 Layered Diffusion Pipelineを使うためのリンク集 ライブラリの入手先と使用法(英語) : Githubリポジトリ 日本語での使用方法の解説 : Noteの記事 最終正規化層の固定解除下の記事で触れているように、現在のモデルの学習では、最終正規化層は固定して学

CLIP Text Deprojectorを使って画像生成してみる ~EOS前とEOS後の組み合わせ~

前回は、訓練データの一部を学習に使わない方法を試しましたが、今回は後から生成した状態を繋ぎ合わせる実験を試みます。 前回の記事 他のStable Diffusionの関連記事 Layered Diffusion Pipelineを使うためのリンク集 ライブラリの入手先と使用法(英語) : Githubリポジトリ 日本語での使用方法の解説 : Noteの記事 動機と手法前回の記事で試したのは、EOSトークン位置より前の状態を生成するモデルと、EOSトークン位置より後

CLIP Text Deprojectorを使って画像生成してみる ~訓練データの一部を無視~

前回は、それまでに作ったLSTMモデルのバリエーションの性能比較をしましたが、今回は、訓練データの与え方についての実験を行います。 前回の記事 他のStable Diffusionの関連記事 Layered Diffusion Pipelineを使うためのリンク集 ライブラリの入手先と使用法(英語) : Githubリポジトリ 日本語での使用方法の解説 : Noteの記事 動機訓練データの与え方を変更するアイデアは、最近の一連の投稿で分析した、テキストエンコーダー

Stable DiffusionでText Encoderの出力を短く切ってみる(補足)

先日、Stable DiffusionでText Encoderの出力を短く切って画像生成する実験をしましたが、その中に、設定を微調整してやり直す方がよいものがあったため、再実験した結果を補足します。 先日の記事はこちら。 他のStable Diffusionの関連記事 前回の実験の問題点と修正方法前回の実験で「マスクをなしで、後ろから50トークン目以降を使用」という方法で画像生成したところ、ノイズのみの画像が生成されましたが、最初のトークン(SOSトークン)位置の状態

CLIP Text Deprojectorを使って画像生成してみる ~LSTMモデルの比較~

ここで、一度、これまでに作ったLSTMモデルのバリエーションの性能比較を行ってみようと思います。 前回の記事 他のStable Diffusionの関連記事 Layered Diffusion Pipelineを使うためのリンク集 ライブラリの入手先と使用法(英語) : Githubリポジトリ 日本語での使用方法の解説 : Noteの記事 方針モデルを比較するにあたって、モデルのサイズで大まかに分類して比較します。分類の基準は、モデルファイルのサイズを元にして、次

CLIP Text Deprojectorを使って画像生成してみる ~MLPを適用してみる~

前回まで、内部次元数とレイヤー数を変化させてきましたが、今回は、MLPレイヤーを追加して比較してみます。 前回の記事 他のStable Diffusionの関連記事 Layered Diffusion Pipelineを使うためのリンク集 ライブラリの入手先と使用法(英語) : Githubリポジトリ 日本語での使用方法の解説 : Noteの記事 モデルアーキテクチャLSTMモデルを、TransformerのようにMLPネットワークを追加して拡張する方法として、以

Stable DiffusionでText Encoderの出力を短く切ってみる

先日、Text Encoderの出力の順序を変える実験を行って、順序がStable Diffusionの生成画像に影響を与えないことを確認しました。 その後、さらにコードを読み込んで、Text Encoderの出力の長さが変わっても、画像生成モデル自体は正常に動作するはずだと気づきました。 また、少なくともdiffusersのUNetの実装には、Text Encoderの出力にマスクを付けて渡すことができるようになっていて、Text Encoderの出力のどのトークン位置

CLIP Text Deprojectorを使って画像生成してみる ~レイヤー数を増やす~

前回まで、LSTMの内部次元数を増やす実験をしてきましたが、今回は内部次元数を一定にして、LSTMを含むネットワークを多層化して比較します。 前回の記事 他のStable Diffusionの関連記事 Layered Diffusion Pipelineを使うためのリンク集 ライブラリの入手先と使用法(英語) : Githubリポジトリ 日本語での使用方法の解説 : Noteの記事 ネットワークの多層化今回、ネットワークを多層化するにあたっては、LSTMモジュール

Stable DiffusionでText Encoderの出力の順序を変えてみる

Diffusers版のStable Diffusion (v1.5)のコードを読んでいて、ふと、次のことに気が付きました。 SD v1.5では、Text Encoderの出力は最終隠れ状態全体をそのまま加工せずにUNetの各ブロックのCross Attentionに入力されています。その際、マスクも位置エンコーディングなども付加されている様子がないため、Attentionの性質からおそらく順不同ではないかと思いました。 そこで、簡単な実験を行ってみました。 他のStab

CLIP Text Deprojectorを使って画像生成してみる ~LSTMの入力形式の変更~

前回は、LSTMの内部次元数を変えましたが、今回は、前々回に触れたLSTMの入力形式の変更について実験しました。 前回の記事 他のStable Diffusionの関連記事 Layered Diffusion Pipelineを使うためのリンク集 ライブラリの入手先と使用法(英語) : Githubリポジトリ 日本語での使用方法の解説 : Noteの記事 モデルアーキテクチャ今回試すモデルアーキテクチャは、前々回の記事で入力の情報の減衰を防ぐ方法として提案し、実験

CLIP Text Deprojectorを使って画像生成してみる ~LSTMの次元数を増やす~

前回、LSTMの次元数を増やす準備をしたので、今回は実際に次元数を増やして実験します。 前回の記事 他のStable Diffusionの関連記事 Layered Diffusion Pipelineを使うためのリンク集 ライブラリの入手先と使用法(英語) : Githubリポジトリ 日本語での使用方法の解説 : Noteの記事 実験の設定今回実験に使うモデルは、前回の記事の後半で実験した3つのアーキテクチャになります。 入力をコンテキストに加算。線形次元変換を

[年賀状に使える] StableDiffusionで飾り文字を作る

年賀状作成の時期はやや既に逸してしまったような気がしますが、以前、twitterに投稿した飾り文字の作り方を記事に起こしていなかったのを思い出したので、この機会に説明しておこうと思いました。 今回紹介するのは、上のような個性的な飾り文字の作り方です。 文字の下書きの作成まずは、文字の下書きを作ります。適当なペイントソフトを立ち上げて、ロゴの文字を配置した白黒画像を作ります。ここでは、mspaintを使います。 Windows-Rで「ファイル名を指定して実行」を立ち上げ、