Buckets:
| # Tutarlılık Modelleri | |
| Consistency Models, Yang Song, Prafulla Dhariwal, Mark Chen ve Ilya Sutskever tarafından [Consistency Models](https://huggingface.co/papers/2303.01469) makalesinde önerilmiştir. | |
| Makalenin özeti şudur: | |
| *Diffüzyon modelleri, görüntü, ses ve video üretimi alanlarında önemli ilerlemeler sağlamış olsa da, yavaş üretime neden olan iteratif bir örneklemleme sürecine bağımlıdırlar. Bu sınırlamayı aşmak için, gürültüyü doğrudan veriye eşleyerek yüksek kaliteli örnekler üreten yeni bir model ailesi olan tutarlılık modellerini öneriyoruz. Tasarım gereği hızlı tek adımlı üretimi desteklerken, hesaplama gücünü örnek kalitesiyle takas etmek için çok adımlı örneklemlemeye de izin verirler. Ayrıca, bu görevler üzerinde açık bir eğitim gerektirmeden, görüntü doldurma (inpainting), renklendirme ve süper çözünürlük gibi sıfır atışlı (zero-shot) veri düzenlemelerini de desteklerler. Tutarlılık modelleri, önceden eğitilmiş diffüzyon modellerinden damıtılarak (distillation) veya tamamen bağımsız üretken modeller olarak eğitilebilir. Kapsamlı deneyler yoluyla, tek ve az adımlı örneklemlemede mevcut diffüzyon modeli damıtma tekniklerinden daha iyi performans gösterdiklerini, tek adımlı üretimde CIFAR-10 üzerinde 3,55 ve ImageNet 64x64 üzerinde 6,20 ile yeni en iyi FID değerlerine ulaştıklarını gösteriyoruz. İzole olarak eğitildiğinde, tutarlılık modelleri; CIFAR-10, ImageNet 64x64 ve LSUN 256x256 gibi standart ölçütlerde mevcut tek adımlı, advers olmayan üretken modellerden daha iyi performans gösterebilen yeni bir üretken model ailesi haline gelir.* | |
| Orijinal kod tabanı [openai/consistency_models](https://github.com/openai/consistency_models) adresinde bulunabilir ve ek kontrol noktaları [openai](https://huggingface.co/openai) adresinde mevcuttur. | |
| Pipeline, [dg845](https://github.com/dg845) ve [ayushtues](https://huggingface.co/ayushtues) tarafından katkı sağlanmıştır. ❤️ | |
| ## İpuçları | |
| Ek bir hızlanma için, `torch.compile` kullanarak birden fazla görüntüyü <1 saniyede üretin: | |
| ```diff | |
| import torch | |
| from diffusers import ConsistencyModelPipeline | |
| device = "cuda" # or "mps", "xpu", "cpu" | |
| # Load the cd_bedroom256_lpips checkpoint. | |
| model_id_or_path = "openai/diffusers-cd_bedroom256_lpips" | |
| pipe = ConsistencyModelPipeline.from_pretrained(model_id_or_path, dtype=torch.float16) | |
| pipe.to(device) | |
| + pipe.unet = torch.compile(pipe.unet, mode="reduce-overhead", fullgraph=True) | |
| # Multistep sampling | |
| # Timesteps can be explicitly specified; the particular timesteps below are from the original GitHub repo: | |
| # https://github.com/openai/consistency_models/blob/main/scripts/launch.sh#L83 | |
| for _ in range(10): | |
| image = pipe(timesteps=[17, 0]).images[0] | |
| image.show() | |
| ``` | |
| ## ConsistencyModelPipeline[[diffusers.ConsistencyModelPipeline]] | |
| #### diffusers.ConsistencyModelPipeline[[diffusers.ConsistencyModelPipeline]] | |
| ```python | |
| diffusers.ConsistencyModelPipeline(unet: UNet2DModel, scheduler: CMStochasticIterativeScheduler) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/consistency_models/pipeline_consistency_models.py#L67) | |
| **Parametreler:** | |
| unet ([UNet2DModel](/docs/diffusers/main/tr/api/models/unet2d#diffusers.UNet2DModel)) : Kodlanmış görüntü latentlerini gürültüden arındırmak için kullanılan bir `UNet2DModel`. | |
| scheduler ([SchedulerMixin](/docs/diffusers/main/tr/api/schedulers/overview#diffusers.SchedulerMixin)) : Kodlanmış görüntü latentlerini gürültüden arındırmak için `unet` ile birlikte kullanılacak bir zamanlayıcı. Şu anda yalnızca [CMStochasticIterativeScheduler](/docs/diffusers/main/tr/api/schedulers/cm_stochastic_iterative#diffusers.CMStochasticIterativeScheduler) ile uyumludur. | |
| Koşulsuz veya sınıf-konumlu görüntü üretimi için pipeline. | |
| Bu model [DiffusionPipeline](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline) sınıfından devralınmıştır. Tüm pipeline'lar için uygulanan genel yöntemlerin (indirme, kaydetme, belirli bir cihazda çalıştırma vb.) belgelerini üst sınıfın dokümantasyonunda bulabilirsiniz. | |
| #### __call__[[diffusers.ConsistencyModelPipeline.__call__]] | |
| ```python | |
| __call__(batch_size: int = 1, class_labels: typing.Union[torch.Tensor, list[int], int, NoneType] = None, num_inference_steps: int = 1, timesteps: list = None, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', return_dict: bool = True, callback: typing.Optional[typing.Callable[[int, int, torch.Tensor], NoneType]] = None, callback_steps: int = 1) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/consistency_models/pipeline_consistency_models.py#L171) | |
| **Parametreler:** | |
| batch_size (`int`, *isteğe bağlı*, varsayılan 1) : Üretilecek görsel sayısı. | |
| class_labels (`torch.Tensor` veya `list[int]` veya `int`, *isteğe bağlı*) : Sınıf koşullu tutarlılık modelleri için koşullandırmada kullanılacak isteğe bağlı sınıf etiketleri. Model sınıf koşullu değilse kullanılmaz. | |
| num_inference_steps (`int`, *isteğe bağlı*, varsayılan 1) : Gürültü azaltma adım sayısı. Daha fazla gürültü azaltma adımı genellikle daha yavaş çıkarım pahasına daha yüksek kaliteli bir görüntüye yol açar. | |
| timesteps (`list[int]`, *isteğe bağlı*) : Gürültü azaltma süreci için kullanılacak özel zaman adımları. Tanımlanmamışsa, eşit aralıklı `num_inference_steps` zaman adımı kullanılır. Azalan sırada olmalıdır. | |
| generator (`torch.Generator`, *isteğe bağlı*) : Üretimi deterministik hale getirmek için bir [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html). | |
| latents (`torch.Tensor`, *isteğe bağlı*) : Görsel üretimi için girdi olarak kullanılacak, Gauss dağılımından örneklenen önceden oluşturulmuş gürültülü latensler. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele `generator` kullanılarak örneklem yoluyla bir latens tensörü oluşturulur. | |
| output_type (`str`, *isteğe bağlı*, varsayılan `"pil"`) : Üretilen görüntünün çıktı biçimi. `PIL.Image` veya `np.array` arasında seçim yapın. | |
| return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Düz bir tuple yerine [ImagePipelineOutput](/docs/diffusers/main/tr/api/pipelines/consistency_models#diffusers.ImagePipelineOutput) döndürülüp döndürülmemesi. | |
| callback (`Callable`, *isteğe bağlı*) : Çıkarım sırasında her `callback_steps` adımda çağrılan bir işlev. İşlev aşağıdaki argümanlarla çağrılır: `callback(step: int, timestep: int, latents: torch.Tensor)`. | |
| callback_steps (`int`, *isteğe bağlı*, varsayılan 1) : `callback` fonksiyonunun çağrılma sıklığı. Belirtilmezse, callback her adımda çağrılır. | |
| **Dönüş:** [ImagePipelineOutput](/docs/diffusers/main/tr/api/pipelines/consistency_models#diffusers.ImagePipelineOutput) veya `tuple` | |
| `return_dict` `True` ise [ImagePipelineOutput](/docs/diffusers/main/tr/api/pipelines/consistency_models#diffusers.ImagePipelineOutput) döndürülür, aksi halde ilk öğesi üretilen görüntülerin listesini içeren bir `tuple` döndürülür. | |
| Örnekler: | |
| ```py | |
| >>> import torch | |
| >>> from diffusers import ConsistencyModelPipeline | |
| >>> device = "cuda" | |
| >>> # Load the cd_imagenet64_l2 checkpoint. | |
| >>> model_id_or_path = "openai/diffusers-cd_imagenet64_l2" | |
| >>> pipe = ConsistencyModelPipeline.from_pretrained(model_id_or_path, torch_dtype=torch.float16) | |
| >>> pipe.to(device) | |
| >>> # Onestep Sampling | |
| >>> image = pipe(num_inference_steps=1).images[0] | |
| >>> image.save("cd_imagenet64_l2_onestep_sample.png") | |
| >>> # Onestep sampling, class-conditional image generation | |
| >>> # ImageNet-64 class label 145 corresponds to king penguins | |
| >>> image = pipe(num_inference_steps=1, class_labels=145).images[0] | |
| >>> image.save("cd_imagenet64_l2_onestep_sample_penguin.png") | |
| >>> # Multistep sampling, class-conditional image generation | |
| >>> # Timesteps can be explicitly specified; the particular timesteps below are from the original GitHub repo: | |
| >>> # https://github.com/openai/consistency_models/blob/main/scripts/launch.sh#L77 | |
| >>> image = pipe(num_inference_steps=None, timesteps=[22, 0], class_labels=145).images[0] | |
| >>> image.save("cd_imagenet64_l2_multistep_sample_penguin.png") | |
| ``` | |
| ## ImagePipelineOutput[[diffusers.ImagePipelineOutput]] | |
| #### diffusers.ImagePipelineOutput[[diffusers.ImagePipelineOutput]] | |
| ```python | |
| diffusers.ImagePipelineOutput(images: list[PIL.Image.Image] | numpy.ndarray) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L135) | |
| **Parametreler:** | |
| images (`List[PIL.Image.Image]` veya `np.ndarray`) : Uzunluğu `batch_size` olan gürültüsü azaltılmış PIL görüntülerinin listesi veya `(batch_size, height, width, num_channels)` biçiminde NumPy dizisi. | |
| Görüntü hatları için çıktı sınıfı. | |
Xet Storage Details
- Size:
- 9.19 kB
- Xet hash:
- 1c3c1beea2c3dccfed486c2789af4cccacbc7b9867dd0d0fd06a31e602d0a29e
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.