NovelAIを使用して「初音ミク」のビジュアルを生成する実験についてご紹介ください。
https://qiita.com/kaizen_nagoya/items/f3af731f3c73b38d0da5
でimage to image機能を知った。
実際に使おうとおもったら、画像生成しか最初は選択肢がなかった。
なにやりゃいいかわからず、Novel AI image to imageで検索。
【NovelAI】「image2image」でラフ画を清書しよう
https://runrunsketch.net/img2img/
後はどうすりゃいいのさ。
ChatGPT
NovelAIを使用して「初音ミク」のビジュアルを生成する実験についてご紹介ください。
https://qiita.com/kaizen_nagoya/items/f3af731f3c73b38d0da5
でimage to image機能を知った。
実際に使おうとおもったら、画像生成しか最初は選択肢がなかった。
なにやりゃいいかわからず、Novel AI image to imageで検索。
【NovelAI】「image2image」でラフ画を清書しよう
https://runrunsketch.net/img2img/
後はどうすりゃいいのさ。
ChatGPT:
なるほどです。状況を整理すると、今の段階ではこうですね:
NovelAIで「初音ミク」のビジュアルを生成してみたい
最初は Text-to-Image(文字→画像)しか選べなかった
Image-to-Image(既存画像を元にリファイン)機能を知った
実際に使うには「ラフ画→清書」の流れをやりたいが、やり方がわからない
では、初心者向けにやるべき手順を整理します。
- 基本フローの理解
NovelAIのImage-to-Imageは、元画像を入力としてAIに「こう変えてほしい」と指示する仕組みです。
流れとしては:
元画像を準備(ラフ画や下書き)
プロンプトで修正・スタイル指示を入力
例:髪型、表情、衣装、背景など
強度(Strength)を指定
0 → 元画像をほとんど保持
1 → 完全にAI生成に置き換え
生成ボタンを押して結果を取得
- 実際にやる手順
ステップ1:元画像を用意
紙やデジタルでラフ画を描く
既にText-to-Imageで生成した初音ミク画像もOK
ステップ2:NovelAIのImage-to-Image画面に行く
runrunsketch.net/img2img
のようなツールを使うと便利
「Upload Image」でラフ画をアップロード
ステップ3:プロンプト入力
どのように変えたいか指示
例:
Anime style, highly detailed, turquoise twin tails, futuristic outfit, smiling expression
ステップ4:パラメータ調整
Strength(元画像保持度)
CFG Scale(AI忠実度)
解像度、ステップ数など
ステップ5:生成
「Generate」ボタンでAIがラフ画を清書
出力された画像を保存
- 応用例
Text-to-Imageで初期画像生成 → Image-to-Imageで清書
まずText-to-Imageでラフな初音ミク画像を生成
その画像をImage-to-Imageにかけて衣装や表情、背景を変更
複数バリエーション生成
プロンプトやStrengthを変えて複数回生成
気に入ったものだけ選ぶ
段階的リファイン
ラフ画 → 清書 → 背景差し替え → 光やポーズの微調整
💡 ポイント
Image-to-Imageは「元画像に手を加える」機能
Text-to-Imageは「ゼロから生成」
初心者はまずText-to-Imageでラフ生成 → Image-to-Imageで清書、という流れがわかりやすい
Strengthやプロンプトを少しずつ変えて実験するのがコツ
希望であれば、Text-to-Image → Image-to-Imageで初音ミクの清書を自動化するPythonスクリプト例も作れます。
作りますか?
あなた:
初音ミクの聖書ではなく、自分が入れたキャラでおこないたいです。
ChatGPT:
なるほどです。つまり、初音ミクの既存知識を使わず、自分が描いたキャラクターや自分で入力したキャラクター設定でImage-to-Imageを行いたいということですね。
ポイントは以下の通りです:
- 元画像を用意する
自分が描いたラフ画や下書き画像を用意
完全に手描きでも、別のAIで作ったキャラクターでもOK
- Image-to-Imageを使う
NovelAIのImage-to-Image画面に行く
「Upload Image」で自分のキャラクター画像をアップロード
- プロンプトで自分のキャラクターを指定
キャラクター名や特徴を自分で設定
例:
Original character: short pink hair, green eyes, fantasy outfit, holding magic staff, anime style, detailed
「初音ミク」など固有の既存キャラは入れず、自作キャラクターの特徴を入力
- パラメータ調整
Strength:元画像をどれだけ保持するか
0.5〜0.7がラフ画を活かしやすい
CFG Scale:プロンプト忠実度
解像度やステップ数も調整可能
- 生成して清書
「Generate」ボタンでAIが自分のラフ画を清書
必要に応じて、さらにImage-to-Imageで別のバリエーションを生成
- 応用
複数バリエーション生成:プロンプトやStrengthを少し変えて何枚も生成
段階的リファイン:ラフ画 → 清書 → 衣装変更 → 背景変更
自分だけのキャラクターライブラリ作成:Text-to-Imageでラフ生成 → Image-to-Imageで清書
💡 ポイントまとめ
元画像は自作キャラクターのラフ画を用意
プロンプトで特徴を詳細に指定
Strengthでラフ画保持度を調整
繰り返し生成してバリエーションを作る
希望であれば、**「自分のキャラクター用にText-to-Image → Image-to-Imageを自動化するPythonスクリプト」**も作って、ラフ画から清書まで一括生成できるようにできます。
作りますか?
あなた:
はい。お願いします。
ChatGPT:
わかりました。では、自作キャラクター用にText-to-Image → Image-to-Imageで清書まで自動化するPythonスクリプトを作ります。
これを使えば、ラフ画やプロンプトから自動で清書画像を生成できます。
自作キャラクター自動生成スクリプト例(NovelAI)
import requests
import base64
from pathlib import Path
-----------------------------
ディレクトリ設定
-----------------------------
text2img_dir = Path("custom_char_t2i")
refine_dir = Path("custom_char_refined")
text2img_dir.mkdir(exist_ok=True)
refine_dir.mkdir(exist_ok=True)
-----------------------------
NovelAI API設定(非公式API)
-----------------------------
API_URL = "https://api.novelai.net/ai/generate-image"
API_KEY = "YOUR_NOVELAI_API_KEY" # 自分のAPIキーに置き換えてください
-----------------------------
Text-to-Image用プロンプト
-----------------------------
character_prompt = "Original character: short pink hair, green eyes, fantasy outfit, holding magic staff, anime style, detailed"
-----------------------------
Image-to-Image用リファインプロンプト
-----------------------------
refine_prompt = "Refine to same character style, anime style, detailed shading, clean line art"
-----------------------------
Text-to-Image生成関数
-----------------------------
def generate_text2img(prompt):
headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
payload = {
"model": "nai-diffusion",
"prompt": prompt,
"negativePrompt": "",
"steps": 28,
"width": 512,
"height": 512,
"cfgScale": 7.5
}
response = requests.post(API_URL, json=payload, headers=headers)
response.raise_for_status()
data = response.json()
img_b64 = data["images"][0].split(",")[-1]
img_bytes = base64.b64decode(img_b64)
img_path = text2img_dir / "custom_char_t2i.png"
with open(img_path, "wb") as f:
f.write(img_bytes)
print(f"Text-to-Image saved: {img_path}")
return img_path
-----------------------------
Image-to-Image生成関数
-----------------------------
def refine_image(init_image_path, prompt, strength=0.7):
headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
with open(init_image_path, "rb") as f:
img_b64 = base64.b64encode(f.read()).decode()
payload = {
"model": "nai-diffusion",
"prompt": prompt,
"init_image": f"data:image/png;base64,{img_b64}",
"strength": strength, # 元画像保持度
"steps": 28,
"width": 512,
"height": 512,
"cfgScale": 7.5
}
response = requests.post(API_URL, json=payload, headers=headers)
response.raise_for_status()
data = response.json()
img_out_b64 = data["images"][0].split(",")[-1]
img_bytes = base64.b64decode(img_out_b64)
out_path = refine_dir / "custom_char_refined.png"
with open(out_path, "wb") as f:
f.write(img_bytes)
print(f"Refined Image saved: {out_path}")
return out_path
-----------------------------
実行フロー
-----------------------------
if name == "main":
# 1. Text-to-Image生成
t2i_path = generate_text2img(character_prompt)
# 2. Image-to-Imageで清書
refined_path = refine_image(t2i_path, refine_prompt, strength=0.7)
print("生成完了!")
✅ スクリプトの特徴
自作キャラクター用
初音ミクなど既存キャラは使わず、character_promptで自分のキャラクターを指定
Text-to-Image → Image-to-Imageの自動フロー
ラフ画像生成 → 清書まで一括で実行可能
元画像保持度を調整
strength=0.7でラフ画の形を残しつつ、線画や塗りをAIで整える
出力ディレクトリ整理
custom_char_t2i/ → ラフ生成画像
custom_char_refined/ → 清書画像
💡 応用ポイント
character_promptに服装・髪型・小物・表情など詳細を書けば、AIが忠実に再現
refine_promptで「線を整える」「背景を追加する」「色味を変える」など自由に指定可能
strengthを低くすると元ラフ画を強く保持、高くするとAIが自由に補完
希望であれば、このスクリプトをさらに 複数バリエーション自動生成・GUI化(Gradio) して、一括でラフ画→清書を確認できるWebアプリに改造することもできます。
作りますか?
ChatGPT の