[AI画像生成ノウハウ5]diffusersで画像生成する際に使えるテクニック
画像名にタイムスタンプを使う
画像を生成し、画像名にタイムスタンプを使って保存するコードは以下の通りです。
from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_single_file("./AnythingXL_v50.safetensors")
prompt = "(masterpiece:1.3,best quality:1.3,ultra-detailed:1.3),girl"
negative_prompt = "bad anatomy,low quality,normal quality,ugly,lowers,worst quality,ugly,jpeg artifacts,error"
# 画像の生成と保存
image = pipe(
prompt,
width=512,
height=512,
negative_prompt=negative_prompt,
guidance_scale=6,
num_inference_steps=20,
).images[0]
#タイムスタンプを画像名に付ける
import datetime
timestamp = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
image.save(f"./outputImages/{timestamp}.png")
画像名にタイムスタンプを使うメリットは、作成した画像のファイル名が被らないので、生成の度にファイル名を操作する手間を省けることです。
ネガティブプロンプトを指定しない
モデルや使うツールによっては、ネガティブプロンプト無しでも良い画像を作れるように調整されてることもあります。
ですから一生懸命にネガティブプロンプトを弄ってもなかなか上手くいかない時は、ネガティブプロンプトの指定を外してみましょう。
案外うまくいくかもしれません
for文を使って長時間放置
from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_single_file("./AnythingXL_v50.safetensors")
prompt = "(masterpiece:1.3,best quality:1.3,ultra-detailed:1.3),girl"
negative_prompt = "bad anatomy,low quality,normal quality,ugly,lowers,worst quality,ugly,jpeg artifacts,error"
# 何度も画像の生成と保存
for i in range(10000):
image = pipe(
prompt,
width=512,
height=512,
negative_prompt=negative_prompt,
guidance_scale=6,
num_inference_steps=20,
).images[0]
#タイムスタンプを画像名に付ける
import datetime
timestamp = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
image.save(f"./outputImages/{timestamp}.png")
このように、for文で何度も画像生成すれば長時間放置できるので、生成ガチャがしやすいです。
完了したらベル音で通知
画像を生成したらベル音を鳴らして通知すると分かりやすいです。
pythonでベル音を鳴らすコードは以下の通りです。
print("\007")
これでベル音が鳴ります。
実はベル音は文字コードに割り当てられてるんですね。
ですからこのようなコードで実行できるのです。
まとめ
いかがだったでしょうか?
皆さんが画像生成をより快適に楽しめるようになることを願っています。
ではまた!