0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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(既存画像を元にリファイン)機能を知った

実際に使うには「ラフ画→清書」の流れをやりたいが、やり方がわからない

では、初心者向けにやるべき手順を整理します。

  1. 基本フローの理解

NovelAIのImage-to-Imageは、元画像を入力としてAIに「こう変えてほしい」と指示する仕組みです。
流れとしては:

元画像を準備(ラフ画や下書き)

プロンプトで修正・スタイル指示を入力

例:髪型、表情、衣装、背景など

強度(Strength)を指定

0 → 元画像をほとんど保持

1 → 完全にAI生成に置き換え

生成ボタンを押して結果を取得

  1. 実際にやる手順
    ステップ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がラフ画を清書

出力された画像を保存

  1. 応用例

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を行いたいということですね。

ポイントは以下の通りです:

  1. 元画像を用意する

自分が描いたラフ画や下書き画像を用意

完全に手描きでも、別のAIで作ったキャラクターでもOK

  1. Image-to-Imageを使う

NovelAIのImage-to-Image画面に行く

「Upload Image」で自分のキャラクター画像をアップロード

  1. プロンプトで自分のキャラクターを指定

キャラクター名や特徴を自分で設定

例:

Original character: short pink hair, green eyes, fantasy outfit, holding magic staff, anime style, detailed

「初音ミク」など固有の既存キャラは入れず、自作キャラクターの特徴を入力

  1. パラメータ調整

Strength:元画像をどれだけ保持するか

0.5〜0.7がラフ画を活かしやすい

CFG Scale:プロンプト忠実度

解像度やステップ数も調整可能

  1. 生成して清書

「Generate」ボタンでAIが自分のラフ画を清書

必要に応じて、さらにImage-to-Imageで別のバリエーションを生成

  1. 応用

複数バリエーション生成:プロンプトや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 の

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?