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에서 실행하기

  • 기본적으로 모든 modelspace 호출은 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 기능을 추가한다고 결론짓습니다.


자신의 워크플로우 시작하기

  1. 최소한의 워크플로우 만들기:
    import gradio as gr
    def your_function(text: str) -> str:
        return text.upper()
    gr.Workflow(bind=[your_function]).launch()
    
  2. bind= 인수를 사용하여 추가 함수, 모델, 또는 Spaces를 바인딩합니다.
  3. edges= 매개변수 또는 캔버스에서 인터랙티브하게 노드를 연결합니다.
  4. gradio deploy로 배포하여 Hugging Face Spaces에 게시합니다.
  5. 공개된 Space에서 Workflow1111을 복제하고, 노드를 삭제하거나 교체하여 새로운 파이프라인을 실험합니다.

자세한 스키마 정보는 공식 Gradio Workflow 가이드를 참조하세요.


왜 중요한가?

  • 복잡한 다중 모델 UI 스택이 로컬 GPU 없이도 조립될 수 있음을 보여주며, 창작자와 연구자들이 접근하기 쉬워집니다.
  • 통합된 자동 생성 API 표면을 제공하여, 생성 파이프라인을 더 큰 시스템이나 AI 어시스턴트에 쉽게 통합할 수 있도록 합니다.
  • ComfyUI와 같은 데스크톱 전용 노드 편집기의 직접적인 클라우드 중심 경쟁자로서 Gradio Workflow의 위치를 확립하며, 빠른 프로토타이핑과 배포를 위한 생태계를 확장합니다.

Space를 복제하고 파이프라인을 재편집하며, X에 @gradio 태그로 당신의 창작물을 공유해 보세요.

Sources