タグ: ComfyUI

  • [ComfyMaster31] AWS上にComfyUI環境を構築しよう!(準備編)

    こんにちわ!AICU media編集部です。
    AWS 生成 AI 実用化推進プログラム」に採択されました!

    クリエイティブAIで「つくるひとをつくる」をビジョンに、「わかるAIを届ける」をコンセプトに活動しているAICU mediaは、高い技術力と、わかりやすい記事を通して今後もより一層力を入れて、AWS(Amazon Web Services)の企業での社内開発やプロフェッショナル向けの使いこなし事例を当事者目線でお届けしていきます。


    あらためまして、こんにちわ、AICU media編集部です。
    ComfyUI マスターガイド」第30回目になります。
    本記事では、AWS上にComfyUI環境を構築するテクニックを詳細に解説します。お値打ち記事ですが、ちょっと長いので3編に分けて、お送りします!

    本シリーズの初回はこちら。前回はこちら目次はこちらです。

    AWS編第2回はこちら、「コスト効果大なComfyUIのAWSデプロイ(Cost Effective AWS Deployment of ComfyUI)」を準備していきます。

    「Cost Effective AWS Deployment of ComfyUI」

    つまり「お財布に痛くない、AWSでのComfyUI運用」というオープンソース(MITライセンス)のプロジェクトです。AWS公式サンプルとして公開されています。

    https://github.com/aws-samples/cost-effective-aws-deployment-of-comfyui/blob/main/README_ja.md

    このサンプルリポジトリは、強力な AI画像生成ツールである ComfyUI を AWS 上にシームレスかつコスト効率の高い方法でデプロイ(インストールして利用)するソリューションを提供しています。このリポジトリは、AWSの主要サービスであるECS(Amazon Elastic Container Service)や、EC2(Amazon Elastic Compute Cloud)、その他の AWS サービスを活用した構成の設定を無償提供しています。しかも日本語の解説付きです。

    このリポジトリの説明にもあるように、このソリューションの利用については AWS の費用が発生します。また設定次第では高額な費用になる可能性もあります。費用に関する詳細情報は、コスト セクションに記載されていますが、本記事では、まずAICU編集部での実用的な実験データで計測して共有していきたいと思います。

    AICUコラボクリエイター・Yasさんによる動画での解説冒頭はこちら

    動画での学びを求める方にはこちらがオススメです!

    https://j.aicu.ai/Coloso3

    それでは準備作業からはじめましょう

    (1) AWSのアカウントを作成
    (2) クォータの引き上げ申請
    (3) インストール環境をCode Editorで構築
    (4) デプロイオプションの変更
    (5) ComfyUI のデプロイ
    (6) 利用開始!

    (1)AWSアカウントの作成

    AWSを使用するためには、AWSのアカウントが必要になります。AWS公式が公開している以下の記事を参考にアカウントを作成しておいてください。

    https://aws.amazon.com/jp/register-flow

    IAMによる開発者アカウントの作成

    最初に作られるアカウントを「ルートユーザー」といいます。
    このユーザーは、アカウントの新規作成や削除、支払いなど全ての根幹的権限を持っていますので、操作するのはできるだけ短期間で終わらせたいところです。またパスワード等の流出によるリスクが大きすぎます。
    そこで、開発に頻繁に使うアカウントは分けておきたいと思います。

    AWSではこのユーザー作成及び管理を「AWS Identity and Access Management」つまり、「IAM」と呼ぶサービスで管理します。

    一番上の検索窓に「IAM」と打って、出てきたIAMの「主要な機能」から「ユーザー」を選びましょう。

    画像

    左側の「アクセス管理」→「ユーザー」でも構いません。

    画像

    ユーザ作成ボタンを押してください。
    この先、何か間違った?というときも「削除」を押せば元通りです。

    画像

    次はユーザー作成です。

    画像

    ユーザーの詳細を指定

    ・ユーザ名: 「ComfyUI-server」とします
    ・[チェックON] AWS マネジメントコンソールへのユーザーアクセスを提供する
    ・ユーザーにコンソールアクセスを提供していますか?
    →ユーザータイプ「IAMユーザーを作成」 でユーザーを指定する

    画像

    「次へ」を押すと「許可の設定」に移動します。

    画像

    ユーザーグループを設定します

    ここでは「ComfyUI-users」というAdministratorAccess権限のみを持ったユーザーグループを作成します。

    画像

    続いて、「ポリシーを直接アタッチする」を使って以下のポリシーをアタッチしてください。

    画像
    • ServiceQuotasFullAccess
    • AWSCloudFormationFullAccess
    • AmazonEC2FullAccess
    • IAMFullAccess
    • AWSCloudTrail_FullAccess
    • AmazonSageMakerFullAccess
    • AWSLambda_FullAccess
    • AWSAppSyncPushToCloudWatchLogs

    ※ここでは詳細な権限設定を考えるべきですが、設定の簡易のために、いったん「AdministratorAccess」と続く設定で必要となる権限のFullAccessのみを設定してすすめます。

    次のステップ「パスワードの取得」で、ユーザーのAWS マネジメントコンソールにサインインするための手順とパスワードを取得できます。

    画像

    「コンソールパスワード」の表示をして、ブラウザの別ユーザのウインドウでコンソールサインインURLにアクセスします。このURLの冒頭の12桁の数字がアカウントIDです。

    画像

    あらかじめ設定されたパスワードでの初回ログインが終わると、パスワード変更を求められます。ここでのパスワード設定は、英数大文字、数字、記号など、高い難度でお願いします。

    MFA(多要素認証)デバイスの設定もしておくことをおすすめします。

    作成したアカウントでAWSダッシュボードに入れるようになったら次のステップです。
    ここまでの作業を単純化したい場合は、次のステップでは、ルートユーザーでログインします(非推奨)。

    (2)スポットインスタンスの上限解放

    今回使うこのリポジトリでは、GPUのスポットインスタンス「All G and VT Spot Instance Requests」を使用しますが、このスポットインスタンスの上限のデフォルトは0であり、このままでは使用できません。さらに、この上限は自由に設定できるものではなく、AWSのサポートで変更してもらう必要があります。そのため、ここではスポットインスタンスの上限解放のリクエストを送る方法を説明します。

    まず、AWSに作成したユーザー(もしくはルートユーザー)でログインし、トップページに当たる「コンソールのホーム」画面を表示します。
    https://console.aws.amazon.com/console/home

    画像

    次にリージョン(地域)を選択します。
    右上のプルダウンで選ぶことができます。

    画像

    ここでは「us-west2」(オレゴン)を選んでおきましょう。
    新しい機械学習サービスなどが入りやすく、利用しやすい価格になっている事が多いためです。もちろん東京リージョンのほうが良い、など都合に合わせていただいて構いません。

    次に左上の検索ボックスに「service quotas」と入力し、表示されたサービス一覧から「Service Quotas」を選択します。

    こちらのURLでもアクセスできます。

    https://us-west-2.console.aws.amazon.com/servicequotas/home/services

    画像
    画像

    Service Quotasの画面が開くので、左サイドメニューから「AWSのサービス」を選択します。

    画像

    AWSのサービス一覧画面が表示されるので、上部の検索バーに「ec2」と入力し、下部のサービス一覧から「Amazon Elastic Compute Cloud (Amazon EC2)」を選択します。

    画像

    もしこのタイミングで以下のような画面になる場合は、必要な権限「ServiceQuotasFullAccess」が足りません(一つ前のステップを確認してきてください)。

    画像

    EC2のスポットインスタンス一覧が表示されるので、一覧から「All G and VT Spot Instance Requests」にチェックを入れ、右上の「アカウントレベルでの引き上げをリクエスト」をクリックします。

    画像

    表示されたダイアログボックスの左中央にある「クォータ値を引き上げる」の入力欄に「4」と入力し、下部の「リクエスト」ボタンをクリックします。

    画像

    ※ここでクォータ値が「4」以上になっている場合は、すでに同一アカウントでクォータの引き上げが実施されています。申請する必要はありません。

    「リクエスト」すると画面上部に「Submitting Quota increase request for All G and VT Spot Instance Requests with requested Value of 4.」と表示され、リクエストの送信が行われます。

    画像

    しばらくすると、AWSサポートより以下のような文面のメールが送信されてきます。おそらく人力で確認が実施されているようです。

    ご担当者様

    以下内容にて上限緩和申請を受領いたしました。

    [US West (Oregon)]: EC2 Spot Instances / All G and VT Spot Instance Requests, 新しい上限数 = 8

    現在、担当部署にて当上限緩和の申請内容について確認しております。
    進歩があり次第ご連絡いたしますので、今しばらくお待ちいただきますようお願いいたします。
    ※確認作業のためお時間をいただく場合がございます、予めご了承くださいませ

    Amazon Web Services

    さらにしばらくすると、上限緩和リクエストが受理された内容のメールが届きます。これで上限緩和が完了になります。

    ご担当者様

    以下内容にて、ご依頼いただきました上限緩和リクエストの設定が完了いたしました。
    反映されるまでに30分ほどかかる場合がございますことご了承くださいませ。

    [US West (Oregon)]: EC2 Spot Instances / All G and VT Spot Instance Requests, 新しい上限数 = 8

    何卒よろしくお願いいたします。
    Amazon Web Services

    (3) インストール環境をCode Editorで構築

    クォータの申請が終わったらしばらく時間がありますので、ここで一休みしても良いのですが、せっかくなのでもうちょっとだけ進めていきましょう。

    続いてのステップはインストール環境の構築です。
    cost-effective-aws-deployment-of-comfyuiの環境構築方法には、ローカル環境で行う方法と、SageMakerで行う方法があります。ローカル環境を使ったインストールは、ユーザー個々の環境でブレが大きく「おま環」(=「お前の環境だけで起こっている」)になりがちです。
    そのため最近の多くのAWSセットアップ手順では、SageMaker Studioでセットアップを行う手順が推奨されています。
    せっかくなので今回も、SageMaker Studioを体験しつつ、SageMaker Studio上で環境構築していきましょう!

    SageMaker Studioの起動

    SageMakerには、テンプレートが用意されています。このテンプレートを利用することで、最初からdockerやコードエディターなどの環境がインストールされた状態でSageMaker Studioを立ち上げられます。以下のリンクよりテンプレート用のリポジトリにアクセスしてください。

    https://github.com/aws-samples/sagemaker-studio-code-editor-template

    リポジトリにアクセスし、下の方にスクロールすると、「Deploymet (1-click)」という項目があることが確認できます。ここから好きなリージョンの「Launch Stack」ボタンを押下することで、そのリージョンでSageMaker Studioを起動できます。今回は、us-west-2を起動します。

    画像
    画像

    AWSにログイン済みの場合、以下のような画面が表示されます。

    画像

    AWSダッシュボードにログインできるにも関わらず、以下のような画面が表示された場合は、CloudFormationに関する必要な権限が足りません。一つ前のステップを確認するか、ルートユーザーで「AWSCloudFormationFullAccess」の権限追加を行ってください。

    画像

    さて、正しく権限がある場合は、ここで以下のパラメータ設定を行えます。

    画像
    • AutoStopIdleTimeInMinutes: SageMaker Code Editorが自動で停止するまでの時間を設定します。デフォルトは120分で、起動してから120分後にCode Editorが停止します。今回は、120分あれば十分なので、120分に設定します。
    • EbsSizeInGb: Code Editorで使用する容量を設定します。今回、Code EditorはIDEとしてデプロイを行うためだけに使用するため、デフォルトの容量「20GB」で問題ありません。
    • InstanceType: Code Editorを起動するインスタンスを設定します。デフォルト設定は「ml.t3.medium」で、選択できるインスタンスの中で最も性能が低いものになりますが、インストールのみに使用するので、これで問題ありません。
    • UseDefaultVpc: 各リージョンにデフォルトで用意されているVPCを利用するかどうかを決定します。デフォルト設定は「true」で、デフォルトのVPCを利用する設定になっています。デフォルトのVPCを使用したくない理由がなければ、デフォルト設定のままで問題ありません。

    上記の設定後に、下部の「AWS CloudFormation によって IAM リソースがカスタム名で作成される場合があることを承認します。」にチェックを入れ、「スタックの作成」ボタンをクリックします。

    そうすると、CloudFormationが実行され、SageMaker Studioの環境構築が行われます。

    画像

    しばらくすると、ステータスが「CREATE_IN_PROGRESS」から「CREATE_COMPLETE」に変わり、SageMaker Studioの環境構築が完了します。

    画像

    もしROLLBACK_FAILDEDというエラーになった場合は、「SageMakerStudio」に関する必要な権限が足りません。

    画像

    この場合はいったんこのCodeEditorStackを「削除」して、ルートユーザー必要な権限を追加してきてください。

    https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/troubleshoot_roles.html

    理解のために CodeEditorStack.template.yaml を使ってChatGPT等に訊いてみるのもよいでしょう。

    このCloudFormationのデプロイに必要なARNを教えて

    1. EC2関連の権限必要な権限:
    ec2:CreateVpc, ec2:DescribeVpcs, ec2:CreateSubnet, ec2:DescribeSubnets
    ec2:CreateInternetGateway, ec2:AttachInternetGateway
    ec2:CreateRouteTable, ec2:CreateRoute, ec2:AssociateRouteTable
    理由: VPCやサブネット、ルートテーブルを作成し、インターネットゲートウェイをアタッチするために必要です。
    2. IAM関連の権限必要な権限:
    iam:CreateRole, iam:AttachRolePolicy, iam:PutRolePolicy, iam:PassRole
    理由: LambdaやSageMaker Studioの実行用ロール作成とポリシーのアタッチ、およびPassRole権限を必要とする可能性があります。
    3. SageMaker関連の権限必要な権限:
    sagemaker:CreateDomain, sagemaker:CreateUserProfile, sagemaker:CreateApp, sagemaker:DescribeDomain, sagemaker:DeleteDomain
    理由: SageMaker Studioのセットアップに必要な権限です。ドメイン、ユーザープロファイル、アプリの作成・削除を行うために必要です。
    4. CloudWatch Logs関連の権限必要な権限:
    logs:CreateLogGroup, logs:CreateLogStream, logs:PutLogEvents
    理由: Lambda関数の実行時にCloudWatch Logsへ出力するために必要です。
    5. Lambda関連の権限必要な権限:
    lambda:CreateFunction, lambda:InvokeFunction, lambda:DeleteFunction
    理由: CloudFormationスタックでLambda関数を作成・実行・削除するために必要です。
    6. CloudFormation関連の権限追加の権限として AWSCloudFormationFullAccess が必要ですが、他にも以下のような権限を確認してください:
    cloudformation:DescribeStacks, cloudformation:ListStackResources
    これらはスタックの管理に必要です。

    7. Service Quotas関連の権限すでにServiceQuotasFullAccessが提案されていますが、サービスクォータの確認と調整が必要な場合はこれを付与します。

    • AmazonEC2FullAccess
    • IAMFullAccess
    • AWSCloudTrail_FullAccess
    • AmazonSageMakerFullAccess
    • AWSLambda_FullAccess
    • AWSAppSyncPushToCloudWatchLogs

    以上のような権限があれば設定できるはずです。
    ※どうしてもうまく行かない場合はルートユーザーで実験しましょう。

    さて、デプロイに成功している場合、ここで「出力」タブを選択すると、「SageMakerStudioUrl」が出力されていることが確認できます。この値にあるURLを選択します。

    画像

    そうすると、SageMakerの画面が開きます。

    画像

    「Skip Tour for now」して、左上に5-6個のアイコンが並んでいるところから、「Code Editor」を選択します。

    画像

    Code Editorの起動画面に遷移します。既に起動中のCode Editorがあるので、このCode Editorの「Open」をクリックします。

    画像

    SageMaker Code Editorの画面が開きます。これでSageMakerの準備ができました。

    画像

    Microsoft の Visual Studio Code (vscode) そっくりですが、そもそも vscode もオープンソースです。こちらは「SageMaker Code Editor」というプロジェクトのようです。

    画像

    (4) デプロイオプションの変更

    今回はまずデプロイオプションの変更は行わずに、デフォルト状態でのデプロイを実験していきます。

    今回の手順では企業等での利用を想定して、ユーザーIDとパスワードによるログインを必須としています。この状態で問題なければ次のステップに進んでいただいて構いません。

    以下はセルフサインアップや自動シャットダウンなどの設定を行うデプロイオプションの変更点です。デプロイオプションは、主にcdk.jsonの内容を編集することで設定可能です。

    セルフサインアップの有効化

    Cognitoのセルフサインアップは、ログイン画面で新規アカウントをアクセスしたユーザーが作成することを可能とします。セルフサインアップの有効化は、cdk.jsonのコンテキストでselfSignUpEnabledをtrueに設定します。デフォルトはfalseですので「今回の手順でいますぐ使いたい!」という方はtrueにしておきましょう。

    {
      "context": {
        "selfSignUpEnabled": true
      }
    }

    MFAの有効化

    ユーザーの多段階認証 (MFA) を有効化します。MFAの有効化は、cdk.jsonのコンテキストでmfaRequiredをtrueに設定します(デフォルトはfalseです)。

    {
      "context": {
        "mfaRequired": true
      }
    }

    サインアップ可能なメールアドレスのドメインを制限

    allowedSignUpEmailDomainsコンテキストで、許可するドメインのリストを指定できます(デフォルトはnull)。文字列リストとして値を指定し、”@”シンボルは含めません。メールアドレスのドメインが許可ドメインのいずれかに一致する場合、ユーザーはサインアップ可能です。nullを指定すると制限なしで全ドメインが許可され、[]を指定すると全ドメインが禁止され、どのメールアドレスもサインアップできません。

    設定されると、許可されていないドメインからのユーザーは「アカウント作成」でエラーが表示され、サインアップが阻止されます。この設定は既存のCognitoユーザーには影響しません。新規サインアップやユーザー作成のみに適用されます。

    例:amazon.comドメインのメールアドレスでのみサインアップを許可する場合

    {
      "context": {
        "allowedSignUpEmailDomains": ["amazon.com"] 
      }
    }

    IPアドレス制限

    IPアドレスでWebアプリケーションへのアクセスを制限するために、AWS WAFを使用してIP制限を有効にできます。cdk.json内のallowedIpV4AddressRangesに許可するIPv4 CIDR範囲の配列、allowedIpV6AddressRangesに許可するIPv6 CIDR範囲の配列を指定します。

    { 
     "context": {
        "allowedIpV4AddressRanges": ["192.168.0.0/24"],
        "allowedIpV6AddressRanges": ["2001:0db8::/32"]
      }
    }

    SAML認証

    Google WorkspaceやMicrosoft Entra ID(旧称Azure Active Directory)などのIdPによって提供されるSAML認証機能と統合することができます。

    samlAuthEnabled: trueに設定すると、SAMLのみの認証画面に切り替わります。Cognitoユーザープールを使用した従来の認証機能は利用できなくなります。

      "samlAuthEnabled": true

    スポットインスタンス

    重要でないワークロードでコストを削減するためにスポットインスタンスを使用できます(デフォルトはtrue)。コンテキストでuseSpotをfalseに設定して無効にすることも可能です。また、spotPriceを変更してスポット価格を指定できます。スポット価格がspotPrice以下である場合のみインスタンスが利用可能です。

    {
      "context": {
        "useSpot": true,
        "spotPrice": "0.752"
      }
    }

    自動またはスケジュールでのスケールダウン

    コストをさらに削減するために、インスタンスをゼロにスケールダウンできます。

    例:活動が1時間ない場合に自動でスケールダウンするには、autoScaleDownをtrueに設定します。

    {
      "context": {
        "autoScaleDown": true
      }
    }

    これで自動でスケールダウンしてくれるようになります。

    • スケジュール(例: 勤務時間)でスケールダウン/アップするには、scheduleAutoScalingをtrueに設定します。timezone、scheduleScaleUp、scheduleScaleDownでスケールアップ/ダウンのスケジュールを指定できます。
    {
      "context": {
        "scheduleAutoScaling": true,
        "timezone": "Asia/Tokyo",
        "scheduleScaleUp": "0 9 * * 1-5",
        "scheduleScaleDown": "0 18 * * *"
      }
    }

    NATインスタンスの使用

    NATインスタンスは、NATゲートウェイと比較して安価ですが、利用可能性とネットワークスループットが制限されています。詳細はNATゲートウェイとNATインスタンスの比較を参照してください。

    デフォルトでNATインスタンスが使用されます。cheapVpcをfalseに設定すると、NATゲートウェイに変更できます。

    {
      "context": {
        "cheapVpc": false
      }
    }

    カスタムドメインの使用

    カスタムドメインをサイトのURLとして使用できます。Route53のパブリックホストゾーンがすでに同じAWSアカウントで作成されている必要があります。パブリックホストゾーンの詳細については以下を参照してください:Working with Public Hosted Zones – Amazon Route 53

    同じAWSアカウントにパブリックホストゾーンがない場合は、手動でのDNSレコードの追加やAWS ACMでのSSL証明書の検証中にメール認証を利用することも可能です。これらの方法を使用する場合、CDKドキュメントを参照し、適宜カスタマイズしてください:aws-cdk-lib.aws_certificatemanager module · AWS CDK

    cdk.jsonで以下の値を設定します。

    • hostName … サイトのホスト名。AレコードはCDKによって作成され、事前作成は不要
    • domainName … 事前に作成されたパブリックホストゾーンのドメイン名
    • hostedZoneId … 事前に作成されたパブリックホストゾーンのID
    {
      "context": {
        "hostName": "comfyui",
        "domainName": "example.com",
        "hostedZoneId": "XXXXXXXXXXXXXXXXXXXX"
      }
    }

    以上が主要な設定です。
    いまのタイミングでは見直す必要はありませんが、後ほど使用環境にあわせて変更してみてください。

    (5) ComfyUI のデプロイ

    ComfyUIのデプロイの実行

    それでは、SageMaker Code Editorを使ってComfyUIのデプロイを実行します。Code Editorの左上にある3本線のアイコンをクリックし、Terminal->New Terminalの順に選択します。


    この記事の続きはこちらから https://note.com/aicu/n/ne119480439e8

    Originally published at https://note.com on Nov 6, 2024.

  • [ComfyMaster29] 参照画像でAIをコントロール!IPAdapterの使い方

    理想のビジュアルをAIに伝えたいのに、テキストだけでは限界を感じていませんか?
    IPAdapterなら、参照画像を使って視覚的に指示できます。

    こんにちわ、AICU media編集部です。
    ComfyUI マスターガイド」第29回目になります。
    本記事では、1枚の画像から高度に画風を適用できる「IPAdapter」(アイピーアダプター)の解説です。例えば、「劇画風のしらいはかせ」画像を使うとこんな画像がプロンプトだけで生成できます。

    画像

    本稿ではIPAdapterの仕組みとComfyUIでの活用方法をステップバイステップで解説し、参照画像に基づいた高品質な画像生成を行えるようになることを目指します。気になる倫理面についても配慮していきましょう。

    本連載の初回はこちら。前回はこちら、目次はこちらです。

    [ComfyMaster28] 落書きが画像に!ControlNet Scribble入門 #ComfyUI

      1. 概要

      IPAdapterは、テキストプロンプトに加えて参照画像を入力することで、AIによる画像生成をより精密に制御する技術です。画像のスタイル、特定の視覚要素、全体的な構図など、テキストでは表現しきれないニュアンスをAIに伝えることを可能にし、生成画像の品質、一貫性、再現性を向上させます。

      本記事では、IPAdapterの仕組み、ComfyUI上での具体的なワークフロー、そして生成結果を通して、その効果と活用方法を解説します。蝶の画像を参考に人物画像を生成する例を通して、IPAdapterの強度や適用方法による変化、linear、style transfer、ease_inといった異なる重みタイプの効果の違いを検証します。

      2. IPAdapterとは

      IPAdapterは、テキストベースのプロンプトと視覚的な参照画像を組み合わせることで、AIに対してより詳細で正確な指示を与えることを可能にする技術です。この手法により、生成される画像の品質、スタイルの一貫性、特定の視覚要素の再現性が大幅に向上します。

      技術的背景

      IPAdapterの核心は、画像エンコーダーとテキストエンコーダーの出力を効果的に統合する能力にあります。この過程は以下のように要約できます。

      1. 画像エンコーディング: 入力された参照画像は、畳み込みニューラルネットワーク(CNN)などの画像エンコーダーによって処理され、高次元の特徴ベクトルに変換されます。
      2. テキストエンコーディング: 同時に、テキストプロンプトは言語モデルによって処理され、同じく高次元の特徴ベクトルに変換されます。
      3. 特徴の融合: 画像とテキストから得られた特徴ベクトルは、複雑な方法で結合されます。この過程では、注意機構(Attention Mechanism)などの技術が用いられることがあります。
      4. 潜在空間への投影: 融合された特徴は、Stable Diffusionの潜在空間に投影されます。この空間内で、画像生成プロセスが行われます。
      5. 画像生成: 最後に、潜在表現から実際の画像ピクセルへのデコードが行われ、最終的な出力画像が生成されます。

      IPAdapterの利点

      1. 精密な視覚情報の伝達: テキストだけでは表現しきれない細かいニュアンスや視覚的特徴を、AIモデルに効果的に伝達できます。
      2. スタイルの一貫性: 特定のアーティストのスタイルや、製品デザインなどを高い一貫性で再現することが可能です。
      3. 学習効率の向上: 新しい視覚概念や複雑な構図を、画像を通じてAIモデルに効率的に「教える」ことができます。
      4. 創造性の拡張: 視覚的なインスピレーションを直接AIに伝えることで、より革新的で予想外の結果を得られる可能性が高まります。

      3. ワークフローの使用準備

      カスタムノード

      • ComfyUI IPAdapter plus: IPAdapterをComfyUI上で使用できるようにしたカスタムノードです。ComfyUI Managerからインストール可能です。このカスタムノードの詳細を知りたい方は、以下のリポジトリを参照してください。

      https://github.com/cubiq/ComfyUI_IPAdapter_plus

      モデル

      • RealVisXL V5.0: 実写系を得意とするモデルで、商用利用可能(画像の販売、サービスへの組み込み可能)になります。このモデルを以下のリンクよりダウンロードし、「ComfyUI/models/checkpoints」フォルダに格納してください。

      https://civitai.com/models/139562/realvisxl-v50?modelVersionId=789646

      画像素材

      今回は、以下の画像をIPAdapterで参照します。

      画像

      画像ファイルは、以下よりダウンロードしてください。

      4. ワークフロー解説

      以下がワークフローの全体構成になります。

      GPU不要でComfyUIを簡単に起動できる
      AICU特製Colabノートブック(ConrolNetつき)はこちら
      https://j.aicu.ai/ComfyCN

      画像

      今回作成したワークフローのファイルは、文末のリンクよりダウンロードください。
      以下に、このワークフローの主要な部分とその機能を図示し、詳細に説明します。

      画像
      1. 入力画像の読み込みと前処理
        • Load Image ノード: 「butterfly_01.png」という画像を読み込みます。
      2. モデルとIP-Adapterの読み込み
        • Load Checkpoint ノード: 「RealVisXl.safetensors」モデルを読み込みます。
        • IPAdapter Model Loader ノード: 「ip-adapter-plus_sdxl_vit-h.safetensors」を読み込みます。
        • Load CLIP Vision ノード: 「CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors」を読み込みます。
      3. プロンプト処理 (CLIP Text Encode ノード x2)
        • ポジティブプロンプト: 「realistic, photorealistic, 1girl, t-shirt, black_hair, long_hair,」
        • ネガティブプロンプト: 「bad hand, bad anatomy, worst quality, ai generated images, low quality, average quality, nsfw, nude, naked,」
      4. IP-Adapterの適用 (IPAdapter Advanced ノード)
        • 入力画像、IP-Adapter、CLIP Visionモデルを組み合わせて、元のStable Diffusionモデルを調整します。
        • 重み: 1.0 (IP-Adapterの最大影響力)
        • ノイズ追加方法: linear
        • モード: concat
        • 適用範囲: V only (Value embeddings only)
      5. 潜在画像の準備 (Empty Latent Image ノード)
        • サイズ: 1024×1024
        • バッチサイズ: 1
      6. 画像生成 (KSampler ノード)
        • Seed: 860227022998597
        • Steps: 20
        • CFG Scale: 8
        • Sampler: dpmpp_2m
        • Scheduler: karras
        • Denoise: 1.0 (完全に新しい画像を生成)
      7. 画像のデコードと保存
        • VAE Decode ノード: 生成された潜在表現を実際の画像にデコードします。
        • Save Image ノード: 最終的に生成された画像を “ipadapter” という名前で保存します。

      IPAdapter Model Loderと IPAdapter Advancedの拡大です。パラメーターの参考にどうぞ。

      画像

      5. 生成結果

      以下が生成結果になります。左がIPAdapter非適用の画像、右がIPAdapterの強度を0.50で適用した結果です。IPAdapterを適用することで、シャツに学習元である蝶の模様が浮かんだり、背景が自然の風景になっています。

      画像

      IPAdapter Advancedノードのweight_typeがlinearの場合の強度ごとの生成結果一覧です。0.80になると、蝶が全面に現れてしまい、人物がいなくなってしまいます。

      画像

      これをweght_typeをstyle transfer、強度を1.0に変更して生成してみました。style transferの場合は、蝶の形状自体は継承しないので、蝶が前面に現れることなく、蝶の模様のみが反映されています。参照元画像のスタイルだけを適用したい場合は、weght_typeをstyle transferにした方が効果的です。

      画像

      weght_typeがlinearやease_inなどのスタイルと形状の両方を参照させるタイプの用途は、例えば左のパーカーの画像を参照し、右の画像のように生成した人物に着せることが考えられます。しかし、あくまで参照なので、完全に左の洋服を再現することは難しいです。
      補足として、右の画像は、weght_typeをease_in、強度を9.5にして生成した画像です。ease_inにすることで、最初はIPAdapterの効きを弱くし、後から効果が上がるようにすることで、プロンプトを反映させつつ、IPAdapterの効果も効かせるようにしています。

      画像

      6. まとめと倫理面への配慮

      本記事では、ComfyUIとIPAdapterを用いて、参照画像に基づいた高品質な画像生成を行う方法を解説しました。IPAdapterは、テキストプロンプトだけでは難しい、微妙なニュアンスや視覚的特徴の再現を可能にします。特に、IPAdapterの強度調整とweight_typeの選択によって、参照画像の要素をどのように反映させるかを細かく制御できることを示しました。linearでは形状とスタイルの両方を、style transferではスタイルのみを、ease_inでは徐々にIPAdapterの効果を強めることで、プロンプトと参照画像のバランスを調整できることを実例を通して確認しました。

      これらの技術を活用することで、AIによる画像生成の可能性は大きく広がり、より創造的で自由な表現が可能になります。今後の展望として、更なるモデルの改良や新たなカスタムノードの登場によって、IPAdapterの適用範囲はますます拡大していくことが期待されます。より高度な活用方法の探求や、他のモデルとの組み合わせなど、更なる実験を通して、IPAdapterの潜在能力を引き出し、自身の創作活動に役立ててください。

      一方では、「IPAdapter」の名前からも、IP、すなわち知的財産やキャラクタービジネスにとっては、著作権法違反、つまり違法行為や迷惑行為の原因となる技術でもあります。「技術的に出来る/できない」といった視点とは別に、Load Imageにおいて利用する画像の権利や、客観的に見た「依拠性」や「類似性」についても評価を行っておく習慣は大切です。この解説の中でも、weightパラメーターが0.5以上であれば、それは元の画像と同じものに近くなっていきます。パラメータを0.5以上にすることは「原作に対する類似と依拠を同時に認めているという証拠」とも言えますので、画像生成を行う際には、その責任をしっかりと認識して利用してください。

      AICUでは画像生成AIクリエイター仕草(v.1.0)といった形で、モラル面も啓蒙活動を行っていますが、IPAdapterの使用についてはより高度な倫理観をもっていくことを推奨します。

      次はいよいよLoRA編がはじまります。
      そしてその前に、特別編が予定されています!
      X(Twitter)@AICUai もフォローよろしくお願いいたします!

      画像生成AI「ComfyUI」マスターPlan

      画像生成AI「Stable Diffusion」特に「ComfyUI」を中心としたプロ向け映像制作・次世代の画像生成を学びたい方に向けたプランです。最新・実用的な記事を優先して、ゼロから学ぶ「ComfyUI」マガジンからまとめて購読できます。 メンバーシップ掲示板を使った質問も歓迎です。

      • メンバー限定の会員証が発行されます
      • 活動期間に応じたバッジを表示
      • メンバー限定掲示板を閲覧できます
      • メンバー特典記事を閲覧できます
      • メンバー特典マガジンを閲覧できます
      • 動画資料やworkflowといった資料への優先アクセスも予定

      ゼロから学ぶ「ComfyUI」マガジン

      https://note.com/aicu/m/md2f2e57c0f3c

      マガジン単体の販売は1件あたり500円を予定しております。
      2件以上読むのであればメンバーシップ参加のほうがお得です!というのもメンバーシップ参加者にはもれなく「AICU Creator Union」へのDiscordリンクをお伝えし、メンバーオンリー掲示板の利用が可能になります。

      https://note.com/aicu/membership/boards/61ab0aa9374e/posts/db2f06cd3487?from=self

      もちろん、初月は無料でお試しいただけます!
      毎日新鮮で確かな情報が配信されるAICUメンバーシップ。
      退会率はとても低く、みなさまにご満足いただいております。
      ✨️オトクなメンバーシップについての詳細はこちら

      動画で一気に学びたい方は、こちらのColoso講座もオススメです

      ボーナストラック

      有料・メンバーシップ向けのボーナストラックには今回解説したワークフローの完成品ダウンロードリンクに加えて、お楽しみ画像です。

      某有名漫画家のアシスタントさんに書いていただいた劇画風しらいはかせをIPAdapterに使ったら…!?生成画像を収録しています。

      画像

      この記事の続きはこちらから https://note.com/aicu/n/nc6164bdae138

      Originally published at https://note.com on Nov 4, 2024.

    1. [note.com/aicu] 2024年10月好アクセスランキング!

      2024年も残すところあと2ヶ月を切りました!
      AICU mediaのこの1ヶ月のアクセスランキングと時系列でのニュースをみて、最近のトレンドを分析していきたいと思います。

      【最速レビュー】Stability AI 最新ベースモデル「Stable Diffusion 3.5」リリース!Stability AI APIで「日本人の生成」を試してみた!

      さすがの Stability AIの新モデルです!
      その後 SD3.5 Mediumの公開や、指の問題の解決に貢献する「SLG」なども公開され、開発者コミュニティではにぎわいを見せています。

      img2img入門(1) i2iでできることを知ろう

      今月の特徴として、なぜかAUTOMATIC1111に関連する記事が多く読まれています。

      韓国の学生が作ったブラウザだけで動くAIモーションキャプチャ「Metive」

      これはすごい、インパクトが有りました。ブラウザだけで利用できる動画分析からのキャラクターアニメーションツールです。

      AUTOMATIC1111 v1.10.xリリース – Stable Diffusion 3 Mediumをサポート

      日本人が開発した「Regional Prompter」がなかなかすごい!

      https://note.com/aicu/n/n832941df99c5

      [保存版] Animagine XL 3.1 生成比較レポート

      日本語で魔法のようにGAS開発がはかどる「GASSISTANT」 #サクッと先取り !クリエイティブAIツール

      その後、開発者の横田さんからプロモーションコードのご提案をいただきました。近日発売予定の「AICUマガジン vol.6」にて収録します!

      「ComfyUI V1」デスクトップアプリのリリース告知!新UI、カスタムノードのマーケットプレイス機能[CNR]も。

      「CGWORLD vol.315」画像生成AIによる表紙メイキング、大公開。 #デジタルハリウッド30周年

      Stable Diffusion – ControlNet入門(2) ControlNet をダウンロード・準備する

      https://note.com/aicu/n/na48f6b8f3b2d

      【初心者向け!】Runway Gen-3 Alphaでプロンプト自動生成して簡単動画制作

      漫画制作に適したモデルは?Animagine 3.1 vs Animagine 3.0 徹底比較!

      公開順で振り返る2024年10月!

      AICU Magazine Vol.5 初版リリース!! 特集は「Stability AI Forever!」KDPで無料 (2024-10-01)

      祝note1,000人超え! データ公開[成長し続けるAICU]の秘密は…? (2024-10-02)

      東京ゲームショウ2024でみつけたエンタメxAI技術!懐かしの「タイムクライシス」AI技術で再誕!? (2024-10-03)

      運や勘に頼らない「クリエイティブAI」のススメ – 電通ワークショップ実施報告 (2024-10-04)

      [ComfyMaster22] レイアウトそのままにアニメを実写化!image-to-imageとスタイル変換で実写化レベルを制御 #ComfyUI (2024-10-05)

      【超入門】Stability AI APIの革新的機能(2)Edit APIの活用 (2024-10-06)

      【超初心者向け】DreamStudioを無料で試してみよう – 画像生成レッスン (2024-10-07)

      日本語で魔法のようにGAS開発がはかどる「GASSISTANT」 #サクッと先取り !クリエイティブAIツール (2024-10-08)

      【解説】LINE-ChatGPT倫理問題を整理する – 全力肯定彼氏くん[LuC4]に訪れたサービス開始以来の最大の危機 #LINEDC (2024-10-10)

      期間限定無料「ガンマミィ・ジェネレーター」を提供開始! (2024-10-11)

      [ComfyMaster23] 特別編: 画像の髪型を自由自在に変えてみよう! #ComfyUI (2024-10-12)

      先端研究が挑む「AI時代の創作」 (2024-10-13)

      「Stable Assistant を 知らないの?」Day2: 案件にAIで提案してみた (2024-10-14)

      Adobe Max 2024開催!みんな知ってる!? Adobeに搭載されているAI機能100 (2024-10-15)

      [ComfyMaster24] LoRAで表現をもっと自由に! スタイルを使いこなそう (2024-10-16)

      [ComfyMaster25] 画像を自由自在に!ControlNetで完全制御 #ComfyUI (2024-10-17)

      【速報】ガンマミィ誕生記念! イラストコンテストBlendAI賞・まいにち投稿達成賞の発表! (2024-10-17)

      INDEST(東京科学大学 田町キャンパス)にて「あんしんAIセミナー」開催 (2024-10-18)

      AICU×BlendAIガンマミィ誕生記念イラストコンテスト結果発表! #ガンマミィ (2024-10-19)


      [ComfyMaster26] ControlNetでイラストを精密に実写化! #ComfyUI (2024-10-20)

      「Stable Assistant を 知らないの?」Day3:商用利用と倫理TIPS (2024-10-21)

      「ComfyUI V1」デスクトップアプリのリリース告知!新UI、カスタムノードのマーケットプレイス機能[CNR]も。 (2024-10-22)

      【最速レビュー】Stability AI 最新ベースモデル「Stable Diffusion 3.5」リリース!Stability AI APIで「日本人の生成」を試してみた! (2024-10-23)

      あんしんなクリエイティブAIで「陽のあたる場所」をつくる #AIクリエイターに訊く #生成AI倫理 (2024-10-24)

      [ComfyMaster27] 写真もイラストも線画に!ComfyUIとControlNetによる線画抽出ワークフロー #ComfyUI (2024-10-25)

      韓国の学生が作ったブラウザだけで動くAIモーションキャプチャ「Metive」 (2024-10-26)

      Magazine Vol.5 紙版リリース!! 特集は「Stability AI Forever!」 [2024-10-27]

      紙版のリリースは10月30日を予定しております
      ご購入は j.aicu.ai/MagV5 から

      画像

      ペーパーバック版も本日リリースです!

      https://amzn.to/4fw2Erm


      Coloso講座第2弾「初級者:広告企画から動画制作までのプロセス」配信開始!! (2024-10-28)

      Google Colab 初手の初手 – GPUいらずでパワフルなAI開発環境を手に入れよう #画像生成Lesson (2024-10-29)

      Stable Diffusion 3.5 Medium 登場! 盛り上がる開発者コミュニティ、LoRAやSkip Layer Guidance (SLG)で指も改善? (2024-10-30)

      「なんかいい展」開催レポート (2024-10-31)

      そして本日、10月の内容をギュッとまとめたAICUマガジン Vol.6特集「Entertainment x AI」Kindle版がストア審査通過しました!表紙は「ガンマミィ」です。順次アップデートされますので、お楽しみに!

      https://amzn.to/4eeHihp

      10月のカバーアートは、ないとっちさん「秋の妖精」でした。

      画像

      11月~12月のカバーアートも募集中です!
      メンバーシップ掲示板でお問い合わせください

      https://note.com/aicu/membership/boards/61ab0aa9374e/posts/1aa202bf314a?from=self

      Originally published at https://note.com on Nov 2, 2024.

    2. [ComfyMaster28] 落書きが画像に!ControlNet Scribble入門

      頭の中のイメージを、絵心がなくても、まるで魔法のように高品質な画像に変換できるとしたら?
      最新のAI技術、ControlNetの「Scribble」がそれを可能にします!
      シンプルな線画を描くだけで、あとはAIがあなたの意図を読み取り、驚くほどリアルで美しい画像を生成してくれるのです。

      こんにちわ、AICU media編集部です。
      ComfyUI マスターガイド」第28回目になります。
      本記事では、この革新的なScribble機能の使い方を、具体的な手順と豊富な作例を交えて分かりやすく解説します。AIによる画像生成の世界を、あなたも体験してみませんか?

      本連載の初回はこちら。前回はこちら、目次はこちらです。

      [ComfyMaster27] 写真もイラストも線画に!ComfyUIとControlNetによる線画抽出ワークフロー #ComfyUI

        1. 概要

        この記事では、ControlNetのScribble機能を使って、簡単な線画から高品質な画像を生成するワークフローを解説します。具体的な手順、使用したモデルやパラメータ、そして異なる強度設定による生成結果の違いなどを示し、Scribbleの効果と活用方法を理解することを目的とします。

        以前の記事で解説したControlNetの基本設定を前提に、今回は「scribble_01.png」というサンプル線画を用いて、人物画像を生成する例を紹介します。生成にはSDXL、RealVisXlモデル、controlnet-union-sdxl-1.0モデルを使用し、プロンプトによる調整も行います。最終的には、ControlNetの強度パラメータを調整することで、線画の反映度合いを制御し、思い通りの画像生成を実現する方法を学びます。

        2. ワークフローの使用準備

        ControlNet

        ControlNetの使用準備については、以下の記事をご覧ください。

        今回は、ControlNetのScribbleを使用します。Scribbleは、線画を元に、画像の内容を推定し、その内容に沿った画像を生成します。

        画像素材

        今回は、以下の画像をScribbleに使用します。

        画像

        画像ファイルは、以下よりダウンロードしてください。

        3. ワークフロー解説

        以下がワークフローの全体構成になります。

        画像

        ワークフローのファイルは文末のリンクよりダウンロードしてください。
        以下にワークフローの主要な部分とその機能を図示し、詳細に説明します。

        1. 入力画像の読み込みと前処理
          • Load Image ノード: 「scribble_01.png」というスケッチ画像を読み込みます。
          • Scribble ノード: 入力スケッチを処理し、ControlNetに適した形式に変換します。
            • 出力解像度: 1024×1024
        2. モデルとControlNetの読み込み
          • Load Checkpoint ノード: 「RealVisXl.safetensors」モデルを読み込みます。
          • Load ControlNet Model ノード: 「controlnet-union-sdxl-1.0.safetensors」を読み込みます。
        3. プロンプト処理 (CLIP Text Encode (Prompt) ノード x2)
          • ポジティブプロンプト: 「realistic, photorealistic, 1girl, t-shirt, black_hair, long_hair,」
          • ネガティブプロンプト: 「bad hand, bad anatomy, worst quality, ai generated images, low quality, average quality, nsfw, nude, naked,」
        4. ControlNetの適用 (Apply ControlNet (Advanced) ノード)
          • 前処理されたスケッチ画像を使用してControlNetを適用します。
          • 強度: 0.4 (中程度の影響力)
        5. 潜在画像の準備 (EmptyLatentImage ノード)
          • サイズ: 1024×1024
          • バッチサイズ: 1
        6. 画像生成 (KSampler ノード)
          • Seed: 860227022998597
          • Steps: 20
          • CFG Scale: 7
          • Sampler: dpmpp_2m
          • Scheduler: karras
          • Denoise: 1.0 (完全に新しい画像を生成)
        7. 画像のデコードと保存
          • VAEDecode ノード: 生成された潜在表現を実際の画像にデコードします。
          • SaveImage ノード: 最終的に生成された画像を「controlnet_scribble」という名前で保存します。

        4. 生成結果

        以下がScribbleの生成結果です。ControlNetの強度を0.10〜0.80まで変化させながら生成を行い、その違いを一覧化しました。

        画像

        まず、0.10は、ほとんどScribbleが効いていないようです。0.20から少し効果が出てきているようで、0.30-0.40で良い具合で効いているように見えます。0.50からは、反対に効果が出過ぎていて、形状が崩れていっています。0.70からは落書きが強く反映されてしまっています。

        強度を0.40にし、プロンプトを変更して色々と画像を生成してみました。

        画像

        5. まとめ

        Scribbleは、落書きやラフ絵をプロンプトで指定した画像に変換してくれる、特に絵を描きたい人に有効なControlNetです。今回は、私の適当な落書きで試しましたが、もう少ししっかりしたラフ絵であれば、より良い画像を生成できると思います。ぜひ色々なラフ絵でお試しください!

        次回は、IPAdapterでの生成画像のコントロールの方法を紹介します。乞うご期待!
        X(Twitter)@AICUai もフォローよろしくお願いいたします!

        画像生成AI「ComfyUI」マスターPlan

        画像生成AI「Stable Diffusion」特に「ComfyUI」を中心としたプロ向け映像制作・次世代の画像生成を学びたい方に向けたプランです。最新・実用的な記事を優先して、ゼロから学ぶ「ComfyUI」マガジンからまとめて購読できます。 メンバーシップ掲示板を使った質問も歓迎です。

        • メンバー限定の会員証が発行されます
        • 活動期間に応じたバッジを表示
        • メンバー限定掲示板を閲覧できます
        • メンバー特典記事を閲覧できます
        • メンバー特典マガジンを閲覧できます
        • 動画資料やworkflowといった資料への優先アクセスも予定

        ゼロから学ぶ「ComfyUI」マガジン

        https://note.com/aicu/m/md2f2e57c0f3c

        マガジン単体の販売は1件あたり500円を予定しております。
        2件以上読むのであればメンバーシップ参加のほうがお得です!というのもメンバーシップ参加者にはもれなく「AICU Creator Union」へのDiscordリンクをお伝えし、メンバーオンリー掲示板の利用が可能になります。

        https://note.com/aicu/membership/boards/61ab0aa9374e/posts/db2f06cd3487?from=self

        もちろん、初月は無料でお試しいただけます!
        毎日新鮮で確かな情報が配信されるAICUメンバーシップ。
        退会率はとても低く、みなさまにご満足いただいております。
        ✨️オトクなメンバーシップについての詳細はこちら

        ワークフローのファイルは以下のリンクよりダウンロードしてください。


        この記事の続きはこちらから https://note.com/aicu/n/n8f82a5f619f1

        Originally published at https://note.com on Nov 1, 2024.

      1. [ComfyMaster27] 写真もイラストも線画に!ComfyUIとControlNetによる線画抽出ワークフロー

        デジタルアート制作において、画像から線画を抽出する技術は、イラストのトレースや3Dモデル作成の下準備など、様々な用途で重要性を増しています。特に、AI技術を活用した自動線画抽出は、作業効率の大幅な向上に貢献します。今回は、線画抽出をComfyUIで実現します。

        こんにちわ、AICU media編集部です。
        ComfyUI マスターガイド」第27回目になります。
        本記事では、ComfyUI、ControlNet、そしてLoRAを組み合わせることで、高品質かつ詳細な線画を効率的に生成するワークフローを紹介します。

        本連載の初回はこちら。前回はこちら目次はこちらです。

        [ComfyMaster26] ControlNetでイラストを精密に実写化! #ComfyUI

        1. 概要

        今回は、ComfyUIを用いて画像から高品質な線画を抽出するワークフローを紹介します。ControlNetとLineartを用いて画像から線画を生成し、LoRAを用いて漫画スタイルの線画に仕上げます。
        具体的には、「AnyLine LineArt」ノードで画像から粗い線画を抽出し、それを「controlnet-union-sdxl-1.0」と「LineAniRedmond」LoRAを用いて、より洗練された線画へと変換します。
        このワークフローを使用することで、元の画像の構図を維持しながら、アーティスティックで高精細な線画を生成することが可能です。 様々な画像(アニメ風、実写、建物)を用いた作例も提示し、ワークフローの有効性を示します。

        2. ワークフローの使用準備

        ControlNet

        ControlNetの使用準備については、以下の記事をご覧ください。

        今回は、ControlNetのLineartを使用します。Lineartで粗い線画を抽出し、その後にその線画を低ノイズでサンプリングし、補正をかけます。

        LoRA

        今回は、LoRAに「LineAniRedmond」を使用します。このLoRAは、漫画スタイルの画像を生成してくれるLoRAで、線画の質を上げるために使用します。以下のリンクよりダウンロードし、「ComfyUI/models/loras」フォルダに格納してください。

        https://civitai.com/models/127018/lineaniredmond-linear-manga-style-for-sd-xl-anime-style

        使用素材

        今回は、以下の画像を線画にします。

        画像

        以下のリンクから画像をダウンロードしてください。

        https://note.com/api/v2/attachments/download/54a45213199b43c2255a1c5713f59ba7

        3. ワークフローの解説

        以下がワークフローの全体構成になります。このワークフローは、入力画像から高品質な線画を抽出し、それを基に新しい、より詳細で洗練された線画を生成します。ControlNetとLoRAの使用により、元の画像の構造を維持しながら、高度にスタイライズされた線画が作成されます。結果として、元の画像の本質的な特徴を保持しつつ、より洗練された、アーティスティックな線画表現が得られることが期待されます。

        画像

        ワークフローは、文末のリンクよりダウンロードしてください。
        以下に、このワークフローの主要な部分とその機能を図示し、詳細に説明します。

        画像
        1. 入力画像の読み込みと線画抽出
          • Load Imageノード: 「girl_anime_02.jpeg」を読み込みます。
          • AnyLine LineArtノード: 入力画像から線画を抽出します。
            • モード: lineart_standard
            • 解像度: 1280
            • 詳細度: 0.1
          • Image Invertノード: 抽出された線画を反転させます。
        2. モデルとLoRAの読み込み
          • Load Checkpointノード: 「RealVisXl.safetensors」モデルを読み込みます。
          • Load LoRAノード: 「LineAniRedmondV2-Lineart-LineAniAF.safetensors」LoRAを適用します。
            • 強度: 1.0 (モデルとCLIP両方に適用)
        3. ControlNetの設定
          • Load ControlNet Modelノード: “controlnet-union-sdxl-1.0-pro.safetensors” を読み込みます。
          • Apply ControlNet (Advanced)ノード: 抽出された線画を使用してControlNetを適用します。
            • 強度: 0.5
        4. プロンプト処理 (CLIP Text Encode(Prompt)ノード x2)
          • ポジティブプロンプト: 「8k, best quality, masterpiece, ultra detailed, ultra high res, extremely detailed, finely detail, lineart,」
            • 線画が細かくなるように品質向上のタグを設定する
            • 「lineart」は、
          • ネガティブプロンプト: 「colorful, monochrome,」
            • 線画のみになるように、色が付くようなタグを設定しておく
        5. 画像生成 (KSamplerノード)
          • Seed: 474030329745381
          • Steps: 20
          • CFG Scale: 7
          • Sampler: dpmpp_2m
          • Scheduler: karras
          • Denoise: 0.8
        6. 画像のデコードと後処理
          • VAE Decodeノード: 生成された潜在表現を実際の画像にデコードします。
          • Color To Maskノード: デコードされた画像から白色部分をマスクとして抽出します。
          • Save Image With Alphaノード: 最終的に生成された画像をアルファチャンネル付きで保存します。

        AnyLine LineArtの詳細

        AnyLine LineArtノードは、複数の線画検出モデルを使用して入力画像を線画に変換します。このノードの各ウィジェットの意味は以下の通りです。

        • merge_with_lineart: 線画抽出を行う解像度を設定します。以下のモデルから選択可能です。
          • lineart_standard: 標準的な線画用の汎用モデル。
          • lineart_realistic: リアルな画像に特化し、細部を捉えるモデル。
          • lineart_anime: アニメスタイルの画像に最適化され、特徴的な要素を強調します。
          • manga_line: マンガスタイルのイラストに特化したモデル。
        画像
        • resolution: 線画抽出を行う解像度を設定します。デフォルトは512ですが、必要に応じて高解像度や低解像度に調整可能です。高解像度はより詳細な線画を提供しますが、計算資源を多く消費します。
        画像
        • lineart_lower_boundとlineart_upper_bound: 線検出プロセスの感度を制御するためのパラメータです。これらの値を調整することで、線画の細かさや強調具合を微調整できます。
        画像
        • object_min_size: 抽出時に考慮されるオブジェクトの最小サイズを指定し、小さなノイズやアーティファクトをフィルタリングします。デフォルト値は36です。
        画像
        • object_connectivity: 抽出中に接続されたコンポーネントの識別方法を定義します。デフォルト値は1で、オブジェクト間の接続性を決定します。例えば、複数のオブジェクトが接触している画像で、それらを一つの連続した形状として扱いたい場合、このパラメータを調整します。デフォルト値は1で、接続されたピクセルがどのようにグループ化されるかを制御します。(具体的に抽出される線画にどのような影響があるのか不明)

        4. 生成結果の確認

        以下が生成結果になります。背景は抽出できていないですが、前面の人物は線画に変換できています。

        画像

        出力される画像は、背景が透過画像となっているので、抽出元画像と重ねて表示してみました。元画像に比較的忠実に抽出されていることが分かります。

        画像

        他の画像でも試してみました。

        画像

        実写からの線画抽出例です。こちらも綺麗に抽出できています。

        画像

        建物から線画を抽出してみました。かなり細かいところまで線画として抽出できています。

        画像

        5. まとめ

        本記事で紹介したワークフローを用いることで、ComfyUI、ControlNet、LoRAの連携による高品質な線画抽出が可能になります。AnyLine LineArtノードによる柔軟な線画抽出、ControlNetによる精密な制御、そしてLineAniRedmond LoRAによる画風調整といった各要素が組み合わさり、様々な画像に対して精緻でアーティスティックな線画生成を実現します。アニメ風、実写、建物といった多様な画像例からも分かるように、このワークフローは幅広い用途に応用できる強力なツールとなります。今後のデジタルアート制作において、本記事で紹介したワークフローが、より効率的で創造的な作品制作の一助となることを期待します。

        次回は、ラフ画から画像生成の方法を紹介します。乞うご期待!
        X(Twitter)@AICUai もフォローよろしくお願いいたします!

        画像生成AI「ComfyUI」マスターPlan

        画像生成AI「Stable Diffusion」特に「ComfyUI」を中心としたプロ向け映像制作・次世代の画像生成を学びたい方に向けたプランです。最新・実用的な記事を優先して、ゼロから学ぶ「ComfyUI」マガジンからまとめて購読できます。 メンバーシップ掲示板を使った質問も歓迎です。

        • メンバー限定の会員証が発行されます
        • 活動期間に応じたバッジを表示
        • メンバー限定掲示板を閲覧できます
        • メンバー特典記事を閲覧できます
        • メンバー特典マガジンを閲覧できます
        • 動画資料やworkflowといった資料への優先アクセスも予定

        ゼロから学ぶ「ComfyUI」マガジン

        https://note.com/aicu/m/md2f2e57c0f3c

        マガジン単体の販売は1件あたり500円を予定しております。
        2件以上読むのであればメンバーシップ参加のほうがお得です!というのもメンバーシップ参加者にはもれなく「AICU Creator Union」へのDiscordリンクをお伝えし、メンバーオンリー掲示板の利用が可能になります。

        https://note.com/aicu/membership/boards/61ab0aa9374e/posts/db2f06cd3487?from=self

        もちろん、初月は無料でお試しいただけます!
        毎日新鮮で確かな情報が配信されるAICUメンバーシップ。
        退会率はとても低く、みなさまにご満足いただいております。
        ✨️オトクなメンバーシップについての詳細はこちら

        そして本講座の内容は各種有料メディアでも展開準備中です!
        ■「ComfyUIマスター:カスタムノードとアプリ開発」

        https://j.aicu.ai/Coloso3


        この記事の続きはこちらから https://note.com/aicu/n/n74e7edf56832

        Originally published at https://note.com on Oct 25, 2024.

      2. 「ComfyUI V1」デスクトップアプリのリリース告知!新UI、カスタムノードのマーケットプレイス機能[CNR]も。

        画像生成AIにおける世界で最も注目されているツール「ComfyUI」を開発する サンフランシスコの団体「Comfy Org」より、「ComfyUI V1」のリリース告知が発表されました!今回のアップデートでは、ワークフローの強化と生産性向上を目的とした、多くの改善と新機能が追加されました。主なアップデート内容は以下の通りです。

        デスクトップアプリ版が登場!

        この2ヶ月間、Comfy OrgはComfyUI のシームレスなデスクトップ体験を提供するために尽力してきました。目標は、技術に詳しくないユーザーでも可能な限りスムーズな体験を楽しめるようにすることです。スタンドアロンパッケージからの改善点は以下の通りです。

        • コード署名済み&セキュア: ComfyUI がセキュリティ警告を発動することなく開けるようになりました。アプリはコード署名されているため、そのバージョンが直接Comfy Orgから提供されたものであることを常に知ることができます。
        • クロスプラットフォーム: Windows / macOS / Linux で利用可能
        • 自動アップデート: 自動アップデートにより、ComfyUI の安定版リリースを常に使用できます。
        • 軽量パッケージ: バンドルはわずか 200MB です!
        • 推奨 Python 環境: 手動設定の手間はもうありません。インストールプロセスをスムーズにするために、推奨される Python 環境を含めました。
        • ComfyUI Manager をデフォルトで搭載: ComfyUI レジストリから直接ノードをインストールし、最新の意味的にバージョン管理されたノードにアクセスできます。ナイトリーバージョンは引き続き最新の Git コミットから入手できます。
        • タブ: 複数のワークフローをタブで開いて、それらを移動できるようになりました。
        • カスタムキーバインド: ブラウザレベルのコマンドの干渉なしに、真のカスタムキーバインドを定義できるようになりました。
        • リソースの自動インポート: インストール中にそのディレクトリを選択することで、既存の ComfyUI を再利用できます。入力、モデル、出力は自動的にインポートされます。
        • 統合ログビューア: デバッグが必要な場合にサーバーログを表示できます。

        現在、クローズドベータ版としてリリースしています。ダウンロードページからウェイティングリストにて、ご登録ください。今後数週間でより多くの方々に展開していく予定で、まもなくオープンベータ版をリリースし、その時点でソースコードはオープンソース化される予定とのことです。

        全く新しいユーザーインターフェース

        デスクトップアプリケーションの新しいインターフェースは、ComfyUI を更新するとすぐに利用できます。V1が一般公開される際には、現在のすべてのユーザーインターフェースは新しいUIに切り替わります。

        • トップメニューバー: 多くのアクションをトップメニューバーに統合し、拡張機能開発者はカスタムメニュー項目を簡単に追加できるようになりました。
        • モデルとログへのアクセスが容易に: トレイアイコンを右クリックするだけで、モデル、カスタムノード、出力ファイル、ログにすばやくアクセスできます。
        • モデルライブラリ: すべてのモデルを簡単に参照し、ライブラリからチェックポイントローダーとして直接ドラッグアンドドロップできます。
        • ワークフローブラウザ: ワークフローをワークフローブラウザに保存してすばやくアクセスできるようになりました。また、別のディレクトリにエクスポートすることもできます。
        • モデルの自動ダウンロード: ComfyUI では、ワークフローにモデルの URL/ID を埋め込み、自動ダウンロードできるようになりました。たとえば、テンプレートを開いていて、モデルがない場合、ComfyUI はワークフローで定義されている不足しているモデルをダウンロードするように促します。例
          この新しい UI は、最新の ComfyUI ですべての人が利用できます。パッケージを更新してください。

        https://github.com/Comfy-Org/ComfyUI_frontend/blob/main/public/templates/default.json?ref=blog.comfy.org#L351

        新しいUIの有効化

        V1 UI を使用するには、次の手順に従います。

        1. ComfyUI を更新します。
        2. 設定メニューで v1 UI を有効にします。

        動画解説はこちら

        Comfy Node Registry (CNR)

        ここ数か月間、Comfy Orgはカスタムノードのレジストリhttps://registry.comfy.org/)に取り組んできました。
        これは NPM に似ています(ノードがセマンティックなバージョンで公開されるという意味で)。目標は、より安全で安定した ComfyUI カスタムノードのユーザーエクスペリエンスを構築することです。すでに 600 を超えるノードと 2,000 を超えるノードバージョンが公開されています。CNR に公開してくださった皆様、ありがとうございます!

        Dr.Lt.Data は、この機能ブランチ(feat)で ComfyUI マネージャーと CNR を統合してきました。
        Electronのアプリとしてリリースされる、レジストリからのインストールをサポートする最初の場所となります。

        カスタムノードの今後の計画:

        • セキュリティスキャン: カスタムノードにおける悪意のある動作の自動スキャンをテストしてきました。将来的には、すべてのカスタムノードがスキャンされ、悪意のあるノードは禁止されます。それらのノードをインストールしたユーザーには通知されます。
        • 依存関係解決の改善: カスタムノードを確実にインストールし、既存のワークフローを実行するのに役立つツールに取り組んでいます。

        FAQ

        標準の Web ComfyUI は引き続き開発されますか?

        Electron アプリは、既存の ComfyUI Web アプリケーションのシンプルなラッパーです。これにより、インストールやファイルシステムに関連する機能を構築できます。場合によっては、デスクトップアプリ専用の機能(タブなど)を開発する場合があります。ただし、すべての主要な機能は、引き続き ComfyUI および ComfyUI_frontend で最初に開発されます。
        デスクトップ版としてリリースされる Electron アプリは、他のすべてのユーザーと同じタイミングでこれらの機能を利用できます。

        ポータブルスタンドアロンはまだ利用できますか?

        これは、Electron デスクトップアプリがより安定するまでしばらくの間サポートされます。

        デスクトップアプリはオープンソースになりますか?

        数週間後にオープンベータ期間が始まると、コードをオープンソース化します。

        元の UI は引き続き開発されますか?

        新しい V1 UI が今後デフォルトのユーザーエクスペリエンスになります。元の UI は現在メンテナンスモードであり、これ以上の機能は追加されません。カスタムノードおよび拡張機能の開発者には、新しい UI をサポートすることをお勧めします。

        お問い合わせ

        ご意見をお聞かせください!いつものように、Discord または hello@comfy.org でご連絡いただけます。

        https://blog.comfy.org/comfyui-v1-release

        AICU編集部より

        先日のComfyUIミートアップ東京でチラ見させていただいたElectronアプリが早くもリリースですね。AICU編集部も期待しています。
        そしてマーケットプレイスにあたる「CNR」のリリースも期待です。セキュリティに関する配慮が高く設定されているのが好印象です。
        そして、ウェブサイトの整備もありがとうございます!
        編集部としては動画作品ギャラリーがお気に入りです。

        https://www.comfy.org/videos

        AICU編集部はこれからも ComfyUI および Comfy Orgを応援していきます!

        https://note.com/aicu/m/md2f2e57c0f3c

        Originally published at https://note.com on Oct 21, 2024.

      3. [ComfyMaster26] ControlNetでイラストを精密に実写化!

        イラストのスタイルを実写に変換する際、従来のimage-to-image (i2i) 手法では、変換元画像の特徴を維持しながらの変換が困難でした。今回は、その課題をComfyUIのConrolNetで解決します!

        こんにちわ、AICU media編集部です。
        ComfyUI マスターガイド」第26回目になります。
        本記事では、ControlNetを導入することで、この課題を解決し、より精密な実写化を実現する方法を紹介します。具体的には、以前i2iでスタイル変換を試みた犬のイラストを再度用い、ControlNetによる変換結果とi2iのみの結果を比較することで、その効果を検証します。

        本連載の初回はこちら。前回はこちら目次はこちらです。

        [ComfyMaster25] 画像を自由自在に!ControlNetで完全制御 #ComfyUI

        1. 概要

        今回は、ControlNetを利用して、イラストを実写に変換します。以前にi2i (image-to-image) でスタイル変換を試しましたが、i2iだけの場合、変換元画像の特徴を維持しながらスタイル変換が難しいという課題がありました。この課題をControlNetを使用することで解決します。

        画像

        i2iのみでのスタイル変換との結果を比較するために、i2iで使用した以下の犬のイラストを使用します。

        画像

        2. ControlNetの使用準備

        ControlNetの使用準備については、前回の記事をご覧ください。

        今回は、ControlNetのDepthとLineartを組み合わせて使用します。Depthでは、犬と背景との関係を明示し、Lineartでは、犬や草花の形状を理解させるために使用します。

        3. workflowのノード構成

        以下がworkflowの全体構成になります。このワークフローは、アニメ調のイラストを入力として受け取り、その構図や主要な要素を保持しながら、より現実的で詳細な画像に変換します。ControlNetの使用により、入力画像の構造が出力に強く反映され、同時にプロンプトとモデルの力を借りて現実感のある詳細が付加されます。結果として、元のイラストの魅力を保ちつつ、より写実的な猫の画像が日本の伝統的な部屋の中に描かれることが期待されます。

        画像

        ワークフローのファイルは、文末のリンクよりダウンロードください。

        以下に、このワークフローの主要な部分とその機能を図示し、詳細に説明します。

        1. 入力画像の読み込みと処理
          • Load Imageノード: 犬のイラスト画像を読み込みます。
          • VAE Encodeノード: 入力イラストを潜在空間にエンコードします。
          • Depth Anything V2ノード: 入力画像から深度マップを生成します。
          • Line Artノード: 入力画像から線画を抽出します。
        2. モデルとControlNetの読み込み
          • Load Checkpointノード: 「RealVisXl.safetensors」モデルを読み込みます。
          • Load ControlNet Modelノード: 「controlnet-union-sdxl-1.0.safetensors」を読み込みます。
        3. プロンプト処理 (CLIP Text Encode ノード x2)
          • ポジティブプロンプト: 「realistic, photorealistic, looking_at_viewer, brown_eyes, sitting, closed_mouth, flower, outdoors, day, blurry, tree, no_humans, depth_of_field, animal, sunlight, grass, dog, yellow_flower, fence, purple_flower, animal_focus, lamppost」
          • ネガティブプロンプト: 「anime, illustration,」
            • アニメやイラストの要素を排除するために、ネガティブプロンプトに「anime, illustration,」を入力する
        4. ControlNetの適用 (Apply ControlNet Advanced ノード x2)
          • 1つ目のControlNetはDepthを使用
          • 2つ目のControlNetはLineartを使用
          • 両方とも強度: 0.3 (ControlNetの影響力)
        5. 画像生成 (KSampler ノード)
          • Seed: 860227022998599
          • Steps: 20
          • CFG Scale: 8
          • Sampler: dpmpp_2m
          • Scheduler: karras
          • Denoise: 0.7
        6. 画像のデコードと保存
          • VAE Decode ノード: 生成された潜在表現を実際の画像にデコードします。
          • Save Image ノード: 最終的に生成された画像を 「style_transformer」という名前で保存します。

        3. 生成結果

        以下が生成結果になります。まずは、しっかりと実写に変換できていることが確認できます。

        画像

        次に変換元画像と比較して見ましょう。背景も含めて、かなり正確に変換元画像の特徴を維持していることが分かります。

        画像

        さらにi2iのみの結果とも比較してみます。すべてdenoiseが0.7の時の結果となります。i2iの時は、花が柵になっていたり、犬が少し大人びています。ControlNetを追加した結果では、背景はもちろん、犬の特徴も変換元画像に近いです。

        画像

        4. まとめ

        犬のイラストを題材に、深度マップと線画をControlNetに入力することで、元のイラストの構図や犬の特徴(子犬らしさなど)を維持しながら、背景や被写体をリアルな質感で表現することに成功しました。RealVisXlとcontrolnet-union-sdxlを用い、プロンプトで写実性を強調しつつ、アニメやイラストの要素をネガティブプロンプトで排除することで、より自然な実写化を実現しました。結果として、i2i単体では背景が大きく変化したり、犬の年齢が変化するなど、元のイラストの特徴が失われていたのに対し、ControlNetを用いた手法では、これらの特徴を保持したまま、高精度な実写化が達成されました。 これにより、ControlNetがイラストの実写化において、元の画像の特徴を維持しつつ、より精密な変換を可能にする強力なツールであることが示されました。

        次回は、写真やイラストを線画にする方法を紹介します。乞うご期待!
        X(Twitter)@AICUai もフォローよろしくお願いいたします!

        画像生成AI「ComfyUI」マスターPlan

        画像生成AI「Stable Diffusion」特に「ComfyUI」を中心としたプロ向け映像制作・次世代の画像生成を学びたい方に向けたプランです。最新・実用的な記事を優先して、ゼロから学ぶ「ComfyUI」マガジンからまとめて購読できます。 メンバーシップ掲示板を使った質問も歓迎です。

        • メンバー限定の会員証が発行されます
        • 活動期間に応じたバッジを表示
        • メンバー限定掲示板を閲覧できます
        • メンバー特典記事を閲覧できます
        • メンバー特典マガジンを閲覧できます
        • 動画資料やworkflowといった資料への優先アクセスも予定

        ゼロから学ぶ「ComfyUI」マガジン

        https://note.com/aicu/m/md2f2e57c0f3c

        マガジン単体の販売は1件あたり500円を予定しております。
        2件以上読むのであればメンバーシップ参加のほうがお得です!というのもメンバーシップ参加者にはもれなく「AICU Creator Union」へのDiscordリンクをお伝えし、メンバーオンリー掲示板の利用が可能になります。

        https://note.com/aicu/membership/boards/61ab0aa9374e/posts/db2f06cd3487?from=self

        もちろん、初月は無料でお試しいただけます!
        毎日新鮮で確かな情報が配信されるAICUメンバーシップ。
        退会率はとても低く、みなさまにご満足いただいております。
        ✨️オトクなメンバーシップについての詳細はこちら


        この記事の続きはこちらから https://note.com/aicu/n/n4fafc970da0a

        Originally published at https://note.com on Oct 20, 2024.

      4. [ComfyMaster25] 画像を自由自在に!ControlNetで完全制御

        求める画像を生成するために、プロンプトだけでは物足りないですよね?
        そんな時、ControlNetが助けになります!
        ControlNetは画像生成の制御性を大幅に向上させる革新的な技術として注目を集めています。特に、最新のSDXL(Stable Diffusion XL)モデルと組み合わせることで、その威力は一層増しています。

        こんにちわ、AICU media編集部です。
        ComfyUI マスターガイド」第25回目になります。
        本記事では、ComfyUIを使用してSDXLでControlNetを活用する方法を、初心者の方にも分かりやすく解説していきます。

        前回はこちら
        [ComfyMaster24] LoRAで表現をもっと自由に! スタイルを使いこなそう

        1. ControlNetとは何か?

        ControlNetは、既存の画像生成モデルに「制御」の要素を加える技術です。従来の画像生成AIは、プロンプト(テキストによる指示)のみをネットワークに画像を生成していました。そのため、言語で表現しきれない要素はランダム性が強く、ユーザーの意図通りにならないことも多々ありました。ControlNetは、この問題を解決するために開発されました。

        ControlNetを使用すると、プロンプトに加えて、追加の情報をAIに与えることができます。この追加情報には、画像の輪郭線、深度情報、ポーズ、セグメンテーションマップなど、様々な種類があります。AIはこれらの情報をもとに、よりユーザーの意図に合致した画像を生成することができるようになります。

        画像

        簡単に言えば、従来のモデルが「自由に絵を描くアーティスト」だとすれば、ControlNetは「具体的な指示を出せるアートディレクター」のような役割を果たします。

        2. 各種ControlNetの説明と用途

        ControlNetには、様々な種類があります。それぞれが異なる種類の条件に対応しており、用途も異なります。ここでは、代表的なControlNetの種類とその用途について解説します。

        Canny Edge(キャニーエッジ)

        入力画像からエッジ(輪郭線)を検出し、そのエッジを元に画像を生成します。エッジ検出には、Cannyアルゴリズムと呼ばれる手法が用いられます。Cannyアルゴリズムは、ノイズの影響を受けにくく、正確なエッジを検出することができるため、ControlNetで広く利用されています。

        画像

        主に以下のような用途で使用されます。

        • 特定の形状を維持したまま、スタイルやテクスチャを変更したい場合: 例えば、建物の写真からエッジを検出し、そのエッジを元に、建物のスタイルを和風や洋風に変更することができます。
        • スケッチや線画を元に、リアルな画像を生成したい場合: 手描きのスケッチや線画からエッジを検出し、そのエッジを元に、写真のようなリアルな画像を生成することができます。
        • ロゴやイラストのトレース: ロゴやイラストをスキャンしてエッジを検出し、そのエッジを元に、ベクター画像を作成することができます。
        画像

        Depth Map(深度マップ)

        入力画像の奥行き情報を利用して、立体感のある画像を生成します。奥行き情報は、画像中の各ピクセルがカメラからどれだけ離れているかを表す情報です。深度マップは、白黒画像で表現され、白い部分が近く、黒い部分が遠くを表します。

        画像

        主に以下のような用途で使用されます。

        • 3D的な表現や、奥行きを強調したい場合: 例えば、風景写真から深度マップを生成し、その深度マップを元に、より奥行き感のある風景画を生成することができます。
        • ミニチュア風写真: 通常の写真から深度マップを生成し、その深度マップを元に、ミニチュア模型のような写真を作成することができます。
        • 背景のぼかし: 深度マップを利用して、被写体以外をぼかした写真を作成することができます。
        画像

        Pose Estimation(ポーズ推定)

        入力画像から人間の骨格情報(ポーズ)を推定し、そのポーズを元に画像を生成します。ポーズ推定には、OpenPoseなどのAIモデルが用いられます。OpenPoseは、画像から人間の関節の位置を検出し、骨格を推定することができます。

        画像

        主に以下のような用途で使用されます。

        • キャラクターデザインやイラスト制作で、特定のポーズを表現したい場合: 例えば、人物の写真からポーズを推定し、そのポーズを元に、アニメキャラクターや漫画キャラクターを生成することができます。
        • ダンスやスポーツの動きを分析: ビデオからポーズを推定することで、ダンスやスポーツの動きを分析することができます。
        • モーションキャプチャ: 人間の動きを計測し、その動きを3DCGキャラクターに反映させることができます。
        画像

        Scribble(落書き)

        簡単な手描きの線画から、詳細な画像を生成します。Scribble ControlNetは、線画を元に、画像の内容を推定し、その内容に沿った画像を生成します。

        画像

        主に以下のような用途で使用されます。

        • アイデアのスケッチを元に、具体的なビジュアルを得たい場合: 例えば、新しい製品のアイデアをスケッチし、そのスケッチを元に、製品の完成イメージを生成することができます。
        • ラフ画からイラストを生成: 簡単なラフ画を元に、詳細なイラストを生成することができます。
        • ストーリーボード作成: 映画やアニメのストーリーボードを作成する際に、Scribble ControlNetを利用して、各シーンのイメージを生成することができます。
        画像

        Segmentation Map(セグメンテーションマップ)

        入力画像を複数の領域に分割し、各領域にラベルを付けたものです。セグメンテーションマップは、画像中のどの部分がどのオブジェクトに対応するかをAIに教えるために使用されます。

        画像

        主に以下のような用途で使用されます。

        • シーン全体の構成をコントロールしたい場合: 例えば、風景写真をセグメンテーションマップで分割し、「空」・「海」・「山」などのラベルを付けることで、それぞれの領域の色やテクスチャを個別に制御することができます。
        • 画像編集: セグメンテーションマップを利用して、特定のオブジェクトだけを切り抜いたり、色を変更したりすることができます。
        • 自動運転: 自動運転システムでは、セグメンテーションマップを利用して、道路、歩行者、信号機などを認識しています。
        画像

        HED boundary

        HED boundary(Holistically-Nested Edge Detection)は、画像からエッジ(境界線)を検出するControlNetです。Canny Edgeと同様に画像の輪郭を捉えますが、HED boundaryはより繊細で複雑なエッジを検出することに特化しています。これは、人物の髪の毛や衣服の細かい模様、自然風景の複雑な葉っぱの形状など、Canny Edgeでは捉えきれない微細なエッジを検出できることを意味します。

        画像

        主に以下のような用途で使用されます。

        • より写実的な画像生成: HED boundaryは、より詳細なエッジ情報を捉えるため、生成される画像のリアリティを高めるのに役立ちます。特に、人物のポートレートや自然風景など、細部まで描き込みたい場合に効果的です。
        • 複雑なテクスチャの再現: 衣服の織り目や木の葉の葉脈など、複雑なテクスチャをより忠実に再現したい場合に適しています。
        • アニメ・漫画風画像の生成: 線画の質感を重視するアニメや漫画風の画像を生成する場合にも、HED boundaryは有効です。
        画像

        Normal map (法線マップ)

        Normal map(法線マップ)は、画像の表面の向きを表す情報です。各ピクセルに、その地点における表面の法線ベクトル(表面に対して垂直なベクトル)の情報が格納されています。法線マップは、3Dグラフィックスで物体の表面の陰影や反射を表現するために広く使われています。

        画像

        ControlNetにおけるNormal mapは、この法線マップの情報を利用して、立体感や陰影をより精密に制御することができます。

        主に以下のような用途で使用されます。

        • 3Dモデルのような立体的な画像生成: 法線マップの情報を利用することで、光源の位置や強さを考慮した、リアルな陰影表現が可能になります。
        • 金属やガラスなどの質感表現: 法線マップは、金属の光沢やガラスの透明感など、材質感を表現するのにも役立ちます。
        • 彫刻やレリーフのような表現: 法線マップを利用することで、画像に彫刻やレリーフのような凹凸感を表現することもできます。
        画像

        Lineart

        Lineartは、画像から線画を抽出するControlNetです。Canny EdgeやHED boundaryも線画を検出できますが、Lineartは特にアニメや漫画のような線画スタイルの画像に特化しています。

        画像

        主に以下のような用途で使用されます。

        • アニメ・漫画風画像の生成・編集: 線画を強調したイラストを作成したり、既存の画像を線画化したりすることができます。
        • イラストの着色: 線画を抽出後、ControlNetと組み合わせて自動的に着色したり、手動で着色したりすることができます。
        • 線画のクリーンアップ: スキャンした線画のノイズ除去や線の補正など、線画の編集作業に利用できます。
        画像

        Pidi (Softedge)

        Pidi (Softedge) は、画像からソフトなエッジを検出するControlNetです。Canny EdgeやHED boundaryのようなシャープなエッジではなく、ぼかしのかかったような滑らかなエッジを抽出します。Pidiは、softedgeという別名でも知られています。

        画像

        主に以下のような用途で使用されます。

        • 水彩画やパステル画のような、柔らかいタッチの画像生成: ソフトなエッジは、水彩画やパステル画など、境界線がぼやけた表現に適しています。
        • 被写体の輪郭を強調しながら、自然な雰囲気を保ちたい場合: シャープなエッジでは硬すぎる印象になる場合に、Pidiを用いることで、より自然で優しい雰囲気の画像を生成できます。
        • 写真から絵画風に変換: 写真のエッジをPidiでソフトにすることで、絵画のような風合いを出すことができます。
        画像

        TEED

        TEEDは、Tiny and Efficient Edge Detector の略称で、軽量ながらも高精度なエッジ検出を行うControlNetです。わずか58Kのパラメータ数で、最先端モデルと比較してサイズが0.2%未満と非常に軽量なのが特徴です。

        ControlNetにおいては、TEEDは入力画像からソフトなエッジを抽出し、それを元に画像生成を行います。Canny Edgeなどとは異なり、境界線がぼやけた、より自然で滑らかなエッジ検出を得意としています。特にSDXLとの組み合わせに最適化されています。

        画像

        主に以下のような用途で使用されます。

        • SDXLを用いた、ソフトエッジを強調した画像生成: 水彩画、パステル画、印象派の絵画など、ソフトなタッチの画像を生成する際に効果的です。
        • 入力画像の雰囲気を維持した画像生成: 画像全体の構図や色調を維持しつつ、異なる要素を追加したり、スタイルを変更したりすることができます。
        • プロンプトエンジニアリングの負担軽減: プロンプトなしで、入力画像のエッジ情報を元に画像生成ができるため、プロンプト作成の手間を省くことができます。
        画像

        MLSD

        MLSD (Multi-Level Line Segment Detector) は、画像から直線を検出することに特化したControlNetです。建物や道路、家具など、直線的な要素が多い画像から、正確な直線情報を抽出することができます。

        画像

        主に以下のような用途で使用されます。

        • 建築物や都市景観の画像生成: 建物の輪郭や道路のラインなどを正確に捉え、リアルな都市景観を生成できます。
        • 幾何学模様のデザイン: 直線や多角形を組み合わせた幾何学模様のデザインを作成する際に役立ちます。
        • パースペクティブの修正: 写真の歪みを修正したり、パースペクティブを強調したりする際に利用できます。
        画像

        Tile

        Tile は、入力画像をタイル状に繰り返し配置して、シームレスなパターンを生成するControlNetです。元絵の構図や特徴を維持した状態で画像生成が可能なため、

        画像

        主に以下のような用途で使用されます。

        • 画像のアップスケール:低解像度の画像を高解像度に変換する際に使用されます。Tileモデルは、画像の細部を補正し、テクスチャを改善することで、より高品質な画像を生成します。
        • 細部の補正:生成された画像の細部を修正する際に使用されます。Stable Diffusionが細部の調整に苦手な場合、ControlNet Tileを使用して、画像の細部を微調整することができます。
        • 質感やテクスチャの変更:画像の質感やテクスチャを変更する際に使用されます。ControlNet Tileは、肌の質感を調整したり、アニメ風にしたり、自由度の高い変更が可能です。
        画像

        3. ControlNetの使用準備

        カスタムノードのインストール

        ControlNetを使用するために、「ComfyUI’s ControlNet Auxiliary Preprocessors」をインストールします。標準ノードだけでもControlNetを使用できますが、本記事で紹介したControlNetの一部しか実現できません。そのため、カスタムノードをインストールし、使用できるControlNetの幅を広げます。ComfyUI’s ControlNet Auxiliary Preprocessorsは、ComfyUI Managerからインストール可能です。

        画像

        以下がリポジトリになります。
        https://github.com/Fannovel16/comfyui_controlnet_aux

        https://cdn.iframe.ly/Q5NLoiy?v=1&app=1

        プリプロセッサーモデルのダウンロード

        ControlNetの使用には、プリプロセッサーモデルが必要になるため、そのモデルをダウンロードします。SDXLには、controlnet-union-sdxl-1.0という、これまでに紹介した各種ControlNetを1つに集約した便利なモデルがあります。今回は、このモデルを使用します。以下のリンクよりファイルをダウンロードし、Google Colabを使用しているDriveで「ComfyUI/models/controlnet」フォルダに格納してください。
        https://huggingface.co/xinsir/controlnet-union-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors

        参照元画像

        ControlNetの参照元画像として以下の画像を使用します。

        画像

        画像ファイルは、以下よりダウンロードください。

        https://note.com/api/v2/attachments/download/c6c1a646ad8faf1778658c65e1ccde89

        workflowは文末にて。

        4. ワークフロー解説

        このワークフローは、入力された女性の画像の構造(深度情報)を保持しながら、指定されたプロンプトに基づいて男性の特徴を持つ新しい画像を生成します。結果として、元の画像の構図や照明条件を維持しつつ、全く異なる人物(男性)の画像が生成されることが期待されます。これは、ControlNetと深度マップを組み合わせた高度な画像変換・生成の例といえます。

        画像

        以下に、このワークフローの主要な部分とその機能を図示し、詳細に説明します。

        画像
        1. 入力画像の読み込みと深度マップ生成
          • Load Imageノード: 「girl-for-controlnet.jpeg」を読み込みます。
          • Depth Anything V2 – Relativeノード: 入力画像から深度マップを生成します。
          • 使用モデル: 「depth_anything_vitl14.pth」
          • 解像度: 512
          • Preview Imageノード: 生成された深度マップをプレビューします。
        2. モデルとControlNetの読み込み
          • Load Checkpointノード: 今回は「RealVisXl.safetensors」モデルを使用。
          • Load ControlNet Modelノード: 「controlnet-union-sdxl-1.0.safetensors」を読み込みます。
        3. プロンプト処理 (CLIPTextEncode ノード x2)
          • ポジティブプロンプト: 「1boy, solo, looking_at_viewer, brown_hair, spiky_hair, no_glasses, confident_expression, hoodie, indoors, sunlight, soft_lighting, detailed_background, aesthetic」
          • ネガティブプロンプト: 「bad hand,bad anatomy,worst quality,ai generated images,low quality,average quality, nsfw, nude, naked,」
        4. ControlNetの適用 (Apply ControlNet (Adovanced) ノード)
          • 深度マップ、ControlNet、およびプロンプトの条件付けを組み合わせます。
          • 強度: 0.40 (ControlNetの影響力)
        5. 潜在画像の準備 (Empty Latent Image ノード)
          • 「girl-for-controlnet.jpeg」と同じサイズである「1024×768」を設定
        6. 画像生成 (KSampler ノード)
          • Seed: 860227022998597
          • Steps: 20
          • CFG Scale: 8
          • Sampler: dpmpp_2m
          • Scheduler: karras
        7. 画像のデコードと保存
          • VAE Decode ノード: 生成された潜在表現を実際の画像にデコードします。
          • Save Image ノード: 最終的に生成された画像を “controlnet_lineart” という名前で保存します。

        5. ワークフローの検証

        それでは、ワークフローを実行してみましょう。ControlNetの強度を0.40で生成してみます。以下が生成結果です。しっかりプロンプトに従った画像になっています。

        画像

        参照元画像と比較してみましょう。構図を維持しながら、人物を変えることに成功しています。

        画像

        次にControlNetの強度を0.80にしてみます。そうすると、参照元画像の女性に近づき、ポニーテールの中性的な男性の画像が生成されました。

        画像

        反対に強度を0.10と低くしてみます。今度は参照元画像から離れ、体勢も変わってしまっています。

        画像

        以下が強度別の生成結果になります。強度が高くなるにつれ、参照元画像に近づき、強度が小さくなるにつれ、参照元画像に似なくなっていることが分かります。

        画像

        6. まとめ

        ControlNetは、画像生成AIの可能性を飛躍的に広げる革新的な技術です。輪郭線、深度情報、ポーズなど様々な条件をAIに与えることで、これまで以上にユーザーの意図を反映した画像生成が可能になります。この記事では、Canny Edge、Depth Map、Pose Estimationなど主要なControlNetの種類とその用途を紹介し、具体的なワークフロー例を通して、その驚くべき効果を実証しました。ControlNetを使いこなすことで、マーケティング素材の作成、イラストやデザイン制作、3Dモデリングなど、様々な分野で創造性を加速させることができます。ぜひ、ControlNetの力を体感し、あなたのクリエイティブな活動を新たなステージへと導いてください。

        次回は、 ControlNetでイラストを精密に実写化!を紹介します。
        乞うご期待!

        https://note.com/aicu/n/n4fafc970da0a

        X(Twitter)@AICUai もフォローよろしくお願いいたします!

        画像生成AI「ComfyUI」マスターPlan

        画像生成AI「Stable Diffusion」特に「ComfyUI」を中心としたプロ向け映像制作・次世代の画像生成を学びたい方に向けたプランです。最新・実用的な記事を優先して、ゼロから学ぶ「ComfyUI」マガジンからまとめて購読できます。 メンバーシップ掲示板を使った質問も歓迎です。

        • メンバー限定の会員証が発行されます
        • 活動期間に応じたバッジを表示
        • メンバー限定掲示板を閲覧できます
        • メンバー特典記事を閲覧できます
        • メンバー特典マガジンを閲覧できます
        • 動画資料やworkflowといった資料への優先アクセスも予定

        ゼロから学ぶ「ComfyUI」マガジン

        https://note.com/aicu/m/md2f2e57c0f3c

        マガジン単体の販売は1件あたり500円を予定しております。
        2件以上読むのであればメンバーシップ参加のほうがお得です!というのもメンバーシップ参加者にはもれなく「AICU Creator Union」へのDiscordリンクをお伝えし、メンバーオンリー掲示板の利用が可能になります。

        https://note.com/aicu/membership/boards/61ab0aa9374e/posts/db2f06cd3487?from=self

        もちろん、初月は無料でお試しいただけます!
        毎日新鮮で確かな情報が配信されるAICUメンバーシップ。
        退会率はとても低く、みなさまにご満足いただいております。
        ✨️オトクなメンバーシップについての詳細はこちら


        この記事の続きはこちらから https://note.com/aicu/n/n151f019bcc92

        Originally published at https://note.com on Oct 17, 2024.

      5. [ComfyMaster24] LoRAで表現をもっと自由に! スタイルを使いこなそう

        生成画像のクオリティをさらに向上させたいと思いませんか?
        そこで注目すべきなのが「LoRA」です。LoRAは、Stable Diffusionなどの大規模言語モデルに、特定のスタイルやキャラクター、オブジェクトなどを効率的に学習させることができる技術です。少ないデータ量と計算リソースで、モデルの表現力を飛躍的に高めることが可能になります。

        こんにちわ、AICU media編集部です。
        ComfyUI マスターガイド」第24回目になります。
        本記事では、LoRAの仕組みから、ComfyUIでの具体的な活用方法、そして応用例まで、LoRAを最大限に活用するためのノウハウを詳細に解説します。LoRAをマスターして、画像生成の可能性をさらに広げましょう!

        前回はこちら
        [ComfyMaster23] 特別編: 画像の髪型を自由自在に変えてみよう! #ComfyUI

          1. LoRAとは

          LoRA(Low-Rank Adaptation)は、ファイチューニング特定のタスクやスタイルにモデルを適応させるために使用されます。LoRAは、モデルのパラメータを効率的に調整し、少ないデータで特定の出力を得ることを目的としています。

          LoRAの主な目的は、既存の大規模なAIモデルを特定のニーズに合わせて微調整することです。画像生成においては、LoRAを使用することで特定のスタイルやキャラクターを学習させることができます。これにより、ユーザーは自分の好みに合った画像生成が可能になります。

          LoRAは、モデルの重みを低ランクで調整する手法であり、計算資源を節約しつつ高い性能を維持します。具体的には、元のモデルの重み行列を低ランク近似し、新たなパラメータを追加することで学習を行います。この方法は、従来のファインチューニングよりも少ないデータと計算リソースで済むため、多くのユーザーにとって実用的です。

          LoRAのメリット

          • 軽量: LoRAのファイルサイズは小さく、ダウンロードや共有が容易です。通常のファインチューニング済みモデルと比較して、数十MBから数百MB程度です。
          • 効率的: 計算コストが低いため、GPUのメモリ消費量を抑えながらファインチューニングできます。また、学習時間も短縮できます。
          • 柔軟性: 複数のLoRAを組み合わせることで、様々なスタイルや特徴を表現できます。例えば、キャラクターのLoRAとスタイルのLoRAを組み合わせることで、特定のキャラクターを特定のスタイルで描くことができます。
          • 元のモデルへの影響なし: LoRAは元のモデルのパラメータを変更しないため、他のタスクへの影響を心配する必要がありません。LoRAを適用しない場合は、元のモデルと同じように動作します。
          • 微調整が可能: LoRAの強度は、strength パラメータで調整できます。これにより、LoRAの効果を細かく制御することができます。

          LoRAの具体例

          • スタイルの適用: 特定のアートスタイルやキャラクターの特徴を学習させることができます。例えば、LineAniRedmondPixel Art XLといったスタイル用LoRAモデルが存在します。
          • エフェクトの追加: 画像生成にエフェクトを追加するためにも使用されます。Dissolve StyleGlowNeon XLなどのモデルがあります。
          • 補正機能: 生成された画像に対してディテールや質感を向上させるためにも利用されます。Detail Tweaker XLなどのモデルがあります。
          • キャラクターの安定化: 特定のキャラクターやテーマに基づいた画像生成も可能です。ユーザーが用意したデータセットから学習したLoRAモデルは、そのキャラクター特有の特徴を維持した画像を生成します。例えば、Deltamon Official version1.0」や「ガンマミィ・ジェネレーターがそれに当たります。

          2. LoRAの探し方

          SDXL用のLoRAは、様々なサイトで公開されています。代表的なサイトとしては、以下のようなものがあります。

          • Civitai: 最大規模のStable Diffusionモデル共有サイトです。ユーザーフレンドリーなインターフェースと豊富な検索機能を備えています。各LoRAには、サンプル画像、使用方法、レビューなどが掲載されています。

          https://civitai.com

          • Hugging Face: 機械学習モデルの共有プラットフォームです。SDXLを含む様々なAIモデルのLoRAが公開されています。モデルカードには、LoRAの詳細情報、使用方法、ライセンスなどが記載されています。

          https://huggingface.co

          これらのサイトでは、キャラクター、スタイル、オブジェクト、衣装、背景など、様々なテーマのLoRAが公開されています。キーワード検索やタグ検索で、自分の好みのLoRAを見つけることができます。

          https://note.com/aicu/n/n02de834e3d5c

          https://corp.aicu.ai/ja/event20240516

          https://corp.aicu.ai/ja/vroid-studio-lora

          3. LoRAのインストール

          LoRAのインストールは、LoRAファイルをダウンロードし、「ComfyUI/models/loras」フォルダに格納するだけです。今回は、Dissolve Styleをインストールし、ComfyUIで使用してみます。
          このLoRAは、画像生成時にディゾルブ(溶解)効果(画像に溶解のような効果)を追加するためのモデルです。

          まず、以下のページにアクセスします。

          https://civitai.com/models/245889/dissolve-style-lora-15sdxl

          開いたページから、ダウンロードボタンを押下します。

          画像

          Google Colabの場合、Googleドライブ上の「ComfyUI/models/loras」フォルダにダウンロードしたファイルを格納してください。

          画像

          これでLoRAのインストールは完了です。

          4. LoRAの使い方

          LoRAには、適用すれば即時に発現するものと、プロンプトにトリガーワードを入力することで発現するものがあります。例えば、前述したDetail Tweaker XLのような補正系のLoRAの多くは、適用するだけで発現するものです。一方で、Dissolve Styleは、「ral-dissolve」というトリガーワードをポジティブプロンプトに入力することで効果を発揮します。多くのLoRAは、LoRAの説明ページにその内容が記載されています。LoRAを使用する際は、LoRAの説明をよく読んでから始めましょう。

          画像

          5. ワークフローの構築

          ComfyUIでのLoRAの使用は簡単です。標準ワークフローに標準ノードを1つ追加するだけで使用できます。以下が最終的なワークフローになります。赤枠のノードが標準ワークフローからの変更点になります。

          画像

          ワークフローは文末よりダウンロードください。

          今回追加したノードは、「Load LoRA」ノードです。Load CheckpointノードとCLIP Text Encode (Prompt)ノード、KSamplerノードの間に挿入します。各ウィジェットの用途は以下の通りです。

          • lora_name: 「ComfyUI/models/loras」フォルダ内のLoRAから適用するLoRAを選択します。
          • strength_model: モデルへのLoRAの影響力を設定します。値を高くすると、生成される画像がLoRAのトレーニング画像に似たスタイルを取り入れる傾向があります。
          • strength_clip: CLIPモデルへのLoRAの影響力を設定します。値を高くすると、プロンプト内の特定のキーワードやトリガーワードがLoRAのトレーニングデータから抽出されやすくなります。
          画像

          接続は以下の通りです。

          • Load CheckpointノードのMODEL/CLIP出力をLoad LoRAノードのmodel/clip入力に接続
          • Load LoRAノードのMODEL出力をKSamplerノードのmodel入力に説続
          • Load LoRAノードのCLIP出力を2つのCLIP Text Encode (Prompt)ノードのclip入力に説続
          画像

          最後にポジティブプロンプトの調整です。今回のLoRAを使用するには、「ral-dissolve」をポジティブプロンプトに追加する必要があります。標準ワークフローで使われているプロンプトの先頭に「ral-dissolve」を追加しました。最終的なプロンプトは以下になります。

          ral-dissolve, beautiful scenery nature glass bottle landscape, , purple galaxy bottle,
          画像

          6. ワークフローの実行

          それでは、ワークフローを実行してみましょう。まず、LoRAを適用しないで実行します。生成された画像は以下になります。

          画像

          次にLoad LoRAのstrength_modelstrength_clipを1.0にして生成します。画像に変化が見られましたが、ディゾルブには遠い感じがします。

          画像

          strength_modelを1.1にしてみます。これでディゾルブ効果が見られるようになりました。

          画像

          strength_clipも1.1にしてみます。strength_modelのみが1.1の時と変わりがありませんでした。プロンプトの効果は十分に効いているということでしょう。

          画像

          strength_modelを1.0に戻し、strength_clipを0.1ずつ増加させたところ、1.4でディゾルブ効果が見られました。CLIPの強度の影響度は、モデルの強度よりも弱いようです。

          画像

          最後にstrength_modelstrength_clipの両方とも1.5に設定し、生成を実行しました。かなり強くディゾルブ効果が出ていることが確認できます。

          画像

          以下がLoRAなしとLoRAあり(strength_modelstrength_clipが1.5)の比較画像です。LoRAを使用することで、好みの効果を追加できることが確認できました。

          画像

          他にも多くのLoRAが存在するので、ぜひご自分の好みのLoRAを探してみてください!


          X(Twitter)@AICUai もフォローよろしくお願いいたします!

          画像生成AI「ComfyUI」マスターPlan

          画像生成AI「Stable Diffusion」特に「ComfyUI」を中心としたプロ向け映像制作・次世代の画像生成を学びたい方に向けたプランです。最新・実用的な記事を優先して、ゼロから学ぶ「ComfyUI」マガジンからまとめて購読できます。 メンバーシップ掲示板を使った質問も歓迎です。

          • メンバー限定の会員証が発行されます
          • 活動期間に応じたバッジを表示
          • メンバー限定掲示板を閲覧できます
          • メンバー特典記事を閲覧できます
          • メンバー特典マガジンを閲覧できます
          • 動画資料やworkflowといった資料への優先アクセスも予定

          ゼロから学ぶ「ComfyUI」マガジン

          https://note.com/aicu/m/md2f2e57c0f3c

          マガジン単体の販売は1件あたり500円を予定しております。
          2件以上読むのであればメンバーシップ参加のほうがお得です!というのもメンバーシップ参加者にはもれなく「AICU Creator Union」へのDiscordリンクをお伝えし、メンバーオンリー掲示板の利用が可能になります。

          画像生成AIなんでも質問コーナー|AICU: AI Creators Union生成AIクリエイターユニオン『AICU: AI Creators Union』は、「つくる人をつくる」をビジョンに活動するnote.com

          もちろん、初月は無料でお試しいただけます!
          毎日新鮮で確かな情報が配信されるAICUメンバーシップ。
          退会率はとても低く、みなさまにご満足いただいております。
          ✨️オトクなメンバーシップについての詳細はこちら


          この記事の続きはこちらから https://note.com/aicu/n/ndb4d0ed583d7

          Originally published at https://note.com on Oct 16, 2024.

        1. [ComfyMaster23] 特別編: 画像の髪型を自由自在に変えてみよう!

          ComfyUIを使いこなしている皆さん、画像生成の可能性をさらに広げてみませんか?今回は特別編、画像内の髪型をAIが自動で検出し、思い通りの髪型に自由自在に変換する、一歩進んだ応用ワークフローをご紹介します。

          人物画像の髪型を変更したいと思った時、従来の画像編集ソフトでは、髪を選択して細かく加工する必要があり、非常に手間がかかりました。しかし、ComfyUIとStable Diffusionを組み合わせることで、プロンプトで指定するだけで、まるで魔法のように髪型を変更することが可能になります。

          こんにちわ、AICU media編集部です。
          ComfyUI マスターガイド」第22回目になります。
          この記事では、Florence2とSAM2による髪と人物のマスク作成、背景の自動補完、インペイントによる髪型生成、そして最終的な画像合成と補正といった、ワークフローの全貌を詳細に解説します。ComfyUIのノードを活用した高度な画像処理をマスターし、Stable Diffusionによる画像生成を新たなレベルに引き上げましょう!

          前回はこちら

          ▼[ComfyMaster22] レイアウトそのままにアニメを実写化!image-to-imageとスタイル変換で実写化レベルを制御 #ComfyUI

            1. 今回実装する処理のフロー

            髪型の変更については既に、インペイントのモデルコンディショニングを使って、こちらの記事で解説いたしました。
            ▼[ComfyMaster20] ComfyUIの高度インペイント技術で自然な髪型変更を実現!#ComfyUI #InpaintModelConditioning

            今回の処理は、髪型を変更したい画像に対して、自動で髪の毛を検出し、プロンプトで指定した任意の髪型に変更するワークフローです。大まかな処理の流れは、以下になります。

            1. Florence2とSAM2で髪と人物のマスクを別個で作成する
            2. 背景から人物を取り除き、人物がいた箇所を補完する
            3. 髪のマスクと、人物のマスクを反転させて作成した背景のマスクを合成し、髪と背景のマスクを作成する
            4. 髪と背景のマスクを利用してインペイントを実行し、任意の髪型を生成する
            5. 補完した背景と、任意の髪型に変更した人物の画像を合成し、1枚の画像にする
            6. 合成した画像に対して、低めのDenoising strengthでサンプリングを行い、人物と背景を馴染ませる

            このフローにより、画像とプロンプトを与えることで、自動で髪型を変更することができます。

            2. 使用するカスタムノード

            今回使用するカスタムノードは、以下の通りです。それぞれComfyUI Managerからインストールしてください。

            ComfyUI-Florence2

            ComfyUI-Florence2は、Florence2をComfyUIで使用するためのカスタムノードです。Florence2は、Microsoftが開発した視覚言語基盤モデルで、画像キャプション生成、物体検出、ビジュアルグラウンディング、セグメンテーション、文字認識、など、幅広いビジョンタスクを実行できます。今回は、プロンプトからのオブジェクト検出(髪と人物)を実現するために使用します。
            なお、Florence2に必要なモデルは、インストール時に「ComfyUI/models/LLM」フォルダに自動でダウンロードされます。
            リポジトリは、以下になります。

            https://github.com/kijai/ComfyUI-Florence2

            ComfyUI-segment-anything-2

            ComfyUI-segment-anything-2は、SAM2 (Segment Anything Model 2) をComfyUIで利用するためのカスタムノードです。SAM2は、Metaが開発した最新のオブジェクトセグメンテーションモデルで、画像と動画の両方に対応しています。今回は、Florence2で検出した髪や人物をセグメンテーションし、マスクを作成するためにSAM2を使用します。
            SAM2に必要なモデルは、Kijai氏のHugging Faceのリポジトリから「ComfyUI/models/sam2」フォルダに自動でダウンロードされます。
            リポジトリは、以下になります。

            https://github.com/kijai/ComfyUI-segment-anything-2

            comfyui-tensorop

            ComfyUI-TensorOpは、ComfyUIでテンソル操作を行うためのノードセットです。今回のワークフローで、このノードを直接使用することはありませんが、ComfyUI-Florence2内で使用されているため、インストールが必要になります。
            リポジトリは、以下になります。

            https://github.com/un-seen/comfyui-tensorops

            ComfyUI WD 1.4 Tagger

            ComfyUI WD 1.4 Taggerは、画像からDanbooruタグを取得するためのカスタムノードです。背景と人物の合成後の調整でのサンプリングの際に、画像からタグを抽出し、それをプロンプトとして利用するために使用します。
            リポジトリは、以下になります。

            https://github.com/pythongosssss/ComfyUI-WD14-Tagger

            ComfyUI Inpaint Nodes

            ComfyUI Inpaint Nodesは、画像のインペイント(欠損部分の補完)をより効果的に行うためのノードセットです。変更後の髪の生成に使用します。
            リポジトリは、以下になります。

            https://github.com/Acly/comfyui-inpaint-nodes

            ComfyUI-KJNodes

            ComfyUI-KJNodesは、ComfyUIの既存ノードの機能を組み合わせて作成された便利なノードを提供しています。今回使用するサンプルワークフローで、このカスタムノードを使っているため、インストールが必要になります。インストールは、ComfyUI Managerから可能です。
            リポジトリは、以下になります。

            https://github.com/kijai/ComfyUI-KJNodes

            3. 使用するモデル

            チェックポイント

            今回は、RealVisXL_V4.0を使用しました。他のSDXLモデルでも問題ありません。以下のリンクよりダウンロードし、「ComfyUI/models/checkpoints」に格納してください。

            https://huggingface.co/SG161222/RealVisXL_V4.0/blob/main/RealVisXL_V4.0.safetensors

            LoRA

            LoRAにMidjourney Mimicを使用します。Midjourney Mimicは、Midjourneyのような美麗な画像を生成するためのLoRAです。全体的に綺麗な画像を生成できるように、このLoRAを使用しています。以下のリンクよりLoRAをダウンロードし、「ComfyUI/models/loras」フォルダに格納してください。

            https://huggingface.co/imagepipeline/Midjourney-Mimic-v1.2/blob/main/2ac68c15-7d9b-49e0-a4a2-796d3093a555.safetensors

            ControlNet

            ControlNetには、AnyTest V4を使用します。AnyTest V4は、形状維持をしつつ、スタイル変換の余地を残した柔軟なControlNetです。以下のリンクよりダウンロードし、「ComfyUI/models/controlnet」フォルダに格納してください。

            https://huggingface.co/2vXpSwA7/iroiro-lora/blob/main/test_controlnet2/CN-anytest_v4-marged.safetensors

            インペイント

            インペイントで使用するモデルにMAT_Places512_G_fp16を使用します。以下のリンクよりダウンロードし、「ComfyUI/models/inpaint」フォルダに格納してください。

            https://huggingface.co/Acly/MAT/blob/main/MAT_Places512_G_fp16.safetensors

            4. 使用する画像素材

            今回は、以下の画像に対して髪形変更処理を行います。

            画像

            ☆ワークフローのJSONファイルと画像ファイルは文末にございます

            5. ワークフローの全体像

            ワークフローの全体像は以下になります。

            画像

            このワークフローをフローチャート化したものが以下になります。

            画像

            各ノードの詳細は以下になります。グループごとに解説します。

            1. 画像読み込み: 元の画像を読み込みます。
            2. 物体検出: Florence2モデルを使用して、元の画像内の髪と人物を検出します。
            3. 領域分割: SAM2(Segment Anything Model 2)を使用して、髪と人物の正確なマスクを作成します。
            4. マスク処理: 人物のマスクを反転し作成した背景マスクと、髪のマスクを合成し、インペイント用の領域を作成します。
            5. 背景生成: 人物マスクを利用して、マスクされた領域を埋めるための背景を別のプロセスで生成します。
            6. インペイント: 背景マスクと髪マスクを合成したマスクを利用して、髪型を変更するインペインティングを行います。
            7. 初期サンプリング: 背景マスクと髪マスクを合成したマスクを利用したインペインティングで、新しい髪の初期バージョンを作成します。
            8. 人物マスクの再作成: Florence2とSAM2を再度使用して、初期サンプリングで生成された画像から人物を検出し、マスキングします。
            9. 画像合成: 再作成された人物マスクを利用して、背景画像と初期サンプリングで生成された画像を合成します。
            10. 最終サンプリング: 合成された画像を弱いdenoiseでサンプリンクし、最終的な画像を洗練します。

            6. ワークフロー解説

            ここでは、セクションごとに処理内容を解説します。

            Florence2によるオブジェクト検出

            画像
            • まず、DownloadAndLoadFlorence2ModelノードでFlorence2のモデルをロードします。ここでは、基本モデルのFlorence-2-baseを選択しました。
            画像
            • 次に、ロードしたFlorence2モデルと対象画像をFlorence2Runノードに入力します。ここでは、taskにcaption_to_phrase_groundingを選択し、テキストに「human, hair,」を入力しました。caption_to_phrase_groundingは、入力したテキストに対応する画像領域を特定するタスクです。今回は、人物と髪を検出したいので、テキストに「human, hair,」を入力しています。
            画像
            • 以下がFlorence2Runノードの実行結果です。Florence2Runノードのimage出力をPreview Imageノードで表示しています。人物全体と髪がバウンディングボックスで検出されていることが確認できます。
            画像
            • Florence2Runノードのdata出力は、Florence2 Coordinatesノードに接続されます。dataはリストになっているため、ここでリストのどのデータを使用するかをindexで選択します。今回の場合、「human, hair,」と入力したので、index0がhuman、index1がhairになります。
            画像

            SAM2によるセグメンテーション

            画像
            • Florence2の結果を利用してセグメンテーションするためにSAM2を利用します。まず、(Down)Load SAM2ModelノードでSAM2のモデルをロードします。ここでは、modelsam2_hiera_base_plus.safetensorsを選択しました。このモデルは、中程度のサイズと性能を持ち、精度と速度のバランスが取れているモデルです。今回は、画像1枚を処理するので、segmentorsingle_imageになります。
            画像
            • 次にSam2Segmentationノードでセグメンテーションを行います。入力には、ロードしたSAM2モデル、対象画像、Florence2の検出結果のバウンディングボックスを入力します。今回は、髪と人物を別々でセグメンテーションするので、individual_objectstrueに設定します。
            画像
            • セグメントの結果は以下になります。左が人物全体、右が髪をセグメントでマスクした結果になります。
            画像
            • 人物のマスクは、InvertMaskで反転させ、背景マスクを作成します。
            画像

            背景の補完

            画像から人物を削除し、背景のみの画像を生成します。

            画像
            • SAM2で生成した人物マスクをGrowMaskノードで拡張させます。
            画像
            • インペイントで使用するモデルをLoad Inpaint Modelノードでロードします。
            画像
            • Inpaint(using Model)ノードに拡張したマスク、ロードしたインペイントモデル、対象画像を入力し、インペイントを実行します。
            画像
            • 以下のようにインペイントが上手くいかない場合は、マスクの拡張範囲を広げたり、シード値を変えて生成を繰り返してください。
            画像

            マスクの合成

            髪マスクと背景マスクを合成し、人物以外をインペイントするためのマスクを作成します。

            画像
            • MaskCompositeノードのdestinationに背景マスク、sourceに髪マスクを入力し、マスクを合成します。operation(合成方法)はaddにします。
            画像
            • 必要に応じて、合成したマスクを拡張してください。
            画像
            • ImageAndMaskPreviewノードに対象画像と合成したマスクを入力し、結果を確認します。しっかり人物以外がマスクされていることを確認できました。
            画像

            髪の生成

            指定した髪形に変更します。

            画像
            • まず、Load CheckpointRealVisXLをロードします。
            • 次にLoad CheckpointMODELCLIP出力をLoad LoRAに接続します。Load LoRAでは、Midjourney Mimicをロードします。
            • Load LoRACLIP出力は、2つのCLIP Text Encode (Prompt)ノードに接続します。上のCLIPがポジティブプロンプト、下のCLIPがネガティブプロンプトになります。
            • ポジティブプロンプトには、髪形を入力します。今回は「afro」を入力しました。
            • ネガティブプロンプトには、以下のプロンプトを入力しました。
            worst quality, low quality, illustration, 3d, 2d, painting, cartoons, sketch, nsfw, accessories, human,
            画像
            • 次にControlNetの設定です。まず、Load ControlNet ModelノードでAnyTest V4をロードします。
            • Apply ControlNet(Advanced)にポジティブ/ネガティブプロンプト、ロードしたControlNetモデル、対象画像を入力し、ControlNetを適用します。strengthは弱めに設定してください。
            画像
            • 次にインペイント用のLatentを作成します。VAE Encode (for inpainting)ノードに対象画像、Load CheckpointのVAE出力、背景マスクと髪マスクを合成したマスクを入力します。必要に応じて、grow_mask_byの値を調整し、マスクを拡張してください。
            画像
            • KSamplerノードには、Load LoRAMODEL出力、Apply ControlNet(Advanced)positive/negative出力、VAE Encode (for inpainting)LATENT出力を入力し、髪の生成を行います。
            • KSamplerノードの生成結果のLATENTは、VAE Decodeノードで画像に変換します。
            画像

            人物と背景の合成と補正

            新たに髪を生成した画像から人物を抽出し、背景と合成します。その後、合成した画像に弱いノイズでサンプリングを行い、画像を補正します。

            画像
            • まず、新たに髪を生成した画像から人物を抽出するために、Florence2RunFlorence2 CoordinatesSam2Segmentationノードで人物マスクを再作成します。Florence2Runノードには、新たに髪を生成した画像と「Florence2によるオブジェクト検出」でロードしたFlorence2モデルを入力します。Florence2Runノードのテキストには、「human,」を入力します。その他は、「Florence2によるオブジェクト検出」セクションで説明した内容と同じです。
            画像
            • 次にImageCompositeMaskedノードで背景と人物を合成します。destinationには「背景の補完」で生成した背景画像を、sourceには新たに髪を生成した画像を、maskには再作成した人物マスクを入力します。
            • 合成した画像は、VAE EncodeノードでLatentに変換します。
            画像
            • 合成した画像の補正に使用するControlNetを新たに用意します。「髪の生成」セクションで使用したControlNetは、ポジティブプロンプトが「afro」のみであり、画像の特徴を捉えたポジティブプロンプトではないため、新たにポジティブプロンプトを作成し、補正の精度を上げます。
            • WD14 Taggerノードで合成画像からタグを抽出します。それをCLIP Text Encode(Prompt)ノードに入力し、その出力をApply ControlNet (Advanced) ノードに入力します。
            • CLIP Text Encode(Prompt)ノードのclip入力には、Load LoRAノードのCIP出力を入力します。
            • Apply ControlNet (Advanced)ノードのnegative入力には、「髪の生成」セクションのネガティブプロンプトのCLIP Text Encode(Prompt)ノードの出力を入力します。control_netには、「髪の生成」セクションのLoad ControlNet Modelノードの出力を入力します。image入力には、合成画像を入力します。strengthの値は、少し強めの1.10を設定しました。画像のテイストを崩さないように補正するためです。
            画像
            • 最後にKSamplerノードで補正を実行します。KSamplerノードのmodel入力には、「髪の生成」セクションのLoad LoRAノードの出力、positive/negative入力にはApply ControlNet (Advanced)ノードの出力、latent_imageには合成画像をLatentに変換したものを入力します。
            画像

            7. ワークフローの実行

            それでは、ワークフローを実行してみます。以下が髪形をアフロに変換した画像です。しっかりアフロに変換されています。色を指定していなかったので、この時は金髪になっています。

            画像

            他の髪型にも変更してみました。以下が一覧になります。

            画像

            いかがでしたでしょうか?ComfyUIを上手く使うと、このように実用的な画像の生成システムの構築が可能になります。みなさんも様々な画像生成に挑戦してみてください!

            X(Twitter)@AICUai もフォローよろしくお願いいたします!

            画像生成AI「ComfyUI」マスターPlan

            画像生成AI「Stable Diffusion」特に「ComfyUI」を中心としたプロ向け映像制作・次世代の画像生成を学びたい方に向けたプランです。最新・実用的な記事を優先して、ゼロから学ぶ「ComfyUI」マガジンからまとめて購読できます。 メンバーシップ掲示板を使った質問も歓迎です。

            • メンバー限定の会員証が発行されます
            • 活動期間に応じたバッジを表示
            • メンバー限定掲示板を閲覧できます
            • メンバー特典記事を閲覧できます
            • メンバー特典マガジンを閲覧できます
            • 動画資料やworkflowといった資料への優先アクセスも予定

            ゼロから学ぶ「ComfyUI」マガジン

            https://note.com/aicu/m/md2f2e57c0f3c

            マガジン単体の販売は1件あたり500円を予定しております。
            2件以上読むのであればメンバーシップ参加のほうがお得です!というのもメンバーシップ参加者にはもれなく「AICU Creator Union」へのDiscordリンクをお伝えし、メンバーオンリー掲示板の利用が可能になります。

            https://note.com/aicu/membership/boards/61ab0aa9374e/posts/db2f06cd3487?from=self

            もちろん、初月は無料でお試しいただけます!
            毎日新鮮で確かな情報が配信されるAICUメンバーシップ。
            退会率はとても低く、みなさまにご満足いただいております。
            ✨️オトクなメンバーシップについての詳細はこちら


            ■ボーナストラック:今回のワークフローファイルと画像


            この記事の続きはこちらから https://note.com/aicu/n/n2bc8d72e0eb4

            Originally published at https://note.com on Oct 12, 2024.