めぐチャンネル

AItuberめぐとそのお友達や、関連するAI技術の記事を中心に書いています。

めぐチャンネル

AItuberめぐとそのお友達や、関連するAI技術の記事を中心に書いています。

最近の記事

簡単AI対話ミニアプリ ソースコード公開

前回のLine風アプリを改良して、二人のキャラクタの定義付け、選択会話、そして二人のAIキャラ同士の対話とそこにユーザーが割り込める機能を追加してミニアプリ完成です。詳細はここでは記述しません。ソースコードのみ公開です。。 FastAPI from fastapi import FastAPI, WebSocket, WebSocketDisconnectfrom fastapi.responses import HTMLResponsefrom openai impor

    • かんたんLINE風チャットアプリ

      LLMにロールを与えてキャラクタ化し、会話できるかんたんアプリです。 LLMはOpenAIも使えますし、ローカルでllama.cpp のようなOpenAI互換APIを持つ環境で、各自のGPUのVRAMの大きさに合わせたモデルを動かしておけば大丈夫。 WEBアプリなんですけど、会話はLINE風のデザインでLLMからの返事はStreamingされ、会話の進行と同時にスクロールします。目新しいところはありませんが、シンプルなコードなので、アプリのベースに利用していただけたらと

      • レガシ-AIシリーズ(3) Anime2Sketch アニメ画を線画に変換

        レガシ-AIシリーズ(2)はアニメ画をスケッチ(線画)に変換するAIです。今では同様の機能が画像生成AIのGUIに組み込まれてしまいましたが、今回は単独で動くAIとして、コードを書き直しました。 参照元は以下の通り。こちらにはデモもあります。 環境設定仮想環境作成 python -m venv a2s source a2s/bin/activate PyTorchのインストール(CPU版) pip3 install torch torchvision torchau

        • pillow(PIL)で絵文字混じりの文章を画像へ書き込む便利な方法

          画像に文字を書き込む時にPillowを使うと便利です。様々な例も紹介されています。筆者はAIキャラクタを動かしながら会話(チャット)を文字で画像に書き込みながら動画フレームを作成しています。このところの高性能なLLMの登場でLLMの出力文に絵文字が多数含まれるようになりました。絵文字はPillowで扱えないためにどうやって表示させようか色々と模索していました。手法はいくつかあるのですが、最もスマートなやり方はimagetext-py を使うことではないかと思います。 im

        簡単AI対話ミニアプリ ソースコード公開

          Llama3.1をローカルで動かしてみた。完全版

          ローカルで動かすこともできる最新のオープンソースLLMを動かしました。 モデルは以下の Llama-3.1-8B-Instruct-Q4_K_M.gguf です。動かすことはできましたが、普通じゃない動きです。以下レポート。 Metaのサンプルコードを動かす。これが動かない。オリジナルのコードはモデルを自動ダウンロードしてくれないし、CLIでも落とせない。なぜなんでしょうね。他のモデルだと簡単に落とせるのですけど。諦めてggufを試します。筆者は常々LLMモデルはgguf

          Llama3.1をローカルで動かしてみた。完全版

          いまさら、llama.cppのOpenAIサーバとクライアントアプリ

          とても単純なWebアプリです。OpenAI互換サーバがあれば動きます。もちろんOpenAIでも使えるはず。今回は最近のローカルllmの能力が向上したことを受け、Webアプリでllmの長い回答の表示に便利なストリーミング機能を実装し、ロール指定や記憶機能ももたせています。 ① llm回答はストリーミング ② llmに対してroleを任意に指定可能 ③ 記憶ターン数を指定可能 ④ llmの回答字の名前を指定 ⑤ FastAPIと配下のHTMLファイルのみで実現しています。 サー

          いまさら、llama.cppのOpenAIサーバとクライアントアプリ

          レガシーAIシリーズ(2) 簡単アニメキャラ抜き出しアプリ

          画像中のアニメのキャラクタだけを抜き出したいことってありますよね。Illustratorなどの画像処理系アプリを使えばそれなりに出来ますし、WebUIなど、StableDiffusionで生成する時に背景削除も出来るようになっています。そのような中でキャラクタを取り出して画像の中央に配置し、ついでにアップスケールで自在に大きさを変えたり、キャンパスサイズを変更してキャラクタの一部、例えば顔やポートレート、上半身等の画像を手軽に欲しくなることはありませんか? このアプリはAni

          レガシーAIシリーズ(2) 簡単アニメキャラ抜き出しアプリ

          猫型ロボットの構造とこれから

          2018~2019年ごろ、IOTが大きなトレンドになると話題になっていました。当時、センサーの制御も色々と手掛けていた関係で、モータあればロボットもできるんじゃないかと数名で手作りしたロボットです。当時は江戸カラクリのようなことができないの?なんて考えてて、ご挨拶やお茶くみもできるよね、じゃあ何がいいいの?ということでずばり「招き猫」を作ろう!となった次第です。 AIは出始めていた 画像から人を検出したり、顔から感情や年齢などを判断するAIは開発されていました。音声合成

          猫型ロボットの構造とこれから

          レガシーAIシリーズ(1) 高精度アニメ顔検出

          はじめに 人間の顔の検出は様々な方法で、実装されています。これらの実装を用いてアニメ顔の検出を行うと、検出精度が極端に悪化します。アニメ顔の検出は長らく、Nagadomi氏による lbpcascade_animeface が利用されていました。 ただ、このソフトエアも検出精度については決して高いわけではなく、最近の画風のアニメ顔では50%以下の場合もあります。そこで私達は最近のアニメ顔を用いて深層学習を行い、90%を超える高精度なアニメ顔検出AIを開発しました。学習データ

          レガシーAIシリーズ(1) 高精度アニメ顔検出

          rinnaのllama-3-youko-8bを試す。

          やったこと とりあえず、cliでモデルロード後、続けて入力と出力が出てくるコード。 cudaが使える環境とPyTorchがインストールされていればtransformersをインストールすれば動くはず。 GPUは16G程度必要です。 pip install transformers user: 入力でプロンプトを入力、何も入力しなければ終了します。 rinna: で応答が出力されます。 生成時間が応答後に表示されます。 コード import transformer

          rinnaのllama-3-youko-8bを試す。

          ローカルマルチモーダルを簡単に使えるAPIを公開。LLaVA-Next(旧1.6)でAPIサーバを構築

          始めにOpenAIやGoogleのAIサービスはマルチモーダル対応が当たり前のようにできます。ローカルLLMでもいくつかマルチモーダルに対応したモデルがありました。めぐチャンネルでも過去にMinigpt-4によるAPIサーバの構築を試しましたが、実用的に使えるかと言うと若干の疑問があったのも事実です。今回は1月末に公開されたLLaVA-NEXT(旧-1.6)で実用に耐えるローカルマルチモーダルLLMのAPIを独自に開発しました。LLaVAは以前から高い評価を得ていましたし、

          ローカルマルチモーダルを簡単に使えるAPIを公開。LLaVA-Next(旧1.6)でAPIサーバを構築

          Diffusers0.27.0とAnimaginXL-3.1を試す

          先週、Diffusersが0.27.0にバージョンアップしました。さらに好評のAnimaginモデルに3.1が出てきましたので試しました。0.27.0で追加された機能がありますが、まずは旧バージョンとの比較を行いました。AnimaginXLについても2.0との比較を行っています。なお、動作確認は以下の記事のDiffusersPipelineManagerとAPIサーバで行いました。 変更箇所Difuusers0.27.0へのバージョンアップ 仮想環境をクローンして27用の

          Diffusers0.27.0とAnimaginXL-3.1を試す

          1枚のアニメ顔を感情豊かに動かすための手法---ポーズデータを抽象化して自在に動かす

          詳細は別途になります。何ができるかとコードの公開です。 Talking-Head-AnimeFace-3による1枚絵からのリアルタイムな動画生成の最終版です。ポーズデータという扱いづらい配列ではなく、抽象化した指示で容易にキャラクタを動かすためのラッパーです。一つ前記事の通りにサーバを動かし、クライアント側をmultiproccesinngで並列処理することで、データ処理の各プロセスをサブプロセスに分散して高速化を行いました。 並列化されるプロセス 1)画像生成サーバ

          1枚のアニメ顔を感情豊かに動かすための手法---ポーズデータを抽象化して自在に動かす

          1枚絵からリアルタイムにアニメキャラを動かすーTalking-Head-AnimeFace3ー アップスケールで任意エリア拡大

          はじめに前回はリアルタイムアップスケールの記事でした。前回の記事と、以前に書いた一枚絵からキャラを動かすTalkingHeadAnimefaceを組み合わて、キャラの任意の部分、例えば「胸から上」、「上半身」あるいは、「首から上」のようなエリス指定をしながらリアルタイムに拡大した動きを得るとができます。TalkingHeadAnimefaceとreal-ESRGANは生成速度に差があり、またapiサーバとすることで画像の大きさによる通信のオーバーヘッドも生じます。フレームレ

          1枚絵からリアルタイムにアニメキャラを動かすーTalking-Head-AnimeFace3ー アップスケールで任意エリア拡大

          リアルタイム・アップスケール改良版

          セミリアルタイムアップスケールの記事を書きましたが、再度利用場面やAPIS仕様の見直しをしました。条件によりますがRTX4070クラスでも20fpsをクリアできるようになりました。RTX4090だと40fpsも可能です。 どんな時に必要か再検討動画のアップスケールを行うことが前提ですが、生成AIで生成した動画を拡大する用途です。例えば512x512を2倍に拡大すると1024X1024になるわけですが、よくよく考えると拡大が必要なのは全体ではなく拡大率に合わせた画像の一部の

          リアルタイム・アップスケール改良版

          一枚絵があれば動く。Talking-Head-Anime-3のインストールして、ポーズデータでスムーズに動かす サーバ編

          引き続き、後半のサーバ編です。前回の記事で作成したTalkingHeadAnimefaceクラスを利用してFastAPIによるサーバを構築します。サーバ化の最大のメリットは完全な並列処理が可能になる点です。同一PC内でも別途サーバを準備してもクライアント側は同じなので、システム構成が柔軟にできます。ただし、通信のオーバーヘッドが生じるので生成時間は多少長くなることは避けれれません。 環境は前回準備したとおりです。サーバ化にあたり、クライアントで利用するクラスを準備しました

          一枚絵があれば動く。Talking-Head-Anime-3のインストールして、ポーズデータでスムーズに動かす サーバ編