PROPMAN DESIGN 合同会社 | PROPMAN DESIGN LLC.

生成AIラボ:漫画生成AIについて調べてみた…02 | I looked into manga generation AI…02

Home  >>  生成AIラボ:漫画生成AIについて調べてみた…02 | I looked into manga generation AI…02

2024.11.07

Generated with Flux Pro 1.1

率直に生成AIに聞いてみると…

If you ask the generative AI frankly…

Gemini…

具体的な手順
画像の準備:
高画質の画像: 詳細な情報が多いほど、AIがより正確に特徴を捉えられます。
シンプルな背景: 背景が複雑な場合は、AIが主題を誤認識する可能性があります。
キャラクターのポーズ: 多様なポーズの画像があると、より表現豊かな漫画を作成できます。
AIモデルの選択:
Stable Diffusion: 自由度が高く、様々なスタイルの画像生成が可能です。
Midjourney: 高品質な画像生成に定評がありますが、学習データの偏りがある場合があります。
DALL-E 2: テキスト説明に基づいた画像生成に優れています。
プロンプトの作成:
詳細な描写: 画像の特徴(キャラクター、背景、雰囲気など)をできるだけ具体的に記述します。
スタイル指定: 漫画のジャンル、画風、雰囲気などを指定します。
指示語: 「漫画のコマのように」「吹き出しを追加して」など、生成したい画像の形式を指示します。
画像生成:
複数回生成: 同じプロンプトで複数回生成し、最適な画像を選びます。
パラメータ調整: AIモデルによっては、様々なパラメータを調整することで、生成画像を微調整できます。
画像の編集:
画像編集ソフト: 生成された画像を、お好みの画像編集ソフトで加工します。
コマ割り: 漫画の構成に合わせて、画像を分割します。
セリフの追加: 吹き出しを作成し、セリフを入力します。

Gemini…

Specific steps
Image preparation:
High-quality images: The more detailed the image, the more accurately the AI ​​can capture the features.
Simple background: If the background is complex, the AI ​​may misidentify the subject.
Character poses: Images with a variety of poses will allow you to create more expressive manga.
AI model selection:
Stable Diffusion: High degree of freedom, allowing for image generation in various styles.
Midjourney: Well-known for high-quality image generation, but training data may be biased.
DALL-E 2: Excellent at image generation based on text descriptions.
Prompt creation:
Detailed description: Describe the image features (characters, background, atmosphere, etc.) as specifically as possible.
Style specification: Specify the genre, style, atmosphere, etc. of the manga.
Instructive words: Indicate the format of the image you want to generate, such as “like a manga panel” or “add speech bubbles.”
Image generation:
Generate multiple times: Generate multiple times with the same prompt and choose the best image.
Parameter adjustment: Depending on the AI ​​model, you can fine-tune the generated image by adjusting various parameters.
Image editing:
Image editing software: Process the generated image using your preferred image editing software.
Frame division: Divide the image into panels to fit the structure of your manga.
Add dialogue: Create speech bubbles and enter dialogue.

Perplexity

準備
まず、以下のツールを用意します:
元となる1枚の画像
AI画像生成ツール (例: Reimagine XL, Canva, AIピカソなど)
漫画制作支援ツール (例: World Maker, SkyReelsなど)
手順

  1. 元画像の準備
    漫画のベースとなる1枚の画像を選びます。キャラクターや背景など、漫画の核となる要素が含まれているものが理想的です2。
  2. AI画像生成
    選んだAI画像生成ツールを使って、元画像から複数の類似画像を生成します。
  3. 漫画コマの作成
    生成された画像を使って、漫画のコマを作成します。
  4. ストーリー構築
    ChatGPTなどのAIツールを活用して、ストーリーやセリフを考案します。
  5. 編集と仕上げ
    漫画制作支援ツールを使って、コマの配置や全体的なレイアウトを調整します。

Perplexity

Preparation
First, prepare the following tools:
A single source image
AI image generation tool (e.g. Reimagine XL, Canva, AI Picasso, etc.)
Manga production support tool (e.g. World Maker, SkyReels, etc.)
Steps

  1. Prepare source image
    Choose a single image that will be the base of your manga. Ideally, it should contain the core elements of your manga, such as characters and background2.
  2. AI image generation
    Use the AI ​​image generation tool you selected to generate multiple similar images from the source image.
  3. Create manga panels
    Use the generated images to create manga panels.
  4. Story construction
    Use an AI tool such as ChatGPT to come up with a story and dialogue.
  5. Editing and finishing
    Use the manga production support tool to adjust the placement of the panels and the overall layout.

Claude…

漫画を作成するためのPythonスクリプトを作成します。主にdiffusersライブラリを使用して、1枚の画像から複数のコマを生成する方法を実装します。

import torch
from diffusers import StableDiffusionImg2ImgPipeline
from PIL import Image
import numpy as np

class MangaGenerator:
    def __init__(self, model_id="runwayml/stable-diffusion-v1-5"):
        """
        マンガジェネレーターの初期化
        Args:
            model_id: 使用する画像生成モデルのID
        """
        self.device = "cuda" if torch.cuda.is_available() else "cpu"
        self.pipe = StableDiffusionImg2ImgPipeline.from_pretrained(
            model_id,
            torch_dtype=torch.float16 if self.device == "cuda" else torch.float32
        ).to(self.device)

    def prepare_image(self, image_path, target_size=(512, 512)):
        """
        入力画像の前処理
        """
        image = Image.open(image_path)
        image = image.convert("RGB")
        image = image.resize(target_size, Image.LANCZOS)
        return image

    def generate_panel(self, init_image, prompt, style_prompt="manga style, black and white", 
                      strength=0.75, guidance_scale=7.5):
        """
        1つのマンガパネルを生成
        """
        prompt = f"{prompt}, {style_prompt}"

        image = self.pipe(
            prompt=prompt,
            image=init_image,
            strength=strength,
            guidance_scale=guidance_scale
        ).images[0]

        return image

    def create_manga_page(self, init_image, prompts, layout="2x2"):
        """
        マンガページを生成
        Args:
            init_image: 元となる画像のパス
            prompts: 各パネルの説明文のリスト
            layout: パネルのレイアウト ("2x2" または "1x4")
        """
        init_image = self.prepare_image(init_image)
        panels = []

        for prompt in prompts:
            panel = self.generate_panel(init_image, prompt)
            panels.append(panel)

        # ページレイアウトの作成
        if layout == "2x2":
            width = height = 1024
            page = Image.new('RGB', (width, height), 'white')

            # パネルの配置
            positions = [
                (0, 0),          # 左上
                (width//2, 0),   # 右上
                (0, height//2),  # 左下
                (width//2, height//2)  # 右下
            ]

            for panel, pos in zip(panels, positions):
                panel = panel.resize((width//2, height//2))
                page.paste(panel, pos)

        elif layout == "1x4":
            width = 512
            height = 2048
            page = Image.new('RGB', (width, height), 'white')

            for i, panel in enumerate(panels):
                page.paste(panel, (0, i * 512))

        return page

    def add_speech_bubbles(self, page, texts, positions):
        """
        吹き出しを追加(基本的な実装)
        """
        from PIL import ImageDraw, ImageFont
        draw = ImageDraw.Draw(page)

        # 日本語フォントのパスを指定(システムに応じて変更が必要)
        try:
            font = ImageFont.truetype("./fonts/NotoSansJP-Regular.otf", 24)
        except:
            font = ImageFont.load_default()

        for text, pos in zip(texts, positions):
            # 簡単な白い背景の吹き出し
            text_bbox = draw.textbbox(pos, text, font=font)
            draw.rectangle([
                text_bbox[0] - 10, text_bbox[1] - 10,
                text_bbox[2] + 10, text_bbox[3] + 10
            ], fill="white", outline="black")
            draw.text(pos, text, fill="black", font=font)

        return page

def main():
    # 使用例
    generator = MangaGenerator()

    # 4コマ漫画の生成
    prompts = [
        "キャラクターが公園で散歩している",
        "友達に出会って話している",
        "一緒にアイスクリームを食べている",
        "夕日を見ながら別れる"
    ]

    page = generator.create_manga_page(
        "input_image.jpg",
        prompts,
        layout="2x2"
    )

    # 吹き出しの追加
    texts = [
        "いい天気だな〜",
        "あ、○○ちゃん!",
        "アイス美味しいね!",
        "また明日!"
    ]
    positions = [(100, 100), (600, 100), (100, 600), (600, 600)]

    page_with_text = generator.add_speech_bubbles(page, texts, positions)
    page_with_text.save("manga_output.jpg")

if __name__ == "__main__":
    main()

このスクリプトの主な機能は以下の通りです:

  1. 画像処理
  • 入力画像のサイズ調整と前処理
  • Stable Diffusionモデルを使用した画像生成
  • マンガ調のスタイル適用
  1. レイアウト機能
  • 2×2グリッドまたは1×4の縦長レイアウト
  • 複数のパネルを1ページに配置
  1. 吹き出し機能
  • テキストの追加
  • 簡単な吹き出しの描画

使用方法:

  1. 必要なライブラリをインストール:
pip install torch diffusers pillow
  1. 入力画像とプロンプトを準備し、スクリプトを実行:
generator = MangaGenerator()
prompts = ["シーン1の説明", "シーン2の説明", "シーン3の説明", "シーン4の説明"]
page = generator.create_manga_page("input_image.jpg", prompts)

カスタマイズのポイント:

  • style_promptを変更して異なる画風を試す
  • strengthパラメータを調整して元画像の影響度を変更
  • レイアウトを”2×2″か”1×4″で選択
  • 吹き出しのデザインやフォントをカスタマイズ

改善したい点がありましたら、お知らせください。例えば:

  • より複雑なパネルレイアウト
  • 高度な吹き出しデザイン
  • 特定の漫画スタイルの強化
  • その他の機能追加

Claude…

I’m creating a Python script to create a comic. I’ll mainly use the diffusers library to implement a way to generate multiple frames from a single image.

import torch
from diffusers import StableDiffusionImg2ImgPipeline
from PIL import Image
import numpy as np

class MangaGenerator:
def init(self, model_id=”runwayml/stable-diffusion-v1-5″):
“”
Initialize manga generator
Args:
model_id: ID of image generation model to use
“””
self.device = “cuda” if torch.cuda.is_available() else “cpu”
self.pipe = StableDiffusionImg2ImgPipeline.from_pretrained(
model_id,
torch_dtype=torch.float16 if self.device == “cuda” else torch.float32
).to(self.device)

def prepare_image(self, image_path, target_size=(512, 512)):
“”
Preprocess input image
“””
image = Image.open(image_path)
image = image.convert(“RGB”)
image = image.resize(target_size, Image.LANCZOS)
return image

def generate_panel(self, init_image, prompt, style_prompt=”manga style, black and white”,
strength=0.75, guidance_scale=7.5):
“””
Generate one manga panel
“””
prompt = f”{prompt}, {style_prompt}”

image = self.pipe(
prompt=prompt,
image=init_image,
strength=strength,
guidance_scale=guidance_scale
).images[0]

return image

def create_manga_page(self, init_image, prompts, layout=”2×2″):
“””
Generate a manga page
Args:
init_image: Path to the original image
prompts: List of descriptions for each panel
layout: Panel layout (“2×2” or “1×4”)
“””
init_image = self.prepare_image(init_image)
panels = []
for prompt in prompts:
panel = self.generate_panel(init_image, prompt)
panels.append(panel)

Create page layout

if layout == “2×2”:
width = height = 1024
page = Image.new(‘RGB’, (width, height), ‘white’)

Position panels

positions = [
(0, 0), # Top left
(width//2, 0), # Top right
(0, height//2), # Bottom left
(width//2, height//2) # Bottom right
]
for panel, pos in zip(panels, positions):
panel = panel.resize((width//2, height//2))
page.paste(panel, pos)

elif layout == “1×4”:
width = 512
height = 2048
page = Image.new(‘RGB’, (width, height), ‘white’)

for i, panel in enumerate(panels):
page.paste(panel, (0, i * 512))

return page

def add_speech_bubbles(self, page, texts, positions):
“””
Add speech bubbles (basic implementation)
“””
from PIL import ImageDraw, ImageFont
draw = ImageDraw.Draw(page)

Specify the path to the Japanese font (need to change depending on your system)

try:
font = ImageFont.truetype(“./fonts/NotoSansJP-Regular.otf”, 24)
except:
font = ImageFont.load_default()

for text, pos in zip(texts, positions):

A simple speech bubble with a white background

text_bbox = draw.textbbox(pos, text, font=font)

draw.rectangle([
text_bbox[0] – 10, text_bbox[1] – 10,
text_bbox[2] + 10, text_bbox[3] + 10
], fill=”white”, outline=”black”)

draw.text(pos, text, fill=”black”, font=font)

return page

def main():

Example

generator = MangaGenerator()

Generate 4-panel manga

prompts = [
“Character is walking in the park”,
“Meeting and talking with friends”,
“Eating ice cream together”,
“Parting while watching the sunset”

page = generator.create_manga_page(
“input_image.jpg”,
prompts,
layout=”2×2″
)

Add speech bubble

texts = [
“Nice weather”,
“Oh, XX-chan!”,
“Ice cream is delicious! “,
“See you tomorrow! “
]
positions = [(100, 100), (600, 100), (100, 600), (600, 600)]

page_with_text = generator.add_speech_bubbles(page, texts, positions)
page_with_text.save(“manga_output.jpg”)

if name == “main“:
main()

The main functions of this script are:

Image processing

Resize and preprocess input images

Image generation using Stable Diffusion model

Apply manga style

Layout functions

2×2 grid or 1×4 vertical layout

Place multiple panels on one page

Speech bubble functions

Add text

Draw simple speech bubbles

How to use:

Install required libraries:

pip install torch diffusers pillow

Prepare input images and prompts and run the script:

generator = MangaGenerator()
prompts = [“Scene 1 description”, “Scene 2 description”, “Scene 3 description”, “Scene 4 description”]
page = generator.create_manga_page(“input_image.jpg”, prompts)

Customization tips:

Change style_prompt to try different styles

Adjust the strength parameter to change the influence of the original image

Select layout “2×2” or “1×4”

Customize speech bubble design and font

Please let us know if there are any improvements you would like to make. For example:

More complex panel layouts

Advanced speech bubble design

Enhancements to specific manga styles

Additional features

結局…それができるプラットフォームは無い…一枚ずつ画像生成して組んでいくしかない!ですね…。

In the end, there is no platform that can do that… You have to generate the images one by one and assemble them! That’s right…





Generation AI Lab:生成AIラボ

2025.01.16 無償で公開された...日本初の商用利用可能な日本語動画生成AI基盤モデル...「AIdeaLab VideoJP」を... https://huggingface.co/spaces/aidealab/AIdeaLab-VideoJP からいじってみた...。 I took a look at "AIdeaLab VideoJP" Japan's first commercially available Japanese video generation AI platform model, which has been released for free at https://huggingface.co/spaces/aidealab/AIdeaLab-VideoJP. https://note.com/aidealab/n/n677018ea1953 Hugging Face からだと...固定のプロンプトからしか生成できないみたい... From Hugging Face … it seems that it can only be generated f ...
2025.01.05 あけましておめでとうございます。 本年も宜しくお願いいたします。 Happy New Year. Thank you for your continued support this year. Generated in Midjourney Generation AI Lab:生成AIラボ ...
2024.12.26 Gensparkから...ホリデーギフトメール「Genspark Fashion Preview」が届いたので...早速いじってみた...。 I received a holiday gift email from Genspark called "Genspark Fashion Preview" so I immediately started playing around with it. https://www.genspark.ai/tryon Midjourneyで元画像を生成してアップロード...待つ事数十秒... Generate the original image with Midjourney and upload it… Wait for a few seconds… Original image…Generated by Midjourney こりゃぁ...ひどい... つづく... Wow… that's terrible… to be continued… Generation AI Lab:生成AIラボ ...
2024.12.23〜26 バージョンアップした...「Pika 2.0」が無料で使える!?早速...試してみた...。 Scene Ingredients: キャラクター、オブジェクト、背景などの要素をアップロードし、シーン内で自由に配置・調整できる機能が追加された...。 https://pika.art The updated version "Pika 2.0" is now available for free!? I tried it right away.Scene Ingredients: Added the ability to upload elements such as characters, objects, and backgrounds and freely place and adjust them within the scene. 先ず...プロンプト「東京の空を飛ぶ50歳の日本人ビジネスマン」とし...プロンプトのみで生成... First, let's generate a prompt using the phrase "A 50-year-o ...
2024.12.25 今まで触らずだった...動画生成AIサービス「PixVerse」をいじってみた...。 I had never used it before, so I decided to try out the video generation AI service "PixVerse". https://app.pixverse.ai/home 先ずは...プロンプトのみで...「サンタクロースがトナカイに引かれたソリに乗って星空からやってくる様子」 First off… just the prompt… "Santa Claus coming down from the stars in a sleigh pulled by reindeer." 次に画像から動画生成...プロンプト「振り返って家を出ていく様子」 Next, generate a video from the image…Prompt: "Looking back and leaving the house" Original image…generated by Midjourney 最後に...初めに ...
2024.12.24 12月18日にアップグレードした...「Microsoft Bing」の「Image Creator」をいじってみた...。 OpenAI「DALL-E 3」「PR16」搭載で…2倍速く+クオリティ向上…との事…。 http://bing.com/create I played around with "Image Creator" on "Microsoft Bing" which was upgraded on December 18th. Equipped with the latest OpenAI "DALL-E 3" model "PR16" it is said to be twice as fast and have improved quality. プロンプト「真夏のビーチでアイスクリームを舐める少女」 Prompt: "A girl licking an ice cream on a midsummer beach" プロンプト「森の中で暮らすマントヒヒの家族」 Prompt: "A family of Hamadryas living in ...
2024.12.24 Blog Propman MEMO 「ものづくり」備忘録?のアイキャッチ画像+αを... Midjourney・Flux・Imagen・Adobe Firefly・Copilot Designer・Ideogram・VIVA・Vidu・Kling・Runway・Dream Machine・Haiper・hailuo...等々で生成しています。 Blog Propman MEMO "Manufacturing" memo? Eye-catching images + more…Created using Midjourney, Flux, Imagen, Adobe Firefly, Copilot Designer, Ideogram, VIVA, Vidu, Kling, Runway, Dream Machine, Haiper, hailuo…etc. Generation AI Lab:生成AIラボ ...
2024.12.18 機能アップした!?Imagen3を...ImageFXとGemini 1.5 Flashでいじってみた...。 Improved functionality! Imagen3…I played around with ImageFX and Gemini 1.5 Flash… https://deepmind.google/technologies/imagen-3/ ImageFX... Gemini... プロンプト「オシャレなオフィスでパソコン操作をする最新の精密な人型ロボット達」 Prompto: "The latest in precision humanoid robots operating computers in stylish offices." 生成出来ず... Unable to generate… まもなく Gemini Advanced で人物の画像生成を利用できるようになります。People image generation will be available in Gemini Advanced soon. プロンプト「大海を泳ぐイ ...
2024.12.16 久しぶりに...バージョンアップした「Hailuo AI」をいじってみた... I played around with the updated "Hailuo AI" for the first time in a while… 2Dアニメーションの改善: Hailuo AIは、2Dアニメーションやアニメ動画の生成に特化した新しいアップデートをリリースしました。このアップデートにより、より滑らかで高品質なアニメーションが可能になっています 画像から動画への変換機能: 新たに「Image to Video」機能が追加され、静止画を動かすことができるようになりました。ユーザーはJPEGやPNG形式の画像をアップロードし、自然な動きを持つ動画を生成できます。この機能は、特にポートレート写真などを使った場合に効果的です プロンプト補正機能: 動画生成時にプロンプトの意味をAIが自動的に解釈し、より適切な内容の動画を生成する補正機能が導入されました。この機能を利用することで、ユーザーはより意図に沿った動画を簡単に作成できます キューイング機能の追加: ユーザーは、動画生成 ...
2024.12.16 久しぶりに...先日ブログでサイトの更新をお知らせした...「Dream Machine」をいじってみた...。 It's been a while… the other day I announced an update to the site on my blog… I've been messing around with "Dream Machine"… https://lumalabs.ai/dream-machine Dream Machine サイトリニューアル プロンプト「アフリカの草原をゆっくりと歩く象の群れ、一頭の象の背中に乗った若い女性が眩しそうに太陽を見上げている」で画像を生成... Generate an image using the prompt "A herd of elephants walking slowly across the African grasslands, a young woman riding on the back of one of the elephants is dazzled by the sun" ...