Sourceful: Riverflow V2 Pro
Riverflow 2.0 Pro는 브랜드에 민감한 크리에이티브를 위한 Sourceful의 Pro 이미지 생성·편집 프로필입니다. 제품군은 후보를 검토하고 수정하며 글꼴 안내와 제품 라벨 및 아트워크의 참조 기반 디테일 복원을 지원합니다.
모델 소개
이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.
Riverflow 2.0 Pro는 제품, 패키지, 마케팅 크리에이티브를 위한 Sourceful의 Riverflow 2.0 이미지 생성·편집 제품군의 Pro 프로필입니다. 이미지 제작 또는 편집을 후보를 검토하고 수정하는 추론 모델과 결합합니다. 핵심은 시각적 지시의 안정적인 실행, 서체, 브랜드에 유용한 자료를 만드는 제품 디테일의 보존입니다.
품질에 민감한 구도에서는 제품 이미지나 아트워크, 정확한 문구, 원하는 시각적 배치를 제공하세요. 예를 들어 용기 형태와 라벨 위계를 보존하면서 라벨이 붙은 용기를 재료 옆에 놓는 장면을 만들 수 있습니다. 조명, 배경, 잘림을 설명하고 바뀌면 안 되는 제품 디테일을 명시하세요. 결과는 렌더링된 창작 이미지이며, 더 넓은 캠페인이나 편집 가능한 레이아웃에 어떻게 배치할지는 별도의 애플리케이션 단계입니다.
2.0 작업은 후보를 자동 평가하고 여러 단계에서 문제를 수정합니다. 필수 내용과 선택적인 스타일 결정을 분리해 이 과정에 명확한 목표를 주세요. 편집에서는 바꿀 요소와 유지할 주변 특성을 명시하세요. 제품 색상 갱신이 조용히 새 라벨 디자인으로 바뀌어서는 안 되며, 배경 교체 뒤에도 제공한 물체를 알아볼 수 있어야 합니다. 완성 이미지는 여전히 지시서 및 원본 참조와 비교해야 합니다.
글꼴 제어는 공개 글꼴이나 제공한 사용자 지정 글꼴로 브랜드 서체를 안내합니다. Riverflow 2.0의 글꼴 제어 작업은 동시에 최대 두 글꼴과 이미지당 최대 300자를 지원합니다. 문구를 모델이 선택하도록 기대하지 말고 정확한 텍스트, 위계, 원하는 굵기나 간격을 제공하세요. 결과물의 중요한 글리프, 숫자, 합자, 작은 보조 텍스트를 확인하세요. 문구를 간결하게 유지하면 제품과 시각적 설명을 위한 공간도 남길 수 있습니다.
제품군의 참조 기반 초해상도 작업은 저해상도 장면에 정확하게 담기지 않은 작은 텍스트나 아트워크를 복원합니다. 디테일 복원 단계가 실제 라벨이나 디자인을 재현할 수 있도록 고품질 원본 아트워크를 제공하세요. 2.0 릴리스는 요청당 최대 네 개의 교체 인스턴스를 설명하며, 한 제품이나 장면 속 여러 제품을 수정할 수 있습니다. 이는 생성 이미지에 적용하는 참조 기반 복원 작업이며 모든 초기 이미지의 미세 디테일이 완벽하다는 보장은 아닙니다.
관련 제품 세트에서는 각 품목에 올바른 참조를 제공하면서 스타일, 조명, 장면 구조를 일정하게 유지하세요. 캠페인 자료는 주요 제품 뷰와 승인된 문구를 위한 실용적 공간을 결합할 수 있고, 제품 클로즈업은 라벨과 소재 디테일을 우선할 수 있습니다. 실제 표시 크기에 맞춰 원본과 출력을 준비하고 선택한 이미지를 정체성의 기준이 되는 참조와 함께 보관하세요. 장면 수준의 수정과 디테일 복원 단계는 결과물의 서로 다른 부분을 다룹니다.
Pro는 Fast 프로필 및 Riverflow 2.5와 구분됩니다. 이후 세대에는 사용자 지정 점수 기준과 더 깊은 검토 설정이 추가되며, 이를 이 2.0 프로필에 포함된 것으로 가정해서는 안 됩니다. 유용한 최종 검토를 위해 요청한 변경, 서체, 제품 정체성, 주변 디테일을 원본과 비교하세요. 이미 작업에 맞는 구도는 유지하면서 불일치의 원인이 되는 구체적인 지시나 참조를 수정하세요.
Ailoot Ultra · 이미지 POST /v1/images/generations sourceful/riverflow-v2-pro
sourceful/riverflow-v2-pro시작하기
Riverflow 2.0 Pro는 브랜드에 민감한 크리에이티브를 위한 Sourceful의 Pro 이미지 생성·편집 프로필입니다. 제품군은 후보를 검토하고 수정하며 글꼴 안내와 제품 라벨 및 아트워크의 참조 기반 디테일 복원을 지원합니다.
- 허용 입력
- 텍스트 · 이미지
- 결과
- 이미지
Ailoot에서 사용 가능 · 입력 및 메서드
Ailoot Ultra · 이미지 POST /v1/images/generations
- 입력
text,image- 출력
image
| 필드 | 유형 | 요건 | 값과 한도 | 기본값 |
|---|---|---|---|---|
필드model | 유형string | 요건필수 | 값과 한도 sourceful/riverflow-v2-pro | 기본값— |
필드prompt | 유형string | 요건필수 | 값과 한도 최소 길이: 1 | 기본값— |
필드resolution | 유형string | 요건선택 사항 | 값과 한도 1K, 2K, 4K | 기본값— |
필드aspect_ratio | 유형string | 요건선택 사항 | 값과 한도 1:1, 4:3, 3:4, 3:2, 2:3, 16:9, 9:16, 21:9, auto | 기본값— |
필드n | 유형integer | 요건선택 사항 | 값과 한도 최솟값: 1 최댓값: 1 | 기본값— |
필드input_references | 유형array | 요건선택 사항 | 값과 한도 최소 항목 수: 0 최대 항목 수: 10 | 기본값— |
필드provider | 유형object | 요건선택 사항 | 값과 한도 | 기본값— |
메서드 매개변수와 수명 주기
| 매개변수 | 명세 |
|---|---|
매개변수content_type | 명세application/json |
매개변수required | 명세model, prompt |
매개변수material_types | 명세text, image |
수명 주기: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · 실제로 반환된 task_id 또는 미디어 라이브러리 기록
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
요금
최종 요금 계산 방식
표시된 요율은 생성 전 비용을 예상하는 데 사용됩니다. 최종 청구액은 최초 생성에 기록된 비용으로 계산됩니다. 측정된 출력 길이와 예상 수량은 최종 청구 수량이 아닙니다.
요금 정보는 요청 옵션을 추가하지 않습니다. 지원되는 매개변수는 선택한 메서드에 표시됩니다.
- 빠른 모드
- 미지정 빠른 모드를 선택한 경우
- Flex 모드
- 미지정 flex 모드를 선택한 경우
- 최대 추론 수준
- 미지정 최대 추론 수준에 default 조정값을 적용하는 경우
비교용 예상 요금
설정별 가격
각 요금을 표시된 조건과 대조하세요. 서로 대체되는 설정 묶음마다 하나의 요금만 적용하세요.
| 설정 | 요금표 | 예측 수량 | 과금 단위 | 요금 |
|---|---|---|---|---|
| 설정기본 토큰 요금 | 요금표기본 요금 | 예측 수량— | 과금 단위— | 요금 입력 · 입력 토큰 · 비교 전용 추정치 — / 1K 토큰 출력 · 출력 토큰 · 비교 전용 추정치 — / 1K 토큰 입력 · 캐시 읽기 · 비교 전용 추정치 — / 1K 토큰 입력 · 캐시 쓰기 · 비교 전용 추정치 — / 1K 토큰 입력 · 캐시 쓰기, 1시간 · 비교 전용 추정치 — / 1K 토큰 |
| 설정글꼴 입력 | 요금표— | 예측 수량— | 과금 단위이미지당 | 요금 입력 · 글꼴 입력 · 비교 전용 추정치 $0.06 이미지당 |
| 설정입력 참조 자료 | 요금표— | 예측 수량— | 과금 단위이미지당 | 요금 입력 · 입력 참조 자료 · 비교 전용 추정치 $0.4 이미지당 |
| 설정출력 이미지 | 요금표— | 예측 수량— | 과금 단위출력 이미지당 | 요금 출력 · 출력 이미지 · 비교 전용 추정치 $0.3 출력 이미지당 |
| 설정예상 생성 비용 | 요금표— | 예측 수량1회 생성 예상치 | 과금 단위— | 요금 출력 · 예상 생성 비용 · 비교 전용 추정치 $0.3 생성 전 추정치 이 예상 금액은 추가 요금이나 생성 완료 시 적용되는 고정 요금이 아닙니다. |
Ailoot는 요청 전에 예상 금액을 미리 확보합니다. 결과를 받은 뒤 측정된 사용량을 기준으로 최종 요금을 정산합니다. 스트리밍 정산에는 최종 사용량 기록을 사용합니다. 금액 확보와 정산 방식 →
요청 예제
Ailoot Ultra · 이미지
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p={'model': 'sourceful/riverflow-v2-pro', 'prompt': 'a red panda astronaut floating in space, studio lighting'}
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin
def save_images(items):
if not items: raise SystemExit("No completed images; retain the full response")
for index, item in enumerate(items):
encoded=item.get("b64_json")
uri=item.get("url", "")
if not encoded and uri.startswith("data:image/"):
header, separator, encoded=uri.partition(",")
if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
if encoded:
raw=base64.b64decode(encoded,validate=True)
elif uri:
uri=urljoin("https://api.ailoot.ai",uri)
parsed=urlsplit(uri)
if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
raise SystemExit("Invalid returned image URL")
owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
args=["curl","--fail-with-body","--silent","--show-error",uri]
if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
temporary=Path(f"image-{index}.bin")
subprocess.run(args+["-o",str(temporary)],check=True)
raw=temporary.read_bytes()
temporary.unlink()
else: raise SystemExit("Image has neither bytes nor URL")
if not raw: raise SystemExit("Empty image result")
ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
Path(f"image-{index}.{ext}").write_bytes(raw)
print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
결과 수신 및 저장
Ailoot Ultra · 이미지
반환된 각 이미지를 다운로드하거나 Base64 내용을 저장하세요
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
기타 콘텐츠 조회
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
-H "Authorization: Bearer $AILOOT_API_KEY" -o owned-assets.json
# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.
완료된 결과 모두 보관
완료된 이미지를 모두 저장하세요. 반환된 각 URL에서 가져오거나 Base64 내용을 디코딩하세요.
전체 응답과 헤더, 실제로 생성된 모든 출력, 최초로 반환된 식별자와 모든 사용량 필드를 보관하세요. 생성 요청을 다시 제출하지 말고 최초 작업을 복구하세요.
원래 응답을 확인해야 할 경우
정산 대조를 위해 반환된 X-Client-Request-ID를 보관하세요. 실제로 반환된 task_id/asset_id 값이나 소유한 미디어 라이브러리만 조회하세요. 작업 ID로 태스크 URL을 만들거나 생성 요청을 다시 제출하지 마세요.
응답 필드
| 필드 | 유형 |
|---|---|
필드created | 유형 |
필드data[].url | 유형 |
필드data[].b64_json | 유형 |
필드usage | 유형 |
별칭
모델 별칭
Ailoot Ultra sourceful/riverflow-v2-pro
메서드 경로 별칭
/v1/images
관련 호출용 ID
FAQ · Sourceful: Riverflow V2 Pro
- 어떤 입력과 결과를 사용할 수 있나요?
POST /v1/images/generations·sourceful/riverflow-v2-pro:text,image→image- 요청은 어떤 필드를 사용하나요?
POST /v1/images/generations·sourceful/riverflow-v2-pro:model,prompt,resolution,aspect_ratio,n,input_references,provider- 어떤 제한이 적용되나요?
POST /v1/images/generations·sourceful/riverflow-v2-pro:n.minimum:1;n.maximum:1