درود بر شما و امیدوارم که حالتون خوب باشه.
در حدود یک سال اخیر، مفهوم «متن به تصویر» تا حد زیادی مردم رو سر کار گذاشته 😁 و به یکی از موضوعات داغ دنیای هوش مصنوعی تبدیل شده. همچنین از طرفی، برای بسیاری از مردم هم به یک سرگرمی اعتیادآور تبدیل شده و بعضیها هم حتی به عنوان یک فرصت بهش نگاه کردند و آثاری که با این پلتفرمها تولید میکنند رو در قالب آثار چاپی یا NFT به فروش میرسونند.
یکی از پلتفرمهای مطرح این حووزه قطع به یقین Midjourney ئه که البته، من ازش بدم میاد
چرا؟ به چند دلیل. به دلیل این که وقتی مدل ارجینالم رو سعی داشتم مارکت کنم کلی بین ایرانیها هم معروف شد و کارم رو سخت کرد (حسود هم خودتونید
) و هم البته به دلایلی که به این انجمن مربوط میشه! آزاد نیست!
و همین آزاد نبودنش چندتا مشکل به همراه آورده. برای استفاده از میدجرنی، شما باید عضو سرور دیسکوردشون بشید (و هیچوقت نفهمیدم چرا باید یک نرمافزار ثالث نصب کنیم صرفا برای استفاده از یک موتور هوش مصنوعی) و مدتی هم در صف انتظار بمونید تا استفادهش کنید.
بعد از این، شما اگر بخواهید اثر تولیدشده توسط این موتور رو بفروشید، باید پول به پلتفرم بدید و اگر هم NFT بکنید، سهمی از NFT عاید خود پلتفرم میشه. در واقع، شما تقریبا هیچ کنترلی روی این قضیه ندارید!
و اما حالا OpenJourney چیه و چی کار میکنه؟خب چند وقت پیش مدل آزادی به اسم
Stable Diffusion منتشر شد، این مدل بعدها یک سری امکانات فراهم آورد مثل این که شما میتونید با دادههای خودتون، آموزشش بدید و باهاش کلی کار خفن کنید. نتیجه؟ ما هم اومدیم روی دیتای Midjourney آموزشش دادیم (حداقل خوبی میدجرنی اینه که میذاره به گالری آثارش دسترسی داشته باشیم 😂) و همین شد دلیل تولد OpenJourney که الان داره معرفی میشه
اثر تولید شده (نمونه)کاربردهای OpenJourney چیه؟خب، از اونجایی که این پروژه، یک تولیدکننده محتوا به کمک هوش مصنوعیه، به شما کمک میکنه تا خلاقیتتون (که ماشالله همهتون هم واقعا خدایی میکنید در خلاقیت) رو به آثار هنری تبدیل کنید. پس اگر شما صرفا دوست دارید نقاشی تولید کنید، برای شما گزینه خوبیه.
حالا اگر کارتون ربطی به هنر داشته باشه چی؟ این هم سادهست! فقط کافیه اونجایی که به آرت نیاز دارید رو بعنوان ورودی، به اوپنجرنی بدید. برای مثال، این یک نمونه طراحی داخلیه:
و طبیعیه که این قضیه رو میشه به باقی رشتههای هنری و طراحی و ... هم بسط داد
چطور میشه از Open Journey استفاده کرد؟برای استفاده از OpenJourney روی سیستم شخصیتون، نیاز به یک کامپیوتر با GPU ساخت NVIDIA و ساپورت CUDA دارید (یعنی الزاما NVIDIA بودن کافی نیست). از لحاظ نرمافزاری، یکم پیچیدگی داره، که اون هم توضیح میدم.
اول از همه، لازمه که یک حساب کاربری روی سایت
HuggingFace بسازید. چرا که نیاز دارید به بخش Settings برید و از اونجا یک Token بگیرید (هنوز تست نکردیم که بدون توکن هم میشه استفاده کرد یا خیر، چرا که در بسیاری مواردی که توکن الزامیه، شما یک License Agreement در این وبسایت باید قبول کنید و توکن فقط اون موضوع رو تصدیق میکنه، در حالی که ما هیچ Agreement ای برای شما نداریم).
خب، اولین چیزی که لازمه نصب کنید، بستهایه به نام pytorch که حدود ۲ گیگابایت دانلود داره:
pip3 install torch torchvision torchaudio
پس از این که pytorch نصب شد، این کتابخونهها رو نصب کنید:
pip install diffusers transformers ftfy scipy accelerate
این کتابخونهها اونقدری حجیم نیستند و به راحتی نصب میشن. اگر اشتباه نکنم scipy ممکنه همراه pytorch نصب بشه اصلا! پس نگران نباشید و نصب رو ادامه بدید
بعد از این که اینجا نصب انجام شد، دستور زیر رو در ترمینال اجرا کنید:
huggingface-cli login
و توکنی که از huggingface گرفتید رو وارد کنید. این توکن برای پروژههای بعدی شما هم ممکنه به درد بخوره. حالا کافیه یک کد پایتون به اسم openjourney.py باز کنید و اینها رو واردش کنید:
import torch
from torch import autocast
from diffusers.models import AutoencoderKL
from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_pretrained("openjourney/openjourney", use_auth_token=True)
pipe = pipe.to("cuda")
prompt = "painting of a building in a stunning landscape"
prompt = f"mdjrny-v4 style {prompt}"
with autocast("cuda"):
image = pipe(prompt=prompt, num_inference_steps=100, width=512, height=512, guidance_scale=15).images[0]
image.save("image.png")
و سپس کد رو اجرا کنید! بعد از اجرای این کد، یک image.png خواهید داشت که در اون، تصویر تولیدشده قرار گرفته.
این هم اضافه کنم اینجا که اگر ارور NSFW دریافت کردید، میتونید به این شکل، بیایید و Safety Check رو غیرفعال کنید:
def dummy(images, **kwargs):
return images, False
pipe.safety_checker = dummy
این تابع رو کافیه دقیقا پس از pipe.to("cuda") اضافه کنید.
وبسایت OpenJourney مدل در HuggingFace پ.ن : امیدوارم این تاپیک حاشیهساز نباشه، چون ظاهرا هرکاری از سمت شخص من انجام میشه، حاشیه تشخیص داده شده تا الان
پ.ن.ن: این پروژه، همونطور که مستحضرید، تماما آزاده و حتی در مرحله تولید هم از نرمافزار و پلتفرم غیرآزادی براش استفاده نشده. گرچه پروانه نشرش کمی متفاوت از پروانههای روتینه که اون هم احتمالا به زودی، اصلاح بشه.