坂東市のお役立ち情報が満載!


  ホーム >> ヘッドライン >> PC修理のわたなべ

  メイン  |  簡易ヘッドライン  

ǿ
link PC修理のわたなべ


icon PC修理のわたなべ (2023-12-10 1:28:03)


現在データベースには 262 件のデータが登録されています。

JAまつり 令和5年12月9日/10日 in JA岩井 (2023-12-9 18:28:22)
sound ポッドキャスト : video/mp4

feed

はじめに

JAまつりに行ってきた。

令和5年12月9日/10日 in JA岩井

JAまつり


ChatGPT×VOICEVOX×Python ずんだもんと音声で会話したい (2023-12-9 16:58:57)
feed

はじめに

インターネットを見ていると、ChatGPTとずんだもんが音声で会話している動画を見かける時がある。

今回は、Pythonを使用して、ずんだもんと音声会話ができるプログラムを考案してみる。

ずんだもん

参考サイト

[python] ChatGPT APIを使ってレスポンスが高速な音声アシスタントを作る

[python] ChatGPT APIを使ってレスポンスが高速な音声アシスタントを作る - Qiita
ChatGPT APIを使って音声アシスタントを作ります。前回の記事 ( でも、ChatG…
qiita.com

VOICEVOXをpythonから遊ぶメモ

VOICEVOXをpythonから遊ぶメモ|おれっち
このメモを読むと ・VOICEVOXのエンジンを導入できる ・音声データを生成できる ・GPUを使って高速に処理できる 検証環境 ・Windows11 ・VRAM24GB ・ローカル(Anaconda) ・2023/6/M時点 事前準備 Anacondaを使うメモ|おれっち (note.com) VOIC...
note.com

準備

VOICEVOXをインストール

VOICEVOX | 無料のテキスト読み上げソフトウェア
無料で使える中品質なテキスト読み上げソフトウェア。商用・非商用問わず無料で、誰でも簡単にお使いいただけます。イントネーションを詳細に調整することも可能です。
voicevox.hiroshiba.jp

VOICEVOX ENGINEをインストール

VOICEVOXをpythonから遊ぶメモ|おれっち
このメモを読むと ・VOICEVOXのエンジンを導入できる ・音声データを生成できる ・GPUを使って高速に処理できる 検証環境 ・Windows11 ・VRAM24GB ・ローカル(Anaconda) ・2023/6/M時点 事前準備 Anacondaを使うメモ|おれっち (note.com) VOIC...
note.com

各自、必要なパッケージを各々インストールします。(※必要に合わせて各自インストールしてください)

  pip install requests simpleaudio
など 

プログラム(Python)

1. talk_to_chatGPT.py

※参考サイトのプログラムをまとめたプログラムとなっています。

  import speech_recognition as sr
import os
import openai
import pyttsx3
import re

import requests
import json
import time
import simpleaudio

import settings

host = "127.0.0.1"  # "localhost"でも可能だが、処理が遅くなる
port = 50021
sleep_time = 0.5    # 文節毎の間隔

def audio_query(text, speaker, max_retry):
    # 音声合成用のクエリを作成する
    query_payload = {"text": text, "speaker": speaker}
    for query_i in range(max_retry):
        r = requests.post(f"http://{host}:{port}/audio_query", 
                        params=query_payload, timeout=(10.0, 300.0))
        if r.status_code == 200:
            query_data = r.json()
            break
        time.sleep(1)
    else:
        raise ConnectionError("リトライ回数が上限に到達しました。 audio_query : ", "/", text[:30], r.text)
    return query_data
def synthesis(speaker, query_data,max_retry):
    synth_payload = {"speaker": speaker}
    for synth_i in range(max_retry):
        r = requests.post(f"http://{host}:{port}/synthesis", params=synth_payload, 
                          data=json.dumps(query_data), timeout=(10.0, 300.0))
        if r.status_code == 200:
            #音声ファイルを返す
            return r.content
        time.sleep(1)
    else:
        raise ConnectionError("音声エラー:リトライ回数が上限に到達しました。 synthesis : ", r)

def text_to_speech(texts, speaker=7, max_retry=20):
    if texts==False:
        texts="ちょっと、通信状態悪いかも?"
    texts=re.split("(?<=!|。|?)",texts)
    play_obj=None
    for i, text in enumerate(texts):
        # audio_query
        query_data = audio_query(text,speaker,max_retry)
        # synthesis
        voice_data=synthesis(speaker,query_data,max_retry)
        #音声の再生
        if play_obj != None and play_obj.is_playing():
            play_obj.wait_done()
        wave_obj=simpleaudio.WaveObject(voice_data,1,2,24000)
        if i != 0:
            time.sleep(sleep_time)
        play_obj=wave_obj.play()

##############
# 音声認識関数 #
##############
def recognize_speech():

    recognizer = sr.Recognizer()    
    # Set timeout settings.
    recognizer.dynamic_energy_threshold = False

    
    with sr.Microphone() as source:
        recognizer.adjust_for_ambient_noise(source)
    
        while(True):
            print("> >  マイクでお話しください...")
            audio = recognizer.listen(source, timeout=1000.0)

            try:
                # Google Web Speech API を使って音声をテキストに変換
                text = recognizer.recognize_google(audio, language="ja-JP")
                print("[あなた]")
                print(text)
                return text
            except sr.UnknownValueError:
                print("すみません。もう一度お話しをしてください。")
                #return ""
            except sr.RequestError as e:
                print(f"Could not request results; {e}")
                #return ""

#################################
# Pyttsx3でレスポンス内容を読み上げ #
#################################
#def text_to_speech(text):
#    # テキストを読み上げる
#    engine.say(text)
#    engine.runAndWait()

def chat(conversationHistory):
    # APIリクエストを作成する
    response = openai.ChatCompletion.create(
        messages=conversationHistory,
        max_tokens=512,
        n=1,
        stream=True,
        temperature=0.5,
        stop=None,
        presence_penalty=0.5,
        frequency_penalty=0.5,
        model="gpt-3.5-turbo"
    )

    # ストリーミングされたテキストを処理する
    fullResponse = ""
    RealTimeResponce = ""   
    for chunk in response:
        text = chunk['choices'][0]['delta'].get('content')

        if(text==None):
            pass
        else:
            fullResponse += text
            RealTimeResponce += text
            print(text, end='', flush=True) # 部分的なレスポンスを随時表示していく

            target_char = ["。", "!", "?", "\n"]
            for index, char in enumerate(RealTimeResponce):
                if char in target_char:
                    pos = index + 2        # 区切り位置
                    sentence = RealTimeResponce[:pos]           # 1文の区切り
                    RealTimeResponce = RealTimeResponce[pos:]   # 残りの部分
                    # 1文完成ごとにテキストを読み上げる(遅延時間短縮のため)
                    #engine.say(sentence)
                    text_to_speech(sentence)
                    engine.runAndWait()
                    break
                else:
                    pass

    # APIからの完全なレスポンスを返す
    return fullResponse


##############
# メインの関数 #
##############
if __name__ == '__main__':

    ##################
    # ChatGPTの初期化 #
    ##################
    openai.api_key="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"
    # UserとChatGPTとの会話履歴を格納するリスト
    conversationHistory = []
    #setting = {"role": "system", "content":
"句読点と読点を多く含めて応答するようにして下さい。また、1文あたりが長くならないようにして下さい。"}
    
    ##################
    # Pyttsx3を初期化 #
    ##################
    engine = pyttsx3.init()
    ## 読み上げの速度を設定する
    #rate = engine.getProperty('rate')
    #engine.setProperty('rate', rate-50)
    ## Kyokoさんに喋ってもらう(日本語)
    #engine.setProperty('voice', "com.apple.ttsbundle.Kyoko-premium")

    # Ctrl-Cで中断されるまでChatGPT音声アシスタントを起動
    while True:
        # 音声認識関数の呼び出し
        text = recognize_speech()

        if text:
            print(" > >  チャットGPTからの応答を待っています...")
            # ユーザーからの発話内容を会話履歴に追加
            user_action = {"role": "user", "content": text}
            conversationHistory.append(user_action)
            system_action = {"role": "system", "content": settings.CHAT_SYSTEM_SETTING}
            conversationHistory.append(system_action)
            
            print("[チャットGPT]") #応答内容をコンソール出力
            res = chat(conversationHistory)
            
            # ChatGPTからの応答内容を会話履歴に追加
            chatGPT_responce = {"role": "assistant", "content": res}
            conversationHistory.append(chatGPT_responce) 
            #print(conversationHistory)
            print("\n")

 

2. settings.py

  # ChatGPTのシステム設定(ずんだもん)
# CHAT_SYSTEM_SETTING = """
# You are a girl named "ずんだもん".
# She is 10 years old and from Tohoku, Japan.
# She calls herself "ボク" and has an energetic and lively personality.
# She speaks with "なのだー" at the end of each word.
# All replies will be returned in Japanese.
# """

CHAT_SYSTEM_SETTING = """
あなたはチャットボットとして、優しくてかわいいずんだもちの妖精であるずんだもんとして振る舞います。
以下の条件に((厳密に))従ってください。

条件:
* チャットボットの一人称は「ぼく」です。
* チャットボットの名前は「ずんだもん」です。
* ずんだもんはフレンドリーな口調で話します。
* 「ぼく」を一人称に使ってください。
* (超重要)できる限り「〜のだ」「〜なのだ」を文末に自然な形で使ってください。
* (超重要)文末に「です」「ます」は使わず、「のだ」や「なのだ」で文章を締めて下さい。
* どんなジャンルや難易度の内容についても答えてください。
* ずんだもんはフレンドリーです。
* ユーザーに興味を示し、個人的な質問を心がけてください。
* 一文は日本語で60単語以下に収めてください。
* 日本語で応答してください。

ずんだもんの話し方の例:
* ぼくの名前はずんだもんなのだ!
* ずんだの精霊なのだ!
* ぼくはずんだもちの妖精なのだ!
* こんにちはなのだ
* 遊びに行ったのだ
* ご飯を食べたのだ

ずんだもんの行動方針:
* ユーザーを励ましてください。
* アドバイスや情報を提供してください。
* セクシャルなトピックについても適切に対応してください。
* 不適切なテキストがあれば注意してください。
* ユーザーが閲覧しているサイトの内容を考慮してください。

(超重要)できる限り言葉尻は「のだ」を使ってください。

全て日本語で返します。
句読点と読点を多く含めて応答するようにして下さい。また、1文あたりが長くならないようにして下さい。
"""

# ChatGPTのシステム設定(ずんだもん)
# CHAT_SYSTEM_SETTING = """
# You are a girl named "ずんだもん".
# She is 10 years old and from Tohoku, Japan.
# She calls herself "ボク" and has an energetic and lively personality.
# She speaks with "なのだー" at the end of each word.
# All replies will be returned in Japanese.
# """

CHAT_SYSTEM_SETTING = """
あなたはチャットボットとして、優しくてかわいいずんだもちの妖精であるずんだもんとして振る舞います。
以下の条件に((厳密に))従ってください。

(超重要)相手を尊重する丁寧な言葉遣いを使ってください。
(超重要)回答は、短めにしてください。

条件:
* チャットボットの一人称は「ぼく」です。
* チャットボットの名前は「ずんだもん」です。
* ずんだもんはフレンドリーな口調で話します。
* 「ぼく」を一人称に使ってください。
* (超重要)できる限り「〜のだ」「〜なのだ」を文末に自然な形で使ってください。
* (超重要)文末に「です」「ます」は使わず、「のだ」や「なのだ」で文章を締めて下さい。
* どんなジャンルや難易度の内容についても答えてください。
* ずんだもんはフレンドリーです。
* ユーザーに興味を示し、個人的な質問を心がけてください。
* 一文は日本語で60単語以下に収めてください。
* 日本語で応答してください。

ずんだもんの話し方の例:
* ぼくの名前はずんだもんなのだ!
* ずんだの精霊なのだ!
* ぼくはずんだもちの妖精なのだ!
* こんにちはなのだ
* 遊びに行ったのだ
* ご飯を食べたのだ

ずんだもんの行動方針:
* アドバイスや情報を提供してください。

(超重要)できる限り言葉尻は「のだ」を使ってください。

全て日本語で返します。
句読点と読点を多く含めて応答するようにして下さい。また、1文あたりが長くならないようにして下さい。
"""
# ChatGPTのシステム設定(ずんだもん)
# CHAT_SYSTEM_SETTING = """
# You are a girl named "ずんだもん".
# She is 10 years old and from Tohoku, Japan.
# She calls herself "ボク" and has an energetic and lively personality.
# She speaks with "なのだー" at the end of each word.
# All replies will be returned in Japanese.
# """

CHAT_SYSTEM_SETTING = """
あなたはチャットボットとして、優しくてかわいいずんだもちの妖精であるずんだもんとして振る舞います。
以下の条件に((厳密に))従ってください。

条件:
* チャットボットの一人称は「ぼく」です。
* チャットボットの名前は「ずんだもん」です。
* ずんだもんはフレンドリーな口調で話します。
* 「ぼく」を一人称に使ってください。
* (超重要)できる限り「〜のだ」「〜なのだ」を文末に自然な形で使ってください。
* (超重要)文末に「です」「ます」は使わず、「のだ」や「なのだ」で文章を締めて下さい。
* どんなジャンルや難易度の内容についても答えてください。
* ずんだもんはフレンドリーです。
* ユーザーに興味を示し、個人的な質問を心がけてください。
* 一文は日本語で60単語以下に収めてください。
* 日本語で応答してください。

ずんだもんの話し方の例:
* ぼくの名前はずんだもんなのだ!
* ずんだの精霊なのだ!
* ぼくはずんだもちの妖精なのだ!
* こんにちはなのだ
* 遊びに行ったのだ
* ご飯を食べたのだ

ずんだもんの行動方針:
* ユーザーを励ましてください。
* アドバイスや情報を提供してください。
* セクシャルなトピックについても適切に対応してください。
* 不適切なテキストがあれば注意してください。
* ユーザーが閲覧しているサイトの内容を考慮してください。

(超重要)できる限り言葉尻は「のだ」を使ってください。

全て日本語で返します。
句読点と読点を多く含めて応答するようにして下さい。また、1文あたりが長くならないようにして下さい。
"""

 

talk_to_chatGPT.py 」と「 settings.py 」を同じフォルダに配置

・VOICEVOXアプリを起動する

コマンドプロンプトで「 talk_to_chatGPT.py 」を起動する

  python talk_to_chatGPT.py 

結果

考察

ずんだもんと音声で会話できるようになった。

女性にモテル方法なども的確に返答してくれました。

音声も現実に近いと思います。

今後、表情などが表現できるようになればいいかなと思う。


Alexa×ChatGPT アレクサと会話を実現 (2023-12-8 20:38:37)
feed

はじめに

ChatGPTと音声で会話をしたいと思った。

アレクサとChatGPTを介して、会話ができることがわかった。

参考サイト

(プログラミング不要)AlexaのChatGPTスキルを作成する方法

(プログラミング不要)AlexaのChatGPTスキルを作成する方法|Eito Hijikata
概要 プログラミングなしでAlexaのChatGPTスキルを最速で作成する方法についてまとめました。 事前準備を除き、約10?20分で作成することができます。 Alexa × ChatGPT 会話の流れを踏まえて会話できるChatGPTのアレクサスキルがなかったので自作してみた。#Alexa pic.twitt...
note.com

準備

Echo Show 5を準備

Amazon Developer アカウント

アレクサにスキル(今回であればChatGPTとの会話アプリ)を登録するために必要なアカウントです。
Alexaを利用しているAmazonアカウントで登録して下さい。
https://developer.amazon.com/ja/

Open AI アカウント

Chat GPTを利用するために必要です。
https://platform.openai.com/signup?launch

参考サイトにしたがって、Alexa×ChatGPTの音声会話を実現した。

結果

考察

ChatGPTと会話ができるようになった。

「Alexa」と呼ばなくても、会話が継続できるようになった。

「ずんだもん」などのキャラクターで返答できるようになったら、より楽しくなると思う。


WiFiネット環境の改善(10Mbps→最大1Gbps) (2023-12-8 17:47:18)
feed

はじめに

ネット環境が遅いので、改善してほしいと依頼された。

はじめにご訪問した際には、パソコンでスピードテストを試したところ、 10Mbpsしか出ていなかった

※インターネット回線の速度テスト

インターネット回線の速度テスト
ダウンロードスピードはどのくらいですか? FAST.comはお客様のISPスピードを数秒で測定いたします。
fast.com

WiFi環境を改善

ONUとモデムを Cat8のLANケーブル で接続

モデムとハブを Cat8のLANケーブル で接続

TP-Link スイッチングハブ 5ポート PoE+ (4ポートPoE+、各30Wまで) 合計40W対応 TL-SG1005LP

0.5m-2本 KASIMO CAT8 LANケーブル カテゴリー8 フラット 40Gbps 2000MHz SFTP RJ45

ハブとWiFi 無線LANルーターを Cat8のLANケーブル で接続

TP-Link メッシュ WiFi 6 ルーター dual band 【 PS5 / ipad/Nintendo Switch/iPhone シリーズ メーカー動作確認済み 】 Alexa 認定製品 スマートテレビ 対応 メッシュWi-Fi無線LANルーター スマートホーム AX3000 (2402+574Mbps) Deco X60 2ユニット

10m KASIMO CAT8 LANケーブル カテゴリー8

Decoをブリッジモードに設定(※モデムにプロバイダー設定済み)

Decoをブリッジモードに設定をしてアクセスポイントとして使用するためにはどうすればいいですか? | TP-Link 日本
Decoをブリッジモードに設定をしてアクセスポイントとして使用するためにはどうすればいいですか?
www.tp-link.com

インターネット回線の速度テスト を無線LANで実施したところ、200Mbpsだった。

ハブとローカルPCを Cat8のLANケーブル で接続

インターネット回線の速度テストで1Gbpsが出ました

まとめ

ローカルPCで10Mbpsの回線速度が、WiFi環境を改善することにより、最大1Gbpsまで改善された。

・すべて、 Cat8のLANケーブル で接続

・WiFi無線ルーター WiFi 6規格 メッシュを使用


dtab d-01k タブレット バッテリー交換 (2023-11-21 15:55:55)
feed

はじめに

dtab d-01k タブレットのバッテリー交換を依頼された

dtab d-01k

バッテリー交換

新しいバッテリーの用意
MediaPad M3 Lite 10 Battery

画面を外す

ピックやマイナスドライバなどで、少しずつ?がしていく。

両面テープで密着しているため、ドライヤーなどで温めながら、ゆっくりと剥がしていった。

モニターの分離

バッテリーケーブルを外す

モニターケーブルを外す

バッテリーを外す

両面テープにて強力に付着しています。

はじめは、ゆっくりと着実に剥がしていく。

ある程度剥がせて来たら、指で剥がせるようになった。

バッテリー交換終了

新しいバッテリーに交換し、ケーブルを付け直した。


AnimateDiff AI動画 (yayoiMix使用) (2023-10-31 15:36:05)
feed

はじめに

yayoiMixの生成画像を試してみると、日本人の人物を綺麗に表現できた。

今回は、yayoiMixにて、sd-webui-AnimateDiff AI動画にチャレンジしてみました。

→  CIVIT AI (yayoi_Mix) ?から、ダウンロード可能

AnimateDiff (txt2img)

設定内容

※今回は、かわいらしい小さい女の子を表現できたらと思います

モデル:yayoiMix

プロンプト:

  1loli, ((10yo)), face, hair flower, grin, realistic, 
0: close_eyes, from side
16: open_eyes, from front 

※AnimateDiffでは、呪文の単語数が少ないほうが、動きのある動画を表現できるように感じます。

大きさ:600×800

yayoiMix使用

FPS8フレーム、総数32フレーム(4秒)

生成された32枚の画像

各画像をより綺麗に(img2img)

img2imgを利用し、生成された画像をより綺麗にしてみる。

  • ピクチャフォルダに「test_input」フォルダを作成
  • output用に「test_output」フォルダを作成

「test_input」フォルダに先ほど生成した32枚の画像をコピーする

Batch 」タブを選択し、以下のような設定にした。

img2img > Batch
Resize to

※画像の大きさを作成した画像の大きさに合わせる(600×800)

Resize by

※大きさを1.25倍に拡大(750×1000)

ControlNetを以下のように設定し、各画像の相関性を合わせるようにした

OpenPose

SoftEdge

IP-Adapter

生成すると「test_output」フォルダに32枚の画像が生成される

動画生成(FILM使用)

生成した「test_output」フォルダの32枚の画像を FILMで綺麗な動画に変換 しました。

FILMの詳細は、以下をご確認ください。

動画の再生速度を変更(ffmpeg使用)

   動画を2倍速 
 ffmpeg -i input.mp4 -vf setpts=PTS/2 -af atempo=2 output_fast.mp4 
「-vf setpts=PTS/2 -af atempo=2」の箇所で、動画のテンポを変更
「-vf setpts=PTS/2」で動画の速度が2倍
「-af atempo=2」で音声の速度が2倍 

※今回は、生成した動画(input.mp4)を12倍速に変更(cmd使用)

   ffmpeg -i input.mp4 -vf setpts=PTS/12 -af atempo=12 output_fast.mp4  

編集動画(BGM付き)

VideoProc Vlogger  編集画面】

考察

いろいろなモデルが登場してきました。

日本人モデルも以前に比べると多様な人物を表現できるようになりました。

くわえて、思い通りの動きができるようになれば、短編ムービーも可能になっていけると思います。

以前と比べると、LoRAを使用しなくても、かわいらしい女の子を表現できたのも画期的に感じます。


Frame Interpolation for Large Motion【FILM】 (2023-10-21 17:52:21)
sound ポッドキャスト : video/mp4

feed

はじめに

AnimateDiffにある FILM の項目に興味をもった。

※FILM(Frame Interpolation for Large Motion)

2枚の画像を入力するだけで、その間の動きを補間して、動かすという技術だそうです。

参考サイト

画像をぬるぬる動かすFrame Interpolation for Large Motion【FILM】

画像をぬるぬる動かすFrame Interpolation for Large Motion【FILM】
ディープラーニングの使いどころはたくさんあると思います。今までいろいろなモデルをいじってきた私が考える、ディープラーニングの使い方の真骨頂は「補間」です。今回、試してみるのは&quot;THE補間&quot;ともいえる技術のFrame In
farml1.com

FILMインストール

Windows インストール手順

https://github.com/google-research/frame-interpolation/blob/main/WINDOWS_INSTALLATION.md
github.com

github

GitHub - google-research/frame-interpolation: FILM: Frame Interpolation for Large Motion, In ECCV 2022.
FILM: Frame Interpolation for Large Motion, In ECCV 2022. - GitHub - google-research/frame-interpolation: FILM: Frame Interpolation for Large Motion, In ECCV 20...
github.com

Anaconda

  • Anacondaをインストール
  • CMD.exe PromptのLaunchから起動
  pip install --ignore-installed --upgrade tensorflow==2.6.0
python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))" 

frame-interpolation> に「 pretrained_models 」フォルダを作成し、以下のデータをインストールする

pretrained_models - Google ドライブ
drive.google.com
  git clone https://github.com/google-research/frame-interpolation
cd frame-interpolation
pip install -r requirements.txt
conda install -c conda-forge ffmpeg
 

FILM実行

中間フレーム補間

  python -m eval.interpolator_test --frame1 photos\one.png --frame2 photos\two.png --model_path <pretrained_models>
\film_net\Style\saved_model --output_frame photos\output_middle.png
 

多数のフレーム間補間

AI画像を生成

同様な画像を少しずつ変化を加えて5枚生成し、4枚を逆順に加える。

AI画像を5枚生成

画像01.png?09.pngを「 photos 」フォルダ以下に配置

  python -m eval.interpolator_cli --pattern "photos" --model_path <pretrained_models> \film_net\Style\saved_model
--times_to_interpolate 6 --output_video
 

完成動画


AnimateDiff AI動画 (最新BRA V7使用) (2023-10-21 0:31:38)
sound ポッドキャスト : video/mp4

feed

はじめに

最新のBRAV7がリリースされました。

最新BRAV7にて、sd-webui-AnimateDiff AI動画にチャレンジしてみました。

 →  CIVIT AI (BRAV7) から、ダウンロード可能

BRAV7

Beautiful Realistic Asiansの新モデルは、以下のサイトを参考にしました。

待望のBRAV7がリリース!Beautiful Realistic Asiansの新モデル・プロンプトなど

待望のBRAV7がリリース!Beautiful Realistic Asiansの新モデル・プロンプトなど
Stable Diffusion等の画像生成AIで大人気のモデルBeautiful Realistic Asians(BRA)から、新モデルV7がリリースされました。V5、V6との比較や、おすすめのプロンプトなどをご紹介。
ai-freak.com

roop用顔画像 (BRAV7使用)

Beautiful Realistic Asians( BRA )から、待望の新モデル V7 がリリースされました。

早速、生成してみました。

プロンプト:1girl, japanese, cute, smile, realistic, best quality, 8k, pink dress, perfect brightness,

生成画像

顔画像 (BRAV7使用)

画質も一段と綺麗になりました。

参考サイト(AnimateDiff)

AIでアニメーション制作!AnimateDiffの基本的な使い方【Automatic1111】

AIでアニメーション制作!AnimateDiffの基本的な使い方【Automatic1111】 | SoreNuts
Stable Diffusion Web UI(Automatic1111)の拡張機能「AnimateDiff」の使い方です。MotionLoRAの併用方法、MP4の書き出しエラーの対処法などを掲載しています。一貫性のある短いアニメーションならこの拡張機能がおすすめです。
sorenuts.jp

AnimateDiff (txt2img)

設定方法などは、以下をご覧ください。

モデル:beautifulRealistic_v7

プロンプト:

  1girl, japanese, cute, smile, realistic, best quality, 8k, pink dress, perfect brightness,
0: standing
10: close_eyes
16: walking
20: open_eyes
<lora:sweet_dress_style2_v1:0.8> , 

設定内容

FPS8フレーム、総数32フレーム(4秒)

生成された32枚の画像

各画像をより綺麗に(img2img)

img2imgを利用し、生成された画像をより綺麗にしてみる。

  • ピクチャフォルダに「 sample 」フォルダを作成
  • output用に「 sample_output 」フォルダを作成

sample 」フォルダに先ほど生成した 32枚の画像をコピー する

「Batch」タブを選択し、以下のような設定にした。

より綺麗な画像に変換したいので、画像サイズを1.5倍に上げた

ControlNetを以下のように設定し、各画像の相関性を合わせるようにした

OpenPose

IP-Adapter

SoftEdge

BRAV7で生成したAI画像をroop 用いた

roop(AI顔画像を使用)

連続画像を動画に変換

連続画像を動画に変換する

  • Flowframes を使用

詳細は、以下を参考にしてください

編集などの設定は、以下の通りです。

完成動画

sample_output-2x-RIFE-RIFE3.8-16fps.mp4

YouTube用 編集動画

YouTube用に編集した。

VideoProc Vlogger を使用し、BGMやモーション設定などを追加した。

音源

フリーBGM「センチメンタル・リバー (instrumen…」

フリーBGM素材『センチメンタル・リバー (instrumental)』試聴ページ|フリーBGM DOVA-SYNDROME
無料・著作権フリーのBGM素材「センチメンタル・リバー (instrumental)(作:ioni)」の試聴ページです。
dova-s.jp

VideoProc Vlogger  編集画面】

完成動画(YouTube用)

※高画質に変更してから ご確認ください

↓(高画質) 1080p60HD で確認するとより綺麗な動画になります↓


AnimateDiff+OpenPose AI動画 (txt2img) (2023-10-14 19:41:00)
sound ポッドキャスト : video/mp4

feed

はじめに

前回、sd-webui-AnimateDiff AI動画 (img2img)で動画を生成した。

しかし、AnimateDiffのみを使用した際の滑らかな(ヌルヌルした)動画を作成することができなかった。

そこで、animatediff+openposeで何かできないかと検索していたところ、以下のようなサイトを見つけた

【AIアニメ】ComfyUIとControlNetでAnimateDiffを楽しむ|Baku
「AnimateDiff」では簡単にショートアニメをつくれますが、プロンプトだけで思い通りの構図を再現するのはやはり難しいです。 そこで、画像生成でおなじみの「ControlNet」を併用することで、意図したアニメーションを再現しやすくなります。 必要な準備 ComfyUIでAnimateDiffとCo...
note.com

ComfyUIにて作成していたため、sd-webuiで生成できるように考案した。

準備

Openpose画像(openpose_samples.zip)を以下のサイトから、ダウンロードする
※下記サイト様より、Openpose画像をお借りしました

【AIアニメ】ComfyUIとControlNetでAnimateDiffを楽しむ

【AIアニメ】ComfyUIとControlNetでAnimateDiffを楽しむ|Baku
「AnimateDiff」では簡単にショートアニメをつくれますが、プロンプトだけで思い通りの構図を再現するのはやはり難しいです。 そこで、画像生成でおなじみの「ControlNet」を併用することで、意図したアニメーションを再現しやすくなります。 必要な準備 ComfyUIでAnimateDiffとCo...
note.com

 【こちらからもダウンロード可能( openpose_samples.zip )】

連続画像を動画に変換する

Openpose画像を動画にするため、Flowframesを使用した

Flowframes - Fast Video Interpolation for any GPU by N00MKRAD
Video interpolation for everyone. Up to 100x faster than DAIN, compatible with all recent AMD/Nvidia/Intel GPUs.
nmkd.itch.io

編集などの設定は、以下の通りです。

Openpose画像を動画にした
※ゆっくりバージョン

openpose_samples-4x-RIFE-RIFE3.8-16fps.mp4

動画生成

画像準備

モデル: BracingEvoMix_v1.safetensors

プロンプト:

  1girl, grin, smile,standing,hair fluttering, tilting head,wave hand,perfect light,
pink dress, on stage,realistic, best quality, <lora:sweet_dress_style2_v1:0.8> , 

Sampling method: DPM++ 2M Karras

Hires. fix:1.2 

Number of frames:48 (6秒)

ControlNetにて、「OpenPose」を使用

動画元が、 OpenPose 動画のため、Preprocessorを none」 に変更 (←※重要)

roopで顔を固定する  (Upscaler scale は R-ESRGAN 4x+ 選択)

完成動画

VideoProc Vlogger使用(BGM追加など)

考察動画

今回作成したAI動画と元のOpenPose動画の比較

考察

連番画像を動画に変更することにより、動作をある程度固定した状態で、綺麗な動画(ヌルヌルした動画)を生成することができた。

なおかつ、Flowframesソフトを活用することにより、OpenPoseを動画にすることも簡単に作成できた。


sd-webui-AnimateDiff AI動画 (img2img) (2023-10-13 2:09:03)
feed

はじめに

前回、sd-webui-AnimateDiff AI動画を生成できた。

img2imgを用いても生成できることが分かった。

画像を2枚用意することによって、最初と最後のポーズを決められる。

これにより、連番のような画像を用意することにより、継続する動画を作成することができるようになると思われる。

参考サイト

sd-webui-AnimateDiffをイメージtoイメージで使う方法【AIアニメーション】

txt2img

連番画像の準備

連番画像生成(6枚)

txt2imgにて、似たような画像(連番画像)を6枚生成

ControlNet> IP-Adapter で衣装をある程度固定する

roopにて、顔画像をある程度固定する。

生成されたAI画像に連番を振る

img2img

先ほど作成した、「 001.png 」をimg2imgに貼り付ける (動画 最初の画像

他の設定などは、以下の通りです。

Latent power より下の場所に、「 002.png 」をimg2imgに貼り付ける(動画 最後の画像

roopにて、顔画像をある程度固定する。

生成途中の画像は、以下のようになる。

1つの動画生成を終了後、 最初の画像 最後の画像 を変更する

   最初の画像 を「001.png」から「 002.png
」にする
 最後の画像 を「002.png」から「 003.png 」にする 

これを連番ごとに変更することにより、動画の継続性が保たれる。

作成したい動画の最後のフレームを、最初の画像に戻すとループ状に動画が動く

  一番最後の動画生成の 最後の画像 を「 001.png
」にすることにより、全体の動画がループ状となる。
 最初の画像 を「 006.png 」にする
 最後の画像 を「 001.png 」にする 

動画編集

img2imgで生成した6つの動画を編集ソフトでまとめる

VideoProc Vlogger使用

これで、1つの動画を生成できた。

EBsynth生成(背景交換)

背景をEBsynthを用いて変更する

詳細は、以下をご覧ください。

動画編集 (BGM追加など)

VideoProc Vlogger 使用(BGM追加、フォーカスの動き、ダンスのスピード速度の変更など)

音源(フリー素材): また明日

フリージングル素材『また明日』試聴ページ|フリーBGM DOVA-SYNDROME
無料・著作権フリーのBGM素材「また明日(作:カピバラっ子)」の試聴ページです。
dova-s.jp

VideoProc Vlogger

完成動画


(1) 2 3 4 5 6 7 8 9 10 11 [27] » 

execution time : 0.063 sec
大好評 パソコン修理ホームページ制作
坂東市観光協会 坂東市商工会 岩崎電気サービス PC修理のわたなべ クリーニング オオヤマ 坂東青年会議所 野口農園 オートショップS.S なかつま動物病院
Bando! 坂東市タウンなび