Этот Рабочий процесс ComfyUI делает face swap в видео, применяя одно референсное изображение лица к каждому кадру driving-видео, затем собирая кадры обратно в итоговый клип. Пайплайн начинается с VHS_LoadVideo, который декодирует исходное видео в кадры, и LoadImage, который загружает референс лица. Пользовательская нода face swap (dc72113f-8276-4a5a-af12-85d6bec89ed5) выполняет перенос лица с использованием LTX 2.3 LoRA, обученного @Alissonerdx. Ноды PrimitiveFloat и PrimitiveInt дают доступ к ключевым параметрам (например, сила эффекта, размер области или шаг по кадрам), а ImageResizeKJv2 подгоняет масштаб референсного лица под целевые кадры.
Чтобы стабилизировать результат и сохранить фон, Рабочий процесс композитит сгенерированное лицо обратно на каждый исходный кадр через ReservedRegionFrameComposer. Эта нода позволяет задать постоянную «зарезервированную» область для лица и смешивать её с мягкими краями, снижая временной джиттер и сохраняя волосы, свет и движение сцены. ComfyMathExpression используется для расчёта динамических значений (например, размера области от Разрешения видео), чтобы Настройки оставались синхронизированными с любым загружаемым материалом. Для проверки качества ImageConcanate может собирать предпросмотры «оригинал vs swap» бок о бок. В конце обработанные кадры кодируются в видео через VHS_VideoCombine или CreateVideo, а результат сохраняется через SaveVideo.
API
Использовать этот рабочий процесс из кода
Каждый рабочий процесс Comfy — это JSON-граф. Ниже представлен payload этого процесса, точно так же, как его запускает ComfyUI: получите его по ссылке, храните в системе контроля версий или загрузите в ComfyUI и выполняйте по узлам.
Запустите его на TypeScript или Python с помощью Comfy SDK. Один и тот же код работает с Comfy Cloud или вашим собственным ComfyUI — меняется только базовый URL.
// Install (beta)
npm i @comfyorg/sdk
// Run this workflow (TypeScript)
import { Comfy } from "@comfyorg/sdk";
const client = new Comfy({ apiKey: "comfyui-..." });
const wf = await client.workflows.fromFile("workflow_api.json");
const job = await client.run(wf);
await job.getOutputs("<output-node-id>")[0].toFile("output.png");SDK принимает рабочий процесс в API-формате: откройте этот процесс в ComfyUI и используйте Файл → Экспортировать рабочий процесс (API).
Доступ к API Comfy Cloud требует плана с API-ключом.
FAQ














