Šiame vadove mes sukursime interaktyvią „Tex-to-Image“ generatoriaus programą, pasiekiamą per „Google Colab“, ir viešą nuorodą, naudodami „Hugging Face“ difuzorių biblioteką ir Gradio. Sužinosite, kaip paprastus teksto raginimus paversti išsamiais vaizdais, pasinaudojant moderniausiu stabilios difuzijos modeliu ir GPU pagreičiu. Mes eisime nustatydami aplinką, diegsime priklausomybes, talpiname modelį ir sukursime intuityvią programos sąsają, leidžiančią realaus laiko parametrų koregavimus.
!pip install diffusers transformers accelerate gradio
Pirmiausia mes įdiegiame keturis būtiniausius „Python“ paketus, naudodami PIP. Difuzoriai teikia įrankius, skirtus dirbti su difuzijos modeliais, „Transformeriai“ siūlo išankstinius įvairių užduočių modelius, pagreitins optimizuoti skirtingų aparatūros sąrankų našumą, o „Gradio“ leidžia sukurti interaktyvias mašinų mokymosi sąsajas. Šios bibliotekos sudaro mūsų „Tex-to-Image“ kartos demonstracinę versiją „Google Colab“. Nustatykite vykdymo laiką į GPU.
import torch
from diffusers import StableDiffusionPipeline
import gradio as gr
# Global variable to cache the pipeline
pipe = None
Ne, mes importuojame būtinas bibliotekas: Tensoro skaičiavimų ir GPU pagreičio žibintuvėlis, „Setamediffusifusionpeline“ iš difuzorių bibliotekos, skirtos įkelti ir paleisti stabilią difuzijos modelį, ir „Gradio“ interaktyvių demonstracinių versijų kūrimui. Be to, visuotinis kintamojo vamzdis yra inicijuotas į nieką, kad būtų galima talpinti įkeltą modelio vamzdyną vėliau, o tai padeda išvengti kiekvieno išvados skambučio modelio perkrovimo.
print("CUDA available:", torch.cuda.is_available())
Aukščiau pateiktoje kodo eilutėje nurodoma, ar yra CUDA valdomas GPU. Jis naudoja „Pytorch“ torch.cuda.is_avable () funkcija grąžina teisingą, jei aptinkamas GPU ir paruoštas skaičiavimams ir klaidingai kitaip, padeda užtikrinti, kad jūsų kodas galėtų panaudoti GPU pagreitį.
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16
)
pipe = pipe.to("cuda")
Aukščiau pateiktas kodo fragmentas įkelia stabilią difuzijos vamzdyną, naudodamas iš anksto pateiktą modelį iš „Runwayml/Stable-Diffusion-V1-5“. Jis nustato savo duomenų tipą į 16 bitų plūduriuojantį tašką („Torch.float16“), kad būtų optimizuotas atminties naudojimas ir našumas. Tada jis perkelia visą vamzdyną į GPU („CUDA“), kad padidintų aparatūros pagreitį greitesniam vaizdų generavimui.
def generate_sd_image(prompt, num_inference_steps=50, guidance_scale=7.5):
"""
Generate an image from a text prompt using Stable Diffusion.
Args:
prompt (str): Text prompt to guide image generation.
num_inference_steps (int): Number of denoising steps (more steps can improve quality).
guidance_scale (float): Controls how strongly the prompt is followed.
Returns:
PIL.Image: The generated image.
"""
global pipe
if pipe is None:
print("Loading Stable Diffusion model... (this may take a while)")
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16,
revision="fp16"
)
pipe = pipe.to("cuda")
# Use autocast for faster inference on GPU
with torch.autocast("cuda"):
image = pipe(prompt, num_inference_steps=num_inference_steps, guidance_scale=guidance_scale).images(0)
return image
Viršuje funkcija, generate_sd_image, paima teksto raginimą kartu su išvadų žingsnių ir rekomendacijų skalės parametrais, kad būtų sukurtas vaizdas naudojant stabilią difuziją. Tai patikrina, ar modelio vamzdynas jau yra įkeltas į pasaulinį vamzdžių kintamąjį; Jei ne, jis įkelia ir talpina modelį su pusiau tikslu (FP16) ir perkelia jį į GPU. Tada jis naudoja „Torch.Autocast“, kad būtų galima efektyviai nustatyti mišrų tikslumą ir grąžina sugeneruotą vaizdą.
# Define the Gradio interface
demo = gr.Interface(
fn=generate_sd_image,
inputs=(
gr.Textbox(lines=2, placeholder="Enter your prompt here...", label="Text Prompt"),
gr.Slider(minimum=10, maximum=100, step=5, value=50, label="Inference Steps"),
gr.Slider(minimum=1, maximum=20, step=0.5, value=7.5, label="Guidance Scale")
),
outputs=gr.Image(type="pil", label="Generated Image"),
title="Stable Diffusion Text-to-Image Demo",
description="Enter a text prompt to generate an image using Stable Diffusion. Adjust the parameters to fine-tune the result."
)
# Launch the interactive demo
demo.launch()
Čia mes apibrėžiame „Gradio“ sąsają, jungiančią funkciją generate_sd_image su interaktyvia žiniatinklio vartotojo sąsaja. Jame pateikiami trys įvesties valdikliai, teksto laukelis, skirtas įvesti teksto eilutę, ir slankikliai, skirti koreguoti išvadų skaičių ir gairių skalę. Priešingai, išvesties valdiklis rodo sugeneruotą vaizdą. Sąsaja taip pat apima pavadinimą ir aprašomąjį tekstą, skirtą padėti vartotojams, o pagaliau paleista interaktyvioji demonstracinė versija.
Žiniatinklio programą taip pat galite pasiekti naudodamiesi viešu URL: https://7dc6833297cf83b160.gradio.live/ (aktyvi 72 val.). Panaši nuoroda bus sukurta ir jūsų kodui.
Apibendrinant galima pasakyti, kad šis vadovėlis parodė, kaip integruoti apkabinimo veido difuzorius su „Gradio“, kad būtų sukurta galinga, interaktyvi „Text-to-Image“ programa „Google Colab“ ir žiniatinklio programa. Nuo GPU padidintos aplinkos nustatymo ir stabilios difuzijos modelio talpyklos iki dinaminės vartotojo sąveikos sąsajos kūrimo, turite tvirtą pagrindą eksperimentuoti ir toliau plėtoti pažangiausius generacinius modelius.
Čia yra „Colab“ užrašų knygelė Aukščiau pateiktam projektui. Be to, nepamirškite sekti mūsų „Twitter“ ir prisijunkite prie mūsų „Telegram“ kanalas ir „LinkedIn GrOUP. Nepamirškite prisijungti prie mūsų 75K+ ml subreddit.
🚨 Rekomenduojama „Read-LG AI Research“ išleidžia „Nexus“: pažangių sistemos integracinių agentų AI sistemos ir duomenų atitikties standartų, skirtų teisiniams klausimams spręsti AI duomenų rinkiniuose

Asif Razzaq yra „MarkTechPost Media Inc“ generalinis direktorius. Kaip vizionierius verslininkas ir inžinierius, ASIF yra įsipareigojęs išnaudoti dirbtinio intelekto potencialą socialiniam gėrybei. Naujausias jo siekis yra dirbtinio intelekto žiniasklaidos platformos „MarkTechPost“, kuri išsiskiria išsamia mašininio mokymosi ir giluminio mokymosi naujienų, kuri yra techniškai pagrįsta, ir lengvai suprantama plačiai auditorijai. Platforma gali pasigirti daugiau nei 2 milijonai mėnesinių peržiūrų, parodydama jos populiarumą tarp auditorijos.
