ホーム
>> ヘッドライン
>>
PC修理のわたなべ
| メイン | 簡易ヘッドライン |
![]() |
|
現在データベースには 503 件のデータが登録されています。
はじめに
Stable Video Diffusion(SVD) は、Stability AIが開発したImage2Videoモデルの一種で、 画像から動画を生成できるAIモデル です。
2023年11月22日に発表されました。SVDは、研究目的のみで利用可能で、画像から短いクリップを生成する2つの 最新AIモデル(SVDとSVD-XT) が含まれています。
単一画像からのマルチビュー合成など、さまざまなビデオアプリケーションに適応できるとされています。
Stable Diffusionは、テキストや画像プロンプトから写真のようにリアルな独自の画像を生成する生成型人工知能(生成系AI)モデルです。
画像以外にも、 モデルを使用して動画やアニメーションを作成することもできます 。
参考サイト
(Comfy UIを使わない) stable video diffusion webuiのローカル環境構築
準備
モデルのダウンロード
svd: https://huggingface.co/stabilityai/stable-video-diffusion-img2vid/tree/main 9.5GB(14フレームで学習/14フレームを生成できる?)
svd-xt: https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt/tree/main 9.5GB(25フレームで学習/25フレームを生成できる?)
※とりあえず、 svd-xt のみ ダウンロードするといいかなと思います。
ファイルのインストール
Cドライブ直下に「stable-video-diffusion」フォルダ作成
「stable-video-diffusion」フォルダ内に入り、コマンドプロンプトを起動(タスクバーにcmdと打ってエンター)
Generative-modelsのGithubページ: https://github.com/Stability-AI/generative-models
Generative-modelsをクローン
git clone https://github.com/Stability-AI/generative-models.git
C:\stable-video-diffusion\generative-models\scripts\demo フォルダ内、「 streamlit_helpers.py 」ファイルの編集
※61行目を False から True へ変更
C:\stable-video-diffusion\generative-models\scripts\demo フォルダ内、「 video_sampling.py 」ファイルの移動
「 video_sampling.py 」ファイルを、C:\stable-video-diffusion\generative-modelsへ移動
C:\stable-video-diffusion\generative-modelsに、「 checkpoints 」フォルダ作成
C:\stable-video-diffusion\generative-models\checkpointsに、インストールしたモデルを移動する。
( svd-xt
、または、 svd ファイルのみでも大丈夫です。)
C:\stable-video-diffusion\generative-models\requirementsフォルダ内、「 pt2.txt 」ファイルの編集
34行目 「triton==2.0.0」を削除
必要なファイルのインストール(コマンドプロンプト)
C:\stable-video-diffusion\generative-modelsへ、移動する。
タスクバーにて、cmdと打ち込み、エンターでコマンドプロンプトを立ち上げる。
#仮想環境venv
python -m venv venv
#仮想環境を活性化
venv\Scripts\activate
#pipアップグレード
python -m pip install --upgrade pip
Windowsに対応した 「triton==2.0.0」 をインストール
pip install https://huggingface.co/r4ziel/xformers_pre_built/resolve/main/triton-2.0.0-cp310-cp310-win_amd64.whl
#PyTorchインストール
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118
#requirementsフォルダ内のパッケージのインストール
pip install -r requirements/pt2.txt
#残りのパッケージのインストール
pip install .
起動
起動コマンド
streamlit run video_sampling.py
Web画面
※Model Version で 「 svd_xt 」を選択
2回目以降
1. C:\stable-video-diffusion\generative-models でコマンドプロンプト(cmd)
2. venv\Scripts\activate
3. streamlit run video_sampling.py
「 Load Model 」にチェック!
Stable diffusion で画像作成
※W:1024 H:512 (画像サイズは、 64の倍数 )
※プロンプト:a dog, solo, runnig, realistic, best quality,
※使用する画像
stable video diffusionに、画像をドラッグ
画像をドラッグ後
デフォルトの設定
・サイズ:512×1024
・25フレーム
・fps:6フレーム/秒 (※3?30フレーム)
※約4秒の動画
画面下の「 Sample 」ボタンをクリック! ( 動画生成が始まります )
C:\stable-video-diffusion\generative-models\outputs\demo\vid\svd_xt\samples 以下に動画が生成されています。
生成された動画
考察
Stable Diffusionでは、背景や衣服などの一貫性に欠けるところがあったが、stable video diffusionでは、見事に一貫性が保たれている。
今回の犬のように、まばたきなども自動で生成される。
まだまだサンプル(開発途中)のため、これからが楽しみである。
- Video Motion Bucket
デフォルトは127。この値を小さくすると動きが遅くなる - Video Augmentation Level
デフォルトは0。大きくするとモーション(運動量?)が増える
-
fps: 生成されたビデオの 1 秒あたりのフレーム数。 -
motion_bucket_id: 生成されたビデオに使用するモーション バケット ID。これを使用して、生成されたビデオの動きを制御できます。モーション バケット ID を増やすと、生成されるビデオのモーションが増加します。 -
noise_aug_strength: コンディショニング画像に追加されるノイズの量。値が高くなるほど、ビデオは調整画像に似なくなります。この値を増やすと、生成されるビデオのモーションも増加します。
ポッドキャスト :
video/mp4
はじめに
JAまつりに行ってきた。
令和5年12月9日/10日 in JA岩井
JAまつり
はじめに
インターネットを見ていると、ChatGPTとずんだもんが音声で会話している動画を見かける時がある。
今回は、Pythonを使用して、ずんだもんと音声会話ができるプログラムを考案してみる。
参考サイト
[python] ChatGPT APIを使ってレスポンスが高速な音声アシスタントを作る
VOICEVOXをpythonから遊ぶメモ
準備
VOICEVOXをインストール
VOICEVOX ENGINEをインストール
各自、必要なパッケージを各々インストールします。(※必要に合わせて各自インストールしてください)
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
結果
考察
ずんだもんと音声で会話できるようになった。
女性にモテル方法なども的確に返答してくれました。
音声も現実に近いと思います。
今後、表情などが表現できるようになればいいかなと思う。
はじめに
ChatGPTと音声で会話をしたいと思った。
アレクサとChatGPTを介して、会話ができることがわかった。
参考サイト
(プログラミング不要)AlexaのChatGPTスキルを作成する方法
準備
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」と呼ばなくても、会話が継続できるようになった。
「ずんだもん」などのキャラクターで返答できるようになったら、より楽しくなると思う。
はじめに
ネット環境が遅いので、改善してほしいと依頼された。
はじめにご訪問した際には、パソコンでスピードテストを試したところ、 10Mbpsしか出ていなかった 。
※インターネット回線の速度テスト
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をブリッジモードに設定(※モデムにプロバイダー設定済み)
インターネット回線の速度テスト を無線LANで実施したところ、200Mbpsだった。
ハブとローカルPCを Cat8のLANケーブル で接続
インターネット回線の速度テストで1Gbpsが出ました
まとめ
ローカルPCで10Mbpsの回線速度が、WiFi環境を改善することにより、最大1Gbpsまで改善された。
・すべて、 Cat8のLANケーブル で接続
・WiFi無線ルーター WiFi 6規格 メッシュを使用
はじめに
dtab d-01k タブレットのバッテリー交換を依頼された
バッテリー交換
新しいバッテリーの用意
画面を外す
ピックやマイナスドライバなどで、少しずつ?がしていく。
両面テープで密着しているため、ドライヤーなどで温めながら、ゆっくりと剥がしていった。
モニターの分離
バッテリーケーブルを外す
モニターケーブルを外す
バッテリーを外す
両面テープにて強力に付着しています。
はじめは、ゆっくりと着実に剥がしていく。
ある程度剥がせて来たら、指で剥がせるようになった。
バッテリー交換終了
新しいバッテリーに交換し、ケーブルを付け直した。
はじめに
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
生成された32枚の画像
各画像をより綺麗に(img2img)
img2imgを利用し、生成された画像をより綺麗にしてみる。
- ピクチャフォルダに「test_input」フォルダを作成
- output用に「test_output」フォルダを作成
「test_input」フォルダに先ほど生成した32枚の画像をコピーする
「 Batch 」タブを選択し、以下のような設定にした。
Resize to
※画像の大きさを作成した画像の大きさに合わせる(600×800)
Resize by
※大きさを1.25倍に拡大(750×1000)
ControlNetを以下のように設定し、各画像の相関性を合わせるようにした
生成すると「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を使用しなくても、かわいらしい女の子を表現できたのも画期的に感じます。
ポッドキャスト :
video/mp4
はじめに
AnimateDiffにある FILM の項目に興味をもった。
※FILM(Frame Interpolation for Large Motion)
2枚の画像を入力するだけで、その間の動きを補間して、動かすという技術だそうです。
参考サイト
画像をぬるぬる動かすFrame Interpolation for Large Motion【FILM】
FILMインストール
Windows インストール手順
github
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 」フォルダを作成し、以下のデータをインストールする
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枚を逆順に加える。
画像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
完成動画
ポッドキャスト :
video/mp4
はじめに
最新のBRAV7がリリースされました。
最新BRAV7にて、sd-webui-AnimateDiff AI動画にチャレンジしてみました。
→ CIVIT AI (BRAV7) から、ダウンロード可能
BRAV7
Beautiful Realistic Asiansの新モデルは、以下のサイトを参考にしました。
待望のBRAV7がリリース!Beautiful Realistic Asiansの新モデル・プロンプトなど
roop用顔画像 (BRAV7使用)
Beautiful Realistic Asians( BRA )から、待望の新モデル V7 がリリースされました。
早速、生成してみました。
生成画像
画質も一段と綺麗になりました。
参考サイト(AnimateDiff)
AIでアニメーション制作!AnimateDiffの基本的な使い方【Automatic1111】
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を以下のように設定し、各画像の相関性を合わせるようにした
BRAV7で生成したAI画像をroop に 用いた
連続画像を動画に変換
連続画像を動画に変換する
- Flowframes を使用
詳細は、以下を参考にしてください
編集などの設定は、以下の通りです。
完成動画
sample_output-2x-RIFE-RIFE3.8-16fps.mp4
YouTube用 編集動画
YouTube用に編集した。
VideoProc Vlogger を使用し、BGMやモーション設定などを追加した。
音源
フリーBGM「センチメンタル・リバー (instrumen…」
【 VideoProc Vlogger 編集画面】
完成動画(YouTube用)
※高画質に変更してから 、 ご確認ください
↓(高画質) 1080p60HD で確認するとより綺麗な動画になります↓
ポッドキャスト :
video/mp4
はじめに
前回、sd-webui-AnimateDiff AI動画 (img2img)で動画を生成した。
しかし、AnimateDiffのみを使用した際の滑らかな(ヌルヌルした)動画を作成することができなかった。
そこで、animatediff+openposeで何かできないかと検索していたところ、以下のようなサイトを見つけた
ComfyUIにて作成していたため、sd-webuiで生成できるように考案した。
準備
Openpose画像(openpose_samples.zip)を以下のサイトから、ダウンロードする
※下記サイト様より、Openpose画像をお借りしました
【AIアニメ】ComfyUIとControlNetでAnimateDiffを楽しむ
【こちらからもダウンロード可能( openpose_samples.zip )】
連続画像を動画に変換する
Openpose画像を動画にするため、Flowframesを使用した
編集などの設定は、以下の通りです。
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を動画にすることも簡単に作成できた。















