Workflow1111은 Gradio Workflow로 AUTOMATIC1111 기능을 재구성합니다
TL;DR
Workflow1111은 73개의 노드와 11개의 미디어 파이프라인을 사용하여 AUTOMATIC1111의 stable‑diffusion‑webui의 핵심 기능 세트를 재현하는 Gradio Workflow입니다. 누구나 GPU를 소유하지 않고도 브라우저에서 텍스트-이미지 생성, 인페인팅, 업스케일링, 비디오 생성 등을 수행할 수 있습니다.
Workflow1111란?
Workflow1111은 열한 가지의 서로 다른 미디어 파이프라인을 연결하는 단일 gr.Workflow 캔버스입니다. 그래프에는 네 가지 연산자 종류(fn, model, space, dataset)의 73개의 노드가 포함되어 있습니다. 각 노드는 함수, InferenceClient를 통해 접근하는 Hugging Face 모델, 다른 Gradio Space, 또는 데이터셋 행을 래핑합니다. 그 결과, AUTOMATIC1111의 stable‑diffusion‑webui의 탭과 확장 기능을 그대로 반영하는 모듈식이고 브라우저 기반의 UI가 만들어집니다.
"당신은 Hugging Face 계정으로 로그인하거나 액세스 토큰을 제공함으로써 이 파이프라인 중 하나를 실행할 수 있습니다. 로그인 후 모델 호출은 당신의 개인 할당량을 사용합니다." – Hugging Face 블로그
핵심 파이프라인 및 구현 방식
텍스트-이미지
- 음성 프롬프트, 단계, CFG, 시드, 너비, 높이, 체크포인트 선택과 같은 컨트롤을 포함하는 txt2img 탭을 재현합니다.
- 프롬프트는 스타일 프리셋을 추가하고 텍스트를 정리하는
fn노드를 거친 후, 선택된 확산 체크포인트를 Inference Providers를 통해 호출하는model노드로 전달됩니다. - 후처리
fn노드는 생성 파라미터를 PNG 메타데이터에 기록하여 나중에 복원할 수 있도록 합니다.
고해상도 수정
- AUTOMATIC1111의 업스케일-다시 정제 워크플로우를 두 개의 노드로 구성된 경로를 통해 구현합니다.
- 텍스트-이미지 파이프라인의 출력은 FLUX.1‑Kontext
model노드에 입력되며, "세부 사항과 마이크로 텍스처를 강화하고 구성은 동일하게 유지"라는 정제 지시문이 포함됩니다.
이미지-이미지
- 동일한 Kontext 노드를 재사용합니다: 이미지를 업로드하고 원하는 편집을 설명하면 편집된 결과를 받을 수 있습니다.
LLM 생성 프롬프트
- 원시 프롬프트를 Qwen3‑4B
model노드로 전송합니다. - 하류의
fn노드는 LLM 응답을 최대 40개의 태그로 제한된 목록으로 포맷하여, 어떤 확산 모델 노드에도 공급할 수 있습니다.
이미지-프롬프트 (인터로게이트)
- Qwen2.5‑VL‑7B‑Instruct를 사용하여 입력 이미지의 텍스트 설명을 생성합니다.
- 병렬적으로, ViT‑base‑patch16‑224 분류기가 레이블 확률을 반환합니다.
- 병렬 실행으로 인해 두 결과는 단일 모델 호출 시간과 비슷한 시간 내에 모두 사용 가능합니다.
감지-인페인팅 마스크
- DETR‑ResNet‑50 감지기가 객체(예: 사람, 개, 자전거, 자동차)를 식별하고 경계 상자(Bounding Box)를 생성합니다.
- 한 가지 분기에서는 이미지에 상자를 그립니다. 다른 분기에서는 상자를 이진 마스크로 변환하여 하류 인페인팅에 사용합니다.
- 감지는 원격에서 실행되며, 그리기와 마스크 생성은 Pillow/NumPy를 사용해 로컬에서 수행됩니다.
프롬프트 매트릭스
fn노드가 기본 프롬프트에 네 가지 접미사를 추가하여 네 개의 병렬 텍스트-이미지 노드를 생성합니다.- 최종 노드는 네 개의 결과를 컨택트 시트로 연결합니다.
- 루프 연산자가 필요 없으며, 병렬 노드는 동시에 실행됩니다.
업스케일링 및 배경 제거
- 두 가지 업스케일 경로: 로컬 Lanczos 리샘플링(
fn노드)과 외부 AuraSR ×4 Space(space노드). - 배경 제거는 BRIA RMBG‑2.0 Space를 호출하며, 모델은 메인 캔버스에서 격리됩니다.
애노테이터 (ControlNet 스타일 전처리기)
- Canny, 라인 아트, 스케치, 루마-딥스, 포스터라이즈는 순수 NumPy
fn노드로 구현됩니다. - 36개의 연산자 노드 중 32개가
fn노드이며, 그 중 22개는 네트워크 호출 없이 완전히 내부에서 실행되어 대부분의 캔버스가 오프라인에서도 기능할 수 있도록 합니다.
PNG 정보
- AUTOMATIC1111의 PNG 메타데이터 저장을 그대로 반영합니다: 후처리 노드가 파라미터를 PNG
parameters청크에 기록하고, 전용 파이프라인이 이를 다시 읽어옵니다(프롬프트, 음성 프롬프트, 단계, CFG, 시드, 크기, 모델).
이미지-비디오
- PNG 정보 노드는 Wan 2.2 I2V A14B
model노드에도 공급되며, 이미지를 애니메이션화합니다(예: 자는 여우가 깨어나는 장면). - 단일 업로드로 여러 하류 파이프라인을 동작시킬 수 있습니다.
자신의 GPU에서 실행하기
- 기본적으로 모든
model및space호출은 Inference Providers 또는 외부 Spaces를 통해 원격 하드웨어를 사용하므로, 로컬 GPU가 필요하지 않습니다. - 어떤
fn노드도 로컬로 로드된 모델로 교체할 수 있습니다. 블로그에서는 ZeroGPU 할당에서 MiniMax‑H3 모델을 실행하는 FastVideo/fastvideo‑fasth3‑preview를 예시로 제시합니다. - 예시 바인딩 구문:
@spaces.GPU(duration=get_duration, size=GPU_SIZE) def _generate(prompt_embeds, text_token_tags, height, width, num_frames, seed): ... gr.Workflow(bind={"generate": _generate, "status": status}).launch() - ZeroGPU는 함수 호출 시 자동으로 GPU를 할당하고 이후에 해제합니다.
gr.Workflow는 할당을 인지하지 않습니다.
모든 출력은 자동 REST API입니다
- 각 출력 노드는 타입이 지정된 엔드포인트(예:
/image,/edited_image,/generated_prompt)가 됩니다. - 예시 클라이언트 호출:
from gradio_client import Client client = Client("ysharma/Workflow1111", oauth_token="hf_...") image, params, hires = client.predict( "a red fox in a snowy pine forest", "", "Cinematic", "enhance fine detail", api_name="/image" ) - 엔드포인트는 Model Context Protocol (MCP)와도 호환되어 AI 어시스턴트(Claude Code, Cursor 등)가 직접 호출할 수 있습니다.
ComfyUI와의 비교
| 기능 | Workflow1111 (Gradio) | ComfyUI |
|---|---|---|
| 하드웨어 추상화 | 노드는 원격 Inference Providers, Spaces, 또는 데이터셋을 가리킬 수 있음; 로컬 GPU 필요 없음. | 주로 로컬 GPU 실행; 외부 호출은 사용자 정의 스크립팅 필요. |
| 자동 API 생성 | 출력 노드 하나하나가 수동 라우팅 없이 REST 엔드포인트가 됨. | 내장된 API 생성 없음; 개발자가 엔드포인트를 직접 노출해야 함. |
| OAuth 기반 다중 사용자 접근 | 사용자는 Hugging Face 계정으로 로그인; 사용량은 그들의 할당량에 청구됨. | 일반적으로 단일 사용자 데스크톱 애플리케이션. |
| 혼합 모달리티 그래프 | 확산, LLM, VLM, 감지, 비디오 모델이 하나의 캔버스에서 공존. | 여러 모델 유형을 지원하지만 통합은 종종 사용자 정의 노드 필요. |
| 사용자 정의 로직 | 간단한 Python fn 노드로 캔버스에서 임의의 코드 실행 가능. |
사용자 정의 노드는 C++/Python 확장 작성 필요. |
블로그는 Gradio Workflow가 ComfyUI의 포괄성과 동등한 브라우저 중심, 설치 없이 사용 가능한 경험을 제공하면서도 원격 실행과 자동 API 기능을 추가한다고 결론짓습니다.
자신의 워크플로우 시작하기
- 최소한의 워크플로우 만들기:
import gradio as gr def your_function(text: str) -> str: return text.upper() gr.Workflow(bind=[your_function]).launch() bind=인수를 사용하여 추가 함수, 모델, 또는 Spaces를 바인딩합니다.edges=매개변수 또는 캔버스에서 인터랙티브하게 노드를 연결합니다.gradio deploy로 배포하여 Hugging Face Spaces에 게시합니다.- 공개된 Space에서 Workflow1111을 복제하고, 노드를 삭제하거나 교체하여 새로운 파이프라인을 실험합니다.
자세한 스키마 정보는 공식 Gradio Workflow 가이드를 참조하세요.
왜 중요한가?
- 복잡한 다중 모델 UI 스택이 로컬 GPU 없이도 조립될 수 있음을 보여주며, 창작자와 연구자들이 접근하기 쉬워집니다.
- 통합된 자동 생성 API 표면을 제공하여, 생성 파이프라인을 더 큰 시스템이나 AI 어시스턴트에 쉽게 통합할 수 있도록 합니다.
- ComfyUI와 같은 데스크톱 전용 노드 편집기의 직접적인 클라우드 중심 경쟁자로서 Gradio Workflow의 위치를 확립하며, 빠른 프로토타이핑과 배포를 위한 생태계를 확장합니다.
Space를 복제하고 파이프라인을 재편집하며, X에 @gradio 태그로 당신의 창작물을 공유해 보세요.