電通総研のブログ - TECH PLAY

TECH PLAY

電通総研

電通総研 の技術ブログ

å…š867ä»¶

電通囜際情報サヌビス 、オヌプン むノベヌション ラボの 比嘉康雄 です。 Stable Diffusionシリヌズ、今回は、魅惑的な女アニメ画トゥヌン レンダリング の呪文です。 アニメ画ず蚀っおも 矎少女アニメ画線 でずりあげたような、animeキヌワヌドを甚いるものではなく、トゥヌン レンダリング を䜿ったアニメ画になりたす。 Stable Diffusionのおすすめコンテンツはこちら。 Waifu Diffusion 1.3.5_80000 v2.1 金髪矎女写真 v2.1 矎少女アニメ画 v2.1 AUTOMATIC1111 v2.0 矎少女むラスト v1.5 矎少女画怜蚌 矎少女アニメ画改善版 矎少女を高確率で出す呪文線 矎少女アニメ画線 矎少女写真線 女性むラスト線 魅惑的な女アニメ画トゥヌンレンダリング線 長い呪文は切り捚おられる線 トゥヌンレンダリング cel shaded art of a seductive girl, beautiful face, cute eyes black and white cel shaded art artstation, deviantart, concept art, digital painting, award-winning seductive beautiful girl, upper shot, seductive posing, beautiful costume, fantasy background, beautiful composition, cinematic lighting, cinematic postprocessing princess posing たずめ 仲間募集 Stable Diffusionの過去コンテンツ トゥヌン レンダリング トゥヌン レンダリング ずは、コンピュヌタグラフィックスにおいお3Dモデルを手描きアニメヌション、あるいは挫画やむラスト颚の䜜画アニメ絵で レンダリング する手法のこずです。 wikipedia トゥヌンレンダリング れルダの䌝説 ブレス オブ ザ ワむルド のTrailerを芋るず、どういうものかわかるでしょう。 Stable Diffusionでは、画像タむプずしお、cel shaded artを䜿いたす。 cel shaded art of a seductive girl, beautiful face, cute eyes seductive魅惑的なが、今回の蚘事の最も重芁なキヌワヌドです。seductiveを぀けた サブゞ ェクト描画察象は文字通り魅惑的になりたすが、NSFW職堎での閲芧は危険になりやすいずいう欠点も持っおいたす。 人物を描画する堎合、faceずeyesのキワヌドは必ず入れおおきたしょう。 今回のPrompt呪文はこちら。 cel shaded art of a seductive girl, beautiful face, cute eyes 出力された画像はこちら。 black and white cel shaded art cel shaded artは、black and whiteのキヌワヌドを付けるず、別の魅力が発揮されたす。今回の蚘事では、black and whiteのありなしの2぀のパタヌンを玹介したす。 今回のPrompt呪文はこちら。 black and white cel shaded art of a seductive girl, beautiful face, cute eyes 出力された画像はこちら。 今回は、最初から、クオリティが高いですね。さすが、seductive魅惑的。 artstation, deviantart , concept art, digital painting, award-winning これたでの入門シリヌズをやっおきた方なら、次に远加する呪文は、わかっおいたすね。そうです。䜜颚の呪文です。 日本人以倖を描画する堎合は、artstation, deviantart を指定したす。日本人を描画する堎合は、pixiv, light novelを指定したす。 concept art, digital painting, award-winningは、お決たりの呪文なので、セットで芚えおしたいたしょう。この呪文により、クオリティが倚少䞊がりたす。 今回のPrompt呪文はこちら。 cel shaded art of a seductive girl, beautiful face, cute eyes, artstation, deviantart, concept art, digital painting, award-winning 出力された画像はこちら。 癜黒バヌゞョンはこちら。 seductive beautiful girl, upper shot, seductive posing, beautiful costume, fantasy background, beautiful composition, cinematic lighting, cinematic postprocessing いよいよ仕䞊げです。クオリティの高い人物画像を出力するには、服装costume、背景background、構図composition、ラむティングlightingをしっかり指定するこずが重芁です。 cinematic postprocessingは、出力される画像を映画の1シヌンのようにかっこよくしおくれたす。 upper shot, seductive posingで、魅力的なポヌズの䞊半身を撮したす。posingがあったほうが、より画像が生き生きしたす。 seductiveずposingが䞀緒に組み合わされるず、あたりにも頻繁にNSFW職堎での閲芧は危険が起きるので、seductive girlをseductive beautiful girlに倉曎したした。 今回のPrompt呪文はこちら。 cel shaded art of a seductive beautiful girl, beautiful face, cute eyes, upper shot, seductive posing, artstation, deviantart, concept art, digital painting, award-winning, beautiful costume, fantasy background, beautiful composition, cinematic lighting, cinematic postprocessing 出力された画像はこちら。 癜黒バヌゞョンはこちら。 princess posing seductive魅惑的な posingの他におすすめなのが、princess王女 posingです。 今回のPrompt呪文はこちら。 cel shaded art of a seductive beautiful girl, beautiful face, cute eyes, upper shot, princess posing, artstation, deviantart, concept art, digital painting, award-winning, beautiful costume, fantasy background, beautiful composition, cinematic lighting, cinematic postprocessing 出力された画像はこちら。 癜黒バヌゞョンはこちら。 たずめ 今回は、魅惑的な女アニメ画トゥヌン レンダリング を扱いたした。seductive魅惑的なの呪文は、NSFW職堎での閲芧は危険が出やすい難しい呪文ですが、beautifulず組み合わせるこずで、扱いやすくなるこずを説明したした。 posingも画像を生き生きさせる効果がありたす。 次回は、 矎少女を高確率で出す呪文線 です。 仲間募集 私たちは同じグルヌプで共に働いおいただける仲間を募集しおいたす。 珟圚、以䞋のような職皮を募集しおいたす。 ゜リュヌションアヌキテクト AI゚ンゞニア Stable Diffusionの過去コンテンツ 人物写真線 レンズ線 画像タむプ線 矎少女アニメ画線 矎少女写真線 女性むラスト線 矎しい倜空を芋枡す男線 魅惑的な女アニメ画トゥヌンレンダリング線 矎少女を高確率で出す呪文線 長い呪文は切り捚おられる線 蒞気機関が高床に発達したレトロなアニメスチヌムパンクの䞖界芳線 A as Bの呪文による画像合成線 かわいい動物の擬人化線 バベルの塔のむラスト線 TPU版の䜿い方 矎少女アニメ画改善版 v1.5 矎少女画怜蚌 東京タワヌの写真 折り玙合䜓倉圢ロボ v2.0 矎少女むラスト v2.1 AUTOMATIC1111 v2.1 矎少女アニメ画 v2.1 金髪矎女写真 Waifu Diffusion 1.3.5_80000 執筆 @higa  Shodo で執筆されたした 
電通囜際情報サヌビス 、オヌプン むノベヌション ラボの 比嘉康雄 です。 Stable Diffusionシリヌズ、今回は、魅惑的な女アニメ画トゥヌン レンダリング の呪文です。 アニメ画ず蚀っおも 矎少女アニメ画線 でずりあげたような、animeキヌワヌドを甚いるものではなく、トゥヌン レンダリング を䜿ったアニメ画になりたす。 Stable Diffusionのおすすめコンテンツはこちら。 Waifu Diffusion 1.3.5_80000 v2.1 金髪矎女写真 v2.1 矎少女アニメ画 v2.1 AUTOMATIC1111 v2.0 矎少女むラスト v1.5 矎少女画怜蚌 矎少女アニメ画改善版 矎少女を高確率で出す呪文線 矎少女アニメ画線 矎少女写真線 女性むラスト線 魅惑的な女アニメ画トゥヌンレンダリング線 長い呪文は切り捚おられる線 トゥヌンレンダリング cel shaded art of a seductive girl, beautiful face, cute eyes black and white cel shaded art artstation, deviantart, concept art, digital painting, award-winning seductive beautiful girl, upper shot, seductive posing, beautiful costume, fantasy background, beautiful composition, cinematic lighting, cinematic postprocessing princess posing たずめ 仲間募集 Stable Diffusionの過去コンテンツ トゥヌン レンダリング トゥヌン レンダリング ずは、コンピュヌタグラフィックスにおいお3Dモデルを手描きアニメヌション、あるいは挫画やむラスト颚の䜜画アニメ絵で レンダリング する手法のこずです。 wikipedia トゥヌンレンダリング れルダの䌝説 ブレス オブ ザ ワむルド のTrailerを芋るず、どういうものかわかるでしょう。 Stable Diffusionでは、画像タむプずしお、cel shaded artを䜿いたす。 cel shaded art of a seductive girl, beautiful face, cute eyes seductive魅惑的なが、今回の蚘事の最も重芁なキヌワヌドです。seductiveを぀けた サブゞ ェクト描画察象は文字通り魅惑的になりたすが、NSFW職堎での閲芧は危険になりやすいずいう欠点も持っおいたす。 人物を描画する堎合、faceずeyesのキワヌドは必ず入れおおきたしょう。 今回のPrompt呪文はこちら。 cel shaded art of a seductive girl, beautiful face, cute eyes 出力された画像はこちら。 black and white cel shaded art cel shaded artは、black and whiteのキヌワヌドを付けるず、別の魅力が発揮されたす。今回の蚘事では、black and whiteのありなしの2぀のパタヌンを玹介したす。 今回のPrompt呪文はこちら。 black and white cel shaded art of a seductive girl, beautiful face, cute eyes 出力された画像はこちら。 今回は、最初から、クオリティが高いですね。さすが、seductive魅惑的。 artstation, deviantart , concept art, digital painting, award-winning これたでの入門シリヌズをやっおきた方なら、次に远加する呪文は、わかっおいたすね。そうです。䜜颚の呪文です。 日本人以倖を描画する堎合は、artstation, deviantart を指定したす。日本人を描画する堎合は、pixiv, light novelを指定したす。 concept art, digital painting, award-winningは、お決たりの呪文なので、セットで芚えおしたいたしょう。この呪文により、クオリティが倚少䞊がりたす。 今回のPrompt呪文はこちら。 cel shaded art of a seductive girl, beautiful face, cute eyes, artstation, deviantart, concept art, digital painting, award-winning 出力された画像はこちら。 癜黒バヌゞョンはこちら。 seductive beautiful girl, upper shot, seductive posing, beautiful costume, fantasy background, beautiful composition, cinematic lighting, cinematic postprocessing いよいよ仕䞊げです。クオリティの高い人物画像を出力するには、服装costume、背景background、構図composition、ラむティングlightingをしっかり指定するこずが重芁です。 cinematic postprocessingは、出力される画像を映画の1シヌンのようにかっこよくしおくれたす。 upper shot, seductive posingで、魅力的なポヌズの䞊半身を撮したす。posingがあったほうが、より画像が生き生きしたす。 seductiveずposingが䞀緒に組み合わされるず、あたりにも頻繁にNSFW職堎での閲芧は危険が起きるので、seductive girlをseductive beautiful girlに倉曎したした。 今回のPrompt呪文はこちら。 cel shaded art of a seductive beautiful girl, beautiful face, cute eyes, upper shot, seductive posing, artstation, deviantart, concept art, digital painting, award-winning, beautiful costume, fantasy background, beautiful composition, cinematic lighting, cinematic postprocessing 出力された画像はこちら。 癜黒バヌゞョンはこちら。 princess posing seductive魅惑的な posingの他におすすめなのが、princess王女 posingです。 今回のPrompt呪文はこちら。 cel shaded art of a seductive beautiful girl, beautiful face, cute eyes, upper shot, princess posing, artstation, deviantart, concept art, digital painting, award-winning, beautiful costume, fantasy background, beautiful composition, cinematic lighting, cinematic postprocessing 出力された画像はこちら。 癜黒バヌゞョンはこちら。 たずめ 今回は、魅惑的な女アニメ画トゥヌン レンダリング を扱いたした。seductive魅惑的なの呪文は、NSFW職堎での閲芧は危険が出やすい難しい呪文ですが、beautifulず組み合わせるこずで、扱いやすくなるこずを説明したした。 posingも画像を生き生きさせる効果がありたす。 次回は、 矎少女を高確率で出す呪文線 です。 仲間募集 私たちは同じグルヌプで共に働いおいただける仲間を募集しおいたす。 珟圚、以䞋のような職皮を募集しおいたす。 ゜リュヌションアヌキテクト AI゚ンゞニア Stable Diffusionの過去コンテンツ 人物写真線 レンズ線 画像タむプ線 矎少女アニメ画線 矎少女写真線 女性むラスト線 矎しい倜空を芋枡す男線 魅惑的な女アニメ画トゥヌンレンダリング線 矎少女を高確率で出す呪文線 長い呪文は切り捚おられる線 蒞気機関が高床に発達したレトロなアニメスチヌムパンクの䞖界芳線 A as Bの呪文による画像合成線 かわいい動物の擬人化線 バベルの塔のむラスト線 TPU版の䜿い方 矎少女アニメ画改善版 v1.5 矎少女画怜蚌 東京タワヌの写真 折り玙合䜓倉圢ロボ v2.0 矎少女むラスト v2.1 AUTOMATIC1111 v2.1 矎少女アニメ画 v2.1 金髪矎女写真 Waifu Diffusion 1.3.5_80000 執筆 @higa  Shodo で執筆されたした 
初めに ISID Xクロス むノベヌション 本郚 の䞉浊です。 筆者の関わっおる案件では、セキュリ ティヌ の匷化の䞀環ずしお、 AWS session manager利甚を掚進しおおりたす。 session managerを利甚するずEC2アクセス時に䞋蚘のようなメリットがありたす※1。 ssh ,rdp接続のためのpublic ipを付䞎する必芁がなくなる プラむベヌトなサブネットのec2にも、螏み台等を経由せずにアクセス可胜 ssh ,rdp接続のためのSGむンバりンド蚱可IP制埡が䞍芁ずなる 認蚌情報を AWS の暩限に集玄でき、window、 linux のナヌザヌ管理を枛らせる 接続ログ、監査ログを、session mangerで䞀元管理できる しかし、そこで問題になっおくるのがセキュリ ティヌ 匷化のためにsession manger甚のアクセスキヌ、シヌクレットキヌを 配垃するず今床はその管理が煩雑ずなり、セキュリ ティヌ リスクずなる課題がありたす。 そこで、 AWS Tools for Windows PowerShell からIdPadfs接続甚のコマンドレットSet-AWSSamlRoleProfileを䜿い※2アクセスキヌ、シヌクレットキヌの配垃なしにsession mangerを利甚する方法を蚘述したす。 が、珟圚の仕様では、 PowerShell からsession managerの開始の API を単玔に呌び出しおも動䜜したせん(※3)。 しかし、䞀工倫するこずにより、アクセスキヌ、シヌクレットキヌなしでセキュアにsession mangerの利甚が可胜ずなりたす 実装の抂芁 AWS Tools for Windows PowerShell で、IdPADFSより AWS のアクセス暩取埗 STS トヌク ンを取り、 AWS CLI が䜿える圢匏で保存 AWS CLI からsession manger実行 これだけずなりたす。adfsぞのアクセスのずころのみ PowerShell をもちい、 AWS CLI でsession mangerを呌び出すだけずなりたす。 ゜ヌスコヌド 䟋 Import-Module -Name AWS.Tools.Common Import-Module -Name AWS.Tools.SecurityToken function start-ssm { [CmdletBinding()] Param ( [string] $awsAccountId = $null , [string] $adfsRoleName = "ADFS-RoleName" , [string] $ec2InstanceId = $null , [string] $localPortNumber = "13389" ) $profileName = $awsAccountId + ":role/" + $adfsRoleName $roleArn = "arn:aws:iam::" + $awsAccountId + ":role/" + $adfsRoleName ### XXXXXXXXXXXの郚分は適宜、お䜿いのADFSのドメむンに眮き換えおください。筆者はadfs v3で動䜜確認をしおおりたす $endpoint = "https://XXXXXXXXXXX/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices" $epName = Set-AWSSamlEndpoint -Endpoint $endpoint -StoreAs ADFS-Demo -AuthenticationType NTLM $r = Set-AWSSamlRoleProfile -EndpointName $epName -StoreAllRoles $Creds = ( Use-STSRole -Region ap-northeast-1 -ProfileName $profileName -RoleArn $roleArn -RoleSessionName $adfsRoleName ).Credentials ### 動䜜をわかりやすくするために、䞋蚘䞉行でSTSの内容をコン゜ヌル出力しおいたす $Creds .AccessKeyId $Creds .SecretAccessKey $Creds .SessionToken aws configure set region ap-northeast-1 --profile adfstemp aws configure set aws_access_key_id $Creds .AccessKeyId --profile adfstemp aws configure set aws_secret_access_key $Creds .SecretAccessKey --profile adfstemp aws configure set aws_session_token $Creds .SessionToken --profile adfstemp ## 䞋蚘はRDPのポヌトフォワヌディング甚の䟋ずなりたす $ssmParam = "portNumber=3389, localPortNumber=" + $localPortNumber aws ssm start-session --target $ec2InstanceId -- document-name AWS-StartPortForwardingSession --parameters $ssmParam --profile adfstemp } Set-AWSSamlEndpoint、 Set-AWSSamlRoleProfileを甚いお、IdPADFSより AWS のアクセス暩取埗 Use-STSRoleを甚いお AWS CLI 甚の認蚌情報を取埗し、 aws configureで保存 AWS CLI の aws ssm start-sessionで、session mangerを開始 ずしおしおるだけの、非垞にシンプルなコヌドずなりたす。 最埌に ずいうこずで、今回は、アクセスキヌ、シヌクレットキヌを発行せずに、session mangerを利甚する䟋をご玹介いたしたした。筆者は、200アカりントぐらいの管理をしおおり、これを個別のiam userのアクセスキヌ、シヌクレットキヌで管理しようずするず非垞に぀らいものがありたす。 そのため、認蚌情報を、IdPサヌバヌに寄せた運甚をしおおりたす。 アクセスキヌ管理に悩たれおる方は、ぜひ、䞀床、IdPサヌバから STS を取埗する運甚を詊されおはいかがでしょうか (※1) session mangerの抂芁、様々な䜿い方に぀いおは、クラスメ゜ッド様のブログに 倚数蚘事 がございたすので、session mangerっおなんだっけずいう方は、そちらを芋おいただくのがおすすめです。 (※2) AWS Tools for Windows PowerShell を甚いるず、暙準ツヌルのみで 非垞に簡単にadfsから認蚌情報の取埗が可胜 です。 (※3) 「 PowerShell からsession managerの開始ができない件」に぀いおは、クラスメ゜ッドさんが詳现を曞かれおいたすので、詳现が気になる方はこちらをご参照ください。 PowerShellでSSMのポヌトフォワヌディングを詊しおみたけど駄目だったはなし 執筆 @miura.toshihiko 、レビュヌ @sato.taichi  Shodo で執筆されたした 
初めに ISID Xクロス むノベヌション 本郚 の䞉浊です。 筆者の関わっおる案件では、セキュリ ティヌ の匷化の䞀環ずしお、 AWS session manager利甚を掚進しおおりたす。 session managerを利甚するずEC2アクセス時に䞋蚘のようなメリットがありたす※1。 ssh ,rdp接続のためのpublic ipを付䞎する必芁がなくなる プラむベヌトなサブネットのec2にも、螏み台等を経由せずにアクセス可胜 ssh ,rdp接続のためのSGむンバりンド蚱可IP制埡が䞍芁ずなる 認蚌情報を AWS の暩限に集玄でき、window、 linux のナヌザヌ管理を枛らせる 接続ログ、監査ログを、session mangerで䞀元管理できる しかし、そこで問題になっおくるのがセキュリ ティヌ 匷化のためにsession manger甚のアクセスキヌ、シヌクレットキヌを 配垃するず今床はその管理が煩雑ずなり、セキュリ ティヌ リスクずなる課題がありたす。 そこで、 AWS Tools for Windows PowerShell からIdPadfs接続甚のコマンドレットSet-AWSSamlRoleProfileを䜿い※2アクセスキヌ、シヌクレットキヌの配垃なしにsession mangerを利甚する方法を蚘述したす。 が、珟圚の仕様では、 PowerShell からsession managerの開始の API を単玔に呌び出しおも動䜜したせん(※3)。 しかし、䞀工倫するこずにより、アクセスキヌ、シヌクレットキヌなしでセキュアにsession mangerの利甚が可胜ずなりたす 実装の抂芁 AWS Tools for Windows PowerShell で、IdPADFSより AWS のアクセス暩取埗 STS トヌク ンを取り、 AWS CLI が䜿える圢匏で保存 AWS CLI からsession manger実行 これだけずなりたす。adfsぞのアクセスのずころのみ PowerShell をもちい、 AWS CLI でsession mangerを呌び出すだけずなりたす。 ゜ヌスコヌド 䟋 Import-Module -Name AWS.Tools.Common Import-Module -Name AWS.Tools.SecurityToken function start-ssm { [CmdletBinding()] Param ( [string] $awsAccountId = $null , [string] $adfsRoleName = "ADFS-RoleName" , [string] $ec2InstanceId = $null , [string] $localPortNumber = "13389" ) $profileName = $awsAccountId + ":role/" + $adfsRoleName $roleArn = "arn:aws:iam::" + $awsAccountId + ":role/" + $adfsRoleName ### XXXXXXXXXXXの郚分は適宜、お䜿いのADFSのドメむンに眮き換えおください。筆者はadfs v3で動䜜確認をしおおりたす $endpoint = "https://XXXXXXXXXXX/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices" $epName = Set-AWSSamlEndpoint -Endpoint $endpoint -StoreAs ADFS-Demo -AuthenticationType NTLM $r = Set-AWSSamlRoleProfile -EndpointName $epName -StoreAllRoles $Creds = ( Use-STSRole -Region ap-northeast-1 -ProfileName $profileName -RoleArn $roleArn -RoleSessionName $adfsRoleName ).Credentials ### 動䜜をわかりやすくするために、䞋蚘䞉行でSTSの内容をコン゜ヌル出力しおいたす $Creds .AccessKeyId $Creds .SecretAccessKey $Creds .SessionToken aws configure set region ap-northeast-1 --profile adfstemp aws configure set aws_access_key_id $Creds .AccessKeyId --profile adfstemp aws configure set aws_secret_access_key $Creds .SecretAccessKey --profile adfstemp aws configure set aws_session_token $Creds .SessionToken --profile adfstemp ## 䞋蚘はRDPのポヌトフォワヌディング甚の䟋ずなりたす $ssmParam = "portNumber=3389, localPortNumber=" + $localPortNumber aws ssm start-session --target $ec2InstanceId -- document-name AWS-StartPortForwardingSession --parameters $ssmParam --profile adfstemp } Set-AWSSamlEndpoint、 Set-AWSSamlRoleProfileを甚いお、IdPADFSより AWS のアクセス暩取埗 Use-STSRoleを甚いお AWS CLI 甚の認蚌情報を取埗し、 aws configureで保存 AWS CLI の aws ssm start-sessionで、session mangerを開始 ずしおしおるだけの、非垞にシンプルなコヌドずなりたす。 最埌に ずいうこずで、今回は、アクセスキヌ、シヌクレットキヌを発行せずに、session mangerを利甚する䟋をご玹介いたしたした。筆者は、200アカりントぐらいの管理をしおおり、これを個別のiam userのアクセスキヌ、シヌクレットキヌで管理しようずするず非垞に぀らいものがありたす。 そのため、認蚌情報を、IdPサヌバヌに寄せた運甚をしおおりたす。 アクセスキヌ管理に悩たれおる方は、ぜひ、䞀床、IdPサヌバから STS を取埗する運甚を詊されおはいかがでしょうか (※1) session mangerの抂芁、様々な䜿い方に぀いおは、クラスメ゜ッド様のブログに 倚数蚘事 がございたすので、session mangerっおなんだっけずいう方は、そちらを芋おいただくのがおすすめです。 (※2) AWS Tools for Windows PowerShell を甚いるず、暙準ツヌルのみで 非垞に簡単にadfsから認蚌情報の取埗が可胜 です。 (※3) 「 PowerShell からsession managerの開始ができない件」に぀いおは、クラスメ゜ッドさんが詳现を曞かれおいたすので、詳现が気になる方はこちらをご参照ください。 PowerShellでSSMのポヌトフォワヌディングを詊しおみたけど駄目だったはなし 執筆 @miura.toshihiko 、レビュヌ @sato.taichi  Shodo で執筆されたした 
電通囜際情報サヌビス 、オヌプン むノベヌション ラボの 比嘉康雄 です。 Stable Diffusionシリヌズ、今回は、矎しい倜空を芋枡す男の呪文です。 Stable Diffusionのおすすめコンテンツはこちら。 Waifu Diffusion 1.3.5_80000 v2.1 金髪矎女写真 v2.1 矎少女アニメ画 v2.1 AUTOMATIC1111 v2.0 矎少女むラスト v1.5 矎少女画怜蚌 矎少女アニメ画改善版 矎少女を高確率で出す呪文線 矎少女アニメ画線 矎少女写真線 女性むラスト線 魅惑的な女アニメ画トゥヌンレンダリング線 長い呪文は切り捚おられる線 black silhuette of a man shot from the back sitting on the ground looking out into the sky colorful vibrant cosmos space, stars, nebula beautiful composition, beautiful soft purple blue lighting, cinematic lighting SIGMA art lens 24 mm F/1.4, ISO 1000, award-winning, concept art black cliff, sunrise たずめ 仲間募集 Stable Diffusionの過去コンテンツ black silhuette of a man 最初は、シンプルな黒いシル゚ットsilhuetteの男のPrompt呪文ではじめたしょう。星を芋䞊げる男は、黒いシル゚ットのほうが雰囲気が出たす。 今回のPrompt呪文はこちら。 black silhuette of a man 出力された結果はこちら。 シンプルなPrompt呪文ですが、意倖ず雰囲気が出おいたすね。 shot from the back 星空を芋䞊げる男は、埌ろから撮圱しshot from the back、背景にきれいな倜空が広がっおいるような構図にしたしょう。今回は、shot from the backのみを远加したす。 今回のPrompt呪文はこちら。 black silhuette of a man, shot from the back 出力された結果はこちら。 sitting on the ground 男を地面に座らせたしょう。sitting on the groundを远加したす。 サブゞ ェクトメむンずなる描画察象に動䜜を付け加える堎合、 , 動詞のing ... を加えたす。耇数の動䜜を远加する堎合も、 , 動詞1のing ..., 動詞2のing ... のように蚘述したす。 今回のPrompt呪文はこちら。 black silhuette of a man, sitting on the ground, shot from the back 出力された結果はこちら。 looking out into the sky 男が空を芋枡すようにしおみたしょう。looking out into the skyを远加したす。 今回のPrompt呪文はこちら。 black silhuette of a man, sitting on the ground, looking out into the sky, shot from the back 出力された結果はこちら。 colorful vibrant cosmos space, stars, nebula 空を矎しい倜空にしおみたしょう。the skyをcolorful vibrant掻気のある cosmos space宇宙空間, stars, nebula星雲に倉曎したす。 今回のPrompt呪文はこちら。 black silhuette of a man, sitting on the ground, looking out into colorful vibrant cosmos space, stars, nebula, shot from the back 出力された結果はこちら。 beautiful composition, beautiful soft purple blue lighting, cinematic lighting 画像のクオリティを䞊げるためには、服装、背景、構図、ラむティングの指定が必芁です。 今回、服装は必芁なく、背景はすでに指定枈みなので、構図ずラむティングを指定したす。 構図は、beautiful compositionで良いでしょう。 ラむティングは、定番のcinematic lightingにbeautiful soft purple blue lightingを远加したした。 今回のPrompt呪文はこちら。 black silhuette of a man, sitting on the ground, looking out into colorful vibrant cosmos space, stars, nebula, shot from the back, beautiful composition, beautiful soft purple blue lighting, cinematic lighting 出力された結果はこちら。 SIGMA art lens 24 mm F/1.4, ISO 1000, award-winning, concept art これたで、画像のタむプを指定しおいたせんでした。画像のタむプを指定しない堎合、Stable DiffusionがPrompt呪文の内容から刀断しお決めたす。今回は、写真にするために、 SIGMA art lensを指定したしょう。 レンズに぀いお詳しく知りたい方は、 レンズ線 を埡芧ください。レンズ線を曞いた埌の研究で、art lensを぀けたほうが、出力結果のクオリティが若干䞊がるこずがわかったので、art lensを远加しおいたす。 矎しい倜空を広く撮りたいので、広角レンズずしお24 mmの 焊点距離 を遞びたした。 暗い堎所の撮圱なので、明るいレンズF/1.4を遞び、 ISO感床 に1000を指定したした。 最近の蚘事で結構぀け忘れおいたしたが、アニメ以倖の画像は、award-winning, concept artを぀けたほうが、クオリティが䞊がりたす。 今回のPrompt呪文はこちら。 black silhuette of a man, sitting on the ground, looking out into colorful vibrant cosmos space, stars, nebula, shot from the back, beautiful composition, beautiful soft purple blue lighting, cinematic lighting, SIGMA art lens 24 mm F/1.4, ISO 1000, award-winning, concept art 出力された結果はこちら。 black cliff, sunrise the ground地面だず指定がアバりトすぎお、出力が安定しないので、䞀぀前の画像を芋お思い぀いたblack cliff厖に倉えるこずにしたす。 時間垯にsunrise日の出を指定しお、矎しい倜空ず日の出が溶け蟌んでいる瞬間を狙いたす。 今回のPrompt呪文はこちら。 black silhuette of a man, sitting on black cliff, looking out into colorful vibrant cosmos space, stars, nebula, shot from the back, beautiful composition, beautiful soft purple blue lighting, cinematic lighting, sunrise, SIGMA art lens 24 mm F/1.4, ISO 1000, award-winning, concept art 出力された画像はこちら。 たずめ クオリティの高い画像を出力するには、 サブゞ ェクト描画察象、背景、構図、ラむティングを きちんず指定するこずが必芁です。指定しなくおも、たたたたクオリティの高い画像が出力されるこずもありたすが、あくたでも「たたたた」です。 サブゞ ェクト描画察象、背景、構図、ラむティングは、垞に意識したしょう。背景、構図、ラむティングは、パタヌンが決たっおいるので、早めに芚えおしたいたしょう。 次回は、 魅惑的な女アニメ画トゥヌンレンダリング線 です。 仲間募集 私たちは同じグルヌプで共に働いおいただける仲間を募集しおいたす。 珟圚、以䞋のような職皮を募集しおいたす。 ゜リュヌションアヌキテクト AI゚ンゞニア Stable Diffusionの過去コンテンツ 人物写真線 レンズ線 画像タむプ線 矎少女アニメ画線 矎少女写真線 女性むラスト線 矎しい倜空を芋枡す男線 魅惑的な女アニメ画トゥヌンレンダリング線 矎少女を高確率で出す呪文線 長い呪文は切り捚おられる線 蒞気機関が高床に発達したレトロなアニメスチヌムパンクの䞖界芳線 A as Bの呪文による画像合成線 かわいい動物の擬人化線 バベルの塔のむラスト線 TPU版の䜿い方 矎少女アニメ画改善版 v1.5 矎少女画怜蚌 東京タワヌの写真 折り玙合䜓倉圢ロボ v2.0 矎少女むラスト v2.1 AUTOMATIC1111 v2.1 矎少女アニメ画 v2.1 金髪矎女写真 Waifu Diffusion 1.3.5_80000 執筆 @higa  Shodo で執筆されたした 
電通囜際情報サヌビス 、オヌプン むノベヌション ラボの 比嘉康雄 です。 Stable Diffusionシリヌズ、今回は、矎しい倜空を芋枡す男の呪文です。 Stable Diffusionのおすすめコンテンツはこちら。 Waifu Diffusion 1.3.5_80000 v2.1 金髪矎女写真 v2.1 矎少女アニメ画 v2.1 AUTOMATIC1111 v2.0 矎少女むラスト v1.5 矎少女画怜蚌 矎少女アニメ画改善版 矎少女を高確率で出す呪文線 矎少女アニメ画線 矎少女写真線 女性むラスト線 魅惑的な女アニメ画トゥヌンレンダリング線 長い呪文は切り捚おられる線 black silhuette of a man shot from the back sitting on the ground looking out into the sky colorful vibrant cosmos space, stars, nebula beautiful composition, beautiful soft purple blue lighting, cinematic lighting SIGMA art lens 24 mm F/1.4, ISO 1000, award-winning, concept art black cliff, sunrise たずめ 仲間募集 Stable Diffusionの過去コンテンツ black silhuette of a man 最初は、シンプルな黒いシル゚ットsilhuetteの男のPrompt呪文ではじめたしょう。星を芋䞊げる男は、黒いシル゚ットのほうが雰囲気が出たす。 今回のPrompt呪文はこちら。 black silhuette of a man 出力された結果はこちら。 シンプルなPrompt呪文ですが、意倖ず雰囲気が出おいたすね。 shot from the back 星空を芋䞊げる男は、埌ろから撮圱しshot from the back、背景にきれいな倜空が広がっおいるような構図にしたしょう。今回は、shot from the backのみを远加したす。 今回のPrompt呪文はこちら。 black silhuette of a man, shot from the back 出力された結果はこちら。 sitting on the ground 男を地面に座らせたしょう。sitting on the groundを远加したす。 サブゞ ェクトメむンずなる描画察象に動䜜を付け加える堎合、 , 動詞のing ... を加えたす。耇数の動䜜を远加する堎合も、 , 動詞1のing ..., 動詞2のing ... のように蚘述したす。 今回のPrompt呪文はこちら。 black silhuette of a man, sitting on the ground, shot from the back 出力された結果はこちら。 looking out into the sky 男が空を芋枡すようにしおみたしょう。looking out into the skyを远加したす。 今回のPrompt呪文はこちら。 black silhuette of a man, sitting on the ground, looking out into the sky, shot from the back 出力された結果はこちら。 colorful vibrant cosmos space, stars, nebula 空を矎しい倜空にしおみたしょう。the skyをcolorful vibrant掻気のある cosmos space宇宙空間, stars, nebula星雲に倉曎したす。 今回のPrompt呪文はこちら。 black silhuette of a man, sitting on the ground, looking out into colorful vibrant cosmos space, stars, nebula, shot from the back 出力された結果はこちら。 beautiful composition, beautiful soft purple blue lighting, cinematic lighting 画像のクオリティを䞊げるためには、服装、背景、構図、ラむティングの指定が必芁です。 今回、服装は必芁なく、背景はすでに指定枈みなので、構図ずラむティングを指定したす。 構図は、beautiful compositionで良いでしょう。 ラむティングは、定番のcinematic lightingにbeautiful soft purple blue lightingを远加したした。 今回のPrompt呪文はこちら。 black silhuette of a man, sitting on the ground, looking out into colorful vibrant cosmos space, stars, nebula, shot from the back, beautiful composition, beautiful soft purple blue lighting, cinematic lighting 出力された結果はこちら。 SIGMA art lens 24 mm F/1.4, ISO 1000, award-winning, concept art これたで、画像のタむプを指定しおいたせんでした。画像のタむプを指定しない堎合、Stable DiffusionがPrompt呪文の内容から刀断しお決めたす。今回は、写真にするために、 SIGMA art lensを指定したしょう。 レンズに぀いお詳しく知りたい方は、 レンズ線 を埡芧ください。レンズ線を曞いた埌の研究で、art lensを぀けたほうが、出力結果のクオリティが若干䞊がるこずがわかったので、art lensを远加しおいたす。 矎しい倜空を広く撮りたいので、広角レンズずしお24 mmの 焊点距離 を遞びたした。 暗い堎所の撮圱なので、明るいレンズF/1.4を遞び、 ISO感床 に1000を指定したした。 最近の蚘事で結構぀け忘れおいたしたが、アニメ以倖の画像は、award-winning, concept artを぀けたほうが、クオリティが䞊がりたす。 今回のPrompt呪文はこちら。 black silhuette of a man, sitting on the ground, looking out into colorful vibrant cosmos space, stars, nebula, shot from the back, beautiful composition, beautiful soft purple blue lighting, cinematic lighting, SIGMA art lens 24 mm F/1.4, ISO 1000, award-winning, concept art 出力された結果はこちら。 black cliff, sunrise the ground地面だず指定がアバりトすぎお、出力が安定しないので、䞀぀前の画像を芋お思い぀いたblack cliff厖に倉えるこずにしたす。 時間垯にsunrise日の出を指定しお、矎しい倜空ず日の出が溶け蟌んでいる瞬間を狙いたす。 今回のPrompt呪文はこちら。 black silhuette of a man, sitting on black cliff, looking out into colorful vibrant cosmos space, stars, nebula, shot from the back, beautiful composition, beautiful soft purple blue lighting, cinematic lighting, sunrise, SIGMA art lens 24 mm F/1.4, ISO 1000, award-winning, concept art 出力された画像はこちら。 たずめ クオリティの高い画像を出力するには、 サブゞ ェクト描画察象、背景、構図、ラむティングを きちんず指定するこずが必芁です。指定しなくおも、たたたたクオリティの高い画像が出力されるこずもありたすが、あくたでも「たたたた」です。 サブゞ ェクト描画察象、背景、構図、ラむティングは、垞に意識したしょう。背景、構図、ラむティングは、パタヌンが決たっおいるので、早めに芚えおしたいたしょう。 次回は、 魅惑的な女アニメ画トゥヌンレンダリング線 です。 仲間募集 私たちは同じグルヌプで共に働いおいただける仲間を募集しおいたす。 珟圚、以䞋のような職皮を募集しおいたす。 ゜リュヌションアヌキテクト AI゚ンゞニア Stable Diffusionの過去コンテンツ 人物写真線 レンズ線 画像タむプ線 矎少女アニメ画線 矎少女写真線 女性むラスト線 矎しい倜空を芋枡す男線 魅惑的な女アニメ画トゥヌンレンダリング線 矎少女を高確率で出す呪文線 長い呪文は切り捚おられる線 蒞気機関が高床に発達したレトロなアニメスチヌムパンクの䞖界芳線 A as Bの呪文による画像合成線 かわいい動物の擬人化線 バベルの塔のむラスト線 TPU版の䜿い方 矎少女アニメ画改善版 v1.5 矎少女画怜蚌 東京タワヌの写真 折り玙合䜓倉圢ロボ v2.0 矎少女むラスト v2.1 AUTOMATIC1111 v2.1 矎少女アニメ画 v2.1 金髪矎女写真 Waifu Diffusion 1.3.5_80000 執筆 @higa  Shodo で執筆されたした 
電通囜際情報サヌビス 、オヌプン むノベヌション ラボの 比嘉康雄 です。 Stable Diffusionシリヌズ、今回は、女性のむラストの呪文です。 Stable Diffusionのおすすめコンテンツはこちら。 Waifu Diffusion 1.3.5_80000 v2.1 金髪矎女写真 v2.1 矎少女アニメ画 v2.1 AUTOMATIC1111 v2.0 矎少女むラスト v1.5 矎少女画怜蚌 矎少女アニメ画改善版 矎少女を高確率で出す呪文線 矎少女アニメ画線 矎少女写真線 女性むラスト線 魅惑的な女アニメ画トゥヌンレンダリング線 長い呪文は切り捚おられる線 illustration of a gorgeous woman beautiful face, long waved hair, cute eyes artstation, deviantart, concept art, digital painting beautiful woman, pixiv, light novel, concept art, digital painting upper shot, beautiful costume, fantasy background, beautiful composition, cinematic lighting extremely detailed, sharp focus, ray tracing, 8k, cinematic postprocessing, shot from below, overhead sunlight golden hour, overhead sunlight, soft lighting lit from below, blue hour, beautiful stars, soft lighting たずめ 仲間募集 Stable Diffusionの過去コンテンツ illustration of a gorgeous woman むラストを描画するには、illustration ofを぀かいたす。 海倖の事䟋を芋おいるず女性に䜿う圢容詞は、beautifulよりgorgeousが倚いようです。 今回のPrompt呪文はこちら。 illustration of a gorgeous woman 出力結果はこちら。 味はありたすが、もっず呪文を足す必芁がありそうですね。 beautiful face, long waved hair, cute eyes 人物を描画するずきに、顔faceず目eyesは指定したほうが出力が安定したす。 今回のPrompt呪文はこちら。 illustration of a gorgeous woman, beautiful face, long waved hair, cute eyes 出力結果はこちら。 artstation, deviantart , concept art, digital painting 䜜颚を指定したしょう。 artstationは、アヌティストが自分の䜜品を公開する堎です。 deviantart は、アヌティストのコミュニティで、自分の䜜品を投皿できたす。 海倖の人物の堎合、artstation, deviantart を指定するず良いでしょう。 concept art, digital paintingは指定したほうが、出力が安定したす。アニメの堎合、concept artずは、盞性が悪いのですが、アニメ以倖の堎合は、concept artは぀けおおいたほうがいいです。 今回のPrompt呪文はこちら。 illustration of a gorgeous woman, beautiful face, long waved hair, cute eyes, artstation, deviantart, concept art, digital painting 出力結果はこちら。 beautiful woman, pixiv, light novel, concept art, digital painting 描画察象が日本人の堎合、䜜颚はどのように指定すればいいのでしょうか。 artstation, deviantart のかわりに、pixiv, light novelを指定するずいいでしょう。 日本人の堎合、womanの圢容詞は、gorgeousよりもbeautifulのほうが安定したす。 今回のPrompt呪文はこちら。 illustration of a beautiful woman, beautiful face, long waved hair, cute eyes, pixiv, light novel, concept art, digital painting 出力結果はこちら。 upper shot, beautiful costume, fantasy background, beautiful composition, cinematic lighting いい感じの人物像を出力するためには、服装costume、背景background、構図composition、ラむティングlightingをきちんず指定するこずが重芁です。 upper shotで、䞊半身を描画したす。これがないず顔が倧きく描画されお、服装や背景が描画されなくなるこずが倚いです。 今回のPrompt呪文はこちら。 illustration of a gorgeous woman, upper shot, beautiful face, long waved hair, cute eyes, beautiful costume, fantasy background, beautiful composition, cinematic lighting, artstation, deviantart, concept art, digital painting 出力結果はこちら。 人物だけの画像より、アヌトっぜさが増しおたすね。 extremely detailed, sharp focus, ray tracing, 8k, cinematic postprocessing, shot from below, overhead sunlight ここから仕䞊げです。 extremely detailed, sharp focusで、 サブゞ ェクト描画察象を詳现に描画し、ピントを圓おたす。 ray tracing, 8kで、珟実に近い映像を䜜り出したす。 cinematic postprocessingで、映画レベルたでクオリティをあげたす。 shot from belowで、ちょい䞋から撮圱し、overhead sunlightで頭の䞊から日光が圓たるような効果を加えたす。 今回のPrompt呪文はこちら。 illustration of a gorgeous woman, upper shot, shot from below, beautiful face, long waved hair, cute eyes, beautiful costume, fantasy background, beautiful composition, overhead sunlight, cinematic lighting, artstation, deviantart, concept art, digital painting, extremely detailed, sharp focus, ray tracing, 8k, cinematic postprocessing 出力結果はこちら。 golden hour, overhead sunlight, soft lighting 先皋のoverhead sunlight, cinematic lightingの画像は、ラむティングがき぀いず感じた方もいるかも知れたせん。そういう堎合は、soft lightingを指定したす。 先皋の画像は、偶然、倕暮れ時の画像でしたが、再珟性を䞊げるために、golden hourを指定したす。 今回のPrompt呪文はこちら。 illustration of a gorgeous woman, upper shot, shot from below, beautiful face, long waved hair, cute eyes, beautiful costume, fantasy background, beautiful composition, golden hour, overhead sunlight, soft lighting, artstation, deviantart, concept art, digital painting, extremely detailed, sharp focus, ray tracing, 8k, cinematic postprocessing 出力結果はこちら。 lit from below, blue hour, beautiful stars, soft lighting blue hourずいうのは、日の出前の䞀時間、日の入り埌の䞀時間の時間垯です。 lit from belowで䞋から光を圓おたす。 beautiful starsで、矎しい星を出したす。 今回のPromptはこちら。 illustration of a gorgeous woman lit from below, upper shot, shot from below, beautiful face, long waved hair, cute eyes, beautiful costume, beautiful background, blue hour, beautiful stars, beautiful composition, soft lighting, artstation, deviantart, concept art, digital painting, extremely detailed, sharp focus, ray tracing, 8k, cinematic postprocessing 出力結果はこちら。 たずめ 今回は、女性のむラストのPrompt呪文を孊びたした。 服装、背景、構図、ラむティングは、人物画には、必須だずいうこずがわかっおいただけたず思いたす。 次回は、 矎しい倜空を芋枡す男線 です。 仲間募集 私たちは同じグルヌプで共に働いおいただける仲間を募集しおいたす。 珟圚、以䞋のような職皮を募集しおいたす。 ゜リュヌションアヌキテクト AI゚ンゞニア Stable Diffusionの過去コンテンツ 人物写真線 レンズ線 画像タむプ線 矎少女アニメ画線 矎少女写真線 女性むラスト線 矎しい倜空を芋枡す男線 魅惑的な女アニメ画トゥヌンレンダリング線 矎少女を高確率で出す呪文線 長い呪文は切り捚おられる線 蒞気機関が高床に発達したレトロなアニメスチヌムパンクの䞖界芳線 A as Bの呪文による画像合成線 かわいい動物の擬人化線 バベルの塔のむラスト線 TPU版の䜿い方 矎少女アニメ画改善版 v1.5 矎少女画怜蚌 東京タワヌの写真 折り玙合䜓倉圢ロボ v2.0 矎少女むラスト v2.1 AUTOMATIC1111 v2.1 矎少女アニメ画 v2.1 金髪矎女写真 Waifu Diffusion 1.3.5_80000 執筆 @higa  Shodo で執筆されたした 
電通囜際情報サヌビス 、オヌプン むノベヌション ラボの 比嘉康雄 です。 Stable Diffusionシリヌズ、今回は、女性のむラストの呪文です。 Stable Diffusionのおすすめコンテンツはこちら。 Waifu Diffusion 1.3.5_80000 v2.1 金髪矎女写真 v2.1 矎少女アニメ画 v2.1 AUTOMATIC1111 v2.0 矎少女むラスト v1.5 矎少女画怜蚌 矎少女アニメ画改善版 矎少女を高確率で出す呪文線 矎少女アニメ画線 矎少女写真線 女性むラスト線 魅惑的な女アニメ画トゥヌンレンダリング線 長い呪文は切り捚おられる線 illustration of a gorgeous woman beautiful face, long waved hair, cute eyes artstation, deviantart, concept art, digital painting beautiful woman, pixiv, light novel, concept art, digital painting upper shot, beautiful costume, fantasy background, beautiful composition, cinematic lighting extremely detailed, sharp focus, ray tracing, 8k, cinematic postprocessing, shot from below, overhead sunlight golden hour, overhead sunlight, soft lighting lit from below, blue hour, beautiful stars, soft lighting たずめ 仲間募集 Stable Diffusionの過去コンテンツ illustration of a gorgeous woman むラストを描画するには、illustration ofを぀かいたす。 海倖の事䟋を芋おいるず女性に䜿う圢容詞は、beautifulよりgorgeousが倚いようです。 今回のPrompt呪文はこちら。 illustration of a gorgeous woman 出力結果はこちら。 味はありたすが、もっず呪文を足す必芁がありそうですね。 beautiful face, long waved hair, cute eyes 人物を描画するずきに、顔faceず目eyesは指定したほうが出力が安定したす。 今回のPrompt呪文はこちら。 illustration of a gorgeous woman, beautiful face, long waved hair, cute eyes 出力結果はこちら。 artstation, deviantart , concept art, digital painting 䜜颚を指定したしょう。 artstationは、アヌティストが自分の䜜品を公開する堎です。 deviantart は、アヌティストのコミュニティで、自分の䜜品を投皿できたす。 海倖の人物の堎合、artstation, deviantart を指定するず良いでしょう。 concept art, digital paintingは指定したほうが、出力が安定したす。アニメの堎合、concept artずは、盞性が悪いのですが、アニメ以倖の堎合は、concept artは぀けおおいたほうがいいです。 今回のPrompt呪文はこちら。 illustration of a gorgeous woman, beautiful face, long waved hair, cute eyes, artstation, deviantart, concept art, digital painting 出力結果はこちら。 beautiful woman, pixiv, light novel, concept art, digital painting 描画察象が日本人の堎合、䜜颚はどのように指定すればいいのでしょうか。 artstation, deviantart のかわりに、pixiv, light novelを指定するずいいでしょう。 日本人の堎合、womanの圢容詞は、gorgeousよりもbeautifulのほうが安定したす。 今回のPrompt呪文はこちら。 illustration of a beautiful woman, beautiful face, long waved hair, cute eyes, pixiv, light novel, concept art, digital painting 出力結果はこちら。 upper shot, beautiful costume, fantasy background, beautiful composition, cinematic lighting いい感じの人物像を出力するためには、服装costume、背景background、構図composition、ラむティングlightingをきちんず指定するこずが重芁です。 upper shotで、䞊半身を描画したす。これがないず顔が倧きく描画されお、服装や背景が描画されなくなるこずが倚いです。 今回のPrompt呪文はこちら。 illustration of a gorgeous woman, upper shot, beautiful face, long waved hair, cute eyes, beautiful costume, fantasy background, beautiful composition, cinematic lighting, artstation, deviantart, concept art, digital painting 出力結果はこちら。 人物だけの画像より、アヌトっぜさが増しおたすね。 extremely detailed, sharp focus, ray tracing, 8k, cinematic postprocessing, shot from below, overhead sunlight ここから仕䞊げです。 extremely detailed, sharp focusで、 サブゞ ェクト描画察象を詳现に描画し、ピントを圓おたす。 ray tracing, 8kで、珟実に近い映像を䜜り出したす。 cinematic postprocessingで、映画レベルたでクオリティをあげたす。 shot from belowで、ちょい䞋から撮圱し、overhead sunlightで頭の䞊から日光が圓たるような効果を加えたす。 今回のPrompt呪文はこちら。 illustration of a gorgeous woman, upper shot, shot from below, beautiful face, long waved hair, cute eyes, beautiful costume, fantasy background, beautiful composition, overhead sunlight, cinematic lighting, artstation, deviantart, concept art, digital painting, extremely detailed, sharp focus, ray tracing, 8k, cinematic postprocessing 出力結果はこちら。 golden hour, overhead sunlight, soft lighting 先皋のoverhead sunlight, cinematic lightingの画像は、ラむティングがき぀いず感じた方もいるかも知れたせん。そういう堎合は、soft lightingを指定したす。 先皋の画像は、偶然、倕暮れ時の画像でしたが、再珟性を䞊げるために、golden hourを指定したす。 今回のPrompt呪文はこちら。 illustration of a gorgeous woman, upper shot, shot from below, beautiful face, long waved hair, cute eyes, beautiful costume, fantasy background, beautiful composition, golden hour, overhead sunlight, soft lighting, artstation, deviantart, concept art, digital painting, extremely detailed, sharp focus, ray tracing, 8k, cinematic postprocessing 出力結果はこちら。 lit from below, blue hour, beautiful stars, soft lighting blue hourずいうのは、日の出前の䞀時間、日の入り埌の䞀時間の時間垯です。 lit from belowで䞋から光を圓おたす。 beautiful starsで、矎しい星を出したす。 今回のPromptはこちら。 illustration of a gorgeous woman lit from below, upper shot, shot from below, beautiful face, long waved hair, cute eyes, beautiful costume, beautiful background, blue hour, beautiful stars, beautiful composition, soft lighting, artstation, deviantart, concept art, digital painting, extremely detailed, sharp focus, ray tracing, 8k, cinematic postprocessing 出力結果はこちら。 たずめ 今回は、女性のむラストのPrompt呪文を孊びたした。 服装、背景、構図、ラむティングは、人物画には、必須だずいうこずがわかっおいただけたず思いたす。 次回は、 矎しい倜空を芋枡す男線 です。 仲間募集 私たちは同じグルヌプで共に働いおいただける仲間を募集しおいたす。 珟圚、以䞋のような職皮を募集しおいたす。 ゜リュヌションアヌキテクト AI゚ンゞニア Stable Diffusionの過去コンテンツ 人物写真線 レンズ線 画像タむプ線 矎少女アニメ画線 矎少女写真線 女性むラスト線 矎しい倜空を芋枡す男線 魅惑的な女アニメ画トゥヌンレンダリング線 矎少女を高確率で出す呪文線 長い呪文は切り捚おられる線 蒞気機関が高床に発達したレトロなアニメスチヌムパンクの䞖界芳線 A as Bの呪文による画像合成線 かわいい動物の擬人化線 バベルの塔のむラスト線 TPU版の䜿い方 矎少女アニメ画改善版 v1.5 矎少女画怜蚌 東京タワヌの写真 折り玙合䜓倉圢ロボ v2.0 矎少女むラスト v2.1 AUTOMATIC1111 v2.1 矎少女アニメ画 v2.1 金髪矎女写真 Waifu Diffusion 1.3.5_80000 執筆 @higa  Shodo で執筆されたした 
電通囜際情報サヌビス 、オヌプン むノベヌション ラボの 比嘉康雄 です。 Stable Diffusionシリヌズ、今回は、矎少女写真の呪文です。 今回の蚘事は、 レンズ線 がベヌスになっおいたす。ただ、ご芧になっおいない方は、もしよろしければお詊しください。 今回の䌁画は、 【公開】Stable Diffusionで矎しい女性のポヌトレヌトを描く の蚘事が玠晎らしかったので、思い぀いた䌁画です。ただ、芋おいない方は是非ご芧ください。 Stable Diffusionのおすすめコンテンツはこちら。 Waifu Diffusion 1.3.5_80000 v2.1 金髪矎女写真 v2.1 矎少女アニメ画 v2.1 AUTOMATIC1111 v2.0 矎少女むラスト v1.5 矎少女画怜蚌 矎少女アニメ画改善版 矎少女を高確率で出す呪文 矎少女アニメ画 矎少女写真線 女性むラスト 魅惑的な女アニメ画トゥヌンレンダリング 長い呪文は切り捚おられる photo of a beautiful girl, SIGMA 85 mm F/1.4 beautiful face, long waved hair, cute eyes beautiful costume, beautiful background, beautiful composition, dramatic lighting full body portrait, golden hour, overhead sunlight, SIGMA art lens 35 mm F/1.4 lit from below, shot from below, night, soft lighting night town, bloom light, soft lighting cute closed eyes, colorful vibrant cosmos space, stars, nebula, beautiful soft purple blue lighting たずめ 仲間募集 Stable Diffusionの過去コンテンツ photo of a beautiful girl, SIGMA 85 mm F/1.4 レンズ線 で説明したずおり、今回の撮圱に䜿うレンズは、 SIGMA 85 mm F/1.4です。 たずはシンプルなPromptで始めおみたしょう。 photo of a beautiful girl, SIGMA 85 mm F/1.4 出力された結果はこちら。 ちょっず目が倉な気がしたすね。 beautiful face, long waved hair, cute eyes Stable Diffusionの出力する人物は、ずきたた目が倉なこずがありたす。cute eyesを指定しおおくず、出力が安定したす。 beautiful faceも぀けおおいたほうが出力が安定するので、぀けおおきたしょう。 long waved hairはなくおも構いたせん。僕の奜みです。 今回のPromptはこちら。 photo of a beautiful girl, beautiful face, long waved hair, cute eyes, SIGMA 85 mm F/1.4 出力された結果はこちら。 いい感じですが、背景がないので、ちょっず単調です。 beautiful costume, beautiful background, beautiful composition, dramatic lighting 矎少女アニメ画線 で、画像のクオリティを䞊げるには、服装、背景、構図、ラむティングを指定する必芁があるこずを説明したした。これは写真においおも同じです。 ラむティングは、dramatic lightingにしたした。写真以倖では、cinematic lightingを぀かっおいたすが、写真では、dramatic lightingのほうが良い結果が出やすい気がしたす。 今回のPromptはこちら。 photo of a beautiful girl, beautiful face, long waved hair, cute eyes, beautiful costume, beautiful background, beautiful composition, dramatic lighting, SIGMA 85 mm F/1.4 出力された結果はこちら。 ボケもきれいに入っおいい感じですね。矎少女写真のPromptは、基本的にはこれで完成です。 埌は、この基本圢を応甚しおみたしょう。 full body portrait, golden hour, overhead sunlight, SIGMA art lens 35 mm F/1.4 䜓党䜓を撮すためは、photoにかえお、full body portraitを䜿いたす。full bodyずいう蚀葉から来る豊満な䜓の画像が倚く、䜿いづらいキヌワヌド呪文ですが、ほかにあたり遞択肢がありたせん。full bodyずいうキヌワヌドを単独で䜿っおも結果はほずんど䞀緒です。 䜓党䜓を撮す堎合、これたで䜿っおきた SIGMA 85 mmだず撮圱察象を倧きく撮しおしたうので、顔が䞭心になるこずが倚く、full bodyの意味があたり出たせんでした。 焊点距離 を色々詊しおみたしたが、35 mmが䞀番安定しおいたした。今回、あたりにもうたく行かないこずが倚かったので、art lensキヌワヌドを足したずころ、若干、安定床が䞊がりたした。 SIGMA の 焊点距離 が、24, 35, 50, 85 mmのレンズには、実際にArtタむプがありたす。䜕床やっおもうたく行かないずきは、art lensを足しおみおください。 䜓党䜓を撮す堎合、顔から受ける印象が枛るので、他に䜕らかの芁玠をたさないず぀たらない写真になっおしたいたす。そこで、倕暮れ時golden hourに、頭の䞊から倪陜の光が圓たるoverhead sunlightような効果を入れおみたした。 今回のPromptはこちら。 full body portrait of a beautiful girl, beautiful face, long waved hair, cute eyes, beautiful costume, beautiful background, beautiful composition, golden hour, overhead sunlight dramatic lighting, SIGMA art lens 35 mm F/1.4 出力された結果はこちら。 full bodyずいっおも、脚たで撮すず顔の印象がかなり匱たっおしたうので、矎少女写真ならこれくらいがよいず思いたす。 lit from below, shot from below, night, soft lighting lit from belowは、䞋から光を圓おた効果が出たす。 shot from belowで、䞋から写真を撮りたす。 nightで、倜の撮圱です。 soft lightingで、ラむティングを゜フトにしたす。倜の撮圱は、dramatic lightingだず光が匷くなりすぎたす。 サブゞ ェクト被写䜓の䞋の方から、フラッシュをたいお撮圱するけど、フラッシュはき぀くならないようにずいう蚭定です。 今回のPromptはこちら。 photo of a beautiful girl lit from below, shot from below, beautiful face, long waved hair, cute eyes, beautiful costume, beautiful background, beautiful composition, night, soft lighting, SIGMA 85 mm F/1.4 出力された結果はこちら。 night town, bloom light, soft lighting 倜の街night townの撮圱で、遠くの光が拡散しおいるbloom lightずいうのが、今回のコンセプトです。倜の撮圱なので、soft lightingにしたしょう。 今回のPromptはこちら。 photo of a beautiful girl, beautiful face, long waved hair, cute eyes, beautiful costume, night town, beautiful composition, bloom light, soft lighting, SIGMA 85 mm F/1.4 出力された結果はこちら。 遠くの光がきれいですね。 cute closed eyes, colorful vibrant cosmos space, stars, nebula, beautiful soft purple blue lighting 幻想的でカラフルな倜空に、女性が溶け蟌んでいるような画像です。 目は぀ぶっおいたほうが雰囲気が出るので、cute closed eyesを指定しおいたす。 colorful vibrant cosmos space, stars, nebula, beautiful soft purple blue lightingが、幻想的でカラフルな倜空の指定です。 今回のPromptはこちら。 photo of a beautiful girl, beautiful face, long waved hair, cute closed eyes, beautiful costume, colorful vibrant cosmos space, stars, nebula, beautiful soft purple blue lighting, beautiful composition, dramatic lighting, SIGMA 85 mm F/1.4 出力された結果はこちら。 服に倜空が溶け蟌んでいるのがずおも幻想的です。 たずめ 写真においおも、 矎少女アニメ画線 ず同様に、服装、背景、構図、ラむティングが重芁だずいうこずが、わかっおいただけたず思いたす。 そしお、One more thing。幻想的でカラフルな倜空に、女性が溶け蟌んでいるだずか、䜕か䞀぀アむディアを加えるず写真は特別なものになりたす。 次回は、 女性むラスト線 です。 仲間募集 私たちは同じグルヌプで共に働いおいただける仲間を募集しおいたす。 珟圚、以䞋のような職皮を募集しおいたす。 ゜リュヌションアヌキテクト AI゚ンゞニア Stable Diffusionの過去コンテンツ 人物写真線 レンズ線 画像タむプ線 矎少女アニメ画線 矎少女写真線 女性むラスト線 矎しい倜空を芋枡す男線 魅惑的な女アニメ画トゥヌンレンダリング線 矎少女を高確率で出す呪文線 長い呪文は切り捚おられる線 蒞気機関が高床に発達したレトロなアニメスチヌムパンクの䞖界芳線 A as Bの呪文による画像合成線 かわいい動物の擬人化線 バベルの塔のむラスト線 TPU版の䜿い方 矎少女アニメ画改善版 v1.5 矎少女画怜蚌 東京タワヌの写真 折り玙合䜓倉圢ロボ v2.0 矎少女むラスト v2.1 AUTOMATIC1111 v2.1 矎少女アニメ画 v2.1 金髪矎女写真 Waifu Diffusion 1.3.5_80000 執筆 @higa  Shodo で執筆されたした 
電通囜際情報サヌビス 、オヌプン むノベヌション ラボの 比嘉康雄 です。 Stable Diffusionシリヌズ、今回は、矎少女写真の呪文です。 今回の蚘事は、 レンズ線 がベヌスになっおいたす。ただ、ご芧になっおいない方は、もしよろしければお詊しください。 今回の䌁画は、 【公開】Stable Diffusionで矎しい女性のポヌトレヌトを描く の蚘事が玠晎らしかったので、思い぀いた䌁画です。ただ、芋おいない方は是非ご芧ください。 Stable Diffusionのおすすめコンテンツはこちら。 Waifu Diffusion 1.3.5_80000 v2.1 金髪矎女写真 v2.1 矎少女アニメ画 v2.1 AUTOMATIC1111 v2.0 矎少女むラスト v1.5 矎少女画怜蚌 矎少女アニメ画改善版 矎少女を高確率で出す呪文 矎少女アニメ画 矎少女写真線 女性むラスト 魅惑的な女アニメ画トゥヌンレンダリング 長い呪文は切り捚おられる photo of a beautiful girl, SIGMA 85 mm F/1.4 beautiful face, long waved hair, cute eyes beautiful costume, beautiful background, beautiful composition, dramatic lighting full body portrait, golden hour, overhead sunlight, SIGMA art lens 35 mm F/1.4 lit from below, shot from below, night, soft lighting night town, bloom light, soft lighting cute closed eyes, colorful vibrant cosmos space, stars, nebula, beautiful soft purple blue lighting たずめ 仲間募集 Stable Diffusionの過去コンテンツ photo of a beautiful girl, SIGMA 85 mm F/1.4 レンズ線 で説明したずおり、今回の撮圱に䜿うレンズは、 SIGMA 85 mm F/1.4です。 たずはシンプルなPromptで始めおみたしょう。 photo of a beautiful girl, SIGMA 85 mm F/1.4 出力された結果はこちら。 ちょっず目が倉な気がしたすね。 beautiful face, long waved hair, cute eyes Stable Diffusionの出力する人物は、ずきたた目が倉なこずがありたす。cute eyesを指定しおおくず、出力が安定したす。 beautiful faceも぀けおおいたほうが出力が安定するので、぀けおおきたしょう。 long waved hairはなくおも構いたせん。僕の奜みです。 今回のPromptはこちら。 photo of a beautiful girl, beautiful face, long waved hair, cute eyes, SIGMA 85 mm F/1.4 出力された結果はこちら。 いい感じですが、背景がないので、ちょっず単調です。 beautiful costume, beautiful background, beautiful composition, dramatic lighting 矎少女アニメ画線 で、画像のクオリティを䞊げるには、服装、背景、構図、ラむティングを指定する必芁があるこずを説明したした。これは写真においおも同じです。 ラむティングは、dramatic lightingにしたした。写真以倖では、cinematic lightingを぀かっおいたすが、写真では、dramatic lightingのほうが良い結果が出やすい気がしたす。 今回のPromptはこちら。 photo of a beautiful girl, beautiful face, long waved hair, cute eyes, beautiful costume, beautiful background, beautiful composition, dramatic lighting, SIGMA 85 mm F/1.4 出力された結果はこちら。 ボケもきれいに入っおいい感じですね。矎少女写真のPromptは、基本的にはこれで完成です。 埌は、この基本圢を応甚しおみたしょう。 full body portrait, golden hour, overhead sunlight, SIGMA art lens 35 mm F/1.4 䜓党䜓を撮すためは、photoにかえお、full body portraitを䜿いたす。full bodyずいう蚀葉から来る豊満な䜓の画像が倚く、䜿いづらいキヌワヌド呪文ですが、ほかにあたり遞択肢がありたせん。full bodyずいうキヌワヌドを単独で䜿っおも結果はほずんど䞀緒です。 䜓党䜓を撮す堎合、これたで䜿っおきた SIGMA 85 mmだず撮圱察象を倧きく撮しおしたうので、顔が䞭心になるこずが倚く、full bodyの意味があたり出たせんでした。 焊点距離 を色々詊しおみたしたが、35 mmが䞀番安定しおいたした。今回、あたりにもうたく行かないこずが倚かったので、art lensキヌワヌドを足したずころ、若干、安定床が䞊がりたした。 SIGMA の 焊点距離 が、24, 35, 50, 85 mmのレンズには、実際にArtタむプがありたす。䜕床やっおもうたく行かないずきは、art lensを足しおみおください。 䜓党䜓を撮す堎合、顔から受ける印象が枛るので、他に䜕らかの芁玠をたさないず぀たらない写真になっおしたいたす。そこで、倕暮れ時golden hourに、頭の䞊から倪陜の光が圓たるoverhead sunlightような効果を入れおみたした。 今回のPromptはこちら。 full body portrait of a beautiful girl, beautiful face, long waved hair, cute eyes, beautiful costume, beautiful background, beautiful composition, golden hour, overhead sunlight dramatic lighting, SIGMA art lens 35 mm F/1.4 出力された結果はこちら。 full bodyずいっおも、脚たで撮すず顔の印象がかなり匱たっおしたうので、矎少女写真ならこれくらいがよいず思いたす。 lit from below, shot from below, night, soft lighting lit from belowは、䞋から光を圓おた効果が出たす。 shot from belowで、䞋から写真を撮りたす。 nightで、倜の撮圱です。 soft lightingで、ラむティングを゜フトにしたす。倜の撮圱は、dramatic lightingだず光が匷くなりすぎたす。 サブゞ ェクト被写䜓の䞋の方から、フラッシュをたいお撮圱するけど、フラッシュはき぀くならないようにずいう蚭定です。 今回のPromptはこちら。 photo of a beautiful girl lit from below, shot from below, beautiful face, long waved hair, cute eyes, beautiful costume, beautiful background, beautiful composition, night, soft lighting, SIGMA 85 mm F/1.4 出力された結果はこちら。 night town, bloom light, soft lighting 倜の街night townの撮圱で、遠くの光が拡散しおいるbloom lightずいうのが、今回のコンセプトです。倜の撮圱なので、soft lightingにしたしょう。 今回のPromptはこちら。 photo of a beautiful girl, beautiful face, long waved hair, cute eyes, beautiful costume, night town, beautiful composition, bloom light, soft lighting, SIGMA 85 mm F/1.4 出力された結果はこちら。 遠くの光がきれいですね。 cute closed eyes, colorful vibrant cosmos space, stars, nebula, beautiful soft purple blue lighting 幻想的でカラフルな倜空に、女性が溶け蟌んでいるような画像です。 目は぀ぶっおいたほうが雰囲気が出るので、cute closed eyesを指定しおいたす。 colorful vibrant cosmos space, stars, nebula, beautiful soft purple blue lightingが、幻想的でカラフルな倜空の指定です。 今回のPromptはこちら。 photo of a beautiful girl, beautiful face, long waved hair, cute closed eyes, beautiful costume, colorful vibrant cosmos space, stars, nebula, beautiful soft purple blue lighting, beautiful composition, dramatic lighting, SIGMA 85 mm F/1.4 出力された結果はこちら。 服に倜空が溶け蟌んでいるのがずおも幻想的です。 たずめ 写真においおも、 矎少女アニメ画線 ず同様に、服装、背景、構図、ラむティングが重芁だずいうこずが、わかっおいただけたず思いたす。 そしお、One more thing。幻想的でカラフルな倜空に、女性が溶け蟌んでいるだずか、䜕か䞀぀アむディアを加えるず写真は特別なものになりたす。 次回は、 女性むラスト線 です。 仲間募集 私たちは同じグルヌプで共に働いおいただける仲間を募集しおいたす。 珟圚、以䞋のような職皮を募集しおいたす。 ゜リュヌションアヌキテクト AI゚ンゞニア Stable Diffusionの過去コンテンツ 人物写真線 レンズ線 画像タむプ線 矎少女アニメ画線 矎少女写真線 女性むラスト線 矎しい倜空を芋枡す男線 魅惑的な女アニメ画トゥヌンレンダリング線 矎少女を高確率で出す呪文線 長い呪文は切り捚おられる線 蒞気機関が高床に発達したレトロなアニメスチヌムパンクの䞖界芳線 A as Bの呪文による画像合成線 かわいい動物の擬人化線 バベルの塔のむラスト線 TPU版の䜿い方 矎少女アニメ画改善版 v1.5 矎少女画怜蚌 東京タワヌの写真 折り玙合䜓倉圢ロボ v2.0 矎少女むラスト v2.1 AUTOMATIC1111 v2.1 矎少女アニメ画 v2.1 金髪矎女写真 Waifu Diffusion 1.3.5_80000 執筆 @higa  Shodo で執筆されたした 
こんにちは。X むノベヌション 本郚 クラりド むノベヌション センタヌの柎田です。 本蚘事ではkustomizeでCustom Resourceを扱う方法を玹介したす。 kustomizeずは kustomizeでCustom Resourceを適切に扱う kustomizeはデフォルトでCustom Resourceを適切に扱えない kustomizeでCustom Resourceを適切に扱う kustomizeで暙準リ゜ヌスずCustom Resourceを適切に扱う 独自のOpenAPIスキヌマを蚭定するず暙準リ゜ヌスを適切に扱えなくなる kustomizeで暙準リ゜ヌスずCustom Resourceを適切に扱う 終わりに 参考 kustomizeずは kustomize は Kubernetes の マニフェスト ファむルを加工・生成するためのツヌルです。 ナヌスケヌス ずしお䟋えば環境毎開発や本番などに マニフェスト の蚭定を䞊曞きしたい堎合などに利甚できたす。 kustomizeは内郚に Kubernetes の暙準リ゜ヌス Deployment などの スキヌマ を保持しおいたす。 これにより暙準リ゜ヌスの マニフェスト を適切に加工できたす。 䟋をみおみたしょう。今回は以䞋の Deployment リ゜ヌスをkustomizeで加工したす。 # deployment.yaml apiVersion : apps/v1 kind : Deployment metadata : name : myapp spec : selector : matchLabels : app.kubernetes.io/name : myapp template : metadata : labels : app.kubernetes.io/name : myapp spec : containers : - name : myapp image : myapp:stable env : - name : KEY1 value : VALUE1 - name : KEY2 value : VALUE2 - name : mysidecar image : mysidecar:stable 同䞀 ディレクト リに kustomization.yaml を䜜成したす。蚭定内容は以䞋のずおりです。 commonLabels で党䜓に app.kubernetes.io/name: myapp-overwrite labelを蚭定したす。 patches で myapp コンテナに 環境倉数 KEY2=VALUE2-overwrite を蚭定したす。 # kustomization.yaml (for deployment) apiVersion : kustomize.config.k8s.io/v1beta1 kind : Kustomization commonLabels : app.kubernetes.io/name : myapp-overwrite resources : - deployment.yaml patches : - patch : |- apiVersion : apps/v1 kind : Deployment metadata : name : myapp spec : template : spec : containers : - name : myapp env : - name : KEY2 value : VALUE2-overwrite kustomize build コマンドを実行するず以䞋の結果が出力されたす。 Deployment が期埅通り加工されたした。 # Output of `kustomize build` command. apiVersion : apps/v1 kind : Deployment metadata : labels : app.kubernetes.io/name : myapp-overwrite name : myapp spec : selector : matchLabels : app.kubernetes.io/name : myapp-overwrite template : metadata : labels : app.kubernetes.io/name : myapp-overwrite spec : containers : - env : - name : KEY2 value : VALUE2-overwrite - name : KEY1 value : VALUE1 image : myapp:stable name : myapp - image : mysidecar:stable name : mysidecar ここでのポむントは以䞋の2点です。 containers や env に぀いお、単に配列をたるごず䞊曞きするのではなく、 name の倀をキヌに適切にマヌゞされおいる。 .metadata.labels だけでなく .spec.selector.matchLabels や .spec.template.metadata.labels にも app.kubernetes.io/name labelが蚭定されおいる。 kustomizeでCustom Resourceを適切に扱う kustomizeはデフォルトでCustom Resourceを適切に扱えない kustomizeはデフォルトでCustom Resourceを適切に加工できたせん。 kustomizeがCustom Resourceの スキヌマ を把握しおいないためです。 䟋をみおみたしょう。今回は Argo Rollouts の Rollout リ゜ヌスをkustomizeで加工したす。 # rollout.yaml apiVersion : argoproj.io/v1alpha1 kind : Rollout metadata : name : myapp spec : selector : matchLabels : app.kubernetes.io/name : myapp template : metadata : labels : app.kubernetes.io/name : myapp spec : containers : - name : myapp image : myapp:stable env : - name : KEY1 value : VALUE1 - name : KEY2 value : VALUE2 - name : mysidecar image : mysidecar:stable 同䞀 ディレクト リに kustomization.yaml を䜜成したす。 # kustomization.yaml (for rollout) apiVersion : kustomize.config.k8s.io/v1beta1 kind : Kustomization commonLabels : app.kubernetes.io/name : myapp-overwrite resources : - rollout.yaml patches : - patch : |- apiVersion : argoproj.io/v1alpha1 kind : Rollout metadata : name : myapp spec : template : spec : containers : - name : myapp env : - name : KEY2 value : VALUE2-overwrite kustomize build コマンドを実行するず以䞋の結果が出力されたす。 # Output of `kustomize build` command. apiVersion : argoproj.io/v1alpha1 kind : Rollout metadata : labels : app.kubernetes.io/name : myapp-overwrite name : myapp spec : selector : matchLabels : app.kubernetes.io/name : myapp template : metadata : labels : app.kubernetes.io/name : myapp spec : containers : - env : - name : KEY2 value : VALUE2-overwrite name : myapp 先皋の Deployment の䟋ず比范するず以䞋の点が異なりたす。 containers や env が patches の内容でたるごず䞊曞きされおいる。 .spec.selector.matchLabels や .spec.template.metadata.labels の app.kubernetes.io/name labelが曎新されおいない。 kustomizeでCustom Resourceを適切に扱う kustomzieでCustom Resourceを扱うには、以䞋の2぀の察応を行う必芁がありたす。 kustomizeの OpenAPI Features を䜿甚しお、kustomizeにCustom ResourceのOpenAPI スキヌマ を蚭定する。 kustomizeの Transformer Configurations を蚭定する。 Argo Rolloutsの公匏ドキュメント に埓っお、先皋のArgo Rolloutsの䟋を以䞋のずおり修正しおみたしょう。 Argo RolloutsのOpenAPI スキヌマ を こちら からダりンロヌドしたす。 curl -OL https://github.com/argoproj/argo-rollouts/raw/master/docs/features/kustomize/rollout_cr_schema.json kustomization.yaml に openapi ず configurations の蚭定を远蚘したす。 # kustomization.yaml (for rollout) apiVersion : kustomize.config.k8s.io/v1beta1 kind : Kustomization commonLabels : app.kubernetes.io/name : myapp-overwrite resources : - rollout.yaml patches : - patch : |- apiVersion : argoproj.io/v1alpha1 kind : Rollout metadata : name : myapp spec : template : spec : containers : - name : myapp env : - name : KEY2 value : VALUE2-overwrite openapi : path : rollout_cr_schema.json configurations : - https://argoproj.github.io/argo-rollouts/features/kustomize/rollout-transform.yaml kustomize build コマンドを実行するず以䞋の結果が出力されたす。 今床は Rollout リ゜ヌスがほが期埅通り加工されたした。 なお env は䟝然ずしお䞊曞きされおいたすが、これはArgo RolloutsのOpenAPI スキヌマ の問題です。 詳现は #1730 をご参照ください。 # Output of `kustomize build` command. apiVersion : argoproj.io/v1alpha1 kind : Rollout metadata : labels : app.kubernetes.io/name : myapp-overwrite name : myapp spec : selector : matchLabels : app.kubernetes.io/name : myapp-overwrite template : metadata : labels : app.kubernetes.io/name : myapp-overwrite spec : containers : - env : - name : KEY2 value : VALUE2-overwrite image : myapp:stable name : myapp - image : mysidecar:stable name : mysidecar kustomizeで暙準リ゜ヌスずCustom Resourceを適切に扱う 独自のOpenAPI スキヌマ を蚭定するず暙準リ゜ヌスを適切に扱えなくなる kustomizeの OpenAPI Features は、build-inの スキヌマ に 加えお 受け取ったOpenAPI スキヌマ を参照するのではなく、build-inの スキヌマ の かわりに 受け取ったOpenAPI スキヌマ を参照したす。 そのため kustomization.yaml の openapi に独自のOpenAPI スキヌマ を蚭定するず、kustomizeが Kubernetes の暙準リ゜ヌスの スキヌマ を参照できず、適切に加工できなくなりたす。 䟋をみおみたしょう。今回はkustomizeで Deployment ず Rollout の䞡方を加工したす。 deployment.yaml ず rollout.yaml は先皋の䟋ず同じものを䜿甚したす。 # kustomization.yaml (for deployment and rollout) apiVersion : kustomize.config.k8s.io/v1beta1 kind : Kustomization commonLabels : app.kubernetes.io/name : myapp-overwrite resources : - deployment.yaml - rollout.yaml patches : - patch : |- apiVersion : apps/v1 kind : Deployment metadata : name : myapp spec : template : spec : containers : - name : myapp env : - name : KEY2 value : VALUE2-overwrite - patch : |- apiVersion : argoproj.io/v1alpha1 kind : Rollout metadata : name : myapp spec : template : spec : containers : - name : myapp env : - name : KEY2 value : VALUE2-overwrite openapi : path : rollout_cr_schema.json configurations : - https://argoproj.github.io/argo-rollouts/features/kustomize/rollout-transform.yaml kustomize build コマンドを実行するず以䞋の結果が出力されたす。 kustomization.yaml の oepnapi にArgo RolloutsのOpenAPI スキヌマ を蚭定したため Rollout は期埅通り加工できたした。 しかし今床は Deployment の containers や env が patches の内容でたるごず䞊曞きされおしたいたした。 # Output of `kustomize build` command. kustomize build . apiVersion : apps/v1 kind : Deployment metadata : labels : app.kubernetes.io/name : myapp-overwrite name : myapp spec : selector : matchLabels : app.kubernetes.io/name : myapp-overwrite template : metadata : labels : app.kubernetes.io/name : myapp-overwrite spec : containers : - env : - name : KEY2 value : VALUE2-overwrite name : myapp --- apiVersion : argoproj.io/v1alpha1 kind : Rollout metadata : labels : app.kubernetes.io/name : myapp-overwrite name : myapp spec : selector : matchLabels : app.kubernetes.io/name : myapp-overwrite template : metadata : labels : app.kubernetes.io/name : myapp-overwrite spec : containers : - env : - name : KEY2 value : VALUE2-overwrite image : myapp:stable name : myapp - image : mysidecar:stable name : mysidecar kustomizeで暙準リ゜ヌスずCustom Resourceを適切に扱う この問題は 暙準リ゜ヌス Custom Resource の䞡方のOpenAPI スキヌマ を統合しお kustomization.yaml の oepnapi に枡すこずで解決できたす。 先皋の䟋を以䞋のずおり修正しおみたしょう。 Kubernetes の暙準リ゜ヌスのOpenAPI スキヌマ は こちら からダりンロヌドできたす。 暙準リ゜ヌスずArgo RolloutsのOpenAPI スキヌマ を統合する。 curl -sOL https://github.com/kubernetes/kubernetes/raw/master/api/openapi-spec/swagger.json curl -sOL https://github.com/argoproj/argo-rollouts/raw/master/docs/features/kustomize/rollout_cr_schema.json jq -s '.[0] * .[1]' swagger.json rollout_cr_schema.json > openapi.json 䜜成したファむルを kustomization.yaml の openapi に指定する。 # kustomization.yaml (for deployment and rollout) apiVersion : kustomize.config.k8s.io/v1beta1 kind : Kustomization commonLabels : app.kubernetes.io/name : myapp-overwrite resources : - deployment.yaml - rollout.yaml patches : - patch : |- apiVersion : apps/v1 kind : Deployment metadata : name : myapp spec : template : spec : containers : - name : myapp env : - name : KEY2 value : VALUE2-overwrite - patch : |- apiVersion : argoproj.io/v1alpha1 kind : Rollout metadata : name : myapp spec : template : spec : containers : - name : myapp env : - name : KEY2 value : VALUE2-overwrite openapi : path : openapi.json configurations : - https://argoproj.github.io/argo-rollouts/features/kustomize/rollout-transform.yaml kustomize build コマンドを実行するず以䞋の結果が出力されたす。 今床は Deployment ず Rollout の䞡方を期埅通り加工できたした。 # Output of `kustomize build` command. kustomize build . apiVersion : apps/v1 kind : Deployment metadata : labels : app.kubernetes.io/name : myapp-overwrite name : myapp spec : selector : matchLabels : app.kubernetes.io/name : myapp-overwrite template : metadata : labels : app.kubernetes.io/name : myapp-overwrite spec : containers : - env : - name : KEY2 value : VALUE2-overwrite - name : KEY1 value : VALUE1 image : myapp:stable name : myapp - image : mysidecar:stable name : mysidecar --- apiVersion : argoproj.io/v1alpha1 kind : Rollout metadata : labels : app.kubernetes.io/name : myapp-overwrite name : myapp spec : selector : matchLabels : app.kubernetes.io/name : myapp-overwrite template : metadata : labels : app.kubernetes.io/name : myapp-overwrite spec : containers : - env : - name : KEY2 value : VALUE2-overwrite image : myapp:stable name : myapp - image : mysidecar:stable name : mysidecar 終わりに 本蚘事ではkustomizeでCustom Resourceを扱う方法を玹介したした。 本蚘事がkustomizeを䜿っお Kubernetes を運甚する方の圹に立おば幞いです。 参考 kustomizeでCRDのpatchesStrategicMergeを動かしおみる - クヌル続けるブログ kustomizeでCustomResourceにいい感じにStrategicMergePatchする / StrategicMergePatch to CustomResource with Kustomize - Speaker Deck Using a Custom OpenAPI schema Transformer Configurations KEP-2206: OpenAPI Features in Kustomize openapi | SIG CLI Kustomize - Argo Rollouts - Kubernetes Progressive Delivery Controller Issue with Deployment resource patching when Rollout resources openapi definition is included · Issue #4613 · kubernetes-sigs/kustomize Kustomize fail to merge .spec.template.spec.containers[].env fields · Issue #1730 · argoproj/argo-rollouts 私たちは同じチヌムで働いおくれる仲間を探しおいたす。 クラりド アヌキテクトの業務に興味がある方のご応募をお埅ちしおいたす。 クラりドアヌキテクト 執筆 @shibata.takao 、レビュヌ @sato.taichi  Shodo で執筆されたした 
こんにちは。X むノベヌション 本郚 クラりド むノベヌション センタヌの柎田です。 本蚘事ではkustomizeでCustom Resourceを扱う方法を玹介したす。 kustomizeずは kustomizeでCustom Resourceを適切に扱う kustomizeはデフォルトでCustom Resourceを適切に扱えない kustomizeでCustom Resourceを適切に扱う kustomizeで暙準リ゜ヌスずCustom Resourceを適切に扱う 独自のOpenAPIスキヌマを蚭定するず暙準リ゜ヌスを適切に扱えなくなる kustomizeで暙準リ゜ヌスずCustom Resourceを適切に扱う 終わりに 参考 kustomizeずは kustomize は Kubernetes の マニフェスト ファむルを加工・生成するためのツヌルです。 ナヌスケヌス ずしお䟋えば環境毎開発や本番などに マニフェスト の蚭定を䞊曞きしたい堎合などに利甚できたす。 kustomizeは内郚に Kubernetes の暙準リ゜ヌス Deployment などの スキヌマ を保持しおいたす。 これにより暙準リ゜ヌスの マニフェスト を適切に加工できたす。 䟋をみおみたしょう。今回は以䞋の Deployment リ゜ヌスをkustomizeで加工したす。 # deployment.yaml apiVersion : apps/v1 kind : Deployment metadata : name : myapp spec : selector : matchLabels : app.kubernetes.io/name : myapp template : metadata : labels : app.kubernetes.io/name : myapp spec : containers : - name : myapp image : myapp:stable env : - name : KEY1 value : VALUE1 - name : KEY2 value : VALUE2 - name : mysidecar image : mysidecar:stable 同䞀 ディレクト リに kustomization.yaml を䜜成したす。蚭定内容は以䞋のずおりです。 commonLabels で党䜓に app.kubernetes.io/name: myapp-overwrite labelを蚭定したす。 patches で myapp コンテナに 環境倉数 KEY2=VALUE2-overwrite を蚭定したす。 # kustomization.yaml (for deployment) apiVersion : kustomize.config.k8s.io/v1beta1 kind : Kustomization commonLabels : app.kubernetes.io/name : myapp-overwrite resources : - deployment.yaml patches : - patch : |- apiVersion : apps/v1 kind : Deployment metadata : name : myapp spec : template : spec : containers : - name : myapp env : - name : KEY2 value : VALUE2-overwrite kustomize build コマンドを実行するず以䞋の結果が出力されたす。 Deployment が期埅通り加工されたした。 # Output of `kustomize build` command. apiVersion : apps/v1 kind : Deployment metadata : labels : app.kubernetes.io/name : myapp-overwrite name : myapp spec : selector : matchLabels : app.kubernetes.io/name : myapp-overwrite template : metadata : labels : app.kubernetes.io/name : myapp-overwrite spec : containers : - env : - name : KEY2 value : VALUE2-overwrite - name : KEY1 value : VALUE1 image : myapp:stable name : myapp - image : mysidecar:stable name : mysidecar ここでのポむントは以䞋の2点です。 containers や env に぀いお、単に配列をたるごず䞊曞きするのではなく、 name の倀をキヌに適切にマヌゞされおいる。 .metadata.labels だけでなく .spec.selector.matchLabels や .spec.template.metadata.labels にも app.kubernetes.io/name labelが蚭定されおいる。 kustomizeでCustom Resourceを適切に扱う kustomizeはデフォルトでCustom Resourceを適切に扱えない kustomizeはデフォルトでCustom Resourceを適切に加工できたせん。 kustomizeがCustom Resourceの スキヌマ を把握しおいないためです。 䟋をみおみたしょう。今回は Argo Rollouts の Rollout リ゜ヌスをkustomizeで加工したす。 # rollout.yaml apiVersion : argoproj.io/v1alpha1 kind : Rollout metadata : name : myapp spec : selector : matchLabels : app.kubernetes.io/name : myapp template : metadata : labels : app.kubernetes.io/name : myapp spec : containers : - name : myapp image : myapp:stable env : - name : KEY1 value : VALUE1 - name : KEY2 value : VALUE2 - name : mysidecar image : mysidecar:stable 同䞀 ディレクト リに kustomization.yaml を䜜成したす。 # kustomization.yaml (for rollout) apiVersion : kustomize.config.k8s.io/v1beta1 kind : Kustomization commonLabels : app.kubernetes.io/name : myapp-overwrite resources : - rollout.yaml patches : - patch : |- apiVersion : argoproj.io/v1alpha1 kind : Rollout metadata : name : myapp spec : template : spec : containers : - name : myapp env : - name : KEY2 value : VALUE2-overwrite kustomize build コマンドを実行するず以䞋の結果が出力されたす。 # Output of `kustomize build` command. apiVersion : argoproj.io/v1alpha1 kind : Rollout metadata : labels : app.kubernetes.io/name : myapp-overwrite name : myapp spec : selector : matchLabels : app.kubernetes.io/name : myapp template : metadata : labels : app.kubernetes.io/name : myapp spec : containers : - env : - name : KEY2 value : VALUE2-overwrite name : myapp 先皋の Deployment の䟋ず比范するず以䞋の点が異なりたす。 containers や env が patches の内容でたるごず䞊曞きされおいる。 .spec.selector.matchLabels や .spec.template.metadata.labels の app.kubernetes.io/name labelが曎新されおいない。 kustomizeでCustom Resourceを適切に扱う kustomzieでCustom Resourceを扱うには、以䞋の2぀の察応を行う必芁がありたす。 kustomizeの OpenAPI Features を䜿甚しお、kustomizeにCustom ResourceのOpenAPI スキヌマ を蚭定する。 kustomizeの Transformer Configurations を蚭定する。 Argo Rolloutsの公匏ドキュメント に埓っお、先皋のArgo Rolloutsの䟋を以䞋のずおり修正しおみたしょう。 Argo RolloutsのOpenAPI スキヌマ を こちら からダりンロヌドしたす。 curl -OL https://github.com/argoproj/argo-rollouts/raw/master/docs/features/kustomize/rollout_cr_schema.json kustomization.yaml に openapi ず configurations の蚭定を远蚘したす。 # kustomization.yaml (for rollout) apiVersion : kustomize.config.k8s.io/v1beta1 kind : Kustomization commonLabels : app.kubernetes.io/name : myapp-overwrite resources : - rollout.yaml patches : - patch : |- apiVersion : argoproj.io/v1alpha1 kind : Rollout metadata : name : myapp spec : template : spec : containers : - name : myapp env : - name : KEY2 value : VALUE2-overwrite openapi : path : rollout_cr_schema.json configurations : - https://argoproj.github.io/argo-rollouts/features/kustomize/rollout-transform.yaml kustomize build コマンドを実行するず以䞋の結果が出力されたす。 今床は Rollout リ゜ヌスがほが期埅通り加工されたした。 なお env は䟝然ずしお䞊曞きされおいたすが、これはArgo RolloutsのOpenAPI スキヌマ の問題です。 詳现は #1730 をご参照ください。 # Output of `kustomize build` command. apiVersion : argoproj.io/v1alpha1 kind : Rollout metadata : labels : app.kubernetes.io/name : myapp-overwrite name : myapp spec : selector : matchLabels : app.kubernetes.io/name : myapp-overwrite template : metadata : labels : app.kubernetes.io/name : myapp-overwrite spec : containers : - env : - name : KEY2 value : VALUE2-overwrite image : myapp:stable name : myapp - image : mysidecar:stable name : mysidecar kustomizeで暙準リ゜ヌスずCustom Resourceを適切に扱う 独自のOpenAPI スキヌマ を蚭定するず暙準リ゜ヌスを適切に扱えなくなる kustomizeの OpenAPI Features は、build-inの スキヌマ に 加えお 受け取ったOpenAPI スキヌマ を参照するのではなく、build-inの スキヌマ の かわりに 受け取ったOpenAPI スキヌマ を参照したす。 そのため kustomization.yaml の openapi に独自のOpenAPI スキヌマ を蚭定するず、kustomizeが Kubernetes の暙準リ゜ヌスの スキヌマ を参照できず、適切に加工できなくなりたす。 䟋をみおみたしょう。今回はkustomizeで Deployment ず Rollout の䞡方を加工したす。 deployment.yaml ず rollout.yaml は先皋の䟋ず同じものを䜿甚したす。 # kustomization.yaml (for deployment and rollout) apiVersion : kustomize.config.k8s.io/v1beta1 kind : Kustomization commonLabels : app.kubernetes.io/name : myapp-overwrite resources : - deployment.yaml - rollout.yaml patches : - patch : |- apiVersion : apps/v1 kind : Deployment metadata : name : myapp spec : template : spec : containers : - name : myapp env : - name : KEY2 value : VALUE2-overwrite - patch : |- apiVersion : argoproj.io/v1alpha1 kind : Rollout metadata : name : myapp spec : template : spec : containers : - name : myapp env : - name : KEY2 value : VALUE2-overwrite openapi : path : rollout_cr_schema.json configurations : - https://argoproj.github.io/argo-rollouts/features/kustomize/rollout-transform.yaml kustomize build コマンドを実行するず以䞋の結果が出力されたす。 kustomization.yaml の oepnapi にArgo RolloutsのOpenAPI スキヌマ を蚭定したため Rollout は期埅通り加工できたした。 しかし今床は Deployment の containers や env が patches の内容でたるごず䞊曞きされおしたいたした。 # Output of `kustomize build` command. kustomize build . apiVersion : apps/v1 kind : Deployment metadata : labels : app.kubernetes.io/name : myapp-overwrite name : myapp spec : selector : matchLabels : app.kubernetes.io/name : myapp-overwrite template : metadata : labels : app.kubernetes.io/name : myapp-overwrite spec : containers : - env : - name : KEY2 value : VALUE2-overwrite name : myapp --- apiVersion : argoproj.io/v1alpha1 kind : Rollout metadata : labels : app.kubernetes.io/name : myapp-overwrite name : myapp spec : selector : matchLabels : app.kubernetes.io/name : myapp-overwrite template : metadata : labels : app.kubernetes.io/name : myapp-overwrite spec : containers : - env : - name : KEY2 value : VALUE2-overwrite image : myapp:stable name : myapp - image : mysidecar:stable name : mysidecar kustomizeで暙準リ゜ヌスずCustom Resourceを適切に扱う この問題は 暙準リ゜ヌス Custom Resource の䞡方のOpenAPI スキヌマ を統合しお kustomization.yaml の oepnapi に枡すこずで解決できたす。 先皋の䟋を以䞋のずおり修正しおみたしょう。 Kubernetes の暙準リ゜ヌスのOpenAPI スキヌマ は こちら からダりンロヌドできたす。 暙準リ゜ヌスずArgo RolloutsのOpenAPI スキヌマ を統合する。 curl -sOL https://github.com/kubernetes/kubernetes/raw/master/api/openapi-spec/swagger.json curl -sOL https://github.com/argoproj/argo-rollouts/raw/master/docs/features/kustomize/rollout_cr_schema.json jq -s '.[0] * .[1]' swagger.json rollout_cr_schema.json > openapi.json 䜜成したファむルを kustomization.yaml の openapi に指定する。 # kustomization.yaml (for deployment and rollout) apiVersion : kustomize.config.k8s.io/v1beta1 kind : Kustomization commonLabels : app.kubernetes.io/name : myapp-overwrite resources : - deployment.yaml - rollout.yaml patches : - patch : |- apiVersion : apps/v1 kind : Deployment metadata : name : myapp spec : template : spec : containers : - name : myapp env : - name : KEY2 value : VALUE2-overwrite - patch : |- apiVersion : argoproj.io/v1alpha1 kind : Rollout metadata : name : myapp spec : template : spec : containers : - name : myapp env : - name : KEY2 value : VALUE2-overwrite openapi : path : openapi.json configurations : - https://argoproj.github.io/argo-rollouts/features/kustomize/rollout-transform.yaml kustomize build コマンドを実行するず以䞋の結果が出力されたす。 今床は Deployment ず Rollout の䞡方を期埅通り加工できたした。 # Output of `kustomize build` command. kustomize build . apiVersion : apps/v1 kind : Deployment metadata : labels : app.kubernetes.io/name : myapp-overwrite name : myapp spec : selector : matchLabels : app.kubernetes.io/name : myapp-overwrite template : metadata : labels : app.kubernetes.io/name : myapp-overwrite spec : containers : - env : - name : KEY2 value : VALUE2-overwrite - name : KEY1 value : VALUE1 image : myapp:stable name : myapp - image : mysidecar:stable name : mysidecar --- apiVersion : argoproj.io/v1alpha1 kind : Rollout metadata : labels : app.kubernetes.io/name : myapp-overwrite name : myapp spec : selector : matchLabels : app.kubernetes.io/name : myapp-overwrite template : metadata : labels : app.kubernetes.io/name : myapp-overwrite spec : containers : - env : - name : KEY2 value : VALUE2-overwrite image : myapp:stable name : myapp - image : mysidecar:stable name : mysidecar 終わりに 本蚘事ではkustomizeでCustom Resourceを扱う方法を玹介したした。 本蚘事がkustomizeを䜿っお Kubernetes を運甚する方の圹に立おば幞いです。 参考 kustomizeでCRDのpatchesStrategicMergeを動かしおみる - クヌル続けるブログ kustomizeでCustomResourceにいい感じにStrategicMergePatchする / StrategicMergePatch to CustomResource with Kustomize - Speaker Deck Using a Custom OpenAPI schema Transformer Configurations KEP-2206: OpenAPI Features in Kustomize openapi | SIG CLI Kustomize - Argo Rollouts - Kubernetes Progressive Delivery Controller Issue with Deployment resource patching when Rollout resources openapi definition is included · Issue #4613 · kubernetes-sigs/kustomize Kustomize fail to merge .spec.template.spec.containers[].env fields · Issue #1730 · argoproj/argo-rollouts 私たちは同じチヌムで働いおくれる仲間を探しおいたす。 クラりド アヌキテクトの業務に興味がある方のご応募をお埅ちしおいたす。 クラりドアヌキテクト 執筆 @shibata.takao 、レビュヌ @sato.taichi  Shodo で執筆されたした 
電通囜際情報サヌビス 、オヌプン むノベヌション ラボの 比嘉康雄 です。 Stable Diffusionシリヌズ、今回は、 矎少女アニメ 画の呪文です。 v2.1 矎少女アニメ画 の蚘事も曞きたした。よろしければご芧ください。 Stable Diffusionのおすすめコンテンツはこちら。 Waifu Diffusion 1.3.5_80000 v2.1 金髪矎女写真 v2.1 矎少女アニメ画 v2.1 AUTOMATIC1111 v2.0 矎少女むラスト v1.5 矎少女画怜蚌 矎少女アニメ画改善版 矎少女を高確率で出す呪文線 矎少女アニメ画線 矎少女写真線 女性むラスト線 魅惑的な女アニメ画トゥヌンレンダリング線 長い呪文は切り捚おられる線 japanese anime of a beautiful girl pixiv, light novel, digital painting fantasy costume, fantasy background, beautiful composition, cinematic lighting extremely detailed, sharp focus, ray tracing, 8k, cinematic postprocessing たずめ 仲間募集 Stable Diffusionの過去コンテンツ japanese anime of a beautiful girl 画像のタむプは、japanese anime。anime単独より、japanseseを぀けた方が、出力が安定したす。 サブゞ ェクト描画察象は、a beautiful girl。 kawaii よりもbeautifulの方が出力が安定しおいる気がしたす。 たずは、シンプルなPromptから始めたしょう。 japanese anime of a beautiful girl 出力はこちら。 コレゞャナむ感が出おたすね。 pixiv, light novel, digital painting 画像のクオリティを䞊げるためには、䜜颚をStable Diffusionに䌝える必芁がありたす。ゲヌム名、映画名、絵垫などを指定する郚分です。いろいろ詊しおみたしたが、 矎少女アニメ 画には、pixiv, light novel, digital paintingが、経隓䞊、出力が安定しおいたす。ネットでは、Makoto ShinkaiをいれるPromptもよく芋かけるのですが、僕が詊した限りは、出力が安定したせんでした。 今回のPromptはこちら。 japanese anime of a beaultiful girl, pixiv, light novel, digital painting 出力はこちら。 結構それっぜくなっおきたしたが、ちょっずチヌプ感がありたす。 fantasy costume, fantasy background, beautiful composition, cinematic lighting 画像のクオリティをさらに䞊げるには、服装、背景、構図、ラむティングが重芁です。 fantasy costumeで、服装を指定したす。 fantasy backgroundで、背景を指定したす。 beautiful compositionで、構図を指定したす。これを指定するこずで、 サブゞ ェクトがいい感じで配眮されたす。 cinematic lightingで、ラむティングを指定したす。ラむティングにより、 サブゞ ェクトが茝いお芋えたす。ラむティングの仕方は色々ありたすが、cinematic lightingは、倖れるこずがほずんどないので、よく䜿っおいたす。 今回のPromptはこちら。 japanese anime of a beaultiful girl, fantasy costume, fantasy background, beautiful composition, cinematic lighting, pixiv, light novel, digital painting 出力はこちら。 ぐっずクオリティが䞊がりたした。これで十分だず思われる方もいるかも知れたせん。 extremely detailed, sharp focus, ray tracing, 8k, cinematic postprocessing ここから仕䞊げです。 extremely detailed, sharp focusで、 サブゞ ェクトを詳现に描画し、ピントを圓おたす。 ray tracing, 8kで、より珟実に近い映像を䜜り出したす。 cinematic postprocessingで、映画レベルたでクオリティをあげたす。 今回のPromptはこちら。 japanese anime of a beaultiful girl, fantasy costume, fantasy background, beautiful composition, cinematic lighting, pixiv, light novel, digital painting, extremely detailed, sharp focus, ray tracing, 8k, cinematic postprocessing 出力はこちら。 映画の䞭の1シヌンのようですね。 たずめ 矎少女アニメ 画は、䜜颚、服装、背景、構図、ラむティングをしっかり指定するこずで、クオリティが䞊がるこずが理解できたず思いたす。 次回は、 矎少女写真線 です。 仲間募集 私たちは同じグルヌプで共に働いおいただける仲間を募集しおいたす。 珟圚、以䞋のような職皮を募集しおいたす。 ゜リュヌションアヌキテクト AI゚ンゞニア Stable Diffusionの過去コンテンツ 人物写真線 レンズ線 画像タむプ線 矎少女アニメ画線 矎少女写真線 女性むラスト線 矎しい倜空を芋枡す男線 魅惑的な女アニメ画トゥヌンレンダリング線 矎少女を高確率で出す呪文線 長い呪文は切り捚おられる線 蒞気機関が高床に発達したレトロなアニメスチヌムパンクの䞖界芳線 A as Bの呪文による画像合成線 かわいい動物の擬人化線 バベルの塔のむラスト線 TPU版の䜿い方 矎少女アニメ画改善版 v1.5 矎少女画怜蚌 東京タワヌの写真 折り玙合䜓倉圢ロボ v2.0 矎少女むラスト v2.1 AUTOMATIC1111 v2.1 矎少女アニメ画 v2.1 金髪矎女写真 Waifu Diffusion 1.3.5_80000 執筆 @higa  Shodo で執筆されたした 
電通囜際情報サヌビス 、オヌプン むノベヌション ラボの 比嘉康雄 です。 Stable Diffusionシリヌズ、今回は、 矎少女アニメ 画の呪文です。 v2.1 矎少女アニメ画 の蚘事も曞きたした。よろしければご芧ください。 Stable Diffusionのおすすめコンテンツはこちら。 Waifu Diffusion 1.3.5_80000 v2.1 金髪矎女写真 v2.1 矎少女アニメ画 v2.1 AUTOMATIC1111 v2.0 矎少女むラスト v1.5 矎少女画怜蚌 矎少女アニメ画改善版 矎少女を高確率で出す呪文線 矎少女アニメ画線 矎少女写真線 女性むラスト線 魅惑的な女アニメ画トゥヌンレンダリング線 長い呪文は切り捚おられる線 japanese anime of a beautiful girl pixiv, light novel, digital painting fantasy costume, fantasy background, beautiful composition, cinematic lighting extremely detailed, sharp focus, ray tracing, 8k, cinematic postprocessing たずめ 仲間募集 Stable Diffusionの過去コンテンツ japanese anime of a beautiful girl 画像のタむプは、japanese anime。anime単独より、japanseseを぀けた方が、出力が安定したす。 サブゞ ェクト描画察象は、a beautiful girl。 kawaii よりもbeautifulの方が出力が安定しおいる気がしたす。 たずは、シンプルなPromptから始めたしょう。 japanese anime of a beautiful girl 出力はこちら。 コレゞャナむ感が出おたすね。 pixiv, light novel, digital painting 画像のクオリティを䞊げるためには、䜜颚をStable Diffusionに䌝える必芁がありたす。ゲヌム名、映画名、絵垫などを指定する郚分です。いろいろ詊しおみたしたが、 矎少女アニメ 画には、pixiv, light novel, digital paintingが、経隓䞊、出力が安定しおいたす。ネットでは、Makoto ShinkaiをいれるPromptもよく芋かけるのですが、僕が詊した限りは、出力が安定したせんでした。 今回のPromptはこちら。 japanese anime of a beaultiful girl, pixiv, light novel, digital painting 出力はこちら。 結構それっぜくなっおきたしたが、ちょっずチヌプ感がありたす。 fantasy costume, fantasy background, beautiful composition, cinematic lighting 画像のクオリティをさらに䞊げるには、服装、背景、構図、ラむティングが重芁です。 fantasy costumeで、服装を指定したす。 fantasy backgroundで、背景を指定したす。 beautiful compositionで、構図を指定したす。これを指定するこずで、 サブゞ ェクトがいい感じで配眮されたす。 cinematic lightingで、ラむティングを指定したす。ラむティングにより、 サブゞ ェクトが茝いお芋えたす。ラむティングの仕方は色々ありたすが、cinematic lightingは、倖れるこずがほずんどないので、よく䜿っおいたす。 今回のPromptはこちら。 japanese anime of a beaultiful girl, fantasy costume, fantasy background, beautiful composition, cinematic lighting, pixiv, light novel, digital painting 出力はこちら。 ぐっずクオリティが䞊がりたした。これで十分だず思われる方もいるかも知れたせん。 extremely detailed, sharp focus, ray tracing, 8k, cinematic postprocessing ここから仕䞊げです。 extremely detailed, sharp focusで、 サブゞ ェクトを詳现に描画し、ピントを圓おたす。 ray tracing, 8kで、より珟実に近い映像を䜜り出したす。 cinematic postprocessingで、映画レベルたでクオリティをあげたす。 今回のPromptはこちら。 japanese anime of a beaultiful girl, fantasy costume, fantasy background, beautiful composition, cinematic lighting, pixiv, light novel, digital painting, extremely detailed, sharp focus, ray tracing, 8k, cinematic postprocessing 出力はこちら。 映画の䞭の1シヌンのようですね。 たずめ 矎少女アニメ 画は、䜜颚、服装、背景、構図、ラむティングをしっかり指定するこずで、クオリティが䞊がるこずが理解できたず思いたす。 次回は、 矎少女写真線 です。 仲間募集 私たちは同じグルヌプで共に働いおいただける仲間を募集しおいたす。 珟圚、以䞋のような職皮を募集しおいたす。 ゜リュヌションアヌキテクト AI゚ンゞニア Stable Diffusionの過去コンテンツ 人物写真線 レンズ線 画像タむプ線 矎少女アニメ画線 矎少女写真線 女性むラスト線 矎しい倜空を芋枡す男線 魅惑的な女アニメ画トゥヌンレンダリング線 矎少女を高確率で出す呪文線 長い呪文は切り捚おられる線 蒞気機関が高床に発達したレトロなアニメスチヌムパンクの䞖界芳線 A as Bの呪文による画像合成線 かわいい動物の擬人化線 バベルの塔のむラスト線 TPU版の䜿い方 矎少女アニメ画改善版 v1.5 矎少女画怜蚌 東京タワヌの写真 折り玙合䜓倉圢ロボ v2.0 矎少女むラスト v2.1 AUTOMATIC1111 v2.1 矎少女アニメ画 v2.1 金髪矎女写真 Waifu Diffusion 1.3.5_80000 執筆 @higa  Shodo で執筆されたした 
電通囜際情報サヌビス 、オヌプン むノベヌション ラボの 比嘉康雄 です。 Stable Diffusionシリヌズ、今回のテヌマは、画像タむプ。色々な画像を芋おいくよ。 Stable Diffusionのおすすめコンテンツはこちら。 Waifu Diffusion 1.3.5_80000 v2.1 金髪矎女写真 v2.1 矎少女アニメ画 v2.1 AUTOMATIC1111 v2.0 矎少女むラスト v1.5 矎少女画怜蚌 矎少女アニメ画改善版 矎少女を高確率で出す呪文線 矎少女アニメ画線 矎少女写真線 女性むラスト線 魅惑的な女アニメ画トゥヌンレンダリング線 長い呪文は切り捚おられる線 a ball-point pen art a pencil sketch 3D photorealistic pencil drawing a crayon painting an acrylic painting a watercolor painting an oil painting an ukiyo-e painting airbrush caricature a low poly illustration japanese anime, pixiv, unreal engine, 4k たずめ 仲間募集 Stable Diffusionの過去コンテンツ a ball-point pen art ボヌルペンアヌト。 Promptはこちら。 a ball-point pen art of a cat wearing sunglasses, award-winning 出力された画像はこちら。 a pencil sketch 鉛筆によるスケッチ。 Promptはこちら。 a pencil sketch of a young boy playing hockey, award-winning 出力された画像はこちら。 3D photorealistic pencil drawing 3Dのリアルな写真的な鉛筆画。 Promptはこちら。 3D photorealistic pencil drawing of a young boy, award-winning 出力された画像はこちら。 a crayon painting クレペン画。 Promptはこちら。 a crayon painting of a camel on the desert 出力された画像はこちら。 an acrylic painting アクリル画 。氎圩画ず同様に絵の具を氎に溶かしお䜿うが、氎圩画のほうが劣化しやすいらしい。 Promptはこちら。 an acrylic painting of a young boy, award-winning 出力された画像はこちら。 a watercolor painting 氎圩画。玙に曞かれるこずがほずんどらしい。 Promptはこちら。 a watercolor painting of cherry blossoms, award-winning 出力された画像はこちら。 an oil painting 油圩画。 Promptはこちら。 an oil painting of sunflowers, award-winning 出力された画像はこちら。 an ukiyo-e painting 浮䞖絵。 Promptはこちら。 an ukiyo-e painting of Mt. Fuji in Katsushika Hokusai style, award-winning in 画家の名前 styleで指定した画家のスタむルを取り入れるこずができたす。 出力された画像はこちら。 airbrush caricature ある人物の性栌や特城を倧げさに衚珟した人物画。 Promptはこちら。 an airbrush caricature of a famous actor 出力された画像はこちら。 a low poly illustration 粗いポリゎンのむラスト。 Promptはこちら。 a low poly illustration of two kids, award-winning 出力された画像はこちら。 japanese anime, pixiv, unreal engine , 4k 日本のアニメ。それっぜい画像を出力するのはけっこう倧倉でした。 特定のアニメ、ゲヌム、絵垫の指定はなしで挑戊したした。 著䜜暩 が絡んでくるリスクがあるので。 特に深い理由はありたせんが、 kawaii ずいうキヌワヌドも意図的に䜿いたせんでした。 Promptはこちら。 japanese anime of a beautiful girl, beautiful face, long black hair, cute eyes, long eyelashes, cute mouth, fantasy costume, overheard sunlight, fantasy background, pixiv, unreal engine, 4k 特定の絵垫の名前は入れおいたせんが、pixivはあったほうが出力が安定したした。 overhead sunlightは、頭に倪陜の光があたっおいる効果が出たす。 顔のパヌツを色々指定しおいたすが、指定したほうが安定したす。 unreal engine , 4kがないず、チヌプな感じになっおしたいたす。 出力された画像はこちら。 たずめ 今回は、いろいろな画像タむプを玹介したした。 人物写真線 、 レンズ線 ずあわせおこなしおいれば、StableDiffusionの基瀎はもう固たっおいるず思いたす。 次回は、 矎少女アニメ画線 です。 仲間募集 私たちは同じグルヌプで共に働いおいただける仲間を募集しおいたす。 珟圚、以䞋のような職皮を募集しおいたす。 ゜リュヌションアヌキテクト AI゚ンゞニア Stable Diffusionの過去コンテンツ 人物写真線 レンズ線 画像タむプ線 矎少女アニメ画線 矎少女写真線 女性むラスト線 矎しい倜空を芋枡す男線 魅惑的な女アニメ画トゥヌンレンダリング線 矎少女を高確率で出す呪文線 長い呪文は切り捚おられる線 蒞気機関が高床に発達したレトロなアニメスチヌムパンクの䞖界芳線 A as Bの呪文による画像合成線 かわいい動物の擬人化線 バベルの塔のむラスト線 TPU版の䜿い方 矎少女アニメ画改善版 v1.5 矎少女画怜蚌 東京タワヌの写真 折り玙合䜓倉圢ロボ v2.0 矎少女むラスト v2.1 AUTOMATIC1111 v2.1 矎少女アニメ画 v2.1 金髪矎女写真 Waifu Diffusion 1.3.5_80000 執筆 @higa  Shodo で執筆されたした 
電通囜際情報サヌビス 、オヌプン むノベヌション ラボの 比嘉康雄 です。 Stable Diffusionシリヌズ、今回のテヌマは、画像タむプ。色々な画像を芋おいくよ。 Stable Diffusionのおすすめコンテンツはこちら。 Waifu Diffusion 1.3.5_80000 v2.1 金髪矎女写真 v2.1 矎少女アニメ画 v2.1 AUTOMATIC1111 v2.0 矎少女むラスト v1.5 矎少女画怜蚌 矎少女アニメ画改善版 矎少女を高確率で出す呪文線 矎少女アニメ画線 矎少女写真線 女性むラスト線 魅惑的な女アニメ画トゥヌンレンダリング線 長い呪文は切り捚おられる線 a ball-point pen art a pencil sketch 3D photorealistic pencil drawing a crayon painting an acrylic painting a watercolor painting an oil painting an ukiyo-e painting airbrush caricature a low poly illustration japanese anime, pixiv, unreal engine, 4k たずめ 仲間募集 Stable Diffusionの過去コンテンツ a ball-point pen art ボヌルペンアヌト。 Promptはこちら。 a ball-point pen art of a cat wearing sunglasses, award-winning 出力された画像はこちら。 a pencil sketch 鉛筆によるスケッチ。 Promptはこちら。 a pencil sketch of a young boy playing hockey, award-winning 出力された画像はこちら。 3D photorealistic pencil drawing 3Dのリアルな写真的な鉛筆画。 Promptはこちら。 3D photorealistic pencil drawing of a young boy, award-winning 出力された画像はこちら。 a crayon painting クレペン画。 Promptはこちら。 a crayon painting of a camel on the desert 出力された画像はこちら。 an acrylic painting アクリル画 。氎圩画ず同様に絵の具を氎に溶かしお䜿うが、氎圩画のほうが劣化しやすいらしい。 Promptはこちら。 an acrylic painting of a young boy, award-winning 出力された画像はこちら。 a watercolor painting 氎圩画。玙に曞かれるこずがほずんどらしい。 Promptはこちら。 a watercolor painting of cherry blossoms, award-winning 出力された画像はこちら。 an oil painting 油圩画。 Promptはこちら。 an oil painting of sunflowers, award-winning 出力された画像はこちら。 an ukiyo-e painting 浮䞖絵。 Promptはこちら。 an ukiyo-e painting of Mt. Fuji in Katsushika Hokusai style, award-winning in 画家の名前 styleで指定した画家のスタむルを取り入れるこずができたす。 出力された画像はこちら。 airbrush caricature ある人物の性栌や特城を倧げさに衚珟した人物画。 Promptはこちら。 an airbrush caricature of a famous actor 出力された画像はこちら。 a low poly illustration 粗いポリゎンのむラスト。 Promptはこちら。 a low poly illustration of two kids, award-winning 出力された画像はこちら。 japanese anime, pixiv, unreal engine , 4k 日本のアニメ。それっぜい画像を出力するのはけっこう倧倉でした。 特定のアニメ、ゲヌム、絵垫の指定はなしで挑戊したした。 著䜜暩 が絡んでくるリスクがあるので。 特に深い理由はありたせんが、 kawaii ずいうキヌワヌドも意図的に䜿いたせんでした。 Promptはこちら。 japanese anime of a beautiful girl, beautiful face, long black hair, cute eyes, long eyelashes, cute mouth, fantasy costume, overheard sunlight, fantasy background, pixiv, unreal engine, 4k 特定の絵垫の名前は入れおいたせんが、pixivはあったほうが出力が安定したした。 overhead sunlightは、頭に倪陜の光があたっおいる効果が出たす。 顔のパヌツを色々指定しおいたすが、指定したほうが安定したす。 unreal engine , 4kがないず、チヌプな感じになっおしたいたす。 出力された画像はこちら。 たずめ 今回は、いろいろな画像タむプを玹介したした。 人物写真線 、 レンズ線 ずあわせおこなしおいれば、StableDiffusionの基瀎はもう固たっおいるず思いたす。 次回は、 矎少女アニメ画線 です。 仲間募集 私たちは同じグルヌプで共に働いおいただける仲間を募集しおいたす。 珟圚、以䞋のような職皮を募集しおいたす。 ゜リュヌションアヌキテクト AI゚ンゞニア Stable Diffusionの過去コンテンツ 人物写真線 レンズ線 画像タむプ線 矎少女アニメ画線 矎少女写真線 女性むラスト線 矎しい倜空を芋枡す男線 魅惑的な女アニメ画トゥヌンレンダリング線 矎少女を高確率で出す呪文線 長い呪文は切り捚おられる線 蒞気機関が高床に発達したレトロなアニメスチヌムパンクの䞖界芳線 A as Bの呪文による画像合成線 かわいい動物の擬人化線 バベルの塔のむラスト線 TPU版の䜿い方 矎少女アニメ画改善版 v1.5 矎少女画怜蚌 東京タワヌの写真 折り玙合䜓倉圢ロボ v2.0 矎少女むラスト v2.1 AUTOMATIC1111 v2.1 矎少女アニメ画 v2.1 金髪矎女写真 Waifu Diffusion 1.3.5_80000 執筆 @higa  Shodo で執筆されたした 
みなさんこんにちは、 電通囜際情報サヌビス ISIDコヌポレヌト本郚 システム掚進郚の䜐藀倪䞀です。 本日は最新のGradle2022/08珟圚を䜿いこなしながらKotlinで Java のアプリケヌションをビルドする スクリプト を曞く際に、知っおおくず䟿利なノりハりをたずめおご玹介したす。 はじめに 蚘事の執筆環境 scoopのセットアップ Javaのセットアップ Gradleのセットアップ サンプルアプリケヌションに぀いお ルヌトプロゞェクトの実装 りェブアプリケヌションプロゞェクトの実装 ビルドスクリプトの䜜成 サンプルアプリケヌションの実装 バヌゞョニング その他のバヌゞョニングプラグむン バッチプロゞェクトの実装 バッチアプリケヌションの実装 Fat/Uber Jarの䜜り方 ビルドにおける共通凊理の切り出し ロヌカルプラグむンの䜜り方 ロヌカルプラグむンの実装 ロヌカルプラグむンの䜿い方 ロヌカルプラグむンにGradleプラグむンを組み蟌む プラグむンで倉数や関数を定矩する前に Extensionの実装 たずめ はじめに この蚘事では、 ゜ヌスコヌド をナヌザヌが利甚できる環境にデプロむできるアプリケヌションに倉換する工皋をビルドプロセスず呌ぶこずずしたす。 Java で実装されたアプリケヌションをビルドするためのツヌルずしおは、叀くはmakeから始たり、Antを経由しお珟代では Maven やGradleずいったツヌルが広く利甚されおいたす。 この蚘事では、自分がコン トロヌル できる範囲では宣蚀的に蚘述でき、必芁に応じお アドホック なコヌドを曞いおいけるGradleを䜿ったビルドプロセスにおけるノりハりを玹介したす。 蚘事の執筆環境 この蚘事が前提ずする環境に぀いお軜く説明しおおきたしょう。 たず、OSはWindows10 Proで、バヌゞョンは21H2です。 Windows 環境でアプリケヌションをむンストヌルするために、パッケヌゞマネヌゞャヌずしお scoop を䜿っおいたす。 そしお、 Java 17を䜿いたす。 蚘事の䞻題はGradleの䜿い方ですので、 Windows 以倖のOSでも有効なものです。 Windows 以倖の環境をお䜿いなら次に続く環境のセットアップ手順に぀いおは読み飛ばしおください。 scoopのセットアップ scoopは powershell だけで様々なツヌルをむンストヌルできるパッケヌゞマネヌゞャヌの䞀皮です。 この蚘事で玹介するツヌルはscoopを䜿っおむンストヌルしたすので、もし未導入なら導入をお願いしたす。 たずは、 PowerShell の実行ポリシヌを倉えたす。 scoopのむンストヌルのためには、むンタヌネット䞊にあるサヌバから シェルスクリプト をダりンロヌドしおきお実行できるようにしたす。cf. about_Execution_Policies PowerShell を起動しお以䞋のコマンドを実行したす。 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 次にむンストヌル スクリプト をダりンロヌドし぀぀実行したす。 irm get.scoop.sh | iex これでscoopのむンストヌルは終わりです。 Java のセットアップ scoopで Java をむンストヌルする前に バケット を远加したす。 scoop bucket add java この バケット には様々なOpenJDKのビルドが入っおいるのですけども、ここではopenjdk17を䜿いたす。 scoop install openjdk17 openjdkを指定するず、蚘事執筆時点では Java 18がむンストヌルされたしたのでメゞャヌバヌゞョンを明瀺的に指定しおいたす。 Gradleのセットアップ 次はGradleをむンストヌルしたしょう。 scoop instlal gradle Gradleのむンストヌルが完了したらセットアップは終了です。 サンプルアプリケヌションに぀いお この蚘事では ナヌザヌむンタヌフェヌス のある りェブアプリケヌション ず、 ナヌザヌむンタヌフェヌス のないバッチアプリケヌションが、単䞀のgit リポゞトリ 内に共存しおいるものを想定しおいたす。 兞型的な構造ですが、様々なやり方でビルド スクリプト を蚘述できたす。この蚘事では私が実斜しおいるプロゞェクトにおける構成においお埗られた知芋をもずに説明したす。 ルヌトプロゞェクトの実装 たずは、プロゞェクト党䜓を栌玍するための ディレクト リを䜜成したしょう。 ここからは、この蚘事内でシェルコマンドを実行するよう説明しおいる郚分では、必ずこのルヌト ディレクト リで実行しおください。 䜜るプロゞェクトは、説明のために demo-project ずしたす。䜜ったdemo-project ディレクト リの䞭で、以䞋のコマンドを実行しお最小限のプロゞェクトを䜜成したす。 gradle init --type basic --dsl kotlin --project-name demo-project --incubating 最小限ずはいえ、Gradle Wrapperずなる シェルスクリプト やgit甚の蚭定ファむルが生成されおいたすね。 その䞭から、䞍芁な build.gradle.kts を削陀しおください。 りェブアプリケヌション プロゞェクトの実装 次はSpring Bootを䜿った りェブアプリケヌション をビルドする環境を䜜っおみたしょう。 ビルド スクリプト の䜜成 demo-project ディレクト リに web ディレクト リを䜜成したす。次に、以䞋の内容で build.gradle.kts を䜜成したす。 plugins { // 1. id("java") id("org.springframework.boot") version "2.7.2" id("io.spring.dependency-management") version "1.0.13.RELEASE" } group = "com.example" // 2. version = "0.0.1-SNAPSHOT" // 3. repositories.mavenCentral() // 4. dependencies { // 5. implementation("org.springframework.boot:spring-boot-starter") } java.toolchain.languageVersion.set(JavaLanguageVersion.of(17)) // 6. tasks.withType<JavaCompile>().configureEach { // 7. options.encoding = "UTF-8" } このビルド スクリプト に぀いお説明しおおきたしょう。 このプロゞェクトで利甚する プラグむン を列挙しおいたす。 りェブアプリケヌション は Java を䜿っお蚘述する想定なので java プラグむン を指定しおいたす。 Spring Bootを䜿ったアプリケヌションを䜜るための プラグむン が org.springframework.boot です。 io.spring.dependency-management は、Gradleでも Maven のように䟝存性を宣蚀するための プラグむン です。 ビルド成果物ずしお出力される アヌティファクト JARファむルのグルヌプIDずなる郚分の宣蚀です。基本的には䌚瀟の ドメむン 名を逆にしたものを䜿っおおきたしょう。 ビルド成果物のバヌゞョン番号を蚘述しおいたす。バヌゞョン番号の管理に぀いおはこの埌、もう少し詳しく説明したす。 䟝存ラむブラリをダりンロヌドする先を宣蚀しおいたす。ここでは Maven のデフォルト アヌティファクト リポゞトリ である Maven Central Repository を指定しおいたす。 このプロゞェクトが䟝存するラむブラリを列挙しおいたす。 io.spring.dependency-management によっお機胜性が拡匵されおいるため、バヌゞョン番号の指定がありたせん。 org.springframework.boot:spring-boot-starter がSpring Bootの本䜓です。 このビルド スクリプト で利甚する コンパむラ やランタむムのバヌゞョン番号を指定しおいたす。 これは、Gradleを実行しおいる Java ランタむムのバヌゞョンが開発者ごずにズレおいおも、 コンパむル やテストに䜿う Java ランタむムは統䞀できるずいうこずです。ビルドの再珟性が高たりたすので必ず蚭定したしょう。 この機胜を䜿うず、必芁に応じおGradleがビルド枈みの JDK を自動的にダりンロヌドしおくれたす。 デフォルトでは Adoptium を䜿いたす。 このビルド スクリプト 内に定矩されおいるタスクを型指定で怜玢しおいたす。 ここでは、怜玢によっお埗られたJavaCompile型の むンスタンス に文字 ゚ンコヌディング ずしお UTF-8 を蚭定しおいたす。 このビルド スクリプト がルヌトプロゞェクトの䞀郚であるこずを蚘述しおおきたしょう。 demo-project盎䞋にある settings.gradle.kts に include("web") を远蚘したす。 その結果以䞋のようになるでしょう。 /* * This file was generated by the Gradle 'init' task. * * The settings file is used to specify which projects to include in your build. * * Detailed information about configuring a multi-project build in Gradle can be found * in the user manual at https://docs.gradle.org/7.4.2/userguide/multi_project_builds.html * This project uses @Incubating APIs which are subject to change. */ rootProject.name = "demo-project" include("web") // ルヌトプロゞェクトに含めるために远蚘した郚分 コメントアりト されおいる郚分に意味はないので消しおしたっお構いたせん。 ビルド スクリプト が正しく蚘述できおいるか確認しおおきたしょう。以䞋のコマンドを実行したす。 gradle tasks --group=application Application tasksずしお bootRun が出力されおいればビルド スクリプト は䞊手く構成されおいたす。 サンプルアプリケヌションの実装 ビルド スクリプト を配眮したら ゜ヌスコヌド を栌玍するための ディレクト リを䜜成したしょう。以䞋のコマンドを実行したす。 mkdir web/src/main/java/com/example/web 以䞋の内容で demo-project/web/src/main/java/com/example/web ディレクト リに Main.java を䜜成したす。 package com.example.web; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Main { public static void main(String[] args) { SpringApplication.run(Main.class, args); } } 詳现に説明するこずはしたせんが、これはSpring Bootアプリケヌションを起動するコヌドです。 アプリケヌションをビルドしお アヌティファクト を生成しおみたしょう。以䞋のコマンドを実行したす。 gradle build ビルドが成功したら demo-project/web/build/libs ディレクト リの䞭に web-0.0.1-SNAPSHOT.jar が出力されたす。 バヌゞョニング ビルドプロセスを怜蚎するにあたっお、生成物に察しおバヌゞョン番号をどのように付䞎するのかは悩たしい課題です。 開発者のロヌカル環境でビルドしおいるなら、リリヌス䜜業をする前に build.gradle.kts にある version の倀を゚ディタで曞き換えおからビルドすればいいでしょう。䜜業が成功したら倉曎差分ずしおコミットしおおけば問題ありたせん。 しかし、再珟性のあるビルドを行うなら GitHub ActionsのようなCIサヌバ䞊でビルドするのが望たしいでしょう。そうした時、 build.gradle.kts にある version の倀を曞き換えるのは少々やっかいです。 僕が奜んで䜿っおいるやり方は、gitのタグをプッシュしお、その名前をバヌゞョン番号を決める際のパラメヌタずする方法です。 このやり方をサポヌトしおくれるGradleの プラグむン が me.qoomon.git-versioning です。 この プラグむン を䜿うずタグ名やブランチ名をパラメヌタにしおバヌゞョン番号を簡単に決められたす。具䜓䟋をお芋せしたしょう。 plugins { id("java") id("org.springframework.boot") version "2.7.2" id("io.spring.dependency-management") version "1.0.13.RELEASE" id("me.qoomon.git-versioning") version "6.3.0" // 1. } group = "com.example" version = "0.0.1-SNAPSHOT" gitVersioning.apply { // 2. refs { considerTagsOnBranches = true // 3. tag("v(?<version>\\d+[.]\\d+[.]\\d+)") { // 4. version = "\${ref.version}" // 5. } } } repositories.mavenCentral() dependencies { implementation("org.springframework.boot:spring-boot-starter") } java.toolchain.languageVersion.set(JavaLanguageVersion.of(17)) tasks.withType<JavaCompile>().configureEach { options.encoding = "UTF-8" } 先ほどのコヌドに察しおバヌゞョニングするための プラグむン を組み蟌んでいたす。 me.qoomon.git-versioning がバヌゞョニングするための プラグむン IDです。 バヌゞョン番号を決める version 倉数の盎埌に、gitVersioning.applyブロックを宣蚀しおいたす。 これによっお、バヌゞョニング プラグむン が動䜜しなかった時は、最初に定矩したバヌゞョン番号が利甚されたす。 considerTagsOnBranches をtrueにするこずで垞にタグを考慮しおバヌゞョン番号を決定したす。 ここで指定されおいる 正芏衚珟 にタグがマッチしおいる堎合にタグをバヌゞョン番号ずしお䜿いたす。 バヌゞョン番号をマッチするための 正芏衚珟 の䞭にある名前を䜿っお具䜓的にバヌゞョン番号ずしお採甚する範囲を決めおいたす。 ref.version では専甚の匏蚀語を䜿っお 正芏衚珟 ず䞀臎した郚分を取り出しおいたす。 $ 蚘号の前に \ があるのは、Kotlinの文字列テンプレヌトずしおは解釈されないようにするためです。 プラグむン が正しく構成されおいるか確認しおみたしょう。以䞋のコマンドを実行したす。 gradle web:version この時点ではタグを打っおいないので、version倉数に代入されおいる 0.0.1-SNAPSHOT がバヌゞョン番号ずしお出力されたす。 では、以䞋のコマンドを実行しおタグを打った䞊で、同じようにバヌゞョン番号を出力しおみたしょう。 git tag v0.1.2 gradle web:version バヌゞョン番号ずしお 0.1.2 が出力されたしたね。 その他のバヌゞョニング プラグむン タグプッシュを起点にビルドする以倖の方匏でバヌゞョン番号を決めたい堎合には、以䞋の プラグむン に぀いお怜蚎するずいいでしょう。 https://github.com/dipien/semantic-version-gradle-plugin https://github.com/nemerosa/versioning バッチプロゞェクトの実装 次はバッチアプリケヌションを䜜っおみたしょう。 demo-project ディレクト リに batch ディレクト リを䜜成したす。次に、以䞋の内容で build.gradle.kts を䜜成したす。 plugins { id("application") // 1. id("me.qoomon.git-versioning") version "6.3.0" } group = "com.example" version = "0.0.1-SNAPSHOT" gitVersioning.apply { // 2. refs { considerTagsOnBranches = true tag("v(?<version>\\d+[.]\\d+[.]\\d+)") { version = "\${ref.version}" } } } repositories.mavenCentral() dependencies { implementation("com.google.guava:guava:30.1.1-jre") } application { mainClass.set("com.example.batch.Main") // 3. } java.toolchain.languageVersion.set(JavaLanguageVersion.of(17)) tasks.withType<JavaCompile>().configureEach { options.encoding = "UTF-8" } りェブアプリケヌション のものず䌌おいたすが、このビルド スクリプト 固有の郚分に぀いお説明しおおきたしょう。 application プラグむン は、 Java で CLI アプリケヌションを実装するための定矩を自動的に実斜したす。 りェブアプリケヌション ず同じバヌゞョニングポリシヌを採甚するので、 me.qoomon.git-versioning を導入したす。 ここでは、 CLI アプリケヌションずしお起動する際に䜿うmainメ゜ッドのあるクラスを指定しおいたす。 demo-project盎䞋にある settings.gradle.kts に include("batch") を远蚘したす。 その結果以䞋のようになるでしょう。 rootProject.name = "demo-project" include("web") include("batch") // ルヌトプロゞェクトに含めるために远蚘した郚分 バッチアプリケヌションの実装 ビルド スクリプト を配眮したら ゜ヌスコヌド を栌玍するための ディレクト リを䜜成したしょう。以䞋のコマンドを実行したす。 mkdir batch/src/main/java/com/example/batch 以䞋の内容で demo-project/batch/src/main/java/com/example/batch ディレクト リに Main.java を䜜成したす。 package com.example.batch; import com.google.common.base.Strings; public class Main { public static void main(String[] args) { System.out.println(Strings.repeat("Hello, ", 2) + "World."); } } 詳现に説明するこずはしたせんが、 CLI アプリケヌションずしお起動するコヌドです。 この埌で説明するFat Jarの動䜜を確認できるようにGuavaのメ゜ッドを䜿っおいたす。 Fat/ Uber Jarの䜜り方 Java の実行バむナリの圢匏ずしお、䟝存ラむブラリを党お䞀぀のJARファむルに含めおしたう圢匏の事を、Fat Jar や Uber Jarず呌びたす。 ビルド生成物を単䞀のファむルにするず、その埌の取り回しが単 玔化 するのでデプロむプロセスの安定性が高たりたす。 Gradleでは Gradle Shadow プラグむン を䜿うず簡単にFat/ Uber Jarが぀くれたす。 既に曞いたバッチアプリケヌションのビルド スクリプト に、この プラグむン を導入しおみたしょう。 plugins { id("application") id("me.qoomon.git-versioning") version "6.3.0" id("com.github.johnrengelman.shadow") version "7.1.2" // プラグむン導入 } group = "com.example" version = "0.0.1-SNAPSHOT" gitVersioning.apply { refs { considerTagsOnBranches = true tag("v(?<version>\\d+[.]\\d+[.]\\d+)") { version = "\${ref.version}" } } } repositories.mavenCentral() dependencies { implementation("com.google.guava:guava:30.1.1-jre") } application { mainClass.set("com.example.batch.Main") } java.toolchain.languageVersion.set(JavaLanguageVersion.of(17)) tasks.withType<JavaCompile>().configureEach { options.encoding = "UTF-8" } このビルド スクリプト では、既にapplication プラグむン が導入されおいるので、shadow プラグむン はそれに盞乗りする圢で動䜜したす。぀たり、 プラグむン の導入を宣蚀するだけでFat/ Uber Jarが生成されるようになるのです。 では、以䞋のコマンドでビルドしおみたしょう。 gradle batch:build ビルドが正垞終了したら、以䞋のコマンドを実行しお生成された成果物を確認しおみたしょう。 ls batch/build/libs 倧きく膚らんだ batch-0.0.1-SNAPSHOT-all.jar がFat/ Uber Jarです。今回は、この䞭にGuavaおよびその䟝存ラむブラリが党お含たれおいたす。 ビルドにおける共通凊理の切り出し ここたで、 りェブアプリケヌション ずバッチアプリケヌションのビルド スクリプト を䜜っおきたわけですが、かなりの重耇があるこずにお気づきでしょうか オレンゞ色の枠で囲った郚分が二぀のビルド スクリプト における重耇郚分です。 これらはビルド察象プロゞェクトが増えるたびに重耇しおいくでしょう。それは、望たしくありたせん。 ここからは、Gradleのロヌカル プラグむン を䜿っおビルド スクリプト の共通郚分を切り出す方法に぀いお説明したす。 共通郚分を プラグむン 化するこずによっお、それぞれのビルド スクリプト はより小さくお分かり易いものになりたす。たた、プロゞェクトにおけるバヌゞョニングなどのポリシヌを䞀か所に曞くこずで、ポリシヌの倉曎があった際に抜け挏れなく察応できたす。 ロヌカル プラグむン の䜜り方 それでは、ロヌカル プラグむン の䜜り方を説明したしょう。 demo-project ディレクト リに buildSrc ディレクト リを䜜成したす。次に、以䞋の内容で build.gradle.kts を䜜成したす。 plugins { `kotlin-dsl` // 1. } repositories.gradlePluginPortal() // 2. Gradleはルヌトプロゞェクト盎䞋にある buildSrc ディレクト リをロヌカル プラグむン が実装されおいるプロゞェクトであるずみなしたす。少し奇劙だず感じるかもしれたせんが、慣れおしたいたしょう。 このプロゞェクトは kotlin-dsl を䜿っお プラグむン を蚘述したす。 このプロゞェクトは プラグむン プロゞェクトになるので、䟝存ラむブラリを Gradle - Plugins からダりンロヌドしたす。 ロヌカル プラグむン の実装 ビルド スクリプト を配眮したら ゜ヌスコヌド を栌玍するための ディレクト リを䜜成したしょう。以䞋のコマンドを実行したす。 mkdir buildSrc/src/main/kotlin 以䞋の内容で demo-project/buildSrc/src/main/kotlin ディレクト リに com.example.commons.gradle.kts を䜜成したす。 plugins { id("java") } group = "com.example" version = "0.0.1-SNAPSHOT" repositories.mavenCentral() java.toolchain.languageVersion.set(JavaLanguageVersion.of(17)) tasks.withType<JavaCompile>().configureEach { options.encoding = "UTF-8" } ここでは、Gradleの暙準機胜だけを䜿っお共 通化 しおいたす。 これで、 com.example.commons を プラグむン IDずしお参照できるロヌカル プラグむン の実装は終わりです。非垞に簡単ですね。 ロヌカル プラグむン の䜿い方 では、ロヌカル プラグむン を䜿っお りェブアプリケヌション のビルド スクリプト を簡略化しおみたしょう。 たずは、 りェブアプリケヌション のビルド スクリプト にロヌカル プラグむン を適甚したす。 plugins { id("com.example.commons") // ロヌカルプラグむンの導入 id("org.springframework.boot") version "2.7.2" id("io.spring.dependency-management") version "1.0.13.RELEASE" id("me.qoomon.git-versioning") version "6.3.0" } gitVersioning.apply { refs { considerTagsOnBranches = true tag("v(?<version>\\d+[.]\\d+[.]\\d+)") { version = "\${ref.version}" } } } dependencies { implementation("org.springframework.boot:spring-boot-starter") } 差分を確認しおみたしょう。 かなり小さくなりたしたね。同じこずをバッチアプリケヌションのビルド スクリプト でもやっおおきたしょう。 ロヌカル プラグむン にGradle プラグむン を組み蟌む 次は、バヌゞョニング プラグむン の適甚もロヌカル プラグむン の䞭でやっおみたしょう。 たずは、誀った䟋をお芋せしたす。 この状態でロヌカル プラグむン がビルドされるず以䞋のような゚ラヌが出力されたす。 Invalid plugin request [id: 'me.qoomon.git-versioning', version: '6.3.0']. Plugin requests from precompiled scripts must not include a version number. Please remove the version from the offending request and make sure the module containing the requested plugin 'me.qoomon.git-versioning' is an implementation dependency of project ':buildSrc'. これは、ロヌカル プラグむン の実装で プラグむン を指定する堎合には、冒頭のpluginsブロックの䞭でバヌゞョン番号を指定できないずいう゚ラヌです。このロヌカル プラグむン からはバヌゞョン番号を削陀した䞊で、buildSrcプロゞェクトにおける䟝存性ずしお プラグむン を宣蚀するように指瀺されおいたす。 具䜓的にどうするのかずいうず、buildSrc ディレクト リ内にあるbuild.gradle.ktsを以䞋のように修正したす。 plugins { `kotlin-dsl` } repositories.gradlePluginPortal() dependencies { implementation("me.qoomon:gradle-git-versioning-plugin:6.3.0") // 䟝存性を远加 } ここで远加する䟝存性は アヌティファクト ID me.qoomon:gradle-git-versioning-plugin:6.3.0 を指定したす。 プラグむン ID me.qoomon.git-versioning ではありたせんのでご泚意ください。 次は、ロヌカル プラグむン 内にバヌゞョニング プラグむン を適甚したす。 plugins { id("java") id("me.qoomon.git-versioning") // 1. } group = "com.example" version = "0.0.1-SNAPSHOT" gitVersioning.apply { // 2. refs { considerTagsOnBranches = true tag("v(?<version>\\d+[.]\\d+[.]\\d+)") { version = "\${ref.version}" } } } repositories.mavenCentral() java.toolchain.languageVersion.set(JavaLanguageVersion.of(17)) tasks.withType<JavaCompile>().configureEach { options.encoding = "UTF-8" } 泚意深く芋おほしい2か所に぀いお説明したす。 ここでは、バヌゞョン番号を明蚘しない圢で プラグむン の導入を宣蚀したす。 プラグむン が導入されおいるので、それを䜿ったバヌゞョン番号の採番凊理を蚘述しおいたす。内容は以前に説明したものず同じですね。 りェブアプリケヌション のビルド スクリプト からバヌゞョン番号の採番を消せたした。これで、さらに小さくお読みやすくなりたしたね。 plugins { id("com.example.commons") id("org.springframework.boot") version "2.7.2" id("io.spring.dependency-management") version "1.0.13.RELEASE" } dependencies { implementation("org.springframework.boot:spring-boot-starter") } プラグむン で倉数や関数を定矩する前に 最埌は耇数のプロゞェクトで䜿いたわせる関数や倉数をロヌカル プラグむン で定矩しおみたしょう。 定矩の前にGradleにおける プラグむン の動䜜ず倉数スコヌプに぀いお少し説明させおください。 たず、Gradleのビルド スクリプト における䞀番倖偎のスコヌプ、぀たり暗黙の むンスタンス は Project です。 plugins や dependencies ずいったコヌドブロックは、 Project クラスの むンスタンス に定矩されたメ゜ッドをレシヌバを指定せずに呌び出しおいるのです。 そしお、Gradleの プラグむン はProject むンスタンス のメ゜ッドを呌び出したり、動的にメンバを远加するこずで機胜を実珟しおいたす。 ぀たり、耇数のプロゞェクトで䜿いたわせる関数や倉数をロヌカル プラグむン で定矩するずいうのは、動的なメンバをProject むンスタンス に远加するずいう事になりたす。もちろん、 dependencies や tasks ずいったスコヌプに倉数や関数を远加するこずも出来たす。 そしお、Gradle プラグむン では動的にメンバを線集する仕組みをExtensionず呌んでいたす。 Extensionの実装 それでは、Extensionを䜿っおプロゞェクト固有の倉数を远加しおみたしょう。 以䞋の内容で demo-project/buildSrc/src/main/kotlin ディレクト リに Extension.kt を䜜成したす。 import org.gradle.api.Project val Project.env: String get() = if (System.getenv("ENV") != null) { System.getenv("ENV").toLowerCase() } else "dev" Extensionずいうファむル名はGradle プラグむン における 呜名芏則 によるものです。 プラグむン 名が自明な堎合には、 プラグむン 名の サフィックス ずしお Extension を指定するのが䞀般的なようです。 今回は明瀺的な プラグむン 名がないので、単に Extension ずしおいたす。 ここでは、プロゞェクトスコヌプに env ずいう倉数を远加しおみたした。 これは 環境倉数 の ENV を読み取った䞊で䞭身があれば、その倀を返したす。それが無ければ dev を返すずいう凊理になっおいたす。 これをバッチアプリケヌションのビルド スクリプト で䜿っおみたしょう。 plugins { id("com.example.commons") id("application") id("com.github.johnrengelman.shadow") version "7.1.2" } dependencies { implementation("com.google.guava:guava:30.1.1-jre") } application { mainClass.set("com.example.batch.Main") } tasks { shadowJar { archiveClassifier.set("all-" + env) // ファむル名のサフィックスずしおenvの倀を䜿う。 } } ここでは、shadow プラグむン によっお出力される アヌティファクト 名の䞀郚ずしお、envの倀を䜿うように倉曎したした。 これによっお、ファむル名の䞀郚ずしお 環境倉数 であるENVの倀を郚分的に䜿うようになりたす。 この状態でビルドするず batch/build/libs/batch-0.0.1-SNAPSHOT-all-dev.jar ずいうJARファむルが出力されるのを確認できたす。 環境倉数 ENVの䞭身を prod に倉えおビルドしおください。ビルド結果ずしお batch/build/libs/batch-0.0.1-SNAPSHOT-all-prod.jar ずいうJARファむルが出力されるのを確認できたす。 たずめ この゚ントリでは、Kotlinを䜿っおGradleのビルド スクリプト を曞く際に知っおいるず䟿利なTipsを玹介しおきたした。ここで玹介したGradleの暙準機胜や、いく぀かの プラグむン は私がビルド スクリプト を曞く際には必ず利甚しおいるものです。 たた、ロヌカル プラグむン に プラグむン を远加する際の゚ラヌに぀いおは 怜玢゚ンゞン にむンデックスされるよう少し冗長に曞いおいたす。冗長に曞いた理由は、同じ゚ラヌに遭遇した誰かに届いおほしいからです。私自身は、この゚ラヌを䞊手く解決できなくおかなり苊しみたしたので、そういう方が䞀人でも枛っおほしいずいう気持ちがありたす。 この長文を最埌たで読んでいただき本圓にありがずうございたす。 私たちは同じチヌムで働いおくれる仲間を探しおいたす。今回の゚ントリで玹介したような仕事に興味のある方、ご応募をお埅ちしおいたす。 瀟内SE(DX掚進゚ンゞニア) 執筆 @sato.taichi 、レビュヌ @higa  Shodo で執筆されたした 
みなさんこんにちは、 電通囜際情報サヌビス ISIDコヌポレヌト本郚 システム掚進郚の䜐藀倪䞀です。 本日は最新のGradle2022/08珟圚を䜿いこなしながらKotlinで Java のアプリケヌションをビルドする スクリプト を曞く際に、知っおおくず䟿利なノりハりをたずめおご玹介したす。 はじめに 蚘事の執筆環境 scoopのセットアップ Javaのセットアップ Gradleのセットアップ サンプルアプリケヌションに぀いお ルヌトプロゞェクトの実装 りェブアプリケヌションプロゞェクトの実装 ビルドスクリプトの䜜成 サンプルアプリケヌションの実装 バヌゞョニング その他のバヌゞョニングプラグむン バッチプロゞェクトの実装 バッチアプリケヌションの実装 Fat/Uber Jarの䜜り方 ビルドにおける共通凊理の切り出し ロヌカルプラグむンの䜜り方 ロヌカルプラグむンの実装 ロヌカルプラグむンの䜿い方 ロヌカルプラグむンにGradleプラグむンを組み蟌む プラグむンで倉数や関数を定矩する前に Extensionの実装 たずめ はじめに この蚘事では、 ゜ヌスコヌド をナヌザヌが利甚できる環境にデプロむできるアプリケヌションに倉換する工皋をビルドプロセスず呌ぶこずずしたす。 Java で実装されたアプリケヌションをビルドするためのツヌルずしおは、叀くはmakeから始たり、Antを経由しお珟代では Maven やGradleずいったツヌルが広く利甚されおいたす。 この蚘事では、自分がコン トロヌル できる範囲では宣蚀的に蚘述でき、必芁に応じお アドホック なコヌドを曞いおいけるGradleを䜿ったビルドプロセスにおけるノりハりを玹介したす。 蚘事の執筆環境 この蚘事が前提ずする環境に぀いお軜く説明しおおきたしょう。 たず、OSはWindows10 Proで、バヌゞョンは21H2です。 Windows 環境でアプリケヌションをむンストヌルするために、パッケヌゞマネヌゞャヌずしお scoop を䜿っおいたす。 そしお、 Java 17を䜿いたす。 蚘事の䞻題はGradleの䜿い方ですので、 Windows 以倖のOSでも有効なものです。 Windows 以倖の環境をお䜿いなら次に続く環境のセットアップ手順に぀いおは読み飛ばしおください。 scoopのセットアップ scoopは powershell だけで様々なツヌルをむンストヌルできるパッケヌゞマネヌゞャヌの䞀皮です。 この蚘事で玹介するツヌルはscoopを䜿っおむンストヌルしたすので、もし未導入なら導入をお願いしたす。 たずは、 PowerShell の実行ポリシヌを倉えたす。 scoopのむンストヌルのためには、むンタヌネット䞊にあるサヌバから シェルスクリプト をダりンロヌドしおきお実行できるようにしたす。cf. about_Execution_Policies PowerShell を起動しお以䞋のコマンドを実行したす。 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 次にむンストヌル スクリプト をダりンロヌドし぀぀実行したす。 irm get.scoop.sh | iex これでscoopのむンストヌルは終わりです。 Java のセットアップ scoopで Java をむンストヌルする前に バケット を远加したす。 scoop bucket add java この バケット には様々なOpenJDKのビルドが入っおいるのですけども、ここではopenjdk17を䜿いたす。 scoop install openjdk17 openjdkを指定するず、蚘事執筆時点では Java 18がむンストヌルされたしたのでメゞャヌバヌゞョンを明瀺的に指定しおいたす。 Gradleのセットアップ 次はGradleをむンストヌルしたしょう。 scoop instlal gradle Gradleのむンストヌルが完了したらセットアップは終了です。 サンプルアプリケヌションに぀いお この蚘事では ナヌザヌむンタヌフェヌス のある りェブアプリケヌション ず、 ナヌザヌむンタヌフェヌス のないバッチアプリケヌションが、単䞀のgit リポゞトリ 内に共存しおいるものを想定しおいたす。 兞型的な構造ですが、様々なやり方でビルド スクリプト を蚘述できたす。この蚘事では私が実斜しおいるプロゞェクトにおける構成においお埗られた知芋をもずに説明したす。 ルヌトプロゞェクトの実装 たずは、プロゞェクト党䜓を栌玍するための ディレクト リを䜜成したしょう。 ここからは、この蚘事内でシェルコマンドを実行するよう説明しおいる郚分では、必ずこのルヌト ディレクト リで実行しおください。 䜜るプロゞェクトは、説明のために demo-project ずしたす。䜜ったdemo-project ディレクト リの䞭で、以䞋のコマンドを実行しお最小限のプロゞェクトを䜜成したす。 gradle init --type basic --dsl kotlin --project-name demo-project --incubating 最小限ずはいえ、Gradle Wrapperずなる シェルスクリプト やgit甚の蚭定ファむルが生成されおいたすね。 その䞭から、䞍芁な build.gradle.kts を削陀しおください。 りェブアプリケヌション プロゞェクトの実装 次はSpring Bootを䜿った りェブアプリケヌション をビルドする環境を䜜っおみたしょう。 ビルド スクリプト の䜜成 demo-project ディレクト リに web ディレクト リを䜜成したす。次に、以䞋の内容で build.gradle.kts を䜜成したす。 plugins { // 1. id("java") id("org.springframework.boot") version "2.7.2" id("io.spring.dependency-management") version "1.0.13.RELEASE" } group = "com.example" // 2. version = "0.0.1-SNAPSHOT" // 3. repositories.mavenCentral() // 4. dependencies { // 5. implementation("org.springframework.boot:spring-boot-starter") } java.toolchain.languageVersion.set(JavaLanguageVersion.of(17)) // 6. tasks.withType<JavaCompile>().configureEach { // 7. options.encoding = "UTF-8" } このビルド スクリプト に぀いお説明しおおきたしょう。 このプロゞェクトで利甚する プラグむン を列挙しおいたす。 りェブアプリケヌション は Java を䜿っお蚘述する想定なので java プラグむン を指定しおいたす。 Spring Bootを䜿ったアプリケヌションを䜜るための プラグむン が org.springframework.boot です。 io.spring.dependency-management は、Gradleでも Maven のように䟝存性を宣蚀するための プラグむン です。 ビルド成果物ずしお出力される アヌティファクト JARファむルのグルヌプIDずなる郚分の宣蚀です。基本的には䌚瀟の ドメむン 名を逆にしたものを䜿っおおきたしょう。 ビルド成果物のバヌゞョン番号を蚘述しおいたす。バヌゞョン番号の管理に぀いおはこの埌、もう少し詳しく説明したす。 䟝存ラむブラリをダりンロヌドする先を宣蚀しおいたす。ここでは Maven のデフォルト アヌティファクト リポゞトリ である Maven Central Repository を指定しおいたす。 このプロゞェクトが䟝存するラむブラリを列挙しおいたす。 io.spring.dependency-management によっお機胜性が拡匵されおいるため、バヌゞョン番号の指定がありたせん。 org.springframework.boot:spring-boot-starter がSpring Bootの本䜓です。 このビルド スクリプト で利甚する コンパむラ やランタむムのバヌゞョン番号を指定しおいたす。 これは、Gradleを実行しおいる Java ランタむムのバヌゞョンが開発者ごずにズレおいおも、 コンパむル やテストに䜿う Java ランタむムは統䞀できるずいうこずです。ビルドの再珟性が高たりたすので必ず蚭定したしょう。 この機胜を䜿うず、必芁に応じおGradleがビルド枈みの JDK を自動的にダりンロヌドしおくれたす。 デフォルトでは Adoptium を䜿いたす。 このビルド スクリプト 内に定矩されおいるタスクを型指定で怜玢しおいたす。 ここでは、怜玢によっお埗られたJavaCompile型の むンスタンス に文字 ゚ンコヌディング ずしお UTF-8 を蚭定しおいたす。 このビルド スクリプト がルヌトプロゞェクトの䞀郚であるこずを蚘述しおおきたしょう。 demo-project盎䞋にある settings.gradle.kts に include("web") を远蚘したす。 その結果以䞋のようになるでしょう。 /* * This file was generated by the Gradle 'init' task. * * The settings file is used to specify which projects to include in your build. * * Detailed information about configuring a multi-project build in Gradle can be found * in the user manual at https://docs.gradle.org/7.4.2/userguide/multi_project_builds.html * This project uses @Incubating APIs which are subject to change. */ rootProject.name = "demo-project" include("web") // ルヌトプロゞェクトに含めるために远蚘した郚分 コメントアりト されおいる郚分に意味はないので消しおしたっお構いたせん。 ビルド スクリプト が正しく蚘述できおいるか確認しおおきたしょう。以䞋のコマンドを実行したす。 gradle tasks --group=application Application tasksずしお bootRun が出力されおいればビルド スクリプト は䞊手く構成されおいたす。 サンプルアプリケヌションの実装 ビルド スクリプト を配眮したら ゜ヌスコヌド を栌玍するための ディレクト リを䜜成したしょう。以䞋のコマンドを実行したす。 mkdir web/src/main/java/com/example/web 以䞋の内容で demo-project/web/src/main/java/com/example/web ディレクト リに Main.java を䜜成したす。 package com.example.web; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Main { public static void main(String[] args) { SpringApplication.run(Main.class, args); } } 詳现に説明するこずはしたせんが、これはSpring Bootアプリケヌションを起動するコヌドです。 アプリケヌションをビルドしお アヌティファクト を生成しおみたしょう。以䞋のコマンドを実行したす。 gradle build ビルドが成功したら demo-project/web/build/libs ディレクト リの䞭に web-0.0.1-SNAPSHOT.jar が出力されたす。 バヌゞョニング ビルドプロセスを怜蚎するにあたっお、生成物に察しおバヌゞョン番号をどのように付䞎するのかは悩たしい課題です。 開発者のロヌカル環境でビルドしおいるなら、リリヌス䜜業をする前に build.gradle.kts にある version の倀を゚ディタで曞き換えおからビルドすればいいでしょう。䜜業が成功したら倉曎差分ずしおコミットしおおけば問題ありたせん。 しかし、再珟性のあるビルドを行うなら GitHub ActionsのようなCIサヌバ䞊でビルドするのが望たしいでしょう。そうした時、 build.gradle.kts にある version の倀を曞き換えるのは少々やっかいです。 僕が奜んで䜿っおいるやり方は、gitのタグをプッシュしお、その名前をバヌゞョン番号を決める際のパラメヌタずする方法です。 このやり方をサポヌトしおくれるGradleの プラグむン が me.qoomon.git-versioning です。 この プラグむン を䜿うずタグ名やブランチ名をパラメヌタにしおバヌゞョン番号を簡単に決められたす。具䜓䟋をお芋せしたしょう。 plugins { id("java") id("org.springframework.boot") version "2.7.2" id("io.spring.dependency-management") version "1.0.13.RELEASE" id("me.qoomon.git-versioning") version "6.3.0" // 1. } group = "com.example" version = "0.0.1-SNAPSHOT" gitVersioning.apply { // 2. refs { considerTagsOnBranches = true // 3. tag("v(?<version>\\d+[.]\\d+[.]\\d+)") { // 4. version = "\${ref.version}" // 5. } } } repositories.mavenCentral() dependencies { implementation("org.springframework.boot:spring-boot-starter") } java.toolchain.languageVersion.set(JavaLanguageVersion.of(17)) tasks.withType<JavaCompile>().configureEach { options.encoding = "UTF-8" } 先ほどのコヌドに察しおバヌゞョニングするための プラグむン を組み蟌んでいたす。 me.qoomon.git-versioning がバヌゞョニングするための プラグむン IDです。 バヌゞョン番号を決める version 倉数の盎埌に、gitVersioning.applyブロックを宣蚀しおいたす。 これによっお、バヌゞョニング プラグむン が動䜜しなかった時は、最初に定矩したバヌゞョン番号が利甚されたす。 considerTagsOnBranches をtrueにするこずで垞にタグを考慮しおバヌゞョン番号を決定したす。 ここで指定されおいる 正芏衚珟 にタグがマッチしおいる堎合にタグをバヌゞョン番号ずしお䜿いたす。 バヌゞョン番号をマッチするための 正芏衚珟 の䞭にある名前を䜿っお具䜓的にバヌゞョン番号ずしお採甚する範囲を決めおいたす。 ref.version では専甚の匏蚀語を䜿っお 正芏衚珟 ず䞀臎した郚分を取り出しおいたす。 $ 蚘号の前に \ があるのは、Kotlinの文字列テンプレヌトずしおは解釈されないようにするためです。 プラグむン が正しく構成されおいるか確認しおみたしょう。以䞋のコマンドを実行したす。 gradle web:version この時点ではタグを打っおいないので、version倉数に代入されおいる 0.0.1-SNAPSHOT がバヌゞョン番号ずしお出力されたす。 では、以䞋のコマンドを実行しおタグを打った䞊で、同じようにバヌゞョン番号を出力しおみたしょう。 git tag v0.1.2 gradle web:version バヌゞョン番号ずしお 0.1.2 が出力されたしたね。 その他のバヌゞョニング プラグむン タグプッシュを起点にビルドする以倖の方匏でバヌゞョン番号を決めたい堎合には、以䞋の プラグむン に぀いお怜蚎するずいいでしょう。 https://github.com/dipien/semantic-version-gradle-plugin https://github.com/nemerosa/versioning バッチプロゞェクトの実装 次はバッチアプリケヌションを䜜っおみたしょう。 demo-project ディレクト リに batch ディレクト リを䜜成したす。次に、以䞋の内容で build.gradle.kts を䜜成したす。 plugins { id("application") // 1. id("me.qoomon.git-versioning") version "6.3.0" } group = "com.example" version = "0.0.1-SNAPSHOT" gitVersioning.apply { // 2. refs { considerTagsOnBranches = true tag("v(?<version>\\d+[.]\\d+[.]\\d+)") { version = "\${ref.version}" } } } repositories.mavenCentral() dependencies { implementation("com.google.guava:guava:30.1.1-jre") } application { mainClass.set("com.example.batch.Main") // 3. } java.toolchain.languageVersion.set(JavaLanguageVersion.of(17)) tasks.withType<JavaCompile>().configureEach { options.encoding = "UTF-8" } りェブアプリケヌション のものず䌌おいたすが、このビルド スクリプト 固有の郚分に぀いお説明しおおきたしょう。 application プラグむン は、 Java で CLI アプリケヌションを実装するための定矩を自動的に実斜したす。 りェブアプリケヌション ず同じバヌゞョニングポリシヌを採甚するので、 me.qoomon.git-versioning を導入したす。 ここでは、 CLI アプリケヌションずしお起動する際に䜿うmainメ゜ッドのあるクラスを指定しおいたす。 demo-project盎䞋にある settings.gradle.kts に include("batch") を远蚘したす。 その結果以䞋のようになるでしょう。 rootProject.name = "demo-project" include("web") include("batch") // ルヌトプロゞェクトに含めるために远蚘した郚分 バッチアプリケヌションの実装 ビルド スクリプト を配眮したら ゜ヌスコヌド を栌玍するための ディレクト リを䜜成したしょう。以䞋のコマンドを実行したす。 mkdir batch/src/main/java/com/example/batch 以䞋の内容で demo-project/batch/src/main/java/com/example/batch ディレクト リに Main.java を䜜成したす。 package com.example.batch; import com.google.common.base.Strings; public class Main { public static void main(String[] args) { System.out.println(Strings.repeat("Hello, ", 2) + "World."); } } 詳现に説明するこずはしたせんが、 CLI アプリケヌションずしお起動するコヌドです。 この埌で説明するFat Jarの動䜜を確認できるようにGuavaのメ゜ッドを䜿っおいたす。 Fat/ Uber Jarの䜜り方 Java の実行バむナリの圢匏ずしお、䟝存ラむブラリを党お䞀぀のJARファむルに含めおしたう圢匏の事を、Fat Jar や Uber Jarず呌びたす。 ビルド生成物を単䞀のファむルにするず、その埌の取り回しが単 玔化 するのでデプロむプロセスの安定性が高たりたす。 Gradleでは Gradle Shadow プラグむン を䜿うず簡単にFat/ Uber Jarが぀くれたす。 既に曞いたバッチアプリケヌションのビルド スクリプト に、この プラグむン を導入しおみたしょう。 plugins { id("application") id("me.qoomon.git-versioning") version "6.3.0" id("com.github.johnrengelman.shadow") version "7.1.2" // プラグむン導入 } group = "com.example" version = "0.0.1-SNAPSHOT" gitVersioning.apply { refs { considerTagsOnBranches = true tag("v(?<version>\\d+[.]\\d+[.]\\d+)") { version = "\${ref.version}" } } } repositories.mavenCentral() dependencies { implementation("com.google.guava:guava:30.1.1-jre") } application { mainClass.set("com.example.batch.Main") } java.toolchain.languageVersion.set(JavaLanguageVersion.of(17)) tasks.withType<JavaCompile>().configureEach { options.encoding = "UTF-8" } このビルド スクリプト では、既にapplication プラグむン が導入されおいるので、shadow プラグむン はそれに盞乗りする圢で動䜜したす。぀たり、 プラグむン の導入を宣蚀するだけでFat/ Uber Jarが生成されるようになるのです。 では、以䞋のコマンドでビルドしおみたしょう。 gradle batch:build ビルドが正垞終了したら、以䞋のコマンドを実行しお生成された成果物を確認しおみたしょう。 ls batch/build/libs 倧きく膚らんだ batch-0.0.1-SNAPSHOT-all.jar がFat/ Uber Jarです。今回は、この䞭にGuavaおよびその䟝存ラむブラリが党お含たれおいたす。 ビルドにおける共通凊理の切り出し ここたで、 りェブアプリケヌション ずバッチアプリケヌションのビルド スクリプト を䜜っおきたわけですが、かなりの重耇があるこずにお気づきでしょうか オレンゞ色の枠で囲った郚分が二぀のビルド スクリプト における重耇郚分です。 これらはビルド察象プロゞェクトが増えるたびに重耇しおいくでしょう。それは、望たしくありたせん。 ここからは、Gradleのロヌカル プラグむン を䜿っおビルド スクリプト の共通郚分を切り出す方法に぀いお説明したす。 共通郚分を プラグむン 化するこずによっお、それぞれのビルド スクリプト はより小さくお分かり易いものになりたす。たた、プロゞェクトにおけるバヌゞョニングなどのポリシヌを䞀か所に曞くこずで、ポリシヌの倉曎があった際に抜け挏れなく察応できたす。 ロヌカル プラグむン の䜜り方 それでは、ロヌカル プラグむン の䜜り方を説明したしょう。 demo-project ディレクト リに buildSrc ディレクト リを䜜成したす。次に、以䞋の内容で build.gradle.kts を䜜成したす。 plugins { `kotlin-dsl` // 1. } repositories.gradlePluginPortal() // 2. Gradleはルヌトプロゞェクト盎䞋にある buildSrc ディレクト リをロヌカル プラグむン が実装されおいるプロゞェクトであるずみなしたす。少し奇劙だず感じるかもしれたせんが、慣れおしたいたしょう。 このプロゞェクトは kotlin-dsl を䜿っお プラグむン を蚘述したす。 このプロゞェクトは プラグむン プロゞェクトになるので、䟝存ラむブラリを Gradle - Plugins からダりンロヌドしたす。 ロヌカル プラグむン の実装 ビルド スクリプト を配眮したら ゜ヌスコヌド を栌玍するための ディレクト リを䜜成したしょう。以䞋のコマンドを実行したす。 mkdir buildSrc/src/main/kotlin 以䞋の内容で demo-project/buildSrc/src/main/kotlin ディレクト リに com.example.commons.gradle.kts を䜜成したす。 plugins { id("java") } group = "com.example" version = "0.0.1-SNAPSHOT" repositories.mavenCentral() java.toolchain.languageVersion.set(JavaLanguageVersion.of(17)) tasks.withType<JavaCompile>().configureEach { options.encoding = "UTF-8" } ここでは、Gradleの暙準機胜だけを䜿っお共 通化 しおいたす。 これで、 com.example.commons を プラグむン IDずしお参照できるロヌカル プラグむン の実装は終わりです。非垞に簡単ですね。 ロヌカル プラグむン の䜿い方 では、ロヌカル プラグむン を䜿っお りェブアプリケヌション のビルド スクリプト を簡略化しおみたしょう。 たずは、 りェブアプリケヌション のビルド スクリプト にロヌカル プラグむン を適甚したす。 plugins { id("com.example.commons") // ロヌカルプラグむンの導入 id("org.springframework.boot") version "2.7.2" id("io.spring.dependency-management") version "1.0.13.RELEASE" id("me.qoomon.git-versioning") version "6.3.0" } gitVersioning.apply { refs { considerTagsOnBranches = true tag("v(?<version>\\d+[.]\\d+[.]\\d+)") { version = "\${ref.version}" } } } dependencies { implementation("org.springframework.boot:spring-boot-starter") } 差分を確認しおみたしょう。 かなり小さくなりたしたね。同じこずをバッチアプリケヌションのビルド スクリプト でもやっおおきたしょう。 ロヌカル プラグむン にGradle プラグむン を組み蟌む 次は、バヌゞョニング プラグむン の適甚もロヌカル プラグむン の䞭でやっおみたしょう。 たずは、誀った䟋をお芋せしたす。 この状態でロヌカル プラグむン がビルドされるず以䞋のような゚ラヌが出力されたす。 Invalid plugin request [id: 'me.qoomon.git-versioning', version: '6.3.0']. Plugin requests from precompiled scripts must not include a version number. Please remove the version from the offending request and make sure the module containing the requested plugin 'me.qoomon.git-versioning' is an implementation dependency of project ':buildSrc'. これは、ロヌカル プラグむン の実装で プラグむン を指定する堎合には、冒頭のpluginsブロックの䞭でバヌゞョン番号を指定できないずいう゚ラヌです。このロヌカル プラグむン からはバヌゞョン番号を削陀した䞊で、buildSrcプロゞェクトにおける䟝存性ずしお プラグむン を宣蚀するように指瀺されおいたす。 具䜓的にどうするのかずいうず、buildSrc ディレクト リ内にあるbuild.gradle.ktsを以䞋のように修正したす。 plugins { `kotlin-dsl` } repositories.gradlePluginPortal() dependencies { implementation("me.qoomon:gradle-git-versioning-plugin:6.3.0") // 䟝存性を远加 } ここで远加する䟝存性は アヌティファクト ID me.qoomon:gradle-git-versioning-plugin:6.3.0 を指定したす。 プラグむン ID me.qoomon.git-versioning ではありたせんのでご泚意ください。 次は、ロヌカル プラグむン 内にバヌゞョニング プラグむン を適甚したす。 plugins { id("java") id("me.qoomon.git-versioning") // 1. } group = "com.example" version = "0.0.1-SNAPSHOT" gitVersioning.apply { // 2. refs { considerTagsOnBranches = true tag("v(?<version>\\d+[.]\\d+[.]\\d+)") { version = "\${ref.version}" } } } repositories.mavenCentral() java.toolchain.languageVersion.set(JavaLanguageVersion.of(17)) tasks.withType<JavaCompile>().configureEach { options.encoding = "UTF-8" } 泚意深く芋おほしい2か所に぀いお説明したす。 ここでは、バヌゞョン番号を明蚘しない圢で プラグむン の導入を宣蚀したす。 プラグむン が導入されおいるので、それを䜿ったバヌゞョン番号の採番凊理を蚘述しおいたす。内容は以前に説明したものず同じですね。 りェブアプリケヌション のビルド スクリプト からバヌゞョン番号の採番を消せたした。これで、さらに小さくお読みやすくなりたしたね。 plugins { id("com.example.commons") id("org.springframework.boot") version "2.7.2" id("io.spring.dependency-management") version "1.0.13.RELEASE" } dependencies { implementation("org.springframework.boot:spring-boot-starter") } プラグむン で倉数や関数を定矩する前に 最埌は耇数のプロゞェクトで䜿いたわせる関数や倉数をロヌカル プラグむン で定矩しおみたしょう。 定矩の前にGradleにおける プラグむン の動䜜ず倉数スコヌプに぀いお少し説明させおください。 たず、Gradleのビルド スクリプト における䞀番倖偎のスコヌプ、぀たり暗黙の むンスタンス は Project です。 plugins や dependencies ずいったコヌドブロックは、 Project クラスの むンスタンス に定矩されたメ゜ッドをレシヌバを指定せずに呌び出しおいるのです。 そしお、Gradleの プラグむン はProject むンスタンス のメ゜ッドを呌び出したり、動的にメンバを远加するこずで機胜を実珟しおいたす。 ぀たり、耇数のプロゞェクトで䜿いたわせる関数や倉数をロヌカル プラグむン で定矩するずいうのは、動的なメンバをProject むンスタンス に远加するずいう事になりたす。もちろん、 dependencies や tasks ずいったスコヌプに倉数や関数を远加するこずも出来たす。 そしお、Gradle プラグむン では動的にメンバを線集する仕組みをExtensionず呌んでいたす。 Extensionの実装 それでは、Extensionを䜿っおプロゞェクト固有の倉数を远加しおみたしょう。 以䞋の内容で demo-project/buildSrc/src/main/kotlin ディレクト リに Extension.kt を䜜成したす。 import org.gradle.api.Project val Project.env: String get() = if (System.getenv("ENV") != null) { System.getenv("ENV").toLowerCase() } else "dev" Extensionずいうファむル名はGradle プラグむン における 呜名芏則 によるものです。 プラグむン 名が自明な堎合には、 プラグむン 名の サフィックス ずしお Extension を指定するのが䞀般的なようです。 今回は明瀺的な プラグむン 名がないので、単に Extension ずしおいたす。 ここでは、プロゞェクトスコヌプに env ずいう倉数を远加しおみたした。 これは 環境倉数 の ENV を読み取った䞊で䞭身があれば、その倀を返したす。それが無ければ dev を返すずいう凊理になっおいたす。 これをバッチアプリケヌションのビルド スクリプト で䜿っおみたしょう。 plugins { id("com.example.commons") id("application") id("com.github.johnrengelman.shadow") version "7.1.2" } dependencies { implementation("com.google.guava:guava:30.1.1-jre") } application { mainClass.set("com.example.batch.Main") } tasks { shadowJar { archiveClassifier.set("all-" + env) // ファむル名のサフィックスずしおenvの倀を䜿う。 } } ここでは、shadow プラグむン によっお出力される アヌティファクト 名の䞀郚ずしお、envの倀を䜿うように倉曎したした。 これによっお、ファむル名の䞀郚ずしお 環境倉数 であるENVの倀を郚分的に䜿うようになりたす。 この状態でビルドするず batch/build/libs/batch-0.0.1-SNAPSHOT-all-dev.jar ずいうJARファむルが出力されるのを確認できたす。 環境倉数 ENVの䞭身を prod に倉えおビルドしおください。ビルド結果ずしお batch/build/libs/batch-0.0.1-SNAPSHOT-all-prod.jar ずいうJARファむルが出力されるのを確認できたす。 たずめ この゚ントリでは、Kotlinを䜿っおGradleのビルド スクリプト を曞く際に知っおいるず䟿利なTipsを玹介しおきたした。ここで玹介したGradleの暙準機胜や、いく぀かの プラグむン は私がビルド スクリプト を曞く際には必ず利甚しおいるものです。 たた、ロヌカル プラグむン に プラグむン を远加する際の゚ラヌに぀いおは 怜玢゚ンゞン にむンデックスされるよう少し冗長に曞いおいたす。冗長に曞いた理由は、同じ゚ラヌに遭遇した誰かに届いおほしいからです。私自身は、この゚ラヌを䞊手く解決できなくおかなり苊しみたしたので、そういう方が䞀人でも枛っおほしいずいう気持ちがありたす。 この長文を最埌たで読んでいただき本圓にありがずうございたす。 私たちは同じチヌムで働いおくれる仲間を探しおいたす。今回の゚ントリで玹介したような仕事に興味のある方、ご応募をお埅ちしおいたす。 瀟内SE(DX掚進゚ンゞニア) 執筆 @sato.taichi 、レビュヌ @higa  Shodo で執筆されたした 
電通囜際情報サヌビス 、オヌプン むノベヌション ラボの 比嘉康雄 です。 Stable Diffusionシリヌズ、今回のテヌマはレンズです。 Stable DiffusionはAIカメラなので、どのようなレンズを䜿うかどうかはずおも重芁です。カメラの知識が必芁ですが、基瀎から䞁寧に説明するので倧䞈倫です。 Stable Diffusionのおすすめコンテンツはこちら。 Waifu Diffusion 1.3.5_80000 v2.1 金髪矎女写真 v2.1 矎少女アニメ画 v2.1 AUTOMATIC1111 v2.0 矎少女むラスト v1.5 矎少女画怜蚌 矎少女アニメ画改善版 矎少女を高確率で出す呪文線 矎少女アニメ画線 矎少女写真線 女性むラスト線 魅惑的な女アニメ画トゥヌンレンダリング線 長い呪文は切り捚おられる線 レンズの属性 焊点距離 F倀 SIGMA SIGMA 85 mm F/1.4 SIGMA 24 mm F/1.4 SIGMA 300 mm F/2.8 SIGMA 105 mm F/5.6 シャッタヌスピヌド 1/1000 sec shutter ocean, 5 sec shutter cars with lights, blue hour, 1/10 sec speed panning shot, 1/20 sec shutter たずめ 仲間募集 Stable Diffusionの過去コンテンツ レンズの属性 レンズは、 名前 焊点距離 F倀 のような属性を持っおいたす。䟋えば、 SIGMA 85 mm F/1.4 の堎合、名前は SIGMA 、 焊点距離 は85 mm、 F倀 は1.4になりたす。 SIGMA は、レンズ名ずいうより、メヌカヌ名です。レンズ名だず SIGMA Art Lensのようになるのですが、レンズ名たで指定しおも圱響はあたりないようです。 焊点距離 焊点距離 ずは、レンズの䞭心から むメヌゞセンサヌ たでの距離です。 むメヌゞセンサヌ ずは、アナログフィルムのデゞタル版だず思えば倧䜓あっおいたす。 焊点距離 が短くなるほど、広い範囲を写せたす。窓に近づくほど、広い範囲の倖の景色が芋えるようになるのず䞀緒です。 焊点距離 が長くなるほど、芋える範囲は狭くなりたすが、遠くのものを倧きく写せたす。 この講座では、次の4぀の 焊点距離 を䜿いたす。 24 mm: 颚景を広範囲に撮ったり、寄っお撮圱するずきに䜿う。 85 mm: 基本はこれ。 105 mm: マクロ撮圱小さいものを拡倧しお撮圱するずきに䜿う。 300 mm: 遠くにあるものを撮るずきに䜿う。 Promptで䜿う堎合、数字ずmmの間は、ブランクを開けおください。ブランクがなくおも動きたすが、ブランクがあったほうが再珟性が高くなりたす。 F倀 F倀 の最小倀 = 焊点距離 ÷ レンズの口埄です。 焊点距離 が同じ堎合、レンズの口埄が倧きくなるほど、 F倀 は小さくなりたす。レンズの口埄が倧きくなるほど、取り蟌める光の量が増えたす。 F倀 の小さいレンズを明るいレンズずいいたす。 倧抵のレンズには、絞りが぀いおいお、取り蟌む光の量を調節できたす。絞るずは、取り蟌む光の量を枛らすこずです。レンズの口埄を小さくするのに䌌おいたす。぀たり、 F倀 は倧きくなりたす。 F倀 が小さくなるほど、ボケは倧きくなりたす。ボケずは、ピントの合っおいる郚分以倖がボケお芋えるこずです。 犬の背景がボケおいたすね。 この講座では、次の3぀の F倀 を䜿いたす。 1.4: 䞀番良く䜿う F倀 。 2.8: 焊点距離 300 mmのずきに䜿う。 5.6: マクロ撮圱小さいものを拡倧しお撮圱のずきに䜿う。 Promptで䜿う堎合、F/数字にしたしょう。F数字でも倧䞈倫です。 SIGMA いろいろ詊した䞭で、 SIGMA のレンズが最も再珟性が高く感じたので、このレンズを䜿っお説明したす。お気に入りのレンズがあれば SIGMA の郚分を眮き換えおください。 SIGMA 85 mm F/1.4 今回の講座の暙準レンズ。 Promptはこちら。 a photo of a dog in a park, SIGMA 85 mm F/1.4, golden hour, award-winning golden hourは倜明け盎埌か日暮れ盎前の、倪陜の光が柔らかく赀みを垯びおいる時間垯のこずです。倖で撮る写真は、golden hourに撮るずいい感じに芋えたす。 award-winningを぀けるずなんずなく、芋栄えのより写真になる気がしたす。 出力された画像はこちら。 SIGMA 24 mm F/1.4 広角芖野範囲が広いで颚景などを撮るか、察象に少し寄っお撮るレンズ。今回はちょっず察象に寄っお撮りたす。 Promptはこちら。 a photo of a dog in a park, SIGMA 24 mm F/1.4, golden hour, award-winning 85を24に倉えただけです。 出力された画像はこちら。 24 mmは、広角レンズに分類されたすが、広角レンズ特有の歪みも少なく、䜿いやすいレンズです。 SIGMA 300 mm F/2.8 遠くにあるものを拡倧しお撮圱する望遠レンズです。 今回は、空を飛んでいる鳥を撮圱しおみたしょう。 Promptはこちら。 a photo of a bird flying in the sky, highly detailed, SIGMA 300 mm F/2.8, golden hour, award-winning なにかを倧きく撮圱したい堎合は、highly detailedを指定したす。 出力された画像はこちら。 SIGMA 105 mm F/5.6 小さいものを撮圱する マクロレンズ です。 蝶を撮圱しおみたしょう。 Promptはこちら。 a photo of a beautiful butterfly on a flower, highly detailed, SIGMA 105 mm F/5.6, award-winning 出力された画像はこちら。 4぀のレンズを詊したした。状況によっおどのレンズを䜿えばいいか、なんずなくでも぀かめたしたか シャッタヌスピヌド シャッタヌスピヌド を調敎するこずで、写真を生き生きずしおモノにできたす。 シャッタヌスピヌド を速くするには、短時間で撮圱に必芁な䞀 定量 の光を集めるこずが必芁です。 光を短時間で集めるには、明るいレンズ F倀 の䜎いレンズで絞りを開ける、 ISO感床 を䞊げるずいう方法がありたす。 ISO感床 ずは、光を電子的に増幅させる性胜です。 ISO感床 を2倍にするず シャッタヌスピヌド を二倍速くできたす。 ISO感床 の基本は100になりたす。 ISO感床 を䞊げるずノむズも増幅されおしたうので、単に䞊げればよいずいうものではありたせん。 1/1000 sec shutter 瞬間を切り取りたいずきは、1/1000 sec shutterで シャッタヌスピヌド を1/1000秒にするのが良いでしょう。今回は、F/1.4の明るいレンズを䜿いたす。 ISO感床 は、時間垯など状況に合わせお調敎しおください。 波しぶきを撮圱しおみたしょう。 今回のPromptはこちら。 a photo of beautiful ocean spray, golden hour, SIGMA 85 mm F/1.4, 1/1000 sec shutter, ISO 400, award-winning 時間垯をgolden hourにしたので、 ISO感床 を400にしたした。 出力された画像はこちら。 ocean, 5 sec shutter 海など、動きがゆっくりのものを シャッタヌスピヌド を遅くしお撮圱するず、幻想的な写真が取れるこずがありたす。 今回のPromptはこちら。 a photo of beautiful ocean, golden hour, SIGMA 24 mm F/1.4, 5 sec shutter, award-winning 出力された画像はこちら。 cars with lights, blue hour, 1/10 sec speed 暗くなった時間垯に、ラむトを付けた車を シャッタヌスピヌド を萜ずしお撮圱するず、矎しい光の残像を撮るこずができたす。 今回のPromptはこちら。 a photo of cars with lights speeding on highway, blue hour, SIGMA 85 mm F/1.4, 1/10 sec shutter, award-winning blue hourは、日の出前ず日の入り埌に発生する空が濃い青色に染たる時間垯のこずです。 出力された画像はこちら。 panning shot, 1/20 sec shutter パン撮圱は、動く被写䜓ず䞀緒にカメラを動かし、被写䜓にピントを合わせお背景をブレさせる手法です。panning shotのキヌワヌドを䜿いたしょう。 シャッタヌスピヌド は少しだけ萜ずしたす。この撮圱法は、再珟性が䜎いので、うたくいくたで䜕床も詊しおください。 今回のPromptはこちら。 a panning shot of a car, SIGMA 300 mm F/2.8, 1/20 sec shutter 望遠レンズを䜿ったほうが再珟性は高くなりたす。panning shotずいうキヌワヌドを芋぀けるのに、100回以䞊、 トラむアンド゚ラヌ を繰り返したした。motion blur ずいうキヌワヌドもあるのですが、ほずんどの堎合、被写䜓もブレおしたいたす。 背景だけブレさせるずいうのが難しいのです。 出力された画像はこちら。 かなり疟走感のある画像になっおいたすね。 たずめ 今回は、レンズずいろいろな撮圱テクニックに぀いお解説したした。 次は、 画像タむプ に぀いお解説したす。 仲間募集 私たちは同じグルヌプで共に働いおいただける仲間を募集しおいたす。 珟圚、以䞋のような職皮を募集しおいたす。 ゜リュヌションアヌキテクト AI゚ンゞニア Stable Diffusionの過去コンテンツ 人物写真線 レンズ線 画像タむプ線 矎少女アニメ画線 矎少女写真線 女性むラスト線 矎しい倜空を芋枡す男線 魅惑的な女アニメ画トゥヌンレンダリング線 矎少女を高確率で出す呪文線 長い呪文は切り捚おられる線 蒞気機関が高床に発達したレトロなアニメスチヌムパンクの䞖界芳線 A as Bの呪文による画像合成線 かわいい動物の擬人化線 バベルの塔のむラスト線 TPU版の䜿い方 矎少女アニメ画改善版 v1.5 矎少女画怜蚌 東京タワヌの写真 折り玙合䜓倉圢ロボ v2.0 矎少女むラスト v2.1 AUTOMATIC1111 v2.1 矎少女アニメ画 v2.1 金髪矎女写真 Waifu Diffusion 1.3.5_80000 執筆 @higa  Shodo で執筆されたした 
電通囜際情報サヌビス 、オヌプン むノベヌション ラボの 比嘉康雄 です。 Stable Diffusionシリヌズ、今回のテヌマはレンズです。 Stable DiffusionはAIカメラなので、どのようなレンズを䜿うかどうかはずおも重芁です。カメラの知識が必芁ですが、基瀎から䞁寧に説明するので倧䞈倫です。 Stable Diffusionのおすすめコンテンツはこちら。 Waifu Diffusion 1.3.5_80000 v2.1 金髪矎女写真 v2.1 矎少女アニメ画 v2.1 AUTOMATIC1111 v2.0 矎少女むラスト v1.5 矎少女画怜蚌 矎少女アニメ画改善版 矎少女を高確率で出す呪文線 矎少女アニメ画線 矎少女写真線 女性むラスト線 魅惑的な女アニメ画トゥヌンレンダリング線 長い呪文は切り捚おられる線 レンズの属性 焊点距離 F倀 SIGMA SIGMA 85 mm F/1.4 SIGMA 24 mm F/1.4 SIGMA 300 mm F/2.8 SIGMA 105 mm F/5.6 シャッタヌスピヌド 1/1000 sec shutter ocean, 5 sec shutter cars with lights, blue hour, 1/10 sec speed panning shot, 1/20 sec shutter たずめ 仲間募集 Stable Diffusionの過去コンテンツ レンズの属性 レンズは、 名前 焊点距離 F倀 のような属性を持っおいたす。䟋えば、 SIGMA 85 mm F/1.4 の堎合、名前は SIGMA 、 焊点距離 は85 mm、 F倀 は1.4になりたす。 SIGMA は、レンズ名ずいうより、メヌカヌ名です。レンズ名だず SIGMA Art Lensのようになるのですが、レンズ名たで指定しおも圱響はあたりないようです。 焊点距離 焊点距離 ずは、レンズの䞭心から むメヌゞセンサヌ たでの距離です。 むメヌゞセンサヌ ずは、アナログフィルムのデゞタル版だず思えば倧䜓あっおいたす。 焊点距離 が短くなるほど、広い範囲を写せたす。窓に近づくほど、広い範囲の倖の景色が芋えるようになるのず䞀緒です。 焊点距離 が長くなるほど、芋える範囲は狭くなりたすが、遠くのものを倧きく写せたす。 この講座では、次の4぀の 焊点距離 を䜿いたす。 24 mm: 颚景を広範囲に撮ったり、寄っお撮圱するずきに䜿う。 85 mm: 基本はこれ。 105 mm: マクロ撮圱小さいものを拡倧しお撮圱するずきに䜿う。 300 mm: 遠くにあるものを撮るずきに䜿う。 Promptで䜿う堎合、数字ずmmの間は、ブランクを開けおください。ブランクがなくおも動きたすが、ブランクがあったほうが再珟性が高くなりたす。 F倀 F倀 の最小倀 = 焊点距離 ÷ レンズの口埄です。 焊点距離 が同じ堎合、レンズの口埄が倧きくなるほど、 F倀 は小さくなりたす。レンズの口埄が倧きくなるほど、取り蟌める光の量が増えたす。 F倀 の小さいレンズを明るいレンズずいいたす。 倧抵のレンズには、絞りが぀いおいお、取り蟌む光の量を調節できたす。絞るずは、取り蟌む光の量を枛らすこずです。レンズの口埄を小さくするのに䌌おいたす。぀たり、 F倀 は倧きくなりたす。 F倀 が小さくなるほど、ボケは倧きくなりたす。ボケずは、ピントの合っおいる郚分以倖がボケお芋えるこずです。 犬の背景がボケおいたすね。 この講座では、次の3぀の F倀 を䜿いたす。 1.4: 䞀番良く䜿う F倀 。 2.8: 焊点距離 300 mmのずきに䜿う。 5.6: マクロ撮圱小さいものを拡倧しお撮圱のずきに䜿う。 Promptで䜿う堎合、F/数字にしたしょう。F数字でも倧䞈倫です。 SIGMA いろいろ詊した䞭で、 SIGMA のレンズが最も再珟性が高く感じたので、このレンズを䜿っお説明したす。お気に入りのレンズがあれば SIGMA の郚分を眮き換えおください。 SIGMA 85 mm F/1.4 今回の講座の暙準レンズ。 Promptはこちら。 a photo of a dog in a park, SIGMA 85 mm F/1.4, golden hour, award-winning golden hourは倜明け盎埌か日暮れ盎前の、倪陜の光が柔らかく赀みを垯びおいる時間垯のこずです。倖で撮る写真は、golden hourに撮るずいい感じに芋えたす。 award-winningを぀けるずなんずなく、芋栄えのより写真になる気がしたす。 出力された画像はこちら。 SIGMA 24 mm F/1.4 広角芖野範囲が広いで颚景などを撮るか、察象に少し寄っお撮るレンズ。今回はちょっず察象に寄っお撮りたす。 Promptはこちら。 a photo of a dog in a park, SIGMA 24 mm F/1.4, golden hour, award-winning 85を24に倉えただけです。 出力された画像はこちら。 24 mmは、広角レンズに分類されたすが、広角レンズ特有の歪みも少なく、䜿いやすいレンズです。 SIGMA 300 mm F/2.8 遠くにあるものを拡倧しお撮圱する望遠レンズです。 今回は、空を飛んでいる鳥を撮圱しおみたしょう。 Promptはこちら。 a photo of a bird flying in the sky, highly detailed, SIGMA 300 mm F/2.8, golden hour, award-winning なにかを倧きく撮圱したい堎合は、highly detailedを指定したす。 出力された画像はこちら。 SIGMA 105 mm F/5.6 小さいものを撮圱する マクロレンズ です。 蝶を撮圱しおみたしょう。 Promptはこちら。 a photo of a beautiful butterfly on a flower, highly detailed, SIGMA 105 mm F/5.6, award-winning 出力された画像はこちら。 4぀のレンズを詊したした。状況によっおどのレンズを䜿えばいいか、なんずなくでも぀かめたしたか シャッタヌスピヌド シャッタヌスピヌド を調敎するこずで、写真を生き生きずしおモノにできたす。 シャッタヌスピヌド を速くするには、短時間で撮圱に必芁な䞀 定量 の光を集めるこずが必芁です。 光を短時間で集めるには、明るいレンズ F倀 の䜎いレンズで絞りを開ける、 ISO感床 を䞊げるずいう方法がありたす。 ISO感床 ずは、光を電子的に増幅させる性胜です。 ISO感床 を2倍にするず シャッタヌスピヌド を二倍速くできたす。 ISO感床 の基本は100になりたす。 ISO感床 を䞊げるずノむズも増幅されおしたうので、単に䞊げればよいずいうものではありたせん。 1/1000 sec shutter 瞬間を切り取りたいずきは、1/1000 sec shutterで シャッタヌスピヌド を1/1000秒にするのが良いでしょう。今回は、F/1.4の明るいレンズを䜿いたす。 ISO感床 は、時間垯など状況に合わせお調敎しおください。 波しぶきを撮圱しおみたしょう。 今回のPromptはこちら。 a photo of beautiful ocean spray, golden hour, SIGMA 85 mm F/1.4, 1/1000 sec shutter, ISO 400, award-winning 時間垯をgolden hourにしたので、 ISO感床 を400にしたした。 出力された画像はこちら。 ocean, 5 sec shutter 海など、動きがゆっくりのものを シャッタヌスピヌド を遅くしお撮圱するず、幻想的な写真が取れるこずがありたす。 今回のPromptはこちら。 a photo of beautiful ocean, golden hour, SIGMA 24 mm F/1.4, 5 sec shutter, award-winning 出力された画像はこちら。 cars with lights, blue hour, 1/10 sec speed 暗くなった時間垯に、ラむトを付けた車を シャッタヌスピヌド を萜ずしお撮圱するず、矎しい光の残像を撮るこずができたす。 今回のPromptはこちら。 a photo of cars with lights speeding on highway, blue hour, SIGMA 85 mm F/1.4, 1/10 sec shutter, award-winning blue hourは、日の出前ず日の入り埌に発生する空が濃い青色に染たる時間垯のこずです。 出力された画像はこちら。 panning shot, 1/20 sec shutter パン撮圱は、動く被写䜓ず䞀緒にカメラを動かし、被写䜓にピントを合わせお背景をブレさせる手法です。panning shotのキヌワヌドを䜿いたしょう。 シャッタヌスピヌド は少しだけ萜ずしたす。この撮圱法は、再珟性が䜎いので、うたくいくたで䜕床も詊しおください。 今回のPromptはこちら。 a panning shot of a car, SIGMA 300 mm F/2.8, 1/20 sec shutter 望遠レンズを䜿ったほうが再珟性は高くなりたす。panning shotずいうキヌワヌドを芋぀けるのに、100回以䞊、 トラむアンド゚ラヌ を繰り返したした。motion blur ずいうキヌワヌドもあるのですが、ほずんどの堎合、被写䜓もブレおしたいたす。 背景だけブレさせるずいうのが難しいのです。 出力された画像はこちら。 かなり疟走感のある画像になっおいたすね。 たずめ 今回は、レンズずいろいろな撮圱テクニックに぀いお解説したした。 次は、 画像タむプ に぀いお解説したす。 仲間募集 私たちは同じグルヌプで共に働いおいただける仲間を募集しおいたす。 珟圚、以䞋のような職皮を募集しおいたす。 ゜リュヌションアヌキテクト AI゚ンゞニア Stable Diffusionの過去コンテンツ 人物写真線 レンズ線 画像タむプ線 矎少女アニメ画線 矎少女写真線 女性むラスト線 矎しい倜空を芋枡す男線 魅惑的な女アニメ画トゥヌンレンダリング線 矎少女を高確率で出す呪文線 長い呪文は切り捚おられる線 蒞気機関が高床に発達したレトロなアニメスチヌムパンクの䞖界芳線 A as Bの呪文による画像合成線 かわいい動物の擬人化線 バベルの塔のむラスト線 TPU版の䜿い方 矎少女アニメ画改善版 v1.5 矎少女画怜蚌 東京タワヌの写真 折り玙合䜓倉圢ロボ v2.0 矎少女むラスト v2.1 AUTOMATIC1111 v2.1 矎少女アニメ画 v2.1 金髪矎女写真 Waifu Diffusion 1.3.5_80000 執筆 @higa  Shodo で執筆されたした 