画像を一文で生成、FlagAI で使用 (ページ操作コードあり) | 機械学習

目次

序文

プロジェクト構造

ページインタラクションの調整

要約する


序文

最近、Text-To-Image が非常に話題になっていますが、さらに Text-To-Video の話題も盛り上がりを見せています。私は最近、FlagAI というオープン ソース プロジェクトを見ました。これは、より効果的だと思うプロジェクトの 1 つです。インストールは簡単で、中国語と英語をサポートしていてとてもいいです。

プロジェクトのオープン ソース アドレス: github アドレス

以下は、プロジェクトのデモで実行した効果です。ご覧ください。

入力したテキスト:

アニメの女の子としてのナタリー・ポートマンのアニメ ポートレート by stanley artgerm lau, wlop, rossdraws, james jean, andrei riabovitchev, marc simonetti, and sakimichan, artstation のトレンド

訳すと、乱雑な名前、アニメの肖像画の女の子、おそらくこれが好きです。

プロジェクト構造

ReadMe では、作成者はすぐに使用できる中国語と英語の事前トレーニング モデルを提供するだけではありません。

トークナイザーとプレディクターの操作説明書もあります。

まず、作成者から提供されたサンプル コードを開きます。

使用方法は非常に簡単です. 画像を生成する方法は: predictor.predict_generate_images. コードは非常にシンプルでモバイルに見えます. 著者によるインストール手順は次のとおりです。

では、サンプル コードをページ インタラクティブ モードに変更して、簡単に使用できるようにします。

ページインタラクションの調整

コードは以下のように表示されます:

import torch
from flagai.auto_model.auto_loader import AutoLoader
from flagai.model.predictor.predictor import Predictor
from PIL import Image
import gradio as gr
import os
import shutil

# Initialize
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

loader = AutoLoader(task_name="text2img",  # contrastive learning
                    model_name="AltDiffusion",
                    model_dir="./checkpoints")

model = loader.get_model()
model.eval()
model.to(device)
predictor = Predictor(model)


def handle(text: str):
    if not os.path.isdir("./AltDiffusionOutputs"):
        os.mkdir("./AltDiffusionOutputs")
    else:
        shutil.rmtree("./AltDiffusionOutputs")
    predictor.predict_generate_images(text)
    imgs = []
    for s in os.listdir("./AltDiffusionOutputs/samples"):
        imgs.append(Image.open(os.path.join("./AltDiffusionOutputs/samples", s)))
    return imgs


if __name__ == '__main__':
    demo = gr.Interface(fn=handle, inputs=gr.Text(),
                        outputs=[gr.Image(type="pil"), gr.Image(type="pil"),
                                 gr.Image(type="pil"), gr.Image(type="pil")])
    demo.launch(server_name="0.0.0.0", server_port=12003)

プロジェクトで必要なインストール内容に加えて、gradio を追加でインストールする必要があります。

インストールコマンドは次のとおりです。

pip install built -i https://pypi.douban.com/simple

最初の実行では、現在のディレクトリにチェックポイント フォルダーが作成され、事前トレーニング済みのモデルがダウンロードされますが、これには長い時間がかかります。

2回目の実行後の結果は次のとおりです

******************** text2img altdiffusion
LatentDiffusion: eps 予測モードで実行中
DiffusionWrapper には 859.52 M パラメータがあります。
512 の in_channels を持つタイプ 'vanilla' に注意を払う
形状 (1, 4, 64, 64) の z で作業 = 16384 次元。
512 の in_channels でタイプ「vanilla」に注目する
******************** txt_img_matching altclip-xlmr-l
モデル ファイル:['config.json', 'pytorch_model.bin '、'tokenizer.json'、'tokenizer_config.json'、'preprocessor_config.json'、'special_tokens_map.json']
./checkpoints/AltCLIP-XLMR-L
グローバル ステップ: 143310
ローカル URL で実行: http://0.0. 0.0:12003

公開リンクを作成するには、launch() で share=True を設定します。

ブラウザーでページを開きます: http://localhost:12003

画像として生成する必要があるテキストを入力し、[送信] をクリックします。

中国語で試してみましょう. 今回の入力は:赤いカエデの葉でいっぱいのカエデの木に囲まれたサイケデリックな森の中にある寺院です.

実行の効果を見てみましょう

demo メソッドはデフォルトで 4 つの画像を生成します。一緒に見てみましょう。

一見、写真かと思いましたが、操作プロセスを簡略化し、生成された効果を見てみましょう。

テキスト: 天使の羽を持つアニメの女の子

テキスト: 中国絵画スタイル

要約する

個人的には、プロジェクトの全体的な効果は良好で、英語はまだ中国語よりわずかに優れています。自分で試すことができます。

最近忙しくて記事が書けません。WeChat で多くの人から連絡があり、この記事とあの記事のインストールと展開について尋ねられ、1 つずつ返信する時間はあまりありませんでした。この記事は私が収入を得るためではなく、主に皆さんと共有するために書いたものです。

共有:

        曲がると全体ができ、曲がるとまっすぐになり、くぼみがいっぱいになり、くぼみがそれを新しくし、少しでも得をし、多すぎると混乱する。聖人が抱く世界の風格です。自分を見なければ明確になり、自分を見なければ見せ、自分を切り捨てなければ功績を残す。夫は戦わないので、世界は彼と競争することはできません。古代のいわゆる音楽が完成しました、それは嘘ですか!誠意を持って戻ってきてください。—— 「タオ・テ・チン」

おすすめ

転載: blog.csdn.net/zhiweihongyan1/article/details/127908222